1.1. Agenda

  1. Wprowadzenie do języka Python:

    • konfiguracja środowiska

    • Uruchamianie kodu w środowisku IDE

    • Debugging i introspekcja

    • Uruchamianie testów (doctest, unittest)

    • Refactoring

    • konfiguracja i korzystanie z Jupyter

  2. Struktury danych oraz instrukcje podstawowe języka:

    • Typy wbudowane: liczby, łańcuchy znaków, listy, słowniki, krotki

    • Typy złożone

    • Przypisania

    • Instrukcje decyzyjne

    • Pętle

    • Czytanie plików

  3. Funkcje w języku Python:

    • Zastosowanie funkcji

    • Zwracanie i przekazywanie parametrów do/z funkcji

    • Funkcje parametryzowane, parametry pozycyjne, nazwane oraz * i **

  4. Programowanie obiektowe:

    • Podstawowe wiadomości o programowaniu obiektowym

    • Definiowanie klasy w języku Python

    • Przeciążanie operatorów

    • Dziedziczenie

    • Dataclass

    • Wyjątki: rodzaje, przechwytywanie, tworzenie własnych

  5. Jakość, testowanie i dobre praktyki:

    • PEP8 i PEP20

    • Doctest

    • Unittest

    • Wprowadzenie do TDD

    • Type Annotation

    • Wykorzystanie Pythona do automatyzacji testów

    • Continuous Integration i Delivery

    • Selenium

  6. Modularyzacja programu oraz korzystanie z bibliotek:

    • Najczęściej wykorzystywane moduły biblioteki standardowej

    • Virtualenv i separacja bibliotek

    • pip i pipenv

    • Instalacja bibliotek zewnętrznych

    • Tworzenie własnych modułów

    • Praca z systemem operacyjnym

    • Parsowanie argumentów i korzystanie z terminala

  7. Manipulacja i prezentacja danych:

    • Serializacja danych do formatu JSON, Pickle, XML oraz CSV

    • Operacje na bazach danych w języku Python

    • Generowanie interaktywnych wykresów oraz raportów za pomocą Matplotlib, Plotly i Jupyter

  8. Testowanie webaplikacji

    • Podstawy programowania sieciowego i HTTP w języku Python

    • Omówienie protokołu REST

    • Dobre praktyki tworzenia API

    • (opcjonalnie) tworzenie i korzystanie z narzędzia Swagger do dokumentacji API

    • (opcjonalnie) wstęp do Git

    • (opcjonalnie) wstęp do Django framework