Wydział Informatyki
Kierunek studiów Matematyka Stosowana Poziom i forma studiów pierwszego stopnia inżynierskie stacjonarne
Specjalność / Ścieżka dyplomowania Przedmiot wspólny Profil kształcenia praktyczny
Nazwa przedmiotu Algorytmy i struktury danych Kod przedmiotu MAT1ASD
Rodzaj przedmiotu obowiązkowy
Forma zajęć i liczba godzin W Ć L P Ps T S Semestr 3
30 30 Punkty ECTS 5
Przedmioty wprowadzające Logika i teoria mnogości (MAT1LTM),   Matematyka dyskretna (MAT1MDY),   Podstawy programowania (MAT1PPR),  
Cele przedmiotu

Celem przedmiotu jest wykształcenie umiejętności oceny efektywności algorytmu oraz projektowania efektywnych rozwiązań jeszcze przed fazą implementacji algorytmu. Student zostanie wyposażony na wykładzie w wiedzę na temat: metod wyznaczania/szacowania kosztów czasowych rozwiązań algorytmicznych, metod projektowania efektywnych rozwiązań algorytmicznych, metod projektowania efektywnych struktur danych, problemów trudnych obliczeniowo i rozwiązań przybliżonych. Student na pracowni specjalistycznej wykształci umiejętności: projektowania efektywnych obliczeniowo algorytmów i struktur danych, oceny efektywności zastosowanych rozwiązań, identyfikacji problemów trudnych obliczeniowo i stosowania rozwiązań przybliżonych dla tych problemów. Celem przedmiotu jest również wykształcenie umiejętności skutecznego komunikowania się w zakresie problemów inżynierskich i naukowych z przedstawicielami innych dziedzin.

Treści programowe

Wykład:
Poprawność algorytmu. Złożoność obliczeniowa algorytmu. Rekurencja jako technika kodowania algorytmów.Techniki:"dziel i zwyciężaj",zachłanna, programowania dynamiczne. Struktura drzewiasta słownika. Haszowanie Struktury danych do reprezentacji grafu. Algorytmy grafowe. Algorytmy przybliżone (aproksymacyjne). Technika powrotów. Problemy trudno rozwiązalne. Klasa NP i NPC.

Pracownia specjalistyczna:
implementacyjne rozwiązanie problemów o jak najmniejszej złożoności czasowej, wykorzystanie techniki dziel i zwyciężaj, metody zachłannej, programowania dynamicznego przy rozwiązywaniu problemów. Implementacja algorytmów grafowych. Algorytmy przybliżone dla problemów grafowych

Metody dydaktyczne

programowanie z użyciem komputera,   metoda przypadków,   klasyczna metoda problemowa,   wykład problemowy,   wykład informacyjny,  

Forma zaliczenia

Wykład - egzamin pisemny.
Pracownia specjalistyczna - ocena cząstkowych zadań problemowych.

Symbol efektu uczenia się Zakładane efekty uczenia się Odniesienie do kierunkowych efektów uczenia się
EU1 rozumie pojęcia poprawności oraz złożoności obliczeniowej algorytmu K_W09
K_W10
EU2 rozumie sposób działania standardowych metod projektowania efektywnych algorytmów i struktur danych K_W09
K_W10
EU3 wykorzystuje algorytmy przybliżone i heurystyki do problemów trudno rowiązywalnych K_U13
K_U19
EU4 wyznacza/szacuje złożoność czasową i pamięciową projektowanego algorytmu lub struktury danych K_U10
K_U11
K_U13
EU5 potrafi projektować efektywne rozwiązania dla zidentyfikowanego problemu inżynierskiego lub naukowego opisanego językiem zastosowań dziedzin spoza informatyki K_U10
K_U11
K_U13
K_U16
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 ocena cząstkowych zadań problemowych Ps
EU4 ocena cząstkowych zadań problemowych Ps
EU5 ocena cząstkowych zadań problemowych Ps
Bilans nakładu pracy studenta (w godzinach) Liczba godz.
Wyliczenie
1 - Udział w wykładach 30
2 - Udział w pracowni specjalistycznej 30
3 - Przygotowanie do pracowni specjalistycznej 8
4 - Udział w konsultacjach 5
5 - Realizacja zadań problemowych pracowni specjalistycznej 40
6 - Przygotowanie do egzaminu 10
7 - Obecność na egzaminie 2
RAZEM: 125
Wskaźniki ilościowe GODZINY ECTS
Nakład pracy studenta związany z zajęciami wymagającymi bezpośredniego udziału nauczyciela 67
(7)+(1)+(2)+(4)
2.7
Nakład pracy studenta związany z zajęciami o charakterze praktycznym 78
(5)+(3)+(2)
3.1
Literatura podstawowa

1. T.H. Cormen, C.E. Leiserson, R.L. Rivest. Wprowadzenie do algorytmów, WNT, Warszawa 2012.
2. R. Neapolitan, K. Namipour. Podstawy algorytmów z przykładami w C++, Helion, Warszawa 2006.
3. A.V. Aho, J.E. Hopcroft, J.D. Ullman. Projektowanie i analiza algorytmów komputerowych, PWN, Warszawa 2007.

Literatura uzupełniająca

1. L. Banachowski, K. Diks, W. Rytter. Algorytmy i struktury danych, WNT, Warszawa 2006.
2. Algorytmy i struktury danych : ćwiczenia. Cz.1, Analiza i techniki projektowania algorytmów, Białystok: Oficyna Wydawnicza Politechniki Białostockiej, 2020.
3. N. Wirth. Algorytmy + struktury danych = programy, WNT, Warszawa 2004.
4. J.P. Mueller, L. Massaron, Algorytmy dla bystrzaków, Gliwice : Helion, 2020.

Jednostka realizująca Katedra Informatyki Teoretycznej Data opracowania programu
Program opracował(a) dr inż. Anna Borowska,dr Joanna Karbowska-Chilińska 2021.04.20