Uniwersytet Jagielloński w Krakowie - Punkt LogowaniaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

Programowanie Niskopoziomowe

Informacje ogólne

Kod przedmiotu: WMI.TCS.PN.OL Kod Erasmus / ISCED: (brak danych) / (0613) Tworzenie i analiza oprogramowania i aplikacji
Nazwa przedmiotu: Programowanie Niskopoziomowe
Jednostka: Instytut Informatyki Analitycznej
Grupy:
Punkty ECTS i inne: 6.00
zobacz reguły punktacji
Język prowadzenia: polski

Zajęcia w cyklu "Semestr letni 2019/2020" (w trakcie)

Okres: 2020-02-24 - 2020-06-14
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 30 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Jakub Kozik
Prowadzący grup: Andrzej Dorobisz, Grzegorz Herman
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Egzamin
Ocena wliczana do średniej:

tak

Efekty kształcenia:

E1. Rozumie podstawy architektury współczesnych procesorów. (K_W16 )


E2. Potrafi programować w assemblerze. (K_U11)


E3. Wykorzystuje elementy niskopoziomowej optymalizacji w programowaniu w językach wysokiego poziomu (C/C++). (K_U06, K_U11)

Wymagania wstępne:

Umiejętność programowania w C oraz C++.


Znajomość podstaw budowy systemów operacyjnych,.

Forma i warunki zaliczenia:

Implementacja w wyznaczonych terminach programów zaliczeniowych (40 punktów). Programy są weryfikowane przez system Satori


3 sprawdziany (20 punktów każdy).

Metody sprawdzania i kryteria oceny efektów kształcenia uzyskanych przez studentów:

Sprawdziany pisemne (E1, E3),

Samodzielnie implementowane zadania programistyczne (E2, E3),


Metody dydaktyczne - słownik:

Metody podające - wykład informacyjny
Metody praktyczne - ćwiczenia laboratoryjne
Metody programowane - z użyciem komputera

Metody dydaktyczne:

1. Wykład ilustrowany prezentacją komputerową.

2. Ćwiczenia w laboratorium komputerowym, połączone z dyskusją przy tablicy.

3. Samodzielna implementacja zadań i projektów programistycznych.

Bilans punktów ECTS:

Udział w wykładach - 30 godz.

Udział w zajęciach laboratoryjnych – 30 godz.

Samodzielna implementacja zadań programistycznych – 75 godz.

Przygotowanie do egzaminu oraz obecność na egzaminie – 45 godz.

Łączny nakład pracy studenta: 180 godzin , co odpowiada 6 punktom ECTS

Grupa treści kształcenia:

Grupa treści kierunkowych

Wymiar, zasady i forma odbywania praktyk:

nie dotyczy

Sylabus przedmiotu dla studentów rozpoczynających studia od roku akademickiego 19/20:

informatyka analityczna

Pełny opis:

Kiedy wyczerpiemy algorytmiczne i projektowe sposoby przyśpieszenia programu komputerowego pozostaje nam jedynie optymalizacja kodu na niskim poziomie. Kompilatory, maszyny wirtualne i generatory kodu z roku na rok stają się coraz to potężniejszymi narzędziami, ale aby osiagnąć najwyższą wydajność często musimy optymalizować kod własnoręcznie. Na kursie dowiesz się jak dobrze zarządzać pamięcia, dlaczego warto korzystać ze struktur kursorowych i jak żyć w zgodzie z pamięcia cache. Pokażemy ci jak nie zepsuć wydajności programu wielowątkowego złą synchronizacją. Nauczymy cię jak wycisnąć ósme poty z nowoczesnych procesorów wykorzystując ich wektorowe możliwości i wielu innych przydatnych technik, które poszerzą twój programistyczny warsztat.

Literatura:

Dokumentacja techniczna dla architektury AMD64.

Randall Hyde, The Art of Assembly Language Programming (dostępna na stronie autora)

Agner Fog, Optimization manuals (dostępne na tronie autora)

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Jagielloński w Krakowie.