Nazwa przedmiotu:
Algorytmy zaawansowane
Koordynator przedmiotu:
Dr inż. Michał Dębski, Dr Michał Tuczyński
Status przedmiotu:
Obowiązkowy
Poziom kształcenia:
Studia II stopnia
Program:
Informatyka i Systemy Informacyjne
Grupa przedmiotów:
Wspólne
Kod przedmiotu:
1120-INMSI-MSP-0009
Semestr nominalny:
1 / rok ak. 2020/2021
Liczba punktów ECTS:
4
Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
1. godziny kontaktowe – 45 h; w tym a. obecność na wykładach – 30 h b. obecność na ćwiczeniach – 0 h c. obecność na zajęciach projektowych – 15 h 2. przygotowanie do ćwiczeń – 0 h 3. przygotowanie do zajęc projektowych – 15 h 4. zapoznanie się z literaturą – 5 h 5. konsultacje – 5 h 6. przygotowanie do egzaminu i obecność na egzaminie – 30 h Łączny nakład pracy studenta wynosi 100 h co odpowiada 4 pkt. ECTS
Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
1. obecność na wykładach – 30 h 2. obecność na ćwiczeniach – 0 h 3. obecność na zajęciach projektowych – 15 h 4. konsultacje – 5 h Razem 50 h, co odpowiada 2 pkt. ECTS
Język prowadzenia zajęć:
polski
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
1. obecność na zajęciach projektowych – 15 h 2. przygotowanie do zajęć projektowych – 15 h Razem 30 h, co odpowiada 1 pkt. ECTS
Formy zajęć i ich wymiar w semestrze:
  • Wykład30h
  • Ćwiczenia0h
  • Laboratorium0h
  • Projekt15h
  • Lekcje komputerowe0h
Wymagania wstępne:
Matematyka dyskretna, Algorytmy i struktury danych, Teoria algorytmów i obliczeń
Limit liczby studentów:
Bez limitu
Cel przedmiotu:
Celem przedmiotu jest zapoznanie studentów z zaawansowanymi metodami projektowania algorytmów, dowodzenia ich poprawności oraz obliczania złożoności. W szczególności student po zaliczeniu przedmiotu powinien znać: - algorytmy zachłanne, kody Huffmana, matroidy, - programowanie dynamiczne, problem mnożenia łańcucha macierzy, - algorytmy dziel i zdobywaj, mnożenie liczb całkowitych, mnożenie macierzy, znajdowanie pary najbliższych punktów, - zaawansowane algorytmy grafowe, problem maksymalnego skojarzenia w grafie, - algorytmy aproksymacyjne, schematy aproksymacji, problem sumy podzbioru.
Treści kształcenia:
Algorytmy zachłanne, kody Huffmana, matroidy, programowanie dynamiczne, mnożenie łańcucha macierzy, usuwanie rekursji, algorytmy dziel i zdobywaj, szacowanie złożoności obliczeniowej algorytmów, mnożenie liczb całkowitych, mnożenie macierzy, algorytmy geometrii obliczeniowej, znajdowanie pary najbliższych punktów, konstruowanie domknięcia wypukłego, problem wyszukiwania wzorca, algorytmy aproksymacyjne.
Metody oceny:
Na ocenę końcową składają się: punkty za egzamin końcowy (60%) oraz punkty za projekt programistyczny (40%).
Egzamin:
tak
Literatura:
1. L. Banachowski, K. Diks, W. Rytter, Algorytmy i struktury danych, WNT, 1997. 2. T.H. Cormen, C.E. Leiserson, R.L. Rivest, Wprowadzenie do algorytmów, WNT, 2000. 3. M.R. Garey, D.S. Johnson, Computers and Intractability, Freeman 1979. 4. M.A. Weiss, Data Structures and Algorithms in C++, Adison Wesley 1999.
Witryna www przedmiotu:
brak
Uwagi:

Efekty uczenia się

Profil ogólnoakademicki - wiedza

Charakterystyka W01
Posiada wiedzę o zaawansowanej algorytmice, strukturach danych i metodach tworzenia algorytmów
Weryfikacja: egzamin
Powiązane charakterystyki kierunkowe: I2_W02
Powiązane charakterystyki obszarowe: P7U_W, I.P7S_WG.o
Charakterystyka W02
Posiada szeroką wiedzę w zakresie teorii grafów
Weryfikacja: egzamin
Powiązane charakterystyki kierunkowe: I2SI_W07, I2_W01
Powiązane charakterystyki obszarowe: P7U_W, I.P7S_WG.o

Profil ogólnoakademicki - umiejętności

Charakterystyka U01
Potrafi wykorzystać wiedzę matematyczną do analizy i optymalizacji rozwiązań informatycznych
Weryfikacja: ocena projektu programistycznego, w tym terminowości
Powiązane charakterystyki kierunkowe: I2_U02
Powiązane charakterystyki obszarowe:
Charakterystyka U02
Potrafi projektować wydajne algorytmy i uzasadniać ich poprawność
Weryfikacja: ocena projektu programistycznego, w tym terminowości
Powiązane charakterystyki kierunkowe: I2_U03
Powiązane charakterystyki obszarowe:
Charakterystyka U03
Potrafi przeprowadzić analizę czasowej złożoności obliczeniowej algorytmu
Weryfikacja: ocena projektu programistycznego, w tym terminowości
Powiązane charakterystyki kierunkowe: I2_U03
Powiązane charakterystyki obszarowe:
Charakterystyka U04
Potrafi projektować algorytmy wielowątkowe i analizować ich wydajność
Weryfikacja: ocena projektu programistycznego, w tym terminowości
Powiązane charakterystyki kierunkowe: I2_U04
Powiązane charakterystyki obszarowe:
Charakterystyka U05
Potrafi pracować indywidualnie, w zespole oraz kierować niedużym zespołem
Weryfikacja: ocena projektu programistycznego, w tym terminowości
Powiązane charakterystyki kierunkowe: I2_U11
Powiązane charakterystyki obszarowe:

Profil ogólnoakademicki - kompetencje społeczne

Charakterystyka K01
Jest świadomy roli wiedzy w rozwiązywaniu problemów i rozumie potrzebę zasięgania opinii ekspertów
Weryfikacja: ocena projektu programistycznego, w tym terminowości
Powiązane charakterystyki kierunkowe: I2_K05
Powiązane charakterystyki obszarowe:
Charakterystyka K02
Ma świadomość odpowiedzialności za wspólnie realizowane zadania w ramach pracy zespołowej
Weryfikacja: ocena projektu programistycznego, w tym terminowości
Powiązane charakterystyki kierunkowe: I2_K05
Powiązane charakterystyki obszarowe: