Kurs komputerowy - Python 2
0800-KK-PYTH2
1. Iteratory i generatory, moduł itertools, koprocedury, mikrowątki, nieblokujące operacje wejścia-wyjścia
2. Programowanie funkcyjne, moduł functools, funkcje pamiętające stan, domknięcia funkcji, klasy wykonywalne
3. Dekoratory funkcji i klas
4. Menedżery kontekstu
5. Zaawansowane zagadnienia klas:
- metody statyczne i metody klas
- atrybuty pseudoprywatne
- metody __getattr__ / __getattribute__, dynamicznie generowane atrybuty, emulacja pseudoprywatności
- __slots__ - kontrola dostępności nazw
- deskryptory i właściwości
6. Moduł multiprocessing - programowanie równoległe, komunikacja między procesami, synchronizacja.
7. Problemy numeryczne w numpy / scipy
Całkowity nakład pracy studenta
60 godzin:
30 godzin zajęć
30 godzin pracy własnej i przygotowania do testu końcowego
Efekty uczenia się - wiedza
1. Teoria iteratorów i koprocedur oraz ich implementacji przez generatory. Mechanizmy komunikacji pomiędzy koprocedurą a programem głównym.
2. Znajomość wzorców współbieżności: mikrowątki, wątki podprocesy oraz nieblokujących operacji we/wy.
3. Dogłębna znajomość struktury języka: metod specjalnych klas, mechanizmów dziedziczenia, teorię funkcji pamiętających stan, domknięć funkcji i klas wykonywalnych.
4. Mechanizmy kontroli dostępu do atrybutów w klasach, dynamicznie generowane atrybuty, deskryptory, metody klas i metody statyczne.
5. Synchronizacja podprocesów w zrównoleglonych obliczeniach numerycznych.
Realizuje efekty: K_W03, K_W05, K_W07 dla FT i K_W01, K_W10 dla IS
Efekty uczenia się - umiejętności
1. Umiejętność tworzenia i używania iteratorów
2. Umiejętność tworzenia mikrowątków przez koprocedury, komunikacji z koprocedurami, używania nieblokujących operacji wejścia/wyjścia
3. Umiejętność zaawansowanego programowania obiektowego i introspekcji.
4. Umiejętność zarządzania atrybutami w klasach
5. Umiejętność zrównoleglania obliczeń za pomocą podprocesów i sunchronizacji podprocesów.
Realizuje efekty: K_U06 dla FT i K_U01, KU_09, KU_10, KU_13, KU_22 dla IS
Efekty uczenia się - kompetencje społeczne
Brak
Metody dydaktyczne
Pracownia komputerowa - podawanie treści z jednoczesnym ich programowaniem przez studentów pod nadzorem
Metody dydaktyczne poszukujące
- laboratoryjna
- ćwiczeniowa
Wymagania wstępne
Kurs Python 1, i.e.:
1. Typy wbudowane
2. Niesekwencyjne typy iterowalne (zakres, plik, kursor bazy danych)
3. Listy składane, narzędzia programowania funkcyjnego (map, filter), funkcje anonimowe
4. Klasy, dziedziczenie, przysłanianie metod, przeciążanie operatorów
5. Programy wielowątkowe, blokady, kolejki
6. Programowanie sieciowe na poziomie gniazd
7. Podstawy obliczeń numerycznych z modułami numpy, scipy, pyplot
Koordynatorzy przedmiotu
Kryteria oceniania
Kolokwium końcowe
33% - 50% - ocena: 3
50% - 67% - ocena: 3+
67% - 83% - ocena: 4
83% - 100% - ocena: 4+
100% - ocena: 5
W przypadku epidemii - oceny na podstawie projektów zaliczeniowych związanych z zagadnieniami kursu i przygotowanych jako tutoriale - statyczne strony html.
Literatura
http://pl.wikibooks.org/wiki/Zanurkuj_w_Pythonie
https://docs.python.org/2/
https://docs.python.org/3/
Mark Lutz: Python
David Beazley, Brian K. Jones: Python receptury
Gniewomir Sarbicki: Python. Kurs dla nauczycieli i studentów
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i
terminach zajęć) mogą być dostępne w serwisie USOSweb: