Analiza i synteza algorytmów

Transkrypt

Analiza i synteza algorytmów
Nazwa przedmiotu:
ANALIZA I SYNTEZA ALGORYTMÓW
Analysis and synthesis of algorithms
Kierunek:
Forma studiów:
Kod przedmiotu:
Informatyka
Stacjonarne
Rodzaj przedmiotu:
Poziom kwalifikacji:
obowiązkowy w ramach specjalności:
Inżynieria oprogramowania
II stopnia
IO1_04
Rok: I
Semestr: I
Rodzaj zajęć:
Liczba godzin/tydzień:
Liczba punktów:
wykład, laboratorium
2W, 2L
3 ECTS
PRZEWODNIK PO PRZEDMIOCIE
I KARTA PRZEDMIOTU
CEL PRZEDMIOTU
C1. Podniesienie poziomu wiedzy studentów z zagadnień dotyczących analizy i syntezy
algorytmów z uwzględnieniem efektywności i złożoności obliczeniowej.
C2. Przedstawienie metod oceny różnych typów algorytmów.
C3. Nabycie praktycznych umiejętności w zakresie doboru algorytmów do konkretnego problemu
wraz z ich oceną
WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI
1. Znajomość zagadnień z zakresu struktur danych, podstaw programowania, matematyki
dyskretnej, analizy i algebry matematycznej.
2. Umiejętność korzystania z różnych źródeł informacji (również w języku angielskim).
3. Umiejętność pracy samodzielnej i w grupie.
4. Umiejętność tworzenia dokumentacji i przygotowania sprawozdań z wynikami badań.
EFEKTY KSZTAŁCENIA
EK 1 – posiada podstawową wiedzę z zasad analizy i syntezy algorytmów; zna pojęcia teorii
złożoności obliczeniowej; zna metody oceny efektywności, kosztów i sprawności
algorytmów,
EK 2 – zna zasady projektowania efektywnych algorytmów,
EK 3 – posiada wiedzę z analizy złożoności obliczeniowej problemów NP-zupełnych oraz zna
algorytmy aproksymacyjne dla tych problemów,
EK 4 – umie poprawnie stosować metody oceny w analizie algorytmów,
EK 5 – potrafi dobrać algorytmy do rozwiązywania wybranych problemów, przeprowadzić ocenę
ich efektywności oraz wykonać krytyczną analizę algorytmów,
EK 6 – potrafi zaimplementować algorytmy w wybranym języku programowania, przetestować
ich działanie dla różnych danych wejściowych, oraz wykonać eksperymentalne badania
oceny efektywności, kosztów i sprawności algorytmów oraz porównać otrzymane wyniki z
wynikami oceny teoretycznej,
EK 7 – uzyskuje doświadczenie w opracowaniu i zapisie algorytmów; w przejrzysty sposób
przedstawia określony problem oraz sposoby jego rozwiązania wraz z oceną,
EK 8 – potrafi pracować samodzielnie i w zespole, umie przygotować sprawozdanie z przebiegu
realizacji ćwiczenia wraz merytoryczną dyskusją otrzymanych wyników,
TREŚCI PROGRAMOWE
Forma zajęć – WYKŁADY
W 1 – Wprowadzenie do analizy algorytmów; ocena złożoności obliczeniowej
algorytmów, definicje notacji asymptotycznych, metody analizy i porównywania
złożoności obliczeniowej algorytmów
W 2 – Analiza algorytmów rekurencyjnych, metody obliczania ich złożoności
W 3 – Przegląd technik algorytmicznych: metoda dziel i zwyciężaj
W 4 – Przegląd technik algorytmicznych: programowanie dynamiczne, programowanie
liniowe
W 5 – Przegląd technik algorytmicznych: algorytmy zachłanne
W 6 – Analiza algorytmów grafowych: reprezentacje grafu, przeszukiwanie grafu,
minimalne drzewa rozpinające
W 7 – Analiza algorytmów grafowych: najkrótsze ścieżki z jednym źródłem i pomiędzy
wszystkimi parami wierzchołków
W 8 – Analiza algorytmów grafowych: maksymalne przepływy w grafie, cykle
Hamiltona i Eulera
W 9 – Algorytmy geometryczne: struktury danych, problem wypukłej otoczki, problemy
bliskości, lokalizacja punktu
W 10 – Algorytmy geometryczne: triangulacja zbioru punktów obszaru, diagramy
Woronoja
W 11 – Algorytmy równoległe: przegląd modeli sieci procesorów, problemy routingu,
sortowania, obliczania wyrażeń i sum prefiksowych.
W 12 – Problemy decyzyjne i optymalizacyjne. Rozstrzygalność i nierozstrzygalność.
Klasy problemów decyzyjnych
W 13 – Klasy problemów deterministycznie i niedeterministycznie wielomianowych
(P, NP) . Klasa problemów NP-zupełnych
W 14 – Problemy obliczeniowo trudne: NP-zupełne (problem komiwojażera, problem
plecakowy i inne)
W 15 – Algorytmy aproksymujące problemy NP-zupełne, trudność aproksymacji
Forma zajęć – LABORATORIUM
L 1 – Wprowadzenie: zasady przebiegu ćwiczeń i opracowywanie wyników w
sprawozdaniach; ćwiczenia tablicowe z oceny złożoności obliczeniowej
algorytmów
L 2 – Algorytmy rekurencyjne, część 1
L 3 – Algorytmy rekurencyjne, część 2
L 4 – Algorytmy typu dziel i zwyciężaj
L 5 – Algorytmy: programowanie dynamiczne i liniowe
L 6 – Algorytmy zachłanne
L 7 – Algorytmy grafowe: przeszukiwanie grafu, minimalne drzewa rozpinające
L 8 – Algorytmy grafowe: najkrótsze ścieżki z jednym źródłem i pomiędzy wszystkimi
parami wierzchołków
L 9 – Algorytmy grafowe: maksymalny przepływ w grafie
L 10 – Algorytmy geometryczne: problem wypukłej otoczki
L 11 – Algorytmy geometryczne: triangulacja zbioru punktów obszaru
L 12 – Algorytmy sortowania równoległego
L 13 – Algorytmy klasy P i NP
L 14 – Algorytmy obliczeniowo trudne: NP-zupełne - problem komiwojażera
L 15 – Algorytmy aproksymujące problemy NP-zupełne
Liczba
godzin
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
Liczba
godzin
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
NARZĘDZIA DYDAKTYCZNE
1. – wykład z wykorzystaniem prezentacji multimedialnych
2. – stanowiska komputerowe wraz oprogramowaniem – środowisko programistyczne języka
wysokiego poziomu
3. – opracowanie sprawozdań z realizacji przebiegu ćwiczeń
4. – instrukcje do wykonania ćwiczeń laboratoryjnych
5. – podręczniki
SPOSOBY OCENY ( F – FORMUJĄCA, P – PODSUMOWUJĄCA)
F1. – ocena przygotowania do ćwiczeń laboratoryjnych
F2. – ocena umiejętności stosowania zdobytej wiedzy podczas wykonywania ćwiczeń
F3. – ocena aktywności podczas zajęć
F4. – ocena sprawozdań z realizacji ćwiczeń
P1. – ocena umiejętności rozwiązywania postawionych problemów oraz sposobu prezentacji
otrzymanych wyników wraz ich analizą – zaliczenie na ocenę*
P2. – ocena opanowania materiału nauczania będącego przedmiotem wykładu – zaliczenie wykładu
*) warunkiem uzyskania zaliczenia jest otrzymanie pozytywnych ocen ze wszystkich ćwiczeń laboratoryjnych,
OBCIĄŻENIE PRACĄ STUDENTA
Forma aktywności
Godziny kontaktowe z prowadzącym
Średnia liczba godzin na
zrealizowanie aktywności
30W 30L  60 h
Godziny konsultacji z prowadzącym
Wykonanie sprawozdań z realizacji ćwiczeń
laboratoryjnych (czas poza zajęciami laboratoryjnymi)
Suma 
SUMARYCZNA LICZBA PUNKTÓW ECTS DLA PRZEDMIOTU
Liczba punktów ECTS, którą student uzyskuje na zajęciach
wymagających bezpośredniego udziału prowadzącego
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o
charakterze praktycznym, w tym zajęć laboratoryjnych i
projektowych
5h
10 h

75 h
3 ECTS
2,6 ECTS
1,6 ECTS
4
LITERATURA PODSTAWOWA I UZUPEŁNIAJĄCA
1. Cormen T.H., Leiserson C.E., Rivest R.L., Wprowadzenie do algorytmów, WNT, Warszawa 1997.
2. Aho A.V., Hopcroft J.E., Ullman J.D., Projektowanie i analiza algorytmów, Wydawnictwo Helion,
Gliwice 2003.
3. Banachowski L., Diks K., Rytter W., Algorytmy i struktury danych, WNT, Warszawa 1996.
4. Kubale M., Łagodne wprowadzenie do analizy algorytmów, Gdańsk 2009.
5. Sysło M.M., Deo N., Kowalik J.S., Algorytmy optymalizacji dyskretnej, Wydawnictwo Naukowe
PWN, 1999.
6. Papadimitriou C.H., Złożoność obliczeniowa, WNT, Warszawa, 2002.
PROWADZĄCY PRZEDMIOT ( IMIĘ, NAZWISKO, ADRES E-MAIL)
1. dr inż. Mariusz Ciesielski [email protected]
MACIERZ REALIZACJI EFEKTÓW KSZTAŁCENIA
Efekt
kształcenia
EK1
EK2
Odniesienie
danego efektu do
efektów
zdefiniowanych
dla całego
programu (PEK)
KIO2_W12
KIO2_K01
KIO2_W12
KIO2_W13
Cele
przedmiotu
Treści
programowe
Narzędzia
dydaktyczne
C1,C2
W1-15
1,5
C1,C2
W1-15
1,5
EK3
KIO2_W13
C1,C2
W1-15
1,5
EK4
KIO2_U18
C3
L1-15
2,3,4
C3
W1-15
L1-15
1-5
C3
L2-15
2-5
EK5
EK6
KIO2_U18
KIO2_K05
KIO2_U18
KIO2_K05
EK7
KIO2_U18
C3
L1-15
2,3
EK8
KIO2_U04
KIO2_U18
KIO2_K01
KIO2_K05
C3
L2-15
2-5
Sposób
oceny
F1
P2
F1
P2
F1
P2
F1-F4
P1
F1-F4
P1
F1-F4
P1
F2-F4
P1
F1-F4
P1
5
II. FORMY OCENY - SZCZEGÓŁY
Na ocenę 2
Na ocenę 3
Na ocenę 4
Na ocenę 5
Efekt 1,2,3
Student opanował
wiedzę z zakresu
analizy i syntezy
algorytmów, rozumie
zagadnienia z tej
tematyki
Student nie
opanował
podstawowej wiedzy
z zakresu analizy i
syntezy algorytmów
Student częściowo
opanował wiedzę z
zakresu podstaw
analizy i syntezy
algorytmów
Student opanował
wiedzę z analizy i
syntezy algorytmów,
potrafi wskazać
metodę oceny
danego algorytmu
Student bardzo
dobrze opanował
wiedzę z zakresu
materiału objętego
programem
nauczania,
samodzielnie
zdobywa i poszerza
wiedzę przy użyciu
różnych źródeł
Efekt 4,5,6,7
Student posiada
umiejętności
stosowania wiedzy
w praktycznym
rozwiązywaniu
problemów
związanych z analizą i
syntezy algorytmów
Student nie potrafi
implementować
algorytmów oraz
dokonywać ich oceny
nawet z pomocą
instrukcji oraz
prowadzącego
Student nie potrafi
wykorzystać zdobytej
wiedzy, zadania
wynikające z
realizacji ćwiczeń
wykonuje z pomocą
prowadzącego
Student poprawnie
wykorzystuje wiedzę
oraz samodzielnie
rozwiązuje problemy
wynikające w trakcie
realizacji ćwiczeń
Student potrafi
pracować
samodzielnie oraz w
zespole nad realizacją
ćwiczeń, potrafi
wykonać poprawnie
badania nad
algorytmem, potrafi
dokonać oceny oraz
uzasadnić trafność
przyjętych metod
Efekt 8
Student potrafi
efektywnie
prezentować
i dyskutować wyniki
własnych działań
Student nie wykonał
ćwiczeń oraz nie
opracował
sprawozdań
Student wykonał
zadane ćwiczenia
laboratoryjne oraz
przygotował
sprawozdanie, ale
nie potrafił
dyskutować nad
osiągniętymi
wynikami
Student wykonał
zadane ćwiczenia
laboratoryjne,
opracował
sprawozdanie oraz
dyskutował nad
osiągniętymi
wynikami
Student wykonał
poprawnie wszystkie
ćwiczenia
laboratoryjne,
potrafił w czytelny
sposób przygotować
sprawozdanie oraz
merytorycznie
dyskutować nad
osiągniętymi
wynikami
Dopuszcza się wystawienie oceny połówkowej o ile student spełniający wszystkie efekty kształcenia
wymagane do oceny pełnej spełnia niektóre efekty kształcenia odpowiadające ocenie wyższej
III. INNE PRZYDATNE INFORMACJE O PRZEDMIOCIE
1. Wszelkie informacje dla studentów (m.in. prezentacje do zajęć, instrukcje do ćwiczeń
laboratoryjnych) dostępne są na stronie internetowej http://icis.pcz.pl/~mciesiel, w zakładce
Dydaktyka.
2. Informacja na temat konsultacji przekazywana jest studentom podczas pierwszych zajęć danego
przedmiotu.
6