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