Zaawansowany Python 1000-I2ZaawansPython
Ramowy program przedmiotu:
I. Podstawy programowania w języku Python.
1. Podstawowe konstrukcje języka.
2. Przegląd dostępnych interpreterów (CPython, PyPy, GraalVM Python, IronPython).
3. Popularne środowiska programistyczne (PyCharm, Jupyter, Visual Studio Code).
II. Zaawansowane konstrukcje języka.
1. Wyjątki i obsługa błędów.
2. Iteratory, generatory, deskryptory.
3. Generowanie kodu i metaklasy.
4. Serializacja i przechowywanie danych (w tym: XML, JSON oraz interakcja z bazami danych).
5. Interakcja z innymi językami programowania (cffi, cython, cpyy, HPy, Python C API).
III. Programowanie współbieżne.
1. Programowanie przy użyciu wątków i jego ograniczenia (w tym free threading).
2. Moduły multiprocessing oraz concurrent.
3. Programowanie asynchroniczne (biblioteka asyncio).
IV. Programowanie sieciowe.
1. Tworzenie aplikacji klient/serwer: gniazda i RPC.
2. Pobieranie danych (biblioteki request i httpx).
3. Parsowanie html (Beautiful Soup).
4. REST w praktyce: używanie i tworzenia REST API.
V. Aplikacje okienkowe.
1. Programowanie sterowane zdarzeniami, podstawy GTK.
2. Projektowanie i implementacja własnych widżetów.
VI. Projektowanie złożonych aplikacji.
1. Wsteczna kompatybilność i kompatybilność w przód.
2. Debugowanie i profilowanie i aplikacji.
3. Dobór odpowiednich konstrukcji programistycznych do danego problemu.
4. Wpływ środowiska uruchomieniowego i wybranych bibliotek na działanie programu.
Całkowity nakład pracy studenta
Efekty uczenia się - wiedza
Efekty uczenia się - umiejętności
Efekty uczenia się - kompetencje społeczne
Metody dydaktyczne eksponujące
Metody dydaktyczne podające
- pogadanka
- wykład problemowy
Metody dydaktyczne poszukujące
- klasyczna metoda problemowa
- sytuacyjna
- referatu
- studium przypadku
Rodzaj przedmiotu
Wymagania wstępne
Koordynatorzy przedmiotu
Kryteria oceniania
Konwersatorium: ocena na podstawie referatu oraz projektu programistycznego.
Laboratorium: ocena na podstawie wyniku dwóch kolokwiów programistycznych, w których można zdobyć 100 punktów:
- 0 - 50 pkt. — ndst;
- 51 - 60 pkt. — dst;
- 61 - 70 pkt. — dst+;
- 71 - 80 pkt. — db;
- 81 - 90 pkt. — db+;
- 91 - 100 pkt. — bdb.
Literatura
- Oficjalna dokumentacja dostępna na stronie https://docs.python.org/3/
- Python HOWTOs dostępne na stronie https://docs.python.org/3/howto/index.html
- Practical Python Programming, David Beazley, dostępne na stronie https://dabeaz-course.github.io/practical-python/Notes/Contents.html
- Learn Python The Hard Way, Zed A. Shaw
- Python. Zwięzłe kompendium dla programisty, David Beazley
- The History of Python, G. van Rossum i in., dostępne na stronie http://python-history.blogspot.com/
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: