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 Algorytmy i struktury danych Kod przedmiotu DS1S4ASD
Rodzaj przedmiotu obowiązkowy
Forma zajęć i liczba godzin W Ć L P Ps T S Semestr 4
30 30 Punkty ECTS 5
Przedmioty wprowadzające Matematyka dyskretna (DS1S2MDY),   Podstawy programowania (DS1S1PPR),   Przegląd metod i narzędzi AI (DS1S2PMN),  
Cele przedmiotu

Nabycie wiedzy o podstawach algorytmów i struktur danych (złożoność obliczeniowa, techniki kodowania algorytmów, wydajne struktury danych) oraz o specjalistycznych strukturach danych i algorytmach wykorzystywanych w data science i uczeniu maszynowym. Rozwój umiejętności implementacji i optymalizacji struktur danych i algorytmów, w tym na potrzeby przetwarzania danych i modeli ML/AI. Wpływ konsumpcji zasobów i złożoności obliczeniowej w kontekście zasad zrównoważonego rozwoju.

Odniesienia do frameworka edukacyjnego mikrokompetencji SFIA:
- Programming/Software Development (PROG) - poziom 3
- Data Engineering (DENG) - poziom 3
- Data Analytics (DAAN) - poziom 3

Treści programowe

Podstawowe pojęcia z zakresu algorytmiki. Techniki kodowania algorytmów: „dziel i zwyciężaj”, algorytmy zachłanne, programowanie dynamiczne. Drzewiaste struktury danych i słowniki jako narzędzia do analizy podobieństwa. Tablice haszujące oraz LSH (Locality-Sensitive Hashing). Reprezentacje grafów i podstawowe algorytmy grafowe. Struktury danych dla danych rzadkich. Metody optymalizacji, w tym stosowane w uczeniu maszynowym. Wpływ konsumpcji zasobów i złożoności obliczeniowej w kontekście zasad zrównoważonego rozwoju.
Wykład:
1 Podstawowe pojęcia: algorytm, złożoność czasowa, przykłady. Wpływ konsumpcji zasobów i złożoności obliczeniowej w kontekście zasad zrównoważonego rozwoju.
2 Rekurencja i technika „dziel i zwyciężaj”.
3 Wybrane algorytmy sortowania.
4 Algorytmy zachłanne.
5 Programowanie dynamiczne.
6 Drzewa BST i AVL.
7 Specjalistyczne drzewa w data science: KD- oraz prefiksowe.
8 Tablice haszujące i Locality Sensivity Hashing (LSH) jako struktura wyszukiwania podobieństwa.
9 Podstawowe pojęcia i algorytmy grafowe: najkrótsze ścieżki.
10 Struktury dla danych rzadkich, macierze rzadkie.
11 Klasy złożoność obliczeniowych: problemy P, NP, NP-hard, NP-complete. Wpływ wyboru algorytmów do implementacji i złożoności obliczeniowej w kontekście zasad zrównoważonego rozwoju.
12 Algorytmy heurystyczne i algorytmy przybliżone.
13 Optymalizacja kombinatoryczna: problem komiwojażera (TSP).
14 Optymalizacja ciągła w uczeniu maszynowym: gradient descent, minimalizacja funkcji straty.
15 Algorytmy wyszukiwania wzorca w tekście.

Pracownia specjalistyczna:
1 Optymalizacja algorytmów pod względem złożoności: podstawowe problemy obliczeniowe. Znaczenie złożoności algorytmów w koncepcji zrównoważonego rozwoju. 4h
2 Techniki kodowania algorytmów w praktyce: zachłanna, prog. dynamiczne, dziel i zwyciężaj.
Znaczenie złożoności algorytmów i doboru struktur danych w koncepcji zrównoważonego rozwoju. 6h
3 Implementacja drzew: słowników (BST/AVL) oraz specjalizowanych (KD-, sufiksowe-). 6h
4 Rozwiązywanie problemów grafowych: najkrótsze ścieżki i TSP. 6h
5 Optymalizacja w uczeniu maszynowym: metody gradient descent. 6h
6 Zaliczenie pracowni specjalistycznej.

Metody dydaktyczne

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

Forma zaliczenia

wykład- egzamin pisemny z pytaniami otwartymi
ps- ocena programów

Symbol efektu uczenia się Zakładane efekty uczenia się Odniesienie do kierunkowych efektów uczenia się
EU1 Podstawowe pojęcia z zakresu algorytmiki DS1_W08
EU2 zasady optymalizacji struktur danych i algorytmów, w tym ML wpływ konsumpcji zasobów infrastruktury i sposobów składowania danych w kontekście zasady zrównoważonego rozwoju DS1_W03
DS1_W08
DS1_W19
EU3 Metody implementacji efektywnych rozwiązań obliczeniowych DS1_W03
DS1_W08
EU4 implementować specjalistyczne algorytmy i struktury danych, także biorąc pod uwagę efektywność i złożoność algorytmów w kontekście zrównoważonego rozwoju DS1_U04
DS1_U06
DS1_U15
EU5 Optymalizować algorytmy, w tym do zastosowań ML/AI DS1_U04
DS1_U06
EU6 Analizować złożoność i efektywność rozwiązań DS1_U04
EU7 optymalizacja rozwiązań pod kątem wydajności i skalowalności DS1_K01
Symbol efektu uczenia się Sposób weryfikacji efektu uczenia się Forma zajęć na której zachodzi weryfikacja
EU1 egzamin pisemny W
EU2 egzamin pisemny W
EU3 egzamin pisemny W
EU4 implementacja programów Ps
EU5 implementacja programów Ps
EU6 implementacja programów Ps
EU7 implementacja programów Ps
Bilans nakładu pracy studenta (w godzinach) Liczba godz.
Wyliczenie
1 - Udział w wykładach 30
2 - Udział w innych formach zajęć 30
3 - Indywidualne wsparcie merytoryczne procesu uczenia się, udział w egzaminie i zaliczeniu organizowanym poza planem zajęć 4
4 - Przygotowanie do egzaminu 20
5 - Przygotowanie do bieżących zajęć o charakterze praktycznym 25
6 - wykonanie projektu 16
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 71
(2)+(5)+(6)
2.8
Literatura podstawowa

1 T.H. Cormen, C.E. Leiserson, R.L. Rivest, S. Clifford, Wprowadzenie do algorytmów, Wydawnictwo Naukowe, 2020
2 A.V. Aho, J.E. Hopcroft, J.D. Ullman, Projektowanie i analiza algorytmów komputerowych, PWN, Warszawa, 2007
3 C.M. Biship, H. Bishop: Deep Learning: Foundations and Concepts, Springer, 2023

Literatura uzupełniająca

1 L. Banachowski, W. Rytter, K.M. Diks, Algorytmy i struktury danych, Wydawnictwo Naukowe PWN, Warszawa, 2018

Jednostka realizująca Wydział Informatyki Data opracowania programu
Program opracował(a) dr inż. Anna Borowska,dr Joanna Karbowska-Chilińska,dr inż. Krzysztof Ostrowski 2025.06.04