Nazwa przedmiotu:
Algorytmy i struktury danych
Koordynator przedmiotu:
dr Anna M. Radzikowska
Status przedmiotu:
Obowiązkowy
Poziom kształcenia:
Studia I stopnia
Program:
Matematyka
Grupa przedmiotów:
Wspólne
Kod przedmiotu:
M1ASD
Semestr nominalny:
3 / rok ak. 2017/2018
Liczba punktów ECTS:
5
Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
Liczba godzin: 160 Podana liczba godzin obejmuje: uczestnictwo studenta w zajęciach (wykład 30h, ćwiczenia 30h, laboratoria 15h, konsultacje 5h) – 80 godzin. praca samodzielna: zapoznanie się z materiałem przedstawionym na zajęciach oraz zalecaną literaturą, rozwiązanie zalecanych zadań, przygotowanie wstępnych kodów niezbędnych w zajęciach laboratoryjnych, przygotowanie do sprawdzianów i egzaminu – 80 godzin.
Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
3
Język prowadzenia zajęć:
polski
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
1 (laboratoria 15h, przygotowania do laboratoriów 15h)
Formy zajęć i ich wymiar w semestrze:
  • Wykład30h
  • Ćwiczenia30h
  • Laboratorium15h
  • Projekt0h
  • Lekcje komputerowe0h
Wymagania wstępne:
Przedmiotu poprzedzające: Podstawy programowania Matematyka dyskretna. Wymagania wstępne: Biegła znajomość podstaw programowania, umiejętność programowania w języku wysokiego poziomu (np., C++, C#) Znajomość podstaw matematyki dyskretnej, w szczególności teorii grafów, równań rekurencyjnych, funkcji tworzących.
Limit liczby studentów:
Bez limitu
Cel przedmiotu:
Zapoznanie studentów z podstawowymi technikami programowania, popularnymi algorytmami i strukturami danych o istotnym znaczeniu w zastosowaniach praktycznych, oraz metodami analizy algorytmów pod względem ich poprawności i złożoności.
Treści kształcenia:
Podstawy analizy algorytmów: ich semantyczna poprawność i złożoność obliczeniowa (czasowa i pamięciowa). Podstawowe techniki programowania: rekursja, metoda „dziel i zwyciężaj”, metoda zachłanna, programowanie dynamiczne, zastępowanie rekursji algorytmami iteracyjnymi przy wykorzystaniu struktury stosu. Problem porządkowania: algorytmy sortowania wewnętrznego (algorytm sortowania szybkiego, algorytm sortowania przez kopcowanie, elementarne algorytmy sortowania), algorytmy sortowania plików, analiza tych algorytmów. Problem selekcji: algorytm Hadiana–Sobela, algorytm Hoore’a, algorytm selekcji liniowej, analiza tych algorytmów. Struktury słownikowe: listy, drzewa poszukiwań binarnych, drzewa AVL, B–drzewa, drzewa Patricia; ich zastosowania. Metody wyszukiwania w zbiorze nieuporządkowanym: funkcje mieszające i metody usuwania kolizji Metody reprezentacji grafów i podstawowe algorytmy grafowe (metody przeszukiwania grafu, algorytmy wyznaczania cykli, metody znajdowania najkrótszych ścieżek).
Metody oceny:
Obecność na ćwiczeniach jest obowiązkowa, dopuszczalne są maksimum 2 nieusprawiedliwione nieobecności na zajęciach. W trakcie semestru student może uzyskać 30 punktów z 2 prac kontrolnych oraz punkty za aktywność na ćwiczeniach. W ostatnim tygodniu semestru przewidziane jest 1 kolokwium poprawkowe. Dla dopuszczenie do egzaminu  wymagane jest uzyskanie min. 15 punktów. Egzamin obejmuje część pisemną i ustną. Za część pisemną można uzyskać max. 30 punktów. Ocena ostateczna z przedmiotu jest łączną oceną uzyskaną na ćwiczeniach i na egzaminie. 
Egzamin:
tak
Literatura:
1. Banachowski L.,Diks K.,Rytter W.: Algorytmy i struktury danych, Wydawnictwo Naukowo-Techniczne, Warszawa 1996. 2. Banachowski L., Kreczmar A.: Elementy analizy algorytmów, Wydawnictwo Naukowo-Techniczne, Warszawa 1982. 3. Cormen T.H., Leiserson C.E., Rivest R.L.: Wprowadzenie do algorytmów, Wydawnictwo Naukowo-Techniczne, Warszawa 1998. 4. Sedgewick R.: Algorithms in C.
Witryna www przedmiotu:
brak
Uwagi:

Efekty uczenia się

Profil ogólnoakademicki - wiedza

Efekt ASD_W_01
Ma wiedzę w zakresie podstaw algorytmiki: podstawowe struktury danych: stosy, kolejki, kopce, słowniki (listy, drzewa BST, AVL, PATRICIA, B-drzewa). podstawowe techniki programowania i ich zastosowania: metoda „dziel i zwyciężaj”, metoda zachłanna, programowanie dynamiczne, metody z nawracaniem algorytmy sortowania (wewnętrznego, zewnętrznego) algorytmy selekcji podstawowe metody haszowania. wybrane algorytmy grafowe.
Weryfikacja: Sprawdziany pisemne, Egzamin (część pisemna I ustna)
Powiązane efekty kierunkowe:
Powiązane efekty obszarowe:
Efekt ASD_W_02
Zna podstawowe metody teoretycznej analizy algorytmów w zakresie semantycznej poprawności oraz czasowej i pamięciowej złożoności obliczeniowej.
Weryfikacja: Sprawdziany pisemne, Egzamin (część pisemna I ustna)
Powiązane efekty kierunkowe:
Powiązane efekty obszarowe:
Efekt ASD_W_03
Zna i rozumie pojęcia z zakresu relacji porządku (częściowego, liniowego), grafów i ich typów i własności, równań rekurencyjnych.
Weryfikacja: Sprawdziany pisemne, Egzamin (część pisemna I ustna)
Powiązane efekty kierunkowe:
Powiązane efekty obszarowe:

Profil ogólnoakademicki - umiejętności

Efekt ASD_U1
Potrafi przedstawić poprawne rozumowanie matematyczne i powiązać wybrane problemy matematyczne (rachunek zdań, indukcja matematyczna, rekurencja) dla potrzeb rozwiązania i analizy problemu algorytmicznego.
Weryfikacja: Sprawdziany pisemne, Egzamin (część pisemna I ustna)
Powiązane efekty kierunkowe:
Powiązane efekty obszarowe:
Efekt ASD_U_02
Posiada umiejętność analizy algorytmu w zakresie semantycznej poprawności złożoności obliczeniowej (czasowej i pamięciowej).
Weryfikacja: Sprawdziany pisemne, Egzamin (część pisemna I ustna)
Powiązane efekty kierunkowe:
Powiązane efekty obszarowe:
Efekt ASD_U_03
Potrafi samodzielnie zapisać w pseudokodzie rozwiązanie prostych problemów algorytmicznych i je zaimplementować w języku programowania. wykorzystać dostępne klasy, struktury, funkcje dla rozwiązania prostych problemów algorytmicznych.
Weryfikacja: LABORATORIUM (ZALICZENIE)
Powiązane efekty kierunkowe:
Powiązane efekty obszarowe:

Profil ogólnoakademicki - kompetencje społeczne

Efekt ASD_KS_01
Rozumie potrzebę uczenia się przez całe życie
Weryfikacja: EGZAMIN
Powiązane efekty kierunkowe: M1_K01
Powiązane efekty obszarowe:
Efekt ASD_KS_02
Potrafi współdziałać i pracować w grupie, przyjmując w niej różne role.
Weryfikacja: ĆWICZENIA
Powiązane efekty kierunkowe: M1_K02
Powiązane efekty obszarowe:
Efekt ASD_KS_03
Rozumie potrzebę podnoszenia kompetencji zawodowych i osobistych
Weryfikacja: WYKŁAD, ĆWICZENIA
Powiązane efekty kierunkowe: M1_K03
Powiązane efekty obszarowe: