Część podstawowa
(wspólna dla wszystkich wariantów)
1. Wprowadzenie i pierwsze kroki
- Czym są „programy” i „programowanie”?
- Python na tle innych języków
- Zastosowania i możliwości Pythona: historia i współczesność
- Instalacja i konfiguracja środowiska pracy
- Interpreter języka Python
- Zintegrowane środowiska programistyczne (IDE): PyCharm lub VisualStudio Code
- Pierwsze programy i przegląd dostępnych sposobów pracy z Pythonem
- Styl kodowania i konwencje (PEP8)
2. Podstawowe elementy języka Python
- Interakcja z użytkownikiem w trybie tekstowym:
print i input
- Zmienne i podstawowe typy danych
- Wartości liczbowe, napisowe, logiczne
- Operatory, porównania, spójniki
- Instrukcja warunkowa
if
- Dopasowanie wartości
match
- Pętle
while i for
3. Struktury danych i ich zastosowania
- Listy i krotki
- Wybieranie elementów i zakresów (slicing)
- Zbiory i słowniki
- Wyrażenia typu comprehension
- Sortowanie danych
4. Programowanie proceduralne
- Podstawy definiowania funkcji
- Tryby przekazywania argumentów
- Importowanie definicji z innych plików
- Organizacja kodu w projekcie Pythonowym: moduły i pakiety
- Dokumentacja i adnotacje
5. Programowanie obiektowe (OOP)
- Podstawy definiowania klas
- Czym są: obiekt, klasa, atrybut, metoda
- Zasady inicjalizacji obiektów i klas
- Metody specjalne (magic methods)
- Metody statyczne i klasowe
- Dziedziczenie
- Wprowadzenie do dobrych praktyk programowania obiektowego: abstrakcja, hermetyzacja (encapsulation), spójność (cohesion)
6. Obsługa wyjątków
- Zgłaszanie i przechwytywanie wyjątków
- Definiowanie własnych wyjątków
7. Biblioteka standardowa języka Python
- Wyrażenia regularne (moduł
re)
- Obsługa daty i czasu (moduły
time i datetime)
- Dodatkowe typy kolekcji (moduł
collections)
- Operacje na plikach
- Otwieranie i zamykanie, konstrukcja
with
- Odczyt i zapis zawartości pliku
- Przeglądanie katalogów i dostęp do informacji o systemie (moduł
os)
- Graficzny interfejs użytkownika (GUI) (podstawy modułu
tkinter)
8. Dodatkowe narzędzia i biblioteki
- Po co są wirtualne środowiska (venv) i jak się je tworzy?
- Instalator pakietów
pip i repozytorium PyPI
- Testy jednostkowe na przykładzie
unittest lub pytest
- Debugowanie kodu w IDE
- Pobieranie danych z sieci i dostęp do zdalnych usług
- Wysyłanie zapytań HTTP (moduł
requests)
- Usługi typu REST (tzw. “Web API”) i format JSON z perspektywy Pythona
9. Sztuczna inteligencja w pracy programisty
- AI podczas tworzenia oprogramowania, czyli podstawy vibe coding
- Podpowiedzi podczas pisania i generowanie małych fragmentów kodu
- Rozwiązywanie całych zadań za pomocą modeli językowych
- Automatyzacja nużących czynności
- AI w kontekście testowania
- Zdalny dostęp do usług generatywnej sztucznej inteligencji na przykładzie wybranej usługi (ChatGPT, Gemini lub analogicznej)
- Jak dbać o poprawność i bezpieczeństwo?
10. Wstęp do dalszych zastosowań języka Python
- Aplikacje webowe (framework Django)
- Środowiska typu Jupyter i interaktywna praca z Pythonem
- Obliczenia, analiza i wizualizacja danych (biblioteki
pandas, numpy i matplotlib)
Dodatkowe tematy w wariancie XL Backend
11. Python oczami programisty backend
- Wykorzystywane struktury danych
- Wykorzystywane koncepcje programistyczne
- Powtórzenie koniecznych podstaw
12. Struktura projektu pythonowego, dodatkowe narzędzia
- Projekt jako moduł; zależności między projektami, struktura katalogu
- GIT i kontrola wersji kodu
- Zapisywanie i odtwarzanie historii zmian
- Rozgałęzienia i ich późniejsze łączenie (branch/merge)
- Repozytoria lokalne i zdalne; różne scenariusze pracy zespołowej
13. Testy i kontrola jakości kodu
- TDD w praktyce
- Zapewnianie poprawności oprogramowania
- Testy jednostkowe
- Istota testu jednostkowego
- Typowa postać testu, proste asercje, uruchamianie
- Dodatkowe moduły przydatne w pisaniu testów: Mock, patch
14. Warstwa prezentacji
- Model DOM
- Projektowanie witryn od strony programisty – HTML i CSS
- Elementy formularza, metody POST i GET, żądania HTTP
- Renderowanie widoku po stronie serwera - technologie szablonowe
- AJAX i REST od strony frontendu
15. Działanie strony serwerowej aplikacji webowej
- Protokół HTTP
- Aplikacje uruchamiane na serwerze; serwery aplikacji
16. Framework Django
- Poznanie Django jako platformy
- Istota testu jednostkowego
- Wstępna instalacja i konfiguracja Django
- Konfiguracja i praca ze środowiskiem developerskim
- Omówienie komponentów typowej aplikacji Django
- Projekt
- Aplikacja
- Model
- Widok
- Obiektowy dostęp do bazy danych (ORM)
- Tworzenie panelu administracyjnego
- i18n
- Tworzenie komponentów aplikacji, na przykładach
- Widoki
- Szablony
- Wykorzystanie szablonów w widokach
- Różne sposoby tworzenia formularzy – ręczne i korzystające z gotowych mechanizmów
- Korzystanie z widoków generycznych
- Zasady dobrych praktyk programistycznych
- Stworzenie przykładowej aplikacji webowej
- Wspólne stworzenie przykładowego projektu na platformie Django
17. Model REST, REST API i Django
- Stworzenie przykładowego REST API przy wykorzystaniu Django
- Testy jednostkowe
- Omówienie modelu REST
- Założenia REST w kontekście Django
- Przydatne biblioteki
- Implementacja aplikacji
18. Dodatkowe narzędzia programisty backendowego
19. Wdrożenie aplikacji
- Deployment aplikacji
- Środowisko produkcyjne (omówienie serwerów webowych i serwerów aplikacji)
- Różne sposoby wdrożenia aplikacji na produkcji
Dodatkowe tematy w wariancie XL Analiza Danych
11. Środowisko pracy z Pythonem dla analityka
- Możliwości instalacji lokalnej
- Czysty Python i wirtualne środowiska (
venv i pip)
- Anaconda
- Edytory i środowiska deweloperskie
- Możliwości pracy zdalnej – Google Colab i podobne usługi
- Środowiska typu Jupyter – jak się w nich pracuje i dlaczego warto?
- Komórki i specyfika pracy interaktywnej
- Używanie Markdown i Latex do tworzenia sformatowanych tekstów
- Skróty klawiszowe i inne opcje ułatwiające pracę
- Podpowiedzi i dokumentacja
- Rzut oka na „ekosystem” bibliotek i narzędzi służących do data science w Pythonie
12. Numpy - tablice i obliczenia w Pythonie
- Przyczyny używania dodatkowych bibliotek analityczno-obliczeniowych
- Wektory, macierze, tablice wielowymiarowe
- Różne sposoby tworzenia
- Nawigacja i wybieranie fragmentów
- Zmiana kształtu (
reshape) i transpozycja
- Typy liczbowe i konsekwencje wyboru typu
- Operacje na tablicach Numpy
- Wektoryzacja operatorów i funkcji
- Zasada rozgłaszania (broadcasting)
- Mnożenie macierzy i przykładowe zastosowania
- Funkcje agregujące i osie
- Rozkłady, histogramy, statystyki opisowe
- Generator liczb pseudolosowych
13. Pandas i „biznesowa” analiza danych
- Serie (
Series) i tabele / „ramki danych” (DataFrame)
- Indeksy i nazwy kolumn
- Nawigacja w strukturach danych - wybieranie komórek i fragmentów, iteracja
- Pozyskiwanie danych z różnych źródeł
- Pliki CSV i Excel (odczyt i zapis)
- Zasoby w internecie (JSON, XML, HTML)
- Bazy danych (SQL)
- Wyszukiwanie i filtrowanie danych
- Warunki logiczne w Pandas oraz Numpy: maski, spójniki logiczne
- Przygotowywanie i czyszczenie danych
- Usuwanie kolumn i wierszy
- Usuwanie duplikatów
- Zamiana i normalizacja wartości
- Strategie postępowania z wartościami nieokreślonymi (NaN)
- Usuwanie wartości nieokreślonych
- Zastępowanie domyślną lub dominującą wartością
- Wypełnianie wartościami sąsiednimi
- Interpolacja
- Typy kolumn oraz ich wpływ na wydajność i funkcjonalność
- Typy liczbowe; zakres i precyzja wartości
- Typ daty i czasu; akcesor
.dt
- Typ kategoryczny - kiedy warto stosować
- Praca z danymi tekstowymi, w tym wykorzystanie wyrażeń regularnych (regex)
- Pionowe oraz poziome łączenie tabel (
concat, merge, join)
- Sortowanie serii i tabel
- Ranking i poszukiwanie najmniejszych/największych wartości
- Opisowa analiza danych
- Gotowe funkcje do generowania podstawowych statystyk
- Grupowanie
- Agregacja i obliczanie statystyk dla grup
- Iteracja po grupach i wykorzystanie grupowania do podziału danych
- Tabele przestawne (pivot table)
- Funkcje kroczące („okienkowe”) i narastające („skumulowane”)
- Oś czasu i szeregi czasowe
- Generowanie szeregów czasowych
- Specyfikowanie okresów czasu
- Agregacja okresów czasu – operacja
resample
- Elementy analizy statystycznej
- Seria danych jako zmienna statystyczna; normalizacja
- Korelacja i istotność statystyczna; mapy ciepła
- Wstęp do regresji liniowej
- Wnioskowanie statystyczne
14. Wykresy i wizualizacja danych
- Matplotlib i wykresy na podstawie danych z Pandas i Numpy
- Różne typy wykresów
- Opcje i ustawienia
- Generowanie wykresów bezpośrednio z Pandas
- Przegląd dodatkowych bibliotek wizualizacji danych, m.in. Seaborn, Bokeh, Plotly
15. Wprowadzenie do uczenia maszynowego
- Czym ogólnie jest uczenie maszynowe (machine learning, ML)?
- Podział metod uczenia maszynowego
- Uczenie nadzorowane (supervised), nienadzorowane (unsupervised) i ze wzmocnieniem (reinforcement)
- Czym jest zagadnienie regresji, a czym problem klasyfikacji?
- Exploratory Data Analysis (EDA), czyli eksploracja i przygotowanie danych do uczenia maszynowego
- Statystyki opisowe (za pomocą wcześniej poznanych narzędzi)
- Rozkłady, histogramy, identyfikacja wartości odstających (outliers) i błędnych
- Oczyszczanie zbioru danych (wartości błędne, nieokreślone, duplikaty)
- Identyfikacja korelacji i zależności logicznych, wstępne hipotezy
- Standaryzacja i normalizacja danych
- Czym jest inżynieria cech (feature engineering)?
- Proces uczenia maszynowego – metodologia CRISP-ML(Q)
- Zrozumienie dziedziny i określenie wymagań wobec projektu ML
- Przygotowanie zbioru uczącego i zbioru testowego z zastosowaniem EDA
- Zbudowanie i szkolenie modelu
- Walidacja i tuning modelu
- Wdrożenie i utrzymywanie rozwiązań
- Na czym polega „wyjaśnialność” (explainability) modelu?
- Wybór najwłaściwszej techniki ML w zależności od zadania
16. Praktyka uczenia maszynowego w Pythonie
- Biblioteka Scikit-learn
- Transformatory, estymatory, pipeline’y
- Przegląd dostępnych metod i operacji (w miarę poznawania ↓ kolejnych technik ML)
- Serializacja i ponowne wykorzystywanie modeli
- Rola bibliotek pomocniczych – Numpy, Pandas, Seaborn
- Praca interaktywna w Jupyter/Colab vs wykorzystanie ML we własnych aplikacjach
17. Techniki uczenia nadzorowanego
- Metody regresji
- Regresja liniowa
- Regresja wielomianowa
- Obsługa danych o skali nieliniowej
- Reprezentacja danych nieliczbowych
- Ewaluacja modeli regresji
- Współczynnik determinacji R² oraz błędy MAE/RMSE
- Przeuczenie modelu i metody regularyzacji
- Zastosowania regresji
- Predykcja wartości liczbowych / ciągłych
- Wizualizacja trendów i zależności
- Klasyfikacja
- Decyzje binarne (prawda/fałsz) oraz wieloklasowe
- Regresja logistyczna
- Drzewa decyzyjne – struktura, sposób tworzenia i wykorzystania
- Metryki klasyfikacji
- Łączenie klasyfikatorów
- Zastosowania klasyfikacji
- Predykcja zdarzeń (wydarzy się / nie wydarzy się) na podstawie uwarunkowań
- Przyporządkowanie rekordów do grup ze względu na ich cechy i wartości pól
18. Techniki uczenia nienadzorowanego
- Grupowanie danych (clustering) i algorytm K-Means
- Redukcja wymiarowości i Analiza Głównych Składowych (PCA)
- Zastosowania technik nienadzorowanych (w czasie zajęć wybieramy po jednym małym przykładzie, a dodatkowe projekty są propozycjami prac domowych)
- Ustalanie istotnych zmiennych, w tym na potrzeby uczenia nadzorowanego
- Automatyczna detekcja anomalii, np. fraudów, awarii, ataków cybernetycznych
- Automatyczne grupowanie, np. segmentacja klientów na podstawie historii zachowań czy pacjentów na podstawie objawów
- Czym jest uczenie ze wzmocnieniem (reinforcement learning, RL)?
19. Wstęp do uczenia głębokiego i sieci neuronowych
- Czym uczenie głębokie (deep learning) różni się od „zwykłego” uczenia maszynowego?
- Komponenty sieci neuronowych
- Budowa i mechanizm działania sztucznego neuronu
- Perceptory (perceptron)
- „Warstwa ukryta” i perceptory wielowarstwowe (MLP)
- Mechanizm działania uczenia głębokiego
- Przetwarzanie informacji
- Algorytmy uczenia z nadzorem
- Algorytmy uczenia bez nadzoru
- Funkcje aktywacyjne
- Funkcje błędu
- Tensory i transformacje
20. Biblioteki uczenia głębokiego w Pythonie
- Fundamentalne biblioteki napędzające deep learning
- TensorFlow – open source od Google
- PyTorch – open source od Meta
- JAX – zoptymalizowany silnik obliczeniowy
- Znaczenie sprzętu w pracy z sieciami neuronowymi; procesory typu CPU, GPU, TPU
- Keras – wysokopoziomowa praca z modelami
- Wybór biblioteki podstawowej (backend)
- Budowa modeli w Keras
- Kompilacja modelu
- Wybór optymalizatora i metryk
- Trenowanie modeli
- Sequential API vs Functional API
- Wykorzystanie wytrenowanych modeli do predykcji
- Klasyfikacja i podejmowanie decyzji na podstawie nowych danych
- Hugging Face – platforma open source dla modeli uczenia maszynowego
- Strojenie modeli dopasowanych do potrzeb użytkownika
- Zastosowanie do generowania obrazów
21. Sieci neuronowe – rodzaje, techniki i przykłady zastosowań
- Sztuczne sieci neuronowe (ANN)
- Zastosowania w zadaniach klasyfikacji i regresji
- Konwolucyjne sieci neuronowe (CNN)
- Rozpoznawanie obrazów
- Przetwarzanie i analiza obrazów
- Rekurencyjne sieci neuronowe (RNN, LSTM)
- Predykcja szeregów czasowych
- Inne zagadnienia analityczne
22. Duże modele językowe (LLM)
- Czym jest model językowy i jak działają narzędzia typu GPT?
- Ewolucja AI w przetwarzaniu języka naturalnego (NLP)
- Od sieci neuronowych RNN do architektury Transformer
- Architektura popularnych modeli
- Podstawowe pojęcia: etapy trenowania, model wytrenowany i przetrenowany, token, prompt, konwersacja, pamięć, …
- Zagadnienia bezpieczeństwa i prywatności w kontekście LLM i AI
- Etyczne wykorzystanie AI: prawa autorskie, uczciwość i rzetelność narzędzi AI
- Aspekty prawne i istniejące regulacje (pobieżnie)
- Zagrożenia ewentualnego wycieku danych i zarządzanie prywatnością
- Korzystanie ze zdalnych usług AI/LLM czy lokalna instalacja modelu? – dyskusja
- Dostęp programistyczny (API) do zdalnych modeli LLM na przykładzie OpenAI API (ChatGPT) lub analogicznej usługi
- Generyczne API sieciowe (REST) i dedykowana biblioteka w Pythonie
- Zarządzanie kluczem dostępowym (API_KEY)
- Parametry i opcje zapytań
- Role promptów: user, developer, …
- Dostrajanie procesu myślenia: zaangażowane zasoby, temperatura, filtrowanie treści
- Polecenia jednorazowe i konwersacje
- Praca z lokalnym modelem LLM
- Wady i zalety własnej instalacji względem zewnętrznej usługi
- Konfiguracja wybranego open-source’owego narzędzia LLM
- Utworzenie prostego czat-bota jako aplikacji Python na bazie lokalnej instalacji
23. Analiza możliwości wdrażania projektów AI opartych o Pythona
- Wdrożenia w oparciu o własną infrastrukturę
- Wdrożenia „w chmurze”
- Wyzwania prawdziwego świata: skalowanie, bezpieczeństwo, monitoring
- Wirtualizacja, konteneryzacja i orkiestracja
- Rola narzędzi Docker i Kubernetes
- Wyspecjalizowane narzędzia w kontekście machine learning i deep learning
- Specyfika pracy MLOps