Wydział Informatyki - Informatyka (S1)
specjalność: systemy komputerowe i oprogramowanie
Sylabus przedmiotu Zaawansowane programowanie w systemie LINUX - Przedmiot obieralny I:
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 | Zaawansowane programowanie w systemie LINUX - Przedmiot obieralny I | ||
Specjalność | systemy komputerowe i oprogramowanie | ||
Jednostka prowadząca | Katedra Inżynierii Systemów Informacyjnych | ||
Nauczyciel odpowiedzialny | Bożena Śmiałkowska <Bozena.Smialkowska@zut.edu.pl> | ||
Inni nauczyciele | |||
ECTS (planowane) | 2,0 | ECTS (formy) | 2,0 |
Forma zaliczenia | zaliczenie | Język | polski |
Blok obieralny | 6 | Grupa obieralna | 5 |
Formy dydaktyczne
Wymagania wstępne
KOD | Wymaganie wstępne |
---|---|
W-1 | Płynne poruszanie się w systemie Linux |
W-2 | Znajomość języka C na poziomie średnio-zaawansowanym, podstawowa znajomość języka C++ oraz podstawowa wiedza na temat paradygmatu programowania zorientowanego obiektowo |
W-3 | Biegłe posługiwanie się kompilatorem (Gcc lub Clang) i debuggerem |
Cele przedmiotu
KOD | Cel modułu/przedmiotu |
---|---|
C-1 | Zapoznanie studentów z wdrażaniem jądra systemu Linux na platformach dedykowanych |
C-2 | Zapoznanie studentów z programowaniem w systemie Linux w warstwie użytkownika i na poziomie jądra systemu |
C-3 | Zapoznanie studentów z procesem rozwoju oprogramowania w trybie korporacyjnym |
Treści programowe z podziałem na formy zajęć
KOD | Treść programowa | Godziny |
---|---|---|
laboratoria | ||
T-L-1 | Własne jądro systemu: budowa i instalacja na własnej platformie | 2 |
T-L-2 | Aplikacja, program, proces, wątek, synchronizacja, komunikacja międzyprocesowa/między komputerowa | 2 |
T-L-3 | Demultipleksacja i podejście "Event Oriented" | 2 |
T-L-4 | Budowa kanonicznego modułu jądra systemu | 2 |
T-L-5 | Komunikacja moduł jądra – warstwa użytkownika (netlink) | 2 |
T-L-6 | Budowa kanonicznego sterownika | 2 |
T-L-7 | Sterowniki sieciowe | 2 |
T-L-8 | Zaliczenie laboratorium | 1 |
15 | ||
wykłady | ||
T-W-1 | Budowa systemu Linux z punktu widzenia użytkownika | 1 |
T-W-2 | Podstawowa nomenklatura | 1 |
T-W-3 | Podejście "Event Oriented" i wzorce silników obsługi zdarzeń | 1 |
T-W-4 | Testowanie | 1 |
T-W-5 | Moduły jądra systemu i ich kontekst | 2 |
T-W-6 | Pliki character device i jego sterowniki, system plików /proc | 2 |
T-W-7 | Komunikacja: kernel space-user space, z plikami urządzeń | 1 |
T-W-8 | Wywołania systemowe, blokowanie procesów, obsługa przerwań | 1 |
T-W-9 | Budowa kanonicznego sterownika | 2 |
T-W-10 | Sterowniki sieciowe | 2 |
T-W-11 | Zaliczenie przedmiotu | 1 |
15 |
Obciążenie pracą studenta - formy aktywności
KOD | Forma aktywności | Godziny |
---|---|---|
laboratoria | ||
A-L-1 | Udział w laboratoriach | 15 |
A-L-2 | Udział w konsultacjach | 3 |
A-L-3 | Przygotowanie sprawozdań i aplikacji - praca własna studenta. | 13 |
31 | ||
wykłady | ||
A-W-1 | Udział w zajęciach | 15 |
A-W-2 | Konsultacje | 4 |
A-W-3 | Studiowanie literatury przedmiotu - przygotowanie się do zaliczenia wykładu | 12 |
31 |
Metody nauczania / narzędzia dydaktyczne
KOD | Metoda nauczania / narzędzie dydaktyczne |
---|---|
M-1 | Wykład informacyjny |
M-2 | Metoda projektów |
Sposoby oceny
KOD | Sposób oceny |
---|---|
S-1 | Ocena formująca: Ocena rozwiązań z poszczególnych etapów realizacji projektu |
S-2 | Ocena podsumowująca: Zaliczenie części teoretycznej |
Zamierzone efekty kształcenia - wiedza
Zamierzone efekty kształcenia | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_1A_O/2/8_W01 Student zna podstawową architekturę systemu Linux, pojęcie jądra systemu, zna zależności w warstwie użytkownika i jej odniesienie do warstwy jądra systemu a także zna metody komunikacji pomiędzy jądrem systemu i warstwą użytkownika. Zna budowę kanonicznego sterownika. | I_1A_W04, I_1A_W10 | — | — | C-3, C-1, C-2 | T-W-6, T-W-7, T-W-8, T-W-1, T-W-4, T-W-2, T-W-10, T-W-9, T-W-5, T-W-3 | M-1 | S-2 |
Zamierzone efekty kształcenia - umiejętności
Zamierzone efekty kształcenia | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_1A_O/2/8_U01 Student potrafi zaprojektować architekturę i wykonać oprogramowanie z wykorzystananiem elementów systemu Linux | I_1A_U03 | — | — | C-3, C-1, C-2 | T-L-1, T-L-5, T-L-2, T-L-8, T-L-6, T-L-7, T-L-3, T-L-4 | M-2 | S-1 |
Kryterium oceny - wiedza
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_1A_O/2/8_W01 Student zna podstawową architekturę systemu Linux, pojęcie jądra systemu, zna zależności w warstwie użytkownika i jej odniesienie do warstwy jądra systemu a także zna metody komunikacji pomiędzy jądrem systemu i warstwą użytkownika. Zna budowę kanonicznego sterownika. | 2,0 | Student nie zna podstawowej architektury systemu Linux |
3,0 | Student zna podstawową architekturę systemu Linux. Rozumie i zna zależności w warstwie użytkownika i jej odniesienie do warstwy jądra systemu | |
3,5 | ||
4,0 | ||
4,5 | ||
5,0 |
Kryterium oceny - umiejętności
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_1A_O/2/8_U01 Student potrafi zaprojektować architekturę i wykonać oprogramowanie z wykorzystananiem elementów systemu Linux | 2,0 | Student nie wykona wszystkich etapów projektu |
3,0 | Student wykonał każdy etap projektu lecz rozwiązanie posiada wady wpływające na stabilność rozwiązania | |
3,5 | ||
4,0 | ||
4,5 | ||
5,0 |
Literatura podstawowa
- Mark Mitchell, Jeffrey Oldham, Alex Samuel, Advanced Linux Programming, http://www.advancedlinuxprogramming.com
- Jonathan Corbet, Alessandro Rubini, Grek Kroah-Hartman, Linux Device Drivers, https://lwn.net/Kernel/LDD3/
Literatura dodatkowa
- Peter Jay Salzman, Michael Burian, Ori Pomeranz, The Linux Kernel Module Programming Guide, http://www.tldp.org/LDP/lkmpg/
- Kevin Kaichuan He, Why and How to Use Netlink Socket, http://www.linuxjournal.com/article/7356
- Roman Ulan, Wzorce silników zdarzeń, http://bottega.com.pl/artykuly-i-prezentacje#cpp