Programowanie II 1100-3INZ27
Programowanie obiektowe
1) Zawansowane konstrukcje z języka Python: dekoratory, argumenty nazwane
2) Podstawy programowania obiektowego: definicja klasy i jej składowych
3,4) Programowanie obiektowe: dziedziczenie klas; budowanie zależności między klasami. Enkapsulacja i polimorfizm. Klasy abstrakcyjne i interfejsy
5) Reguły SOLID
6) Wzorzec projektowy Dekorator
7) Wzorzec projektowy Strategia
Dobre praktyki programistyczne
8) Wersjonowanie kodu programem git: scalanie zmian, tworzenie gałęzi, pull request itp.
9) Organizacja kodu w moduły i pakiety, tworzenie dokumentacji
10) Tworzenie testów jednostkowych (pytest, unitest), narzędzia wspierające jakość kodu (np. pylint, black).
Praca z dużymi projektami
11) Popularne biblioteki w Pythonie (np. pandas, matplotlib, requests, pytorch).
12) Wprowadzenie do frameworków (np. Flask)
13) Omówienie projektów zaliczeniowych
Kierunek podstawowy MISMaP
chemia
informatyka
Tryb prowadzenia
Założenia (opisowo)
Koordynatorzy przedmiotu
Efekty kształcenia
Student rozumie:
1) Podstawy programowania obiektowego, w tym koncepcje takie jak klasy, obiekty, dziedziczenie, polimorfizm i enkapsulacja.
2) Znaczenie dobrych praktyk programistycznych, takich jak przestrzeganie konwencji PEP 8, pisanie czytelnego kodu oraz dokumentowanie projektów.
3) Zasady projektowania obiektowego, w tym reguły SOLID i zastosowanie wzorców projektowych takich jak Dekorator i Strategia.
4) Znaczenie testowania oprogramowania i jego wpływ na jakość oraz niezawodność kodu.
5) Różnicę między bibliotekami a frameworkami oraz ich zastosowanie w rozwijaniu aplikacji.
Student umie:
1) Tworzyć klasy i obiekty w Pythonie, definiując ich atrybuty i metody oraz budując relacje między klasami.
2) Zastosować wzorce projektowe (np. Dekorator, Strategia) w praktycznych projektach programistycznych.
3) Przeprowadzić wersjonowanie kodu przy użyciu systemu kontroli wersji Git, w tym zarządzać gałęziami, łączyć zmiany i wykonywać pull requesty.
4) Tworzyć testy jednostkowe przy użyciu bibliotek takich jak pytest lub unittest oraz analizować wyniki testów.
5) Zorganizować duży projekt programistyczny, korzystając z bibliotek (np. pandas, matplotlib) lub frameworków (np. Flask) oraz odpowiednio dokumentować i testować kod.
Kryteria oceniania
Aby zaliczyć przedmiot, należy:
1) mieć minimum 2/3 obecności na zajęciach (przy założeniu, że odbędzie się 15 zajęć w semestrze, dopuszcza się co najwyżej 5 nieobecności na zajęciach)
2) przesłać rozwiązania zadań realizowanych na ćwiczeniach w terminie do 2 tygodni od zakończenia
3) oddać projekt zaliczeniowy
4) Zdać egzamin pisemny
Ocena końcowa jest wypadkową oceny z ćwiczeń (stanowiących 2/3 punktów; przyznanych za rozwiązania zadań + projekt) oraz oceny z egzaminu (1/3 punktów)
Literatura
Mark Lutz. "Python. Kurs dla nauczycieli i studentów"
Steven F. Lott, Dusty Phillips. "Programowanie zorientowane obiektowo w Pythonie. Tworzenie solidnych i łatwych w utrzymaniu aplikacji i bibliotek"
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: