Algorytmy i struktury danych
Informacje ogólne
Kod przedmiotu: | 1000-I1ASD | Kod Erasmus / ISCED: |
(brak danych)
/
(0613) Tworzenie i analiza oprogramowania i aplikacji
![]() |
Nazwa przedmiotu: | Algorytmy i struktury danych | ||
Jednostka: | Wydział Matematyki i Informatyki | ||
Grupy: | |||
Punkty ECTS i inne: |
6.00 ![]() ![]() |
||
Język prowadzenia: | polski | ||
Wymagania wstępne: | Wstęp do programowania Znajomość języka programowania, pozwalająca na implementacje algorytmów |
||
Rodzaj przedmiotu: | przedmiot obowiązkowy |
||
Całkowity nakład pracy studenta: | 30 godz. – wykład; 30 godz. – ćwiczenia 50 godz. – praca własna: bieżące przygotowanie do zajęć, praca z literaturą 35 godz. – praca własna: przygotowanie do egzaminu 3 godz. – egzamin RAZEM: 148 godz. 6 pkt. ECTS |
||
Efekty uczenia się - wiedza: | (W1) ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie programowania, algorytmów i złożoności (por. K_W02 ) (W2) zna najważniejsze struktury danych i wykonywane na nich operacje oraz ich wpływ na złożoność obliczeniową algorytmów i zarządzanie pamięcią (por. K_W05, również K_W07) (W3) zna podstawowe metody projektowania, analizowania i programowania algorytmów (projektowanie strukturalne, rekurencja, metoda dziel i zwyciężaj, metoda zachłanna, programowanie dynamiczne, złożoność obliczeniowa), por. K_W04 (W4) zna podstawowe klasyczne algorytmy i ich zastosowania: algorytmy wyszukiwania i porządkowania, algorytmy grafowe, tekstowe, geometryczne (por. K_W02 i K_W04) |
||
Efekty uczenia się - umiejętności: | (U1) potrafi zastosować wiedzę matematyczną do formułowania, analizowania i rozwiązywania obliczeniowych problemów informatycznych, analizuje je pod kątem możliwości ich algorytmicznego rozwiązania z jak najlepszą złożonością obliczeniową (por. K_U01) (U2) projektuje, analizuje pod kątem poprawności i złożoności obliczeniowej oraz programuje algorytmy; wykorzystuje podstawowe techniki algorytmiczne i umie dopasować struktury danych i metody projektowania algorytmów odpowiednie do danego problemu (por. K_U07) (U3) implementuje podstawowe klasyczne algorytmy, określa ich złożoność obliczeniową oraz umie dostosować je do rozwiązania konkretnych, specyficznych problemów (por. K_U07) (U4) potrafi pisać, uruchamiać i testować programy w wybranym środowisku programistycznym (por. K_U05) (U5) potrafi pracować indywidualnie nad projektem programistycznym, w tym także potrafi zarządzać swoim czasem oraz podejmować zobowiązania i dotrzymywać terminów (por. K_U03) |
||
Efekty uczenia się - kompetencje społeczne: | (K1) myśli twórczo w celu udoskonalenia istniejących bądź stworzenia nowych rozwiązań (w zakresie problemów algorytmicznych, por. K_K02) (K2) jest gotów do pokonywania trudności stojących na drodze do realizacji założonego celu i systematycznej pracy nad projektem programistycznym; jest nastawiony na jak najlepsze i terminowe wykonanie zadania (por. K_K04) (K3) jest gotów do krytycznej oceny swojej wiedzy i dalszego jej doskonalenia z wykorzystaniem różnych źródeł informacji (por. K_K03) |
||
Metody dydaktyczne eksponujące: | - pokaz |
||
Metody dydaktyczne podające: | - wykład informacyjny (konwencjonalny) |
||
Metody dydaktyczne poszukujące: | - ćwiczeniowa |
||
Metody dydaktyczne w kształceniu online: | - metody rozwijające refleksyjne myślenie |
||
Skrócony opis: |
Celem przedmiotu jest przedstawienie podstawowych metod tworzenia algorytmów, omówienie wybranych algorytmów i ich zastosowań oraz struktur danych używanych w implementacjach tych algorytmów. Analiza algorytmów i struktur danych dotyczy złożoności obliczeniowej implementacji algorytmów. W czasie zajęć laboratoryjnych studenci analizują, implementują i testują wybrane algorytmy stosując odpowiednie struktury danych oraz wyznaczają rząd złożoności niektórych programów. |
||
Pełny opis: |
Omawiane są następujące zagadnienia : • Podstawowe algorytmy i struktury danych • Elementy analizy algorytmów • Sortowanie • Metody projektowania algorytmów • Grafy • Metody przeszukiwania grafów • Ukorzenione drzewa binarne • Drzewa poszukiwań binarnych • Zbiory rozłączne i drzewa rozpinające • Znajdowanie najkrótszych dróg • Algorytmy tekstowe • Algorytmy geometryczne na płaszczyźnie • Algorytmy aproksymacyjne |
||
Literatura: |
Literatura podstawowa: • L. Banachowski, K. Diks, W. Rytter, Algorytmy i struktury danych, WNT, 2018 • T.H. Cormen, Ch.E. Leiserson, R.L. Rivest, C. Stein, Wprowadzenie do algorytmów, WNT PWN, 2012 • D. Harel, Rzecz o istocie informatyki. Algorytmika, WNT, 1992. • M.M. Syslo, N. Deo, J.S. Kowalik, Algorytmy optymalizacji dyskretnej z programami w języku Pascal, WN PWN, 1997 • M.M. Sysło, Algorytmy, Helion, 2016 • M.M. Sysło, Piramidy, szyszki i inne konstrukcje programistyczne, Helion, 2015 • J. Tomasiewicz, Zaprzyjaźnij się z algorytmami, Przewodnik dla początkujących i średnio zaawansowanych, PWN, 2016 Literatura uzupełniająca: • A.V. Aho, J.E. Hopcroft, J.D. Ullman, Algorytmy i struktury danych, Helion, 2003. • R.J. Wilson, Wprowadzenie do teorii grafów, PWN 2016 r. • P. Stańczyk, Algorytmika praktyczna. Nie tylko dla mistrzów, PWN, 2009. • P. Mikołajczyk, Wprowadzenie do STL, UMCS, Lublin 2012. |
||
Metody i kryteria oceniania: |
Na zaliczenie przedmiotu składa się : Zaliczenie laboratorium na podstawie oceny z kolokwium (W1-W4, U1-U3, K1), oceny z implementacji algorytmów (U3-U5) i ich prezentacji (K1-K3). Ocena pozytywna z egzaminu pisemnego (W1-W4, U1-U3, K1). |
Zajęcia w cyklu "Semestr letni 2017/18" (zakończony)
Okres: | 2018-02-26 - 2018-09-30 |
![]() |
Typ zajęć: |
Laboratorium, 30 godzin, 16 miejsc ![]() Wykład, 30 godzin, 150 miejsc ![]() |
|
Koordynatorzy: | Łukasz Mikulski, Maciej Sysło | |
Prowadzący grup: | Anna Kwiatkowska, Łukasz Mikulski, Andrzej Mróz, Maciej Sysło, Katarzyna Zając | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin
Laboratorium - Zaliczenie na ocenę Wykład - Egzamin |
Zajęcia w cyklu "Semestr letni 2018/19" (zakończony)
Okres: | 2019-02-25 - 2019-09-30 |
![]() |
Typ zajęć: |
Laboratorium, 30 godzin, 16 miejsc ![]() Wykład, 30 godzin, 150 miejsc ![]() |
|
Koordynatorzy: | Łukasz Mikulski | |
Prowadzący grup: | Anna Kwiatkowska, Łukasz Mikulski, Andrzej Mróz, Katarzyna Zając | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin
Laboratorium - Zaliczenie na ocenę Wykład - Egzamin |
Zajęcia w cyklu "Semestr letni 2019/20" (zakończony)
Okres: | 2020-02-29 - 2020-09-20 |
![]() |
Typ zajęć: |
Laboratorium, 30 godzin, 16 miejsc ![]() Wykład, 30 godzin, 150 miejsc ![]() |
|
Koordynatorzy: | Łukasz Mikulski | |
Prowadzący grup: | Damian Kurpiewski, Anna Kwiatkowska, Łukasz Mikulski, Andrzej Mróz, Marcin Piątkowski, Katarzyna Zając | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin
Laboratorium - Zaliczenie na ocenę Wykład - Egzamin |
Zajęcia w cyklu "Semestr letni 2020/21" (zakończony)
Okres: | 2021-02-22 - 2021-09-20 |
![]() |
Typ zajęć: |
Laboratorium, 30 godzin, 16 miejsc ![]() Wykład, 30 godzin, 150 miejsc ![]() |
|
Koordynatorzy: | Łukasz Mikulski | |
Prowadzący grup: | Damian Kurpiewski, Anna Kwiatkowska, Łukasz Mikulski, Andrzej Mróz, Katarzyna Zając | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin
Laboratorium - Zaliczenie na ocenę Wykład - Egzamin |
Zajęcia w cyklu "Semestr letni 2021/22" (w trakcie)
Okres: | 2022-02-21 - 2022-09-30 |
![]() |
Typ zajęć: |
Laboratorium, 30 godzin, 16 miejsc ![]() Wykład, 30 godzin, 150 miejsc ![]() |
|
Koordynatorzy: | Łukasz Mikulski | |
Prowadzący grup: | Anna Kwiatkowska, Łukasz Mikulski, Andrzej Mróz, Katarzyna Zając | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin
Laboratorium - Zaliczenie na ocenę Wykład - Egzamin |
Właścicielem praw autorskich jest Uniwersytet Mikołaja Kopernika w Toruniu.