Programowanie obiektowe w języku Python - studia zaoczne

Zasady zaliczenia

Zasady zaliczenia przedmiotu

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

Ocena z przedmiotu jest średnią oceny z ćwiczeń i wykładu.

Zasady zaliczenia ćwiczeń

Zasady zaliczenia ćwiczeń są ustalane przez odpowiedniego prowadzącego i będą podane na pierwszych zajęciach.

Zasady zaliczenia wykładu

Zaliczenie wykładu, odbywa się w formie egzaminu testowego na drugiej połowie ostatniego wykładu (czas trwania około 45 minut). W każdym z 15 pytań będą zamieszczone trzy odpowiedzi, z których tylko jedna jest prawidłowa. Za odpowiedź prawidłową otrzymuje się 1 punkt, za błędną 0 punktów.

Termin egzaminu poprawkowego zostanie ogłoszony na ostatnim wykładzie.

Obowiązująca skala ocen:

ocena

liczba punktów

procent sumarycznie uzyskanych punktów

5

od 14pkt do 15pkt

od 91% do 100%

4.5

13pkt

od 81% do 90%

4

od 11pkt do 12pkt

od 71% do 80%

3.5

10pkt

od 61% do 70%

3

od 8pkt do 9pkt

od 51% do 60%

2

poniżej 8pkt

poniżej 51%

2nb

za brak podejścia do egzaminu

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]

Wstęp do obiektowości - Klasy

Slajdy:

  1. Wstęp do obiektowości - Klasy i dziedziczenie

Materiały dodatkowe:

  1. A First Look at Classes [EN]

  2. Klasy [PL]

  3. Intro to Object Oriented Programming [EN]

  4. 1. Object Oriented Programming [EN]

  5. 2. Class vs. Instance Attributes [EN]

  6. 6. Inheritance [EN]

  7. 9. Magic Methods [EN]

Materiały dodatkowe na YouTube:

  1. 25. Kurs Python 3 - Klasy i Obiekty (OOP) (autor: Kanał o Wszystkim) [PL]

  2. Python OOP Tutorial 1: Classes and Instances (autor:Corey Schafer) [EN]

  3. 27. Kurs Python 3 - Klasy - magiczne metody (autor: Kanał o Wszystkim) [PL]

  4. 29. Kurs Python 3 - Klasy - hermetyzacja (ukrywanie danych) (autor: Kanał o Wszystkim) [PL]

  5. 30. Kurs Python 3 - Klasy - metody klas oraz statyczne (autor: Kanał o Wszystkim) [PL]

Wstęp do obiektowości - Dziedziczenie

Slajdy:

  1. Wstęp do obiektowości - Klasy i dziedziczenie

Materiały dodatkowe:

  1. Wyzwanie Python #5: Zaawansowane aspekty programowania obiektowego [PL]

  2. Inheritance [EN]

Materiały dodatkowe na YouTube:

  1. 26. Kurs Python 3 - Klasy - dziedziczenie (autor: Kanał o Wszystkim) [PL]

  2. Kurs Python 3 [#21] Dziedziczenie klas [PL]

  3. Python OOP Tutorial 4: Inheritance - Creating Subclasses (autor:Corey Schafer) [EN]

Obsługa błędów - Błędy składniowe, Kody błędów, Wyjątki

Slajdy:

  1. Obsługa błędów - Błędy składniowe, Kody błędów, Wyjątki

Materiały dodatkowe:

  1. Errors and Exceptions [EN]

  2. Wyjątki (autor: Katarzyna Miernik, AGH) [PL]

  3. Testowanie w Pythonie (o wyjątkach) [PL]

Materiały dodatkowe na YouTube:

  1. Kurs Python 3 [#17] Wyjątki (Exceptions) (autor: Piotr Baja) [PL]

  2. 12. Kurs Python 3 - obsługa wyjątków (try, except) (autor: Kanał o Wszystkim) [PL]

Wzorce projektowe - Template method

Materiały dodatkowe:

  1. Wzorce projektowe / Design patterns [PL]

  2. Metoda szablonowa / Template method [PL]

Wzorce projektowe - Command

Materiały dodatkowe:

  1. Wzorce projektowe / Design patterns [PL]

  2. Command / Polecenie [PL]

Wzorce projektowe - Strategy

Materiały dodatkowe:

  1. Wzorce projektowe / Design patterns [PL]

  2. Strategia / Strategy [PL]

Przykładowe programy do wykładów

Wykład 1 - Wstęp do obiektowości - Klasy

  1. Samochód (Klasy)

Wykład 2 - Wstęp do obiektowości - Dziedziczenie, Wyjątki

  1. Samochód (Dziedziczenie)

Wykład 3 - Wzorce projektowe - Template method, Command

  1. REPL (Template method)

  2. menu (Command)

Wykład 4 - Wzorce projektowe - Strategy

  1. uniq (Strategy)