Karta Przedmiotu
| Politechnika Białostocka | Wydział Informatyki | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Kierunek studiów | Data Science |
Poziom i forma studiów |
pierwszego stopnia stacjonarne |
||||||||||||||||||||||||
| Grupa przedmiotów / specjalność |
Profil kształcenia | ogólnoakademicki | |||||||||||||||||||||||||
| Nazwa przedmiotu | Algorytmy i struktury danych | E | Kod przedmiotu | DS1S4ASD | |||||||||||||||||||||||
| Rodzaj zajęć | obowiązkowy | ||||||||||||||||||||||||||
| Formy zajęć i liczba godzin | W | Ć | L | P | Ps | T | S | Semestr | 4 | ||||||||||||||||||
| 30 | 30 | Punkty ECTS | 5 | ||||||||||||||||||||||||
| Program obowiązuje od | 2025/2026 | ||||||||||||||||||||||||||
| 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 |
||||||||||||||||||||||||||
| Ramowe 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. | ||||||||||||||||||||||||||
| Inne informacje o przedmiocie | treści przedmiotu odwołują się do zasad zrównoważonego rozwoju | ||||||||||||||||||||||||||
| przedmiot ma związek z prowadzoną na Uczelni działalnością naukową | |||||||||||||||||||||||||||
| Wyliczenie: | Nakład pracy studenta związany z: | Godzin ogółem |
W tym kontaktowych |
W tym praktycznych |
|||||||||||||||||||||||
| udziałem w wykładach | 30 | 30 | |||||||||||||||||||||||||
| udziałem w innych formach zajęć | 30 | 30 | 30 | ||||||||||||||||||||||||
| indywidualnym wsparciem merytorycznym procesu uczenia się, udziałem w egzaminie i zaliczeniach organizowanych poza planem zajęć | 4 | 4 | |||||||||||||||||||||||||
| przygotowaniem do egzaminu | 20 | ||||||||||||||||||||||||||
| przygotowaniem do bieżących zajęć o charakterze praktycznym | 25 | 25 | |||||||||||||||||||||||||
| wykonaniem projektu | 16 | 16 | |||||||||||||||||||||||||
| Razem godzin: | 125 | 64 | 71 | ||||||||||||||||||||||||
| Razem punktów ECTS: | 5 | 2.6 | 2.8 | ||||||||||||||||||||||||
| Zakładane kierunkowe efekty uczenia się | Wiedza | Umiejętności | Kompetencje społeczne |
||||||||||||||||||||||||
| DS1_W03 | DS1_U04 | DS1_K01 | |||||||||||||||||||||||||
| DS1_W08 | DS1_U06 | ||||||||||||||||||||||||||
| DS1_W19 | DS1_U15 | ||||||||||||||||||||||||||
| Cele i treści ramowe sformułował(a) | dr inż. Krzysztof Ostrowski | Data: | 29/05/2025 | ||||||||||||||||||||||||
| Realizacja w roku akademickim | 2026/2027 | ||||||||||||||||||||||||||
| Treści programowe | |||||||||||||||||||||||||||
| 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. | ||||||||||||||||||||||||||
| 2. | Znaczenie złożoności algorytmów w koncepcji zrównoważonego rozwoju. | ||||||||||||||||||||||||||
| 3. | Techniki kodowania algorytmów w praktyce: zachłanna, prog. dynamiczne, dziel i zwyciężaj. | ||||||||||||||||||||||||||
| 4. | Znaczenie złożoności algorytmów i doboru struktur danych w koncepcji zrównoważonego rozwoju. | ||||||||||||||||||||||||||
| 5. | Znaczenie złożoności algorytmów i doboru struktur danych w koncepcji zrównoważonego rozwoju. | ||||||||||||||||||||||||||
| 6. | Implementacja drzew: słowników (BST/AVL) oraz specjalizowanych (KD-, sufiksowe-). | ||||||||||||||||||||||||||
| 7. | Implementacja drzew: słowników (BST/AVL) oraz specjalizowanych (KD-, sufiksowe-). | ||||||||||||||||||||||||||
| 8. | Implementacja drzew: słowników (BST/AVL) oraz specjalizowanych (KD-, sufiksowe-). | ||||||||||||||||||||||||||
| 9. | Rozwiązywanie problemów grafowych: najkrótsze ścieżki i TSP. | ||||||||||||||||||||||||||
| 10. | Rozwiązywanie problemów grafowych: najkrótsze ścieżki i TSP. | ||||||||||||||||||||||||||
| 11. | Rozwiązywanie problemów grafowych: najkrótsze ścieżki i TSP. | ||||||||||||||||||||||||||
| 12. | Optymalizacja w uczeniu maszynowym: metody gradient descent. | ||||||||||||||||||||||||||
| 13. | Optymalizacja w uczeniu maszynowym: metody gradient descent. | ||||||||||||||||||||||||||
| 14. | Optymalizacja w uczeniu maszynowym: metody gradient descent. | ||||||||||||||||||||||||||
| 15. | Zaliczenie pracowni specjalistycznej. | ||||||||||||||||||||||||||
| Metody dydaktyczne (realizacja stacjonarna) |
|||||||||||||||||||||||||||
| W | wykład problemowy; wykład informacyjny; wykład z prezentacją multimedialną | ||||||||||||||||||||||||||
| Ps | programowanie z użyciem komputera | ||||||||||||||||||||||||||
| Metody dydaktyczne (realizacja zdalna) |
|||||||||||||||||||||||||||
| W | wykład problemowy; wykład informacyjny; wykład z prezentacją multimedialną | ||||||||||||||||||||||||||
| - | |||||||||||||||||||||||||||
| Forma zaliczenia | |||||||||||||||||||||||||||
| W | egzamin pisemny z pytaniami otwartymi<br>PS: ocena programów | ||||||||||||||||||||||||||
| - | |||||||||||||||||||||||||||
| Warunki zaliczenia | |||||||||||||||||||||||||||
| W | Uzyskanie min. 30% z każdego E1-E3, a po spełnieniu tego warunku ostateczna ocena wynika z sumy uzyskanych punktów. Kryteria oceny: [ 0 – 50]% punktów – 2.0 (50 – 60]% punktów – 3.0 (60 – 70]% punktów – 3.5 (70 – 80]% punktów – 4.0 (80 – 90]% punktów – 4.5 (90 – 100]% punktów – 5.0 |
||||||||||||||||||||||||||
| Ps | Uzyskanie min. 30% z każdego E4-E7, a po spełnieniu tego warunku ostateczna ocena wynika z sumy uzyskanych punktów. Kryteria oceny: [ 0 – 50]% punktów – 2.0 (50 – 60]% punktów – 3.0 (60 – 70]% punktów – 3.5 (70 – 80]% punktów – 4.0 (80 – 90]% punktów – 4.5 (90 – 100]% punktów – 5.0 |
||||||||||||||||||||||||||
| Symbol efektu | Zakładane efekty uczenia się | Odniesienie do efektów uczenia się zdefiniowanych dla kierunku studiów | |||||||||||||||||||||||||
| Wiedza | Umiejętności | Kompetencje społeczne |
|||||||||||||||||||||||||
| Wiedza: student zna i rozumie | |||||||||||||||||||||||||||
| E1 | podstawowe pojęcia z zakresu algorytmiki | ||||||||||||||||||||||||||
| E2 | 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 | ||||||||||||||||||||||||||
| E3 | metody implementacji efektywnych rozwiązań obliczeniowych | ||||||||||||||||||||||||||
| Umiejętności: student potrafi | |||||||||||||||||||||||||||
| E4 | 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 | ||||||||||||||||||||||||||
| E5 | optymalizować algorytmy, w tym do zastosowań ML/AI | ||||||||||||||||||||||||||
| E6 | analizować złożoność i efektywność rozwiązań | ||||||||||||||||||||||||||
| Kompetencje społeczne: student jest gotów do | |||||||||||||||||||||||||||
| E7 | optymalizacji rozwiązań pod kątem wydajności i skalowalności | ||||||||||||||||||||||||||
| Symbol efektu | Sposób weryfikacji efektu uczenia się | Forma zajęć na której zachodzi weryfikacja | |||||||||||||||||||||||||
| E1 | egzamin pisemny | W | |||||||||||||||||||||||||
| E2 | egzamin pisemny | W | |||||||||||||||||||||||||
| E3 | egzamin pisemny | W | |||||||||||||||||||||||||
| E4 | implementacja programów | Ps | |||||||||||||||||||||||||
| E5 | implementacja programów | Ps | |||||||||||||||||||||||||
| E6 | implementacja programów | Ps | |||||||||||||||||||||||||
| E7 | implementacja programów | Ps | |||||||||||||||||||||||||
| 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 | ||||||||||||||||||||||||||
| . | - | ||||||||||||||||||||||||||
| Koordynator przedmiotu: | dr inż. Anna Borowska, dr Joanna Karbowska-Chilińska, dr inż. Krzysztof Ostrowski | Data: | 04/06/2025 | ||||||||||||||||||||||||