Wydział Informatyki
Kierunek studiów Data Science Poziom i forma studiów pierwszego stopnia inżynierskie stacjonarne
Specjalność / Ścieżka dyplomowania --- Profil kształcenia ogólnoakademicki
Nazwa przedmiotu Programowanie obiektowe Kod przedmiotu DS1S2POB
Rodzaj przedmiotu obowiązkowy
Forma zajęć i liczba godzin W Ć L P Ps T S Semestr 2
30 30 Punkty ECTS 5
Przedmioty wprowadzające Podstawy programowania (DS1S1PPR),  
Cele przedmiotu

Przekazanie wiedzy o koncepcjach i technikach programowania obiektowego ze szczególnym uwzględnieniem ich zastosowania w rozwoju aplikacji data science.
Rozwój praktycznych umiejętności projektowania i implementacji systemów obiektowych w języku Python, z naciskiem na tworzenie skalowalnych i utrzymywalnych rozwiązań analitycznych.

Odniesienia do standardu SFIA:
Programming/software development PROG - poziom 2
Testing TEST - poziom 2
Software design SWDN - poziom 2

Treści programowe

Paradygmat programowania obiektowego w kontekście data science. Klasy i obiekty. Interfejs i implementacja klasy, hermetyzacja. Metody specjalne. Pola i metody instancyjne i statyczne. Kompozycja. Dziedziczenie. Klasy i metody abstrakcyjne. Obsługa wyjątków. Wzorce projektowe.

Wykład:
1. Klasa i obiekt: podstawowe definicje, składowe klasy, metody i ich wywoływanie, inicjowanie obiektów.
2. Projektowanie klas programu na podstawie opisu słownego systemu.
3. Interfejs i implementacja klasy, hermetyzacja, gettery oraz settery.
4. Metody specjalne (magiczne) w klasach. Przeciążanie operatorów.
5. Pola i metody instancyjne, klasowe i statyczne.
6. Kompozycja. Dziedziczenie.
7. Dziedziczenie.
8. Dziedziczenie.
9. Błędy czasu wykonania, mechanizm wyjątków.
10. Introspekcja, dekoratory, klasy wewnętrzne.
11. Biblioteka numpy.
12. Biblioteka pandas.
13. Biblioteka matplotlib.
14. Wzorce projektowe.
15. Zaliczenie wykładu.

Pracownia specjalistyczna:
1. Stos strukturalnie.
2. Korzystanie z obiektów - pliki.
3. Stos obiektowo.
4. Hermetyzacja - klasa Ułamek.
5. Metody specjalne - klasa Ułamek.
6. Kompozycja - figury.
7. Dziedziczenie - figury.
8. Metody instancyjne, klasowe i statyczne - klasa Macierz.
9. Kolokwium 1.
10. Klasy abstrakcyjne - system bankowy z różnymi typami klientów.
11. Obsługa wyjątków.
12. Zadanie projektowe.
13. Zadanie projektowe.
14. Kolokwium 2.
15. Zaliczenie zadania projektowego.

Metody dydaktyczne

wykład problemowy,   programowanie z użyciem komputera,   wykład informacyjny,   wykład z prezentacją multimedialną,  

Forma zaliczenia

Wykład: zaliczenie pisemne z pytaniami otwartymi
Pracownia specjalistyczna: kolokwium, ocena wybranych programów realizowanych na zajęciach, ocena zadania projektowego

Symbol efektu uczenia się Zakładane efekty uczenia się Odniesienie do kierunkowych efektów uczenia się
EU1 zaawansowane koncepcje programowania obiektowego w kontekście systemów data science DS1_W02
DS1_W20
EU2 zasady projektowania skalowalnych systemów obiektowych do analizy danych DS1_W03
DS1_W08
DS1_W20
EU3 wzorce projektowe i dobre praktyki w tworzeniu systemów analitycznych DS1_W16
DS1_W20
EU4 projektować i implementować obiektowe systemy do analizy danych DS1_U02
DS1_U06
DS1_U12 (H1_U02)
EU5 stosować wzorce projektowe w kontekście przetwarzania danych DS1_U02
DS1_U05
DS1_U21
EU6 tworzyć testowalny i utrzymywalny kod dla systemów data science DS1_U21
Symbol efektu uczenia się Sposób weryfikacji efektu uczenia się Forma zajęć na której zachodzi weryfikacja
EU1 zaliczenie pisemne W
EU2 zaliczenie pisemne W
EU3 zaliczenie pisemne W
EU4 kolokwium, rozwiązywanie zadań problemowych, ocena projektu Ps
EU5 kolokwium, rozwiązywanie zadań problemowych, ocena projektu Ps
EU6 kolokwium, rozwiązywanie zadań problemowych, ocena projektu Ps
Bilans nakładu pracy studenta (w godzinach) Liczba godz.
Wyliczenie
1 - udziałem w wykładach 30
2 - udziałem w innych formach zajęć 30
3 - indywidualnym wsparciem merytorycznym procesu uczenia się, udziałem w zaliczeniach organizowanych poza planem zajęć 4
4 - przygotowaniem do zaliczenia wykładu/egzaminu 10
5 - przygotowaniem do bieżących zajęć o charakterze praktycznym 32
6 - wykonaniem projektu 19
RAZEM: 125
Wskaźniki ilościowe GODZINY ECTS
Nakład pracy studenta związany z zajęciami wymagającymi bezpośredniego udziału nauczyciela 64
(1)+(2)+(3)
2.6
Nakład pracy studenta związany z zajęciami o charakterze praktycznym 81
(2)+(5)+(6)
3.2
Literatura podstawowa

1. M. Summerfield, Python 3 : Kompletne wprowadzenie do programowania. Wyd.2. ed., Gliwice, Helion, 2010
2. P. Norton, Python Od Podstaw, Gliwice, Helion, 2006
3. Z.A. Shaw, Python 3 : Proste wprowadzenie do fascynującego świata programowania, Gliwice, Helion, 2018

Literatura uzupełniająca

1. D. Hillard, Python: Dobre Praktyki Profesjonalistów, Gliwice, Helion, 2020
2. C. Jackson, Python Ninja : 70 Sekretnych Receptur I Taktyk Programistycznych, Gliwice, Helion, 2019
3. S. Kapil, Czysty Kod W Pythonie, Gliwice, Helion, 2019
4. K. Rother, Python Dla Profesjonalistów: Debugowanie, Testowanie I Utrzymywanie Kodu, Gliwice, Helion, 2018
5. Dokumentacja języka Python: https://docs.python.org/3/

Jednostka realizująca Katedra Oprogramowania Data opracowania programu
Program opracował(a) dr inż. Dorota Duda,dr inż. Tomasz Łukaszuk,dr inż. Anna Łupińska-Dubicka 2025.03.03