Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (S1)
specjalność: Inżynieria systemów informacyjnych

Sylabus przedmiotu Programowanie komputerów heterogenicznych:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia stacjonarne Poziom pierwszego stopnia
Tytuł zawodowy absolwenta inżynier
Obszary studiów nauki techniczne, studia inżynierskie
Profil ogólnoakademicki
Moduł
Przedmiot Programowanie komputerów heterogenicznych
Specjalność Inżynieria oprogramowania
Jednostka prowadząca Katedra Inżynierii Oprogramowania
Nauczyciel odpowiedzialny Włodzimierz Bielecki <Wlodzimierz.Bielecki@zut.edu.pl>
Inni nauczyciele Sławomir Wernikowski <Slawomir.Wernikowski@zut.edu.pl>
ECTS (planowane) 3,0 ECTS (formy) 3,0
Forma zaliczenia zaliczenie Język polski
Blok obieralny 6 Grupa obieralna 1

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
wykładyW7 30 1,50,50zaliczenie
laboratoriaL7 30 1,50,50zaliczenie

Wymagania wstępne

KODWymaganie wstępne
W-1Architektura systemów komputerowych
W-2Programowanie 2
W-3Programowanie równoległe i współbieżne

Cele przedmiotu

KODCel modułu/przedmiotu
C-1Zapoznanie słuchaczy z heterogenicznymi środowiskami sprzętowymi.
C-2Wykształcenie umiejętności tworzenia oprogramowania przeznaczonego do pracy w różnorodnych platformach heterogenicznych.

Treści programowe z podziałem na formy zajęć

KODTreść programowaGodziny
laboratoria
T-L-1Implementacja wybranego problemu obliczeniowego w środowisku OpenM8
T-L-2Implementacja wybranego problemu obliczeniowego w środowisku OpenACC8
T-L-3Implementacja programu do renderingu obrazu wykorzystującego shadery GLSL do obliczenia koloru powierzchni4
T-L-4Implementacja programu przetwarzającego teksturę OpenGL w środowisku OpenCLa2
T-L-5Implementacja wybranego problemu obliczeniowego w środowisku Nvidia CUDA8
30
wykłady
T-W-1Wprowadzenie do programowania w środowiskach heterogenicznych: podstawowe pojęcia, tło historyczne, taksonomie, problemy i rozwiązania2
T-W-2Charakterystyka wybranych środowisk heterogenicznych2
T-W-3Zastosowanie API OpenMP 4.0  do programowanie akceleratorów4
T-W-4Programowanie w środowisku OpenACC: wprowadzenie, aparat pojęciowy, prezentacja rozwiązań przykładowych4
T-W-5Programowanie w C/C++ z użyciem OpenACC4
T-W-6Programowanie w języku GLSL: Wprowadzenie do języka GLSL (kompilacja, uruchamianie w środowisku programu graficznego, narzędzia programistyczne)2
T-W-7Programowanie w języku GLSL: Podstawowe składniki języka na przykładzie programu obliczającego równanie oświetlenia2
T-W-8Przetwarzanie obrazów w środowisku OpenCL: Techniki reprezentacji i przetwarzania obrazów w środowisku OpenCL2
T-W-9Programowanie w języku C/C++ w środowisku Nvidia CUDA8
30

Obciążenie pracą studenta - formy aktywności

KODForma aktywnościGodziny
laboratoria
A-L-1Uczestnictwo w zajęciach30
A-L-2Przygotowanie się do zajęć oraz rozwiązywanie zadań off-site8
38
wykłady
A-W-1Uczestnictwo w zajęciach30
A-W-2Samodzielne studiowanie treści omawianych na wykładach4
A-W-3Przygotowanie do zaliczenia i udział w zaliczeniu2
A-W-4Udział w konsultacjach2
38

Metody nauczania / narzędzia dydaktyczne

KODMetoda nauczania / narzędzie dydaktyczne
M-1Wykład informacyjno-konwersatoryjny
M-2Ćwiczenia laboratoryjne

Sposoby oceny

KODSposób oceny
S-1Ocena formująca: Ocena na podstawie stopnia wykonania scenariuszy konspektów laboratoryjnych, wymagań projektowych i/lub sprawozdania z zajec
S-2Ocena podsumowująca: Egzamin (pytania zamknięte oraz otwarte)

Zamierzone efekty kształcenia - wiedza

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_D02.10.2_W01
Student rozumie techniki konstrukcji, specyfikę i charakterystykę środowisk heterogenicznych
I_1A_W03C-1T-W-2, T-W-1M-1S-2
I_1A_D02.10.2_W02
Student zna wybrane języki programowania stosowane w środowiskach heterogenicznych
I_1A_W04C-2T-W-7, T-W-5, T-W-3, T-W-9, T-W-8, T-W-4, T-W-6M-1S-2

Zamierzone efekty kształcenia - umiejętności

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_D02.10.2_U01
potrafi pisać, uruchamiać i profilować programy przeznaczone do pracy w środowiskach heterogenicznych
I_1A_U09C-2T-L-5, T-L-4, T-L-2, T-W-9, T-W-6, T-W-7, T-L-1, T-L-3, T-W-5, T-W-3, T-W-8, T-W-4M-2S-1

Zamierzone efekty kształcenia - inne kompetencje społeczne i personalne

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_D02.10.2_K01
Student jest kreatywny i przygotowany do wykorzystywania różnorodnych źródeł wiedzy
I_1A_K02C-2T-W-9, T-W-1, T-L-5, T-L-3, T-L-2, T-W-6, T-W-2, T-W-8, T-W-4, T-L-4, T-W-5, T-W-3, T-W-7, T-L-1M-2S-1

Kryterium oceny - wiedza

Efekt kształceniaOcenaKryterium oceny
I_1A_D02.10.2_W01
Student rozumie techniki konstrukcji, specyfikę i charakterystykę środowisk heterogenicznych
2,0
3,0potrafi wymienić podstawowe charakterystyki środowisk heterogenicznych
3,5
4,0potrafi wymienić dowolne charakterystyki środowisk heterogenicznych
4,5
5,0zna wybrane konkretne środowiska heterogeniczne
I_1A_D02.10.2_W02
Student zna wybrane języki programowania stosowane w środowiskach heterogenicznych
2,0
3,0rozumie techniki programowania heterogenicznego i potrafi czytać kod zapisany w wybranych językach programowania heterogenicznego
3,5
4,0zna techniki programowania heterogenicznego i potrafi pisać kod zapisany w wybranych językach programowania heterogenicznego
4,5
5,0biegle zna techniki programowania heterogenicznego i potrafi pisać kod zapisany we wszystkich omówionych językach programowania heterogenicznego

Kryterium oceny - umiejętności

Efekt kształceniaOcenaKryterium oceny
I_1A_D02.10.2_U01
potrafi pisać, uruchamiać i profilować programy przeznaczone do pracy w środowiskach heterogenicznych
2,0
3,0potrafi czytać oraz pisać proste programy przeznaczone do pracy w środowiskach heterogenicznych
3,5
4,0potrafi czytać oraz pisać dowolne programy przeznaczone do pracy w środowiskach heterogenicznych
4,5
5,0biegle potrafi czytać oraz pisać dowolne programy przeznaczone do pracy w środowiskach heterogenicznych

Kryterium oceny - inne kompetencje społeczne i personalne

Efekt kształceniaOcenaKryterium oceny
I_1A_D02.10.2_K01
Student jest kreatywny i przygotowany do wykorzystywania różnorodnych źródeł wiedzy
2,0
3,0dostateczna umiejętność samodzielnego szukania i wykorzystania informacji, wymaga bardzo częstej pomocy nauczyciela
3,5
4,0dobra umiejętność samodzielnego szukania i wykorzystania informacji, wymaga rzadkiej pomocy nauczyciela
4,5
5,0wyróżniająca umiejętność samodzielnego szukania i wykorzystania informacji, potrafi bez pomocy nauczyciela wykonać wszystkie ćwiczenia laboratoryjne zgodnie z otrzymanymi konspektami

Literatura podstawowa

  1. R. Gerber, Getting Started with OpenMP, Intel, https://software.intel.com/en-us/articles/getting-started-with-openmp
  2. R.J. Rost, OpenGL Shading Language, Addison-Wesley
  3. NVidia, CUDA C Programming Guide, http://docs.nvidia.com/cuda/pdf/CUDA_C_Programming_Guide.pd

Literatura dodatkowa

  1. OpenMP Architecture Review Board, OpenMP Application Programming Interface, http://www.openmp.org/wp-content/uploads/openmp-4.5.pdf
  2. Khronos OpenCL Working Group, The OpenCL Specification, https://www.khronos.org/registry/OpenCL/specs/opencl-1.1.pdf

Treści programowe - laboratoria

KODTreść programowaGodziny
T-L-1Implementacja wybranego problemu obliczeniowego w środowisku OpenM8
T-L-2Implementacja wybranego problemu obliczeniowego w środowisku OpenACC8
T-L-3Implementacja programu do renderingu obrazu wykorzystującego shadery GLSL do obliczenia koloru powierzchni4
T-L-4Implementacja programu przetwarzającego teksturę OpenGL w środowisku OpenCLa2
T-L-5Implementacja wybranego problemu obliczeniowego w środowisku Nvidia CUDA8
30

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Wprowadzenie do programowania w środowiskach heterogenicznych: podstawowe pojęcia, tło historyczne, taksonomie, problemy i rozwiązania2
T-W-2Charakterystyka wybranych środowisk heterogenicznych2
T-W-3Zastosowanie API OpenMP 4.0  do programowanie akceleratorów4
T-W-4Programowanie w środowisku OpenACC: wprowadzenie, aparat pojęciowy, prezentacja rozwiązań przykładowych4
T-W-5Programowanie w C/C++ z użyciem OpenACC4
T-W-6Programowanie w języku GLSL: Wprowadzenie do języka GLSL (kompilacja, uruchamianie w środowisku programu graficznego, narzędzia programistyczne)2
T-W-7Programowanie w języku GLSL: Podstawowe składniki języka na przykładzie programu obliczającego równanie oświetlenia2
T-W-8Przetwarzanie obrazów w środowisku OpenCL: Techniki reprezentacji i przetwarzania obrazów w środowisku OpenCL2
T-W-9Programowanie w języku C/C++ w środowisku Nvidia CUDA8
30

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1Uczestnictwo w zajęciach30
A-L-2Przygotowanie się do zajęć oraz rozwiązywanie zadań off-site8
38
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1Uczestnictwo w zajęciach30
A-W-2Samodzielne studiowanie treści omawianych na wykładach4
A-W-3Przygotowanie do zaliczenia i udział w zaliczeniu2
A-W-4Udział w konsultacjach2
38
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_D02.10.2_W01Student rozumie techniki konstrukcji, specyfikę i charakterystykę środowisk heterogenicznych
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W03Posiada poszerzoną wiedzę w zakresie metod przechowywania, przetwarzania, przesyłania i analizy danych oraz modelowania systemów umożliwiającą rozwiązywanie rzeczywistych problemów obliczeniowych.
Cel przedmiotuC-1Zapoznanie słuchaczy z heterogenicznymi środowiskami sprzętowymi.
Treści programoweT-W-2Charakterystyka wybranych środowisk heterogenicznych
T-W-1Wprowadzenie do programowania w środowiskach heterogenicznych: podstawowe pojęcia, tło historyczne, taksonomie, problemy i rozwiązania
Metody nauczaniaM-1Wykład informacyjno-konwersatoryjny
Sposób ocenyS-2Ocena podsumowująca: Egzamin (pytania zamknięte oraz otwarte)
Kryteria ocenyOcenaKryterium oceny
2,0
3,0potrafi wymienić podstawowe charakterystyki środowisk heterogenicznych
3,5
4,0potrafi wymienić dowolne charakterystyki środowisk heterogenicznych
4,5
5,0zna wybrane konkretne środowiska heterogeniczne
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_D02.10.2_W02Student zna wybrane języki programowania stosowane w środowiskach heterogenicznych
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W04Ma wiedzę w zakresie programowania systemów komputerowych, zna podstawowe paradygmaty programowania i wiodące języki programowania.
Cel przedmiotuC-2Wykształcenie umiejętności tworzenia oprogramowania przeznaczonego do pracy w różnorodnych platformach heterogenicznych.
Treści programoweT-W-7Programowanie w języku GLSL: Podstawowe składniki języka na przykładzie programu obliczającego równanie oświetlenia
T-W-5Programowanie w C/C++ z użyciem OpenACC
T-W-3Zastosowanie API OpenMP 4.0  do programowanie akceleratorów
T-W-9Programowanie w języku C/C++ w środowisku Nvidia CUDA
T-W-8Przetwarzanie obrazów w środowisku OpenCL: Techniki reprezentacji i przetwarzania obrazów w środowisku OpenCL
T-W-4Programowanie w środowisku OpenACC: wprowadzenie, aparat pojęciowy, prezentacja rozwiązań przykładowych
T-W-6Programowanie w języku GLSL: Wprowadzenie do języka GLSL (kompilacja, uruchamianie w środowisku programu graficznego, narzędzia programistyczne)
Metody nauczaniaM-1Wykład informacyjno-konwersatoryjny
Sposób ocenyS-2Ocena podsumowująca: Egzamin (pytania zamknięte oraz otwarte)
Kryteria ocenyOcenaKryterium oceny
2,0
3,0rozumie techniki programowania heterogenicznego i potrafi czytać kod zapisany w wybranych językach programowania heterogenicznego
3,5
4,0zna techniki programowania heterogenicznego i potrafi pisać kod zapisany w wybranych językach programowania heterogenicznego
4,5
5,0biegle zna techniki programowania heterogenicznego i potrafi pisać kod zapisany we wszystkich omówionych językach programowania heterogenicznego
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_D02.10.2_U01potrafi pisać, uruchamiać i profilować programy przeznaczone do pracy w środowiskach heterogenicznych
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_U09Potrafi analizować i oceniać przydatność języków, platform programistycznych i narzędzi informatycznych do rozwiązywania wybranych problemów inżynierskich w dziedzinie informatyki.
Cel przedmiotuC-2Wykształcenie umiejętności tworzenia oprogramowania przeznaczonego do pracy w różnorodnych platformach heterogenicznych.
Treści programoweT-L-5Implementacja wybranego problemu obliczeniowego w środowisku Nvidia CUDA
T-L-4Implementacja programu przetwarzającego teksturę OpenGL w środowisku OpenCLa
T-L-2Implementacja wybranego problemu obliczeniowego w środowisku OpenACC
T-W-9Programowanie w języku C/C++ w środowisku Nvidia CUDA
T-W-6Programowanie w języku GLSL: Wprowadzenie do języka GLSL (kompilacja, uruchamianie w środowisku programu graficznego, narzędzia programistyczne)
T-W-7Programowanie w języku GLSL: Podstawowe składniki języka na przykładzie programu obliczającego równanie oświetlenia
T-L-1Implementacja wybranego problemu obliczeniowego w środowisku OpenM
T-L-3Implementacja programu do renderingu obrazu wykorzystującego shadery GLSL do obliczenia koloru powierzchni
T-W-5Programowanie w C/C++ z użyciem OpenACC
T-W-3Zastosowanie API OpenMP 4.0  do programowanie akceleratorów
T-W-8Przetwarzanie obrazów w środowisku OpenCL: Techniki reprezentacji i przetwarzania obrazów w środowisku OpenCL
T-W-4Programowanie w środowisku OpenACC: wprowadzenie, aparat pojęciowy, prezentacja rozwiązań przykładowych
Metody nauczaniaM-2Ćwiczenia laboratoryjne
Sposób ocenyS-1Ocena formująca: Ocena na podstawie stopnia wykonania scenariuszy konspektów laboratoryjnych, wymagań projektowych i/lub sprawozdania z zajec
Kryteria ocenyOcenaKryterium oceny
2,0
3,0potrafi czytać oraz pisać proste programy przeznaczone do pracy w środowiskach heterogenicznych
3,5
4,0potrafi czytać oraz pisać dowolne programy przeznaczone do pracy w środowiskach heterogenicznych
4,5
5,0biegle potrafi czytać oraz pisać dowolne programy przeznaczone do pracy w środowiskach heterogenicznych
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_D02.10.2_K01Student jest kreatywny i przygotowany do wykorzystywania różnorodnych źródeł wiedzy
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_K02Ma świadomość znaczenia wiedzy (w szczególności jej niewłaściwego użycia) w procesie rozwiązywania szeregu problemów inżynierskich i technicznych w dziedzinie informatyki.
Cel przedmiotuC-2Wykształcenie umiejętności tworzenia oprogramowania przeznaczonego do pracy w różnorodnych platformach heterogenicznych.
Treści programoweT-W-9Programowanie w języku C/C++ w środowisku Nvidia CUDA
T-W-1Wprowadzenie do programowania w środowiskach heterogenicznych: podstawowe pojęcia, tło historyczne, taksonomie, problemy i rozwiązania
T-L-5Implementacja wybranego problemu obliczeniowego w środowisku Nvidia CUDA
T-L-3Implementacja programu do renderingu obrazu wykorzystującego shadery GLSL do obliczenia koloru powierzchni
T-L-2Implementacja wybranego problemu obliczeniowego w środowisku OpenACC
T-W-6Programowanie w języku GLSL: Wprowadzenie do języka GLSL (kompilacja, uruchamianie w środowisku programu graficznego, narzędzia programistyczne)
T-W-2Charakterystyka wybranych środowisk heterogenicznych
T-W-8Przetwarzanie obrazów w środowisku OpenCL: Techniki reprezentacji i przetwarzania obrazów w środowisku OpenCL
T-W-4Programowanie w środowisku OpenACC: wprowadzenie, aparat pojęciowy, prezentacja rozwiązań przykładowych
T-L-4Implementacja programu przetwarzającego teksturę OpenGL w środowisku OpenCLa
T-W-5Programowanie w C/C++ z użyciem OpenACC
T-W-3Zastosowanie API OpenMP 4.0  do programowanie akceleratorów
T-W-7Programowanie w języku GLSL: Podstawowe składniki języka na przykładzie programu obliczającego równanie oświetlenia
T-L-1Implementacja wybranego problemu obliczeniowego w środowisku OpenM
Metody nauczaniaM-2Ćwiczenia laboratoryjne
Sposób ocenyS-1Ocena formująca: Ocena na podstawie stopnia wykonania scenariuszy konspektów laboratoryjnych, wymagań projektowych i/lub sprawozdania z zajec
Kryteria ocenyOcenaKryterium oceny
2,0
3,0dostateczna umiejętność samodzielnego szukania i wykorzystania informacji, wymaga bardzo częstej pomocy nauczyciela
3,5
4,0dobra umiejętność samodzielnego szukania i wykorzystania informacji, wymaga rzadkiej pomocy nauczyciela
4,5
5,0wyróżniająca umiejętność samodzielnego szukania i wykorzystania informacji, potrafi bez pomocy nauczyciela wykonać wszystkie ćwiczenia laboratoryjne zgodnie z otrzymanymi konspektami