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:
1120-MA000-LSP-0231
Semestr nominalny:
3 / rok ak. 2015/2016
Liczba punktów ECTS:
5
Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
1. godziny kontaktowe – 83 h; w tym a) obecność na wykładach – 30 h b) obecność na ćwiczeniach – 30 h c) obecność na laboratoriach – 15 h d) obecność na egzaminie – 3 h e) konsultacje – 5 h 2. praca własna studenta – 50 h; w tym a) przygotowanie do ćwiczeń i do kolokwiów – 15 h b) przygotowanie do zajęć laboratoryjnych – 15 h b) zapoznanie się z literaturą – 10 h c) przygotowanie do egzaminu – 10 h Razem 133 h, co odpowiada 5 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 – 30 h 3. obecność na laboratoriach – 15 h 4. obecność na egzaminie – 3 h 4. konsultacje – 5 h Razem 83 h, co odpowiada 3 pkt. ECTS
Język prowadzenia zajęć:
polski
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
1. obecność na laboratoriach – 15 h 2. przygotowanie do zajęć laboratoryjnych – 15 h Razem 30 h, co odpowiada 1 pkt. ECTS
Formy zajęć i ich wymiar w semestrze:
  • Wykład30h
  • Ćwiczenia30h
  • Laboratorium15h
  • Projekt0h
  • Lekcje komputerowe0h
Wymagania wstępne:
Przedmioty poprzedzające: - Programowanie - Matematyka dyskretna Wymagania wstępne: - Znajomość programowania strukturalnego i obiektowego, umiejętność programowania w języku C i C++ (ewentualnie C#) - Znajomość podstaw matematyki dyskretnej, w szczególności teorii grafów, kombinatoryki, równań rekurencyjnych.
Limit liczby studentów:
Bez limitu
Cel przedmiotu:
Celem przedmiotu jest zapoznanie studentów z podstawami algorytmiki oraz metodami analizy programów pod względem ich poprawności i złożoność obliczeniowej.
Treści kształcenia:
1. Wprowadzenie do algorytmiki, podstawowe struktury danych. 2. Metody analizy złożoności obliczeniowej (czasowej, pamięciowej) algorytmów. 3. Sortowanie: a. Algorytmy sortowanie wewnętrzne: sortowanie szybkie, sortowanie przez kopcowanie, sortowanie przez scalanie, elementarne algorytmy sortowania (sortowanie przez wybór, sortowanie przez wstawianie, sortowanie przez binarne wstawki, sortowanie bąbelkowe). b. Sortowanie plików. 4. Selekcja: algorytm Hoare’a, algorytm Hadiana-Sobela, algorytm ‘’magicznych piątek”. 5. Struktury słownikowe a. Rozwiązania listowe. b. Drzewa: drzewa wyszukiwani binarnych (BST), zrównoważone drzewa BST (drzewa AVL), optymalne drzewa BST, B-drzewa, drzewa PATRICIA. 6. Metody haszowania. 7. Grafy: a. Metody reprezentacji grafów i digrafów b. Metody obchodzenia grafów (DFS, BFS) c. Algorytm Dijkstry znajdowania najkrótszych ścieżek z danego wierzchołka d. Algorytm Robertsa-Foresa wyznaczania cykli Hamiltona. e. Problem mostów królewieckich. 8. Algorytmy z nawracaniem (problem komiwojażera, problemy szachowe i optymalizacyjne, problemy kliki i kolorowania grafu)
Metody oceny:
Ćwiczenia (40p): • 2 kolokwia (20p i 10p) • aktywność na zajęciach 10p. Do zaliczenia ćwiczeń wymagane jest uzyskanie min. 21p. Laboratoria (20p) obejmują 6 zadań ocenianych i 1 zadanie nieoceniane. Z zadań ocenianych: cztery oceniane są na 3p oraz dwa na 4p. Do zaliczenia laboratoriów wymagane jest uzyskanie min. 11p. Egzamin obejmuje część pisemną i część ustną. Egzamin pisemny (40p), w tym • 10 pytań testu wielokrotnego wyboru (20p) • 2 zadania problemowe po 10p każde. Do części pisemnej przystępuje student, który uzyskał zaliczenia ćwiczeń i zaliczenie laboratoriów. Jeśli student uzyskał z ćwiczeń min. 30p i min.11p z laboratoriów, to może być zwolniony z części pisemnej egzaminu z oceną wejściową na egzamin ustny: od 41p – 3,0; od 45p – 4,0; od 50p – 4,5; od 55p – 5,0. Osoby, które przystąpiły do egzaminu pisemnego, otrzymują oceną łączną za egzamin pisemny, ćwiczenia i laboratoria wynikającą z sumarycznej liczby punktów: od 51p – 3,0; od 61p – 3,5; od 71p – 4,0; od 81p – 4,5; od 91p – 5,0. Studenci, którzy po egzaminie pisemnym uzyskali ocenę min. 4,0 mogą być zwolnieni z egzaminu ustnego – wówczas ocena z przedmiotu jest uzyskaną dotąd oceną. Egzamin ustny zdaje student, który: • odpowiedział prawidłowo na min. 2 spośród 3 wylosowanych pytań • prawidłowo rozwiązał wylosowany problem. Studenci, którzy nie uzyskali zwolnienia z egzaminu ustnego (bądź zrezygnowali z możliwości zwolnienia) uzyskują ocenę łączną z przedmiotu: • 75% oceny uzyskanej na podstawie ćwiczeń, laboratoriów i/lub egzaminu pisemnego • 25% oceny uzyskanej z egzaminu ustnego.
Egzamin:
tak
Literatura:
1. L. Banachowski, K. Diks, W. Rytter: Algorytmy I Struktury Danych. Wydawnictwo Naukowo-Techniczne, 1996. 2. A. A. Aho, J. E. Hopcroft, J. D. Ullman: Projektowanie i analiza algorytmów. Wydawnictwo HELION, 2003. 3. A. A. Aho, J. E. Hopcroft, J. D. Ullman: Algorytmy I Struktury Danych. Wydawnictwo HELION, 2003. 4. T. C. Cormen, C. E. Leiserson, R. R. Rivest, C. Stein: Wprowadzenie do algorytmów. Wydawnictwo Naukowo PWN, 2013. 5. R. Sedgewick: Algorytmy w C++. Oficyna Wydawnicza README, 1999.
Witryna www przedmiotu:
e.mini.pw.edu.pl
Uwagi:

Efekty uczenia się

Profil ogólnoakademicki - wiedza

Efekt ASD_W01
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, plików) • algorytmy selekcji • wybrane algorytmy grafowe • podstawowe metody haszowania.
Weryfikacja: • Kolokwia, • Egzamin (pisemny, ustny), • Udział w dyskusjach, odpowiedzi ustne, aktywność na ćwiczeniach.
Powiązane efekty kierunkowe: ML_W16
Powiązane efekty obszarowe: X1A_W01, X1A_W03, X1A_W04
Efekt ASD_W02
Ma wiedzę w zakresie podstaw programowania, w tym programowania deklaratywnego i obiektowego. Zna podstawowe metody teoretyczne analizy algorytmów w zakresie semantycznej poprawności oraz czasowe i pamięciowej złożoności obliczeniowej.
Weryfikacja: • Kolokwia, • Egzamin (pisemny, ustny), • Udział w dyskusjach, odpowiedzi ustne, aktywność na ćwiczeniach.
Powiązane efekty kierunkowe: ML_W15
Powiązane efekty obszarowe: X1A_W01, X1A_W04, X1A_W05

Profil ogólnoakademicki - umiejętności

Efekt ASD_U1
Potrafi w sposób zrozumiały, przedstawić poprawne rozumowanie matematyczne, formułować twierdzenia i definicje, posługuje się rachunkiem zdań i kwantyfikatorów, językiem teorii mnogości, indukcją matematyczną, rekurencją.
Weryfikacja: • Kolokwia, • Zadania laboratoryjne, • Egzamin (pisemny, ustny), • Udział w dyskusjach, odpowiedzi ustne, aktywność na ćwiczeniach.
Powiązane efekty kierunkowe: ML_U09
Powiązane efekty obszarowe: X1A_U01, X1A_U02
Efekt ASD_U02
Potrafi analizować poprawność prostych algorytmów oraz ich złożoność czasową i pamięciową oraz testować (debugging) zaimplementowany przez siebie kod źródłowy.
Weryfikacja: • Kolokwia, • Zadania laboratoryjne, • Egzamin (pisemny, ustny), • Udział w dyskusjach, odpowiedzi ustne, aktywność na ćwiczeniach.
Powiązane efekty kierunkowe: ML_U16
Powiązane efekty obszarowe: X1A_U01, X1A_U04
Efekt ASD_U03
Potrafi formułować w postaci pseudokodu rozwiązania prostych problemów algorytmicznych (w szczególności zagadnień dot. działań na tablicach i macierzach) oraz je implementować, używając wybranego deklaratywnego języka programowania.
Weryfikacja: • Kolokwia, • Zadania laboratoryjne, • Egzamin (pisemny, ustny), • Udział w dyskusjach, odpowiedzi ustne, aktywność na ćwiczeniach.
Powiązane efekty kierunkowe: ML_U16
Powiązane efekty obszarowe: X1A_U01, X1A_U04

Profil ogólnoakademicki - kompetencje społeczne

Efekt ASD_K01
Rozumie potrzebę uczenia się przez całe życie.
Weryfikacja: • Kolokwia, • Zadania laboratoryjne, • Egzamin (pisemny, ustny), • Udział w dyskusjach, odpowiedzi ustne, aktywność na ćwiczeniach.
Powiązane efekty kierunkowe: ML_KS01
Powiązane efekty obszarowe: X1A_K01
Efekt ASD_K02
Potrafi współdziałać i pracować w grupie, przyjmując w niej różne role
Weryfikacja: • Kolokwia, • Zadania laboratoryjne, • Egzamin (pisemny, ustny), • Udział w dyskusjach, odpowiedzi ustne, aktywność na ćwiczeniach.
Powiązane efekty kierunkowe: ML_KS02
Powiązane efekty obszarowe: X1A_K02
Efekt ASD_K03
Rozumie potrzebę podnoszenia kompetencji zawodowych i osobistych.
Weryfikacja: • Kolokwia, • Zadania laboratoryjne, • Egzamin (pisemny, ustny), • Udział w dyskusjach, odpowiedzi ustne, aktywność na ćwiczeniach.
Powiązane efekty kierunkowe: ML_KS03
Powiązane efekty obszarowe: X1A_K03