Zaawansowane techniki programowania w języku Python - studia zaoczne

Zasady zaliczenia

Zasady zaliczenia przedmiotu

Do zaliczenia przedmiotu konieczne jest otrzymanie oceny co najmniej 3 z ćwiczeń. Uzyskanie oceny 2nb z ćwiczeń skutkuje uzyskaniem oceny 2nb z przedmiotu. Uzyskanie oceny 2 z ćwiczeń skutkuje uzyskaniem oceny 2 z przedmiotu.

Do tego przedmiotu nie ma wykładu, ocena z ćwiczeń jest oceną z przedmiotu.

Zasady zaliczenia ćwiczeń

Zaliczenie ćwiczeń odbywa się na podstawie jednego projektu:

  • projekt oddajemy na ostatnich zajęciach,

  • punktacja: 0 - 30 punktów (nie ma punktów ułamkowych ;) ),

  • temat, specyfikacja i punktacja projektu będzie podana odpowiednio wcześniej (nasz przedostatni wspólny zjazd)

  • trzeba być autorem rozwiązania

Obowiązująca skala ocen:

ocena

liczba punktów

procent sumarycznie uzyskanych punktów

5

od 28pkt do 30pkt

od 91% do 100%

4.5

od 25pkt do 27pkt

od 81% do 90%

4

od 22pkt do 24pkt

od 71% do 80%

3.5

od 19pkt do 21pkt

od 61% do 70%

3

od 16pkt do 18pkt

od 51% do 60%

2

poniżej 16pkt

poniżej 51%

2nb

za brak projektu

Literatura

Polecam oficjalny tutorial:

Książki:

Książki o poprawnym pisaniu kodu:

Książki z zadaniami:

Środowisko pracy

Wymagany oficjalny interpreter Pythona w wersji co najmniej 3.7 (najlepiej najnowszy).

Link do pobrania oficjalnego interpretera: https://www.python.org/downloads/

Informacja

Niektóre systemy operacyjne (np. Ubuntu 18.04) nie posiadają wymaganej wersji interpretera języka Python. Część omawianych elementów języka może nie działać.

Wybór środowiska programistycznego należy do Ciebie, chociaż polecam PyCharm.

Link do pobrania środowiska PyCharm (wersja PyCharm Community Edition jest darmowa): https://www.jetbrains.com/pycharm/download/

Można uzyskać licencję edukacyjną (ważna przez rok) dla PyCharm/InteliJ IDEA/CLion/PhpStorm, więcej informacji tutaj: https://www.jetbrains.com/community/education/

Licencję edukacyjną na produkty (nie tylko związane z Pythonem) innych firm można także otrzymać przez GitHub Student Developer Pack, więcej informacji tutaj: https://education.github.com/pack

Myślę, że warto również wypróbować Microsoft Visual Studio Code. Jest darmowy, posiada wsparcie dla wielu języków (np. C, C++, C#, Java, Robot Framework), wydawany na własnej licencji.

Link do pobrania środowiska Microsoft Visual Studio Code: https://code.visualstudio.com/

Dostępne są także środowiska programistyczne on-line, z tych polecam:

Materiały dodatkowe:

  1. Python Setup and Usage [EN]

  2. Python Download and Installation Instructions [Windows] [EN]

  3. Installing Python 3 on macOS [EN]

  4. Install PyCharm [EN]

  5. Instalacja i używanie Pythona [PL]

  6. Instalowanie Pythona [PL]

Materiały dodatkowe na YouTube:

  1. Instalacja Pycharm oraz Python - poradnik krok po kroku [PL]

Iteratory

Materiały dodatkowe:

  1. Wzorzec projektowy iterator [PL]

  2. Skrypt do wykładu Programowanie 2 (Python) - Wykład 4 (cz. 1) - iteratory i generatory (autor: G. Jagiella) [PL]

  3. Co każdy powinien wiedzieć o iteratorach w Pythonie? [PL]

  4. Python Iterators [EN]

  5. itertools — Functions creating iterators for efficient looping [EN]

Materiały dodatkowe na YouTube:

  1. Czym są Iteratory? [Python] (autor: Adam Djellouli) [PL]

  2. Python Tutorial: Iterators and Iterables - What Are They and How Do They Work? (autor: Corey Schafer) [EN]

Generatory

Materiały dodatkowe:

  1. Python - Generatory [PL]

  2. Skrypt do wykładu Programowanie 2 (Python) - Wykład 4 (cz. 1) - iteratory i generatory (autor: G. Jagiella) [PL]

  3. Python Generators [EN]

  4. itertools — Functions creating iterators for efficient looping [EN]

Materiały dodatkowe na YouTube:

  1. Czym są Generatory? [Python] (autor: Adam Djellouli) [PL]

  2. Python Tutorial: Generators - How to use them and the benefits you receive (autor: Corey Schafer) [EN]

Wielowątkowość (multithreading)

Materiały dodatkowe:

  1. threading — Thread-based parallelism [EN]

  2. concurrent.futures — Launching parallel tasks [EN]

  3. Python threads synchronization: Locks, RLocks, Semaphores, Conditions and Queues [EN]

Materiały dodatkowe na YouTube:

  1. Czym są wątki? [Python] (autor: Adam Djellouli) [PL]

  2. Własny wątek, dziedziczymy po klasie threading.Thread? [Python] (autor: Adam Djellouli) [PL]

  3. Programowanie współbieżne w Pythonie! Kompendium efektywnego pythonisty (autor: Videopoint) [PL]

  4. Threading Tutorial #1 - Concurrency, Threading and Parallelism Explained (autor: Tech With Tim) [EN]

  5. Threading Tutorial #2 - Implementing Threading in Python 3 (Examples) (autor: Tech With Tim) [EN]

  6. Python ThreadPoolExecutor tutorial (autor: VTGAMES) [EN]

Wieloprocesorowość (multiprocessing)

Materiały dodatkowe:

  1. multiprocessing — Process-based parallelism [EN]

  2. concurrent.futures — Launching parallel tasks [EN]

Materiały dodatkowe na YouTube:

  1. Python Tutorial - 27. Multiprocessing Introduction (autor: codebasics) [EN]

  2. Python Tutorial - 29. Sharing Data Between Processes Using Queue (autor: codebasics) [EN]

Dekoratory

Materiały dodatkowe:

  1. Python - Dekoratory [PL]

  2. Primer on Python Decorators [EN]

Materiały dodatkowe na YouTube:

  1. 23. Kurs Python 3 - dekoratory (autor: Kanał o Wszystkim) [PL]

  2. Jak tworzyć dekoratory? Zaawansowany kurs Python [PL]

  3. #31: Python Decorators | Python for Beginners [EN]

Wyrażenia regularne

Materiały dodatkowe:

  1. regex101: build, test, and debug regex [EN]

  2. re — Regular expression operations

  3. RexEgg! [EN] (web archive)

  4. Python Regular Expressions [EN]

  5. Wyrażenia regularne (autor: Jakub Swacha) [PL]

Materiały dodatkowe na YouTube:

  1. Regular Expressions (autor: Computerphile) [EN]

  2. REGEX (REGULAR EXPRESSIONS) WITH EXAMPLES IN DETAIL | Regex Tutorial (autor: Crack Concepts) [EN]

  3. Novice to Advanced RegEx in Less-than 30 Minutes + Python (autor: James Briggs) [EN]

  4. Jak myśli RegEx? (autor: VideoKursPL) [PL]

  5. PyLight #7 - Krzysztof Jura - Wyrażenia regularne w Pythonie (autor: PyLight) [PL]

  6. 32. Kurs Python 3 - Wyrażenia regularne (cz. 1) - Regular Expression (Match, Search) (autor: Kanał o Wszystkim) [PL]

  7. 33. Kurs Python 3 - Wyrażenia regularne (cz. 2) - Regular Expression (klasy znaków, przedziały) (autor: Kanał o Wszystkim) [PL]

  8. 34. Kurs Python 3 - Wyrażenia regularne (cz. 3) - Regular Expression (powtórzenia) (autor: Kanał o Wszystkim) [PL]

  9. 35. Kurs Python 3 - Wyrażenia regularne (cz. 4) - Regular Expression (grupy, walidacja e-mail) (autor: Kanał o Wszystkim) [PL]

Przykładowe listy zadań na ćwiczenia