Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (N1)

Sylabus przedmiotu Programowanie komputerów heterogenicznych:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia niestacjonarne Poziom pierwszego stopnia
Tytuł zawodowy absolwenta inżynier
Obszary studiów charakterystyki PRK, kompetencje inżynierskie PRK
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
laboratoriaL7 18 1,50,50zaliczenie
wykładyW7 18 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 OpenM4
T-L-2Implementacja wybranego problemu obliczeniowego w środowisku OpenACC4
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 CUDA4
18
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ów2
T-W-4Programowanie w środowisku OpenACC: wprowadzenie, aparat pojęciowy, prezentacja rozwiązań przykładowych2
T-W-5Programowanie w C/C++ z użyciem OpenACC2
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 CUDA2
18

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

KODForma aktywnościGodziny
laboratoria
A-L-1Uczestnictwo w zajęciach18
A-L-2Przygotowanie się do zajęć oraz rozwiązywanie zadań off-site20
38
wykłady
A-W-1Uczestnictwo w zajęciach18
A-W-2Samodzielne studiowanie treści omawianych na wykładach16
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 uczenia się - wiedza

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się 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-1, T-W-2M-1S-2
I_1A_D02.10.2_W02
Student zna wybrane języki programowania stosowane w środowiskach heterogenicznych
I_1A_W04C-2T-W-6, T-W-7, T-W-8, T-W-3, T-W-4, T-W-5, T-W-9M-1S-2

Zamierzone efekty uczenia się - umiejętności

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się 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-3, T-L-4, T-L-1, T-L-2, T-L-5, T-W-6, T-W-7, T-W-8, T-W-3, T-W-4, T-W-5, T-W-9M-2S-1

Zamierzone efekty uczenia się - inne kompetencje społeczne i personalne

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się 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-L-3, T-L-4, T-L-1, T-L-2, T-L-5, T-W-1, T-W-2, T-W-6, T-W-7, T-W-8, T-W-3, T-W-4, T-W-5, T-W-9M-2S-1

Kryterium oceny - wiedza

Efekt uczenia sięOcenaKryterium 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 uczenia sięOcenaKryterium 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 uczenia sięOcenaKryterium 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 OpenM4
T-L-2Implementacja wybranego problemu obliczeniowego w środowisku OpenACC4
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 CUDA4
18

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ów2
T-W-4Programowanie w środowisku OpenACC: wprowadzenie, aparat pojęciowy, prezentacja rozwiązań przykładowych2
T-W-5Programowanie w C/C++ z użyciem OpenACC2
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 CUDA2
18

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1Uczestnictwo w zajęciach18
A-L-2Przygotowanie się do zajęć oraz rozwiązywanie zadań off-site20
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ęciach18
A-W-2Samodzielne studiowanie treści omawianych na wykładach16
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 uczenia sięI_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-1Wprowadzenie do programowania w środowiskach heterogenicznych: podstawowe pojęcia, tło historyczne, taksonomie, problemy i rozwiązania
T-W-2Charakterystyka wybranych środowisk heterogenicznych
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 uczenia sięI_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-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-W-8Przetwarzanie obrazów w środowisku OpenCL: Techniki reprezentacji i przetwarzania obrazów w środowisku OpenCL
T-W-3Zastosowanie API OpenMP 4.0  do programowanie akceleratorów
T-W-4Programowanie w środowisku OpenACC: wprowadzenie, aparat pojęciowy, prezentacja rozwiązań przykładowych
T-W-5Programowanie w C/C++ z użyciem OpenACC
T-W-9Programowanie w języku C/C++ w środowisku Nvidia CUDA
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 uczenia sięI_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-3Implementacja programu do renderingu obrazu wykorzystującego shadery GLSL do obliczenia koloru powierzchni
T-L-4Implementacja programu przetwarzającego teksturę OpenGL w środowisku OpenCLa
T-L-1Implementacja wybranego problemu obliczeniowego w środowisku OpenM
T-L-2Implementacja wybranego problemu obliczeniowego w środowisku OpenACC
T-L-5Implementacja wybranego problemu obliczeniowego 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-W-8Przetwarzanie obrazów w środowisku OpenCL: Techniki reprezentacji i przetwarzania obrazów w środowisku OpenCL
T-W-3Zastosowanie API OpenMP 4.0  do programowanie akceleratorów
T-W-4Programowanie w środowisku OpenACC: wprowadzenie, aparat pojęciowy, prezentacja rozwiązań przykładowych
T-W-5Programowanie w C/C++ z użyciem OpenACC
T-W-9Programowanie w języku C/C++ w środowisku Nvidia CUDA
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 uczenia sięI_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-L-3Implementacja programu do renderingu obrazu wykorzystującego shadery GLSL do obliczenia koloru powierzchni
T-L-4Implementacja programu przetwarzającego teksturę OpenGL w środowisku OpenCLa
T-L-1Implementacja wybranego problemu obliczeniowego w środowisku OpenM
T-L-2Implementacja wybranego problemu obliczeniowego w środowisku OpenACC
T-L-5Implementacja wybranego problemu obliczeniowego w środowisku Nvidia CUDA
T-W-1Wprowadzenie do programowania w środowiskach heterogenicznych: podstawowe pojęcia, tło historyczne, taksonomie, problemy i rozwiązania
T-W-2Charakterystyka wybranych środowisk heterogenicznych
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-W-8Przetwarzanie obrazów w środowisku OpenCL: Techniki reprezentacji i przetwarzania obrazów w środowisku OpenCL
T-W-3Zastosowanie API OpenMP 4.0  do programowanie akceleratorów
T-W-4Programowanie w środowisku OpenACC: wprowadzenie, aparat pojęciowy, prezentacja rozwiązań przykładowych
T-W-5Programowanie w C/C++ z użyciem OpenACC
T-W-9Programowanie w języku C/C++ w środowisku Nvidia CUDA
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