Nazwa przedmiotu:
UNIX
Koordynator przedmiotu:
mgr inż. Marcin Borkowski
Status przedmiotu:
Obowiązkowy
Poziom kształcenia:
Studia I stopnia
Program:
Informatyka
Grupa przedmiotów:
Wspólne
Kod przedmiotu:
Semestr nominalny:
6 / rok ak. 2015/2016
Liczba punktów ECTS:
3
Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
1. godziny kontaktowe - 50h; w tym a. obecność na wykładach – 15h b. obecność na laboratoriach – 30h c. konsultacje – 5h 2. przygotowanie do zajęć – 55h, w tym a. przygotowanie do wykładów – 10h b. przygotowanie do zajęć laboratoryjnych – 45h Razem nakład pracy studenta 105h = 4 pkt. ECTS
Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
1. obecność na wykładach – 15h 2. obecność na laboratoriach – 30h 3. konsultacje z prowadzącymi zajęcia – 5h Razem 50h, co odpowiada 2 pkt. ECTS
Język prowadzenia zajęć:
polski
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
1. obecność na laboratoriach – 30h 2. przygotowanie do laboratorium – 45h Razem 75h, co odpowiada 3 pkt. ECTS
Formy zajęć i ich wymiar w semestrze:
  • Wykład15h
  • Ćwiczenia0h
  • Laboratorium30h
  • Projekt0h
  • Lekcje komputerowe0h
Wymagania wstępne:
Podstawy Programowania Strukturalnego I semestr Programowanie Obiektowe III semestr
Limit liczby studentów:
Bez limitu
Cel przedmiotu:
Poznanie zaawansowanych technik programowania wywołań funkcji systemowych w standardzie POSIX. Nabranie wprawy w programowaniu dla platformy UNIX/Linux. Poznanie problemów związanych z pisaniem przenośnego kodu oraz metod ich rozwiązywania.
Treści kształcenia:
Wykład: 1. Omówienie specyfiki programowania w systemie UNIX i programowania rozproszonego 2. Omówienie standardów POSIX i SYSTEM V 3. Omówienie standardów kodowania 4. Procesy i sygnały, sygnały czasu rzeczywistego, omówienie mechanizmu działania wraz z typowymi rozwiązaniami (przykłady kodu) oraz z omówieniem typowych błędów programistycznych 5. Katalogi i pliki, blokowanie plików, omówienie mechanizmu działania wraz z typowymi rozwiązaniami (przykłady kodu) oraz z omówieniem typowych błędów programistycznych 6. Kolejki FIFO i pipe, omówienie mechanizmu działania wraz z typowymi rozwiązaniami (przykłady kodu) oraz z omówieniem typowych błędów programistycznych 7. mechanizmu IPC z SYSTEM V, omówienie mechanizmu działania wraz z typowymi rozwiązaniami (przykłady kodu) oraz z omówieniem typowych błędów programistycznych 8. Asynchroniczny dostęp do plików, omówienie mechanizmu działania wraz z typowymi rozwiązaniami (przykłady kodu) oraz z omówieniem typowych błędów programistycznych 9. Gniazda sieciowe (lokalne,tcp,udp,raw), omówienie mechanizmu działania wraz z typowymi rozwiązaniami (przykłady kodu) oraz z omówieniem typowych błędów programistycznych 10. Wątki posix'owe oraz posix'owe mechanizmy synchronizacji, omówienie mechanizmu działania wraz z typowymi rozwiązaniami (przykłady kodu) oraz z omówieniem typowych błędów programistycznych   Laboratorium: Ćwiczenia sprawdzające wiedze z wykładu. Każdemu tematowi wykładowemu odpowiada jedno oceniane zadanie. Zadania polegają na samodzielnym rozwiązaniu zadania podanego przez prowadzącego. Ramy czasowe są ograniczone do 90 minut. Ostatnie zadanie ma postać projektu wykonywanego pod nadzorem prowadzącego bez limitów czasowych.  
Metody oceny:
Ocena z laboratorium jest oceną z całego przedmiotu. Kryteria oceny laboratorium: • Do wykonania jest 8 zadań po 8 punktów (tematy tak jak w archiwum) co daje 64 oraz projekt za 44 punkty • Najgorszy wynik z laboratoriów jest odrzucany zatem suma do zdobycia wynosi 100 • Aby zaliczyć przedmiot należy zdobyć minimum 51 punktów w sumie i nie mniej niż 32 punkty z zadań  
Egzamin:
nie
Literatura:
1. “UNIX. Programowanie usług sieciowych” - tom 1 i II Richard W. Stevens WNT 2. “Programowanie w środowisku systemu UNIX” W. Richard Stevens WNT 3. “Programowanie w systemie UNIX dla zaawansowanych” Marc J. Rochkind WNT  
Witryna www przedmiotu:
brak
Uwagi:

Efekty uczenia się

Profil ogólnoakademicki - wiedza

Efekt W01
Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie architektury systemów operacyjnych z rodziny UNIX oraz technologii sieciowych
Weryfikacja: Wejściówki na laboratoriach
Powiązane efekty kierunkowe: K_W05
Powiązane efekty obszarowe: T1A_W03
Efekt W02
Zna podstawowe metody, techniki i narzędzia stosowane przy rozwiązywaniu prostych zadań informatycznych z zakresu budowy systemów komputerowych opartych o system Linux/Unix, sieci komputerowych i technologii sieciowych, w tym: metody komunikacji za pomocą sygnałów, kolejek FIFO, pipe, mechanizmów IPC systemu V, gniazd sieciowych; wątki i procesy; dostęp do systemu plików synchroniczny i asynchroniczny; znajomość aspektów inter-systemowych komunikacji sieciowej
Weryfikacja: Ocena z zadań wykonywanych podczas laboratorium , ocena z projektu
Powiązane efekty kierunkowe: K_W11, K_W13
Powiązane efekty obszarowe: T1A_W07, T1A_W07

Profil ogólnoakademicki - umiejętności

Efekt U01
Potrafi pozyskiwać informacje z dokumentacji technicznej systemu (man) oraz z standardu posix (głównie w języku angielskim), potrafi przekształcić uzyskaną wiedzę na pisanie kodu niezależnego od platformy uniksowej
Weryfikacja: Ocena z zadań wykonywanych podczas laboratorium , ocena z projektu
Powiązane efekty kierunkowe: K_U05, K_U07
Powiązane efekty obszarowe: T1A_U01, T1A_U03, T1A_U04, T1A_U06
Efekt U02
Potrafi przygotować, skompilować, sprawdzić i uruchomić program w języku C przy pomocy prostych narzędzi linii poleceń systemu Linux takich jak edytor tekstowy, gcc , make i gdb
Weryfikacja: Ocena z zadań wykonywanych podczas laboratorium , ocena z projektu
Powiązane efekty kierunkowe: K_U11
Powiązane efekty obszarowe: T1A_U09, T1A_U14, T1A_U15
Efekt U03
Ma umiejętność posługiwania się systemem Linux/Unix na poziomie API
Weryfikacja: Ocena z zadań wykonywanych podczas laboratorium , ocena z projektu
Powiązane efekty kierunkowe: K_U15
Powiązane efekty obszarowe: T1A_U09, T1A_U15
Efekt U04
Ma umiejętność pisania prostych aplikacji do komunikacji sieciowej takich jak komunikatory (tzw. chat) oraz proste serwery (plików i www)
Weryfikacja: Ocena z projektu
Powiązane efekty kierunkowe: K_U18, K_U30
Powiązane efekty obszarowe: T1A_U16, T1A_U16

Profil ogólnoakademicki - kompetencje społeczne

Efekt K01
Rozumie konieczność ciągłego śledzenia zmian w dokumentacji nowych wersji bibliotek systemowego API oraz standardów takich jak POSIX
Weryfikacja: Wejściówki na laboratoriach
Powiązane efekty kierunkowe: K_K01
Powiązane efekty obszarowe: T1A_K01
Efekt K02
Rozumie potrzebę pisania kodu przenośnego oraz poprawnego podziału programu na biblioteki i funkcję umożliwiającego łatwe ponowne wykorzystanie kodu
Weryfikacja: Ocena z zadań wykonywanych podczas laboratorium , ocena z projektu
Powiązane efekty kierunkowe: K_K04
Powiązane efekty obszarowe: T1A_K02, T1A_K05
Efekt K03
Potrafi samodzielnie wykonać mały projekt informatyczny związany z programowaniem na poziomie API systemu Linux
Weryfikacja: Ocena z projektu
Powiązane efekty kierunkowe: K_K05
Powiązane efekty obszarowe: T1A_K03, T1A_K04