Zaawansowane programowanie w języku Python
Umiejętności zdobywane podczas kursu:
- Umiejętność implementowania zaawansowanej obsługi wielowątkowości
- Umiejętność przetwarzania i transformowania danych XML
- Umiejętność implementowania zaawansowanych interfejsów GUI w oparciu o przenośną bibliotekę wxWidgets
- Zapoznanie się z alternatywnymi wersjami interpretera języka Python
- Opanowanie umiejętności implementowania zaawansowanej wielowątkowości w kontekście obsługi wywołań sieciowych
- Znajomość zagadnień związanych z implementowaniem właściwości systemu operacyjnego we własnych rozwiązaniach
Kurs jest przeznaczony dla średnio zaawansowanych programistów programujących w języku Python. W istotnym stopniu poszerza on ich wiedzę dotyczącą programowania wielowątkowego oraz mechanizmów wewnętrznych języka. Wiedza i wykształcone w trakcie zajęć umiejętności, pozwalają na wydajniejsze i pozbawione typowych błędów programowanie w tym języku. Zajęcia poruszają także zagadnienia bezpośrednio związane ze współczesnymi metodykami wytwórczymi oprogramowania.
- Znajomość programowania w języku Python na poziomie średnio zaawansowanym
- Umiejętność pracy w środowisku systemu operacyjnego Microsoft Windows lub GNU/Linux
- Znajomość podstaw zagadnień dotyczących programowania obiektowego i diagramów UML
- Umiejętność programowania okazjonalnego i prostej obróbki i weryfikacji danych
-
XML
- DOM i jego obsługa w języku Python
- Zapytania XPath
- Transformaty XSLT
- Walidowanie dokumentów XML
- Usługi sieciowe SOAP
-
Internacjonalizacja i standard Unicode
- Obsługa Unicode w języku Python
- Wielojęzyczność aplikacji i jej implementacja
-
Programowanie wielowątkowe
- Zaawansowane możliwości szeregowania zadań w interpreterze Python
- Implementacja wielowątkowości
- Tworzenie i obsługa wątków
- Blokady, semafory, zmienne decyzyjne
- Praca z pulą wątków
- Diagnostyka i usuwanie błędów w aplikacjach wielowątkowych Python
-
Tworzenie interfejsu GUI w bibliotece wxWidgets (pakiet wxPython)
- Pakiet wxPython i jego możliwości
- Proste interfejsy graficzne
- Obsługa zdarzeń w interfejsie GUI
- Obsługa kontrolek interfejsu użytkownika
- Planowanie i budowa złożonych interfejsów graficznych
-
Zaawansowane programowanie sieciowe w języku Python
- Obsługa niskopoziomowych właściwości sieciowych
- Implementacja klienta sieciowego
- Implementacja serwera sieciowego
- Zaawansowana obsługa połączeń sieciowych
- Aplikacje sieciowe a wielowątkowość
-
Alternatywne wersje interpretera i ich zakres zastosowań
- CPython
- Stackless Python
- IronPython
- Jython
-
Współpraca z systemem operacyjnym
- Wywołania właściwe systemowi operacyjnemu
- Przenośność aplikacji w języku Python
- Wydajność aplikacji
-
Optymalizacja wydajności i profilowanie programu
- Profilowanie przykładowego projektu aplikacji
- Identyfikacja „wąskich gardeł” przetwarzania
-
Framework Django i jego zastosowanie (moduł opcjonalny)
- Tworzenie i konfiguracja projektu aplikacji
- Automatyczny interfejs administracyjny – omówienie
- Modele – interakcja z bazą danych
- Widoki
- Szablony
- Mapowanie odnośników
- Operowanie na danych – ORM
-
Osadzanie języka Python we własnej aplikacji (moduł opcjonalny)
- Dostępne biblioteki
- Mapowanie danych pomiędzy aplikacjami
- Mapowanie obiektów i metod
-
Style i konwencje programowania w języku Python
- Wykładnie dotyczące formatowania i implementowania bibliotek
- Przydatne właściwości języka
-
Kierunki rozwoju języka i Python 3000
- Nowości dostępne w Py3k
- Zmiany składni wywołań
- Konwersja istniejących aplikacji do nowej wersji interpretera


