Sylabus - Karkonoska Państwowa Szkoła Wyższa w Jeleniej Górze
Transkrypt
Sylabus - Karkonoska Państwowa Szkoła Wyższa w Jeleniej Górze
KARTA PRZEDMIOTU Kod przedmiotu ASD Nazwa przedmiotu/modułu: Algorytmy i struktury danych Nazwa angielska: Algorithms and Data Structures Kierunek studiów: edukacja techniczno-informatyczna Tryb/Poziom studiów: stacjonarne / pierwszego stopnia – inżynierskie Profil studiów ogólnoakademicki Jednostka prowadząca: Karkonoska Państwowa Szkoła Wyższa w Jeleniej Górze, Wydział Przyrodniczo-Techniczny, Zakład Edukacji TechnicznoInformatycznej I. Formy zajęć, liczba godzin Semestr Wykłady Ćwiczenia Laboratorium Projekt I 30 15 Forma zaliczenia Liczba punktów ECTS zaliczenie na ocenę zaliczenie na ocenę 2 1 Seminarium Łącznie 45 3 II. Cel przedmiotu: C1 C2 C3 C4 Zdobycie przez studenta uporządkowanej wiedzy oraz uzyskanie umiejętności z zakresu podstawowych struktur danych, zaawansowanych technik algorytmicznych i algorytmów, ich cech, sposobów specyfikowania i ich badania pod kątem złożoności obliczeniowej. Nabycie przez studenta praktycznych umiejętności zapisywania wybranych algorytmów w pseudokodzie (pseudojęzyku). Kształtowanie umiejętności analizy algorytmów. Wyrobienie umiejętności korzystania z różnorodnych źródeł informacji i programów, zgodnie z zasadami etyki oraz ochrony własności intelektualnej oraz nabycie umiejętności samokształcenia się. III. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji: Brak. IV. Oczekiwane efekty kształcenia: Wiedza EK1 Posiada uporządkowaną wiedzę w zakresie podstawowych struktur danych (tablice, rekordy, zbiory, kolejki, stosy, drzewa), niezbędną do zrozumienia implementacji algorytmów w programach komputerach; potrafi je wymienić i scharakteryzować. EK2 Zna podstawowe cechy technik algorytmicznych i wybranych algorytmów, sposoby ich opisu, zasady działania oraz ich złożoności obliczeniowe, oraz potrafi zapisać je w pseudokodzie. Umiejętności EK3 Posiada umiejętność w zakresie czytania i rozumienia algorytmów zapisanych w pseudokodzie. EK4 Posiada umiejętność rozwiązywania problemów z wykorzystaniem podejścia algorytmicznego podczas rozwiązywania problemów spotykanych w praktyce inżynierskiej. Projektuje rozwiązanie postawionego prostego problemu algorytmicznego, wykorzystuje zdobytą wiedzę z zakresu konstrukcji algorytmicznych i struktur danych; dobiera metodę rozwiązania problemu do postawionego problemu. EK5 Szacuje i analizuje złożoność czasową przedstawionych algorytmów. Kompetencje społeczne EK6 Posiada umiejętności samokształcenia się i rozumie potrzebę samodzielnego opanowania wiedzy, systematycznej pracy własnej oraz doskonalenia swoich umiejętności w celu lepszego rozumienia zagadnień przedstawianych na innych przedmiotach. EK7 Przestrzega zasad etyki i ochrony własności intelektualnej. EK8 Wykazuje aktywną postawę i chęć współpracy z innymi podczas rozwiązywania trudnych zadań, potrafi pracować indywidualnie oraz w zespole. V. Treści programowe: Forma zajęć: wykład Wyk1 Wyk2 Wyk3 Wyk4 Wyk5 Definicja oraz podstawowe cechy algorytmów. Różne sposoby zapisywania algorytmów. Instrukcje warunkowe i iteracyjne. Typy danych oraz ich reprezentacja w komputerze. Podstawowe struktury danych: tablica, kolejka, stos. Złożoność obliczeniowa algorytmów. Złożoność pamięciowa i czasowa. Notacja O. Obliczanie pesymistycznej złożoności algorytmów. Algorytmy dla liczb pierwszych. Rozkład na czynniki pierwsze. Sprawdzanie, czy liczba jest pierwsza. Sito Eratostenesa. Algorytmy sortowania: sortowanie przez wybór, sortowanie przez wstawianie, sortowanie bąbelkowe. Złożoność algorytmów sortowania. Liczba godzin 2 1 2 1 2 Wyk6 Algorytm qiucksort. 1 Wyk7 Algorytmy iteracyjne i rekurencyjne. Wady algorytmów rekurencyjnych. Przykłady: silnia, szybkie podnoszenie do potęgi, algorytm Euklidesa, liczby Fibonacciego. 2 Wyk8 Algorytmy przeszukiwania: liniowe i binarne 1 Wyk9 Wyk10 Wyk11 Wyk12 Metoda dziel i zwyciężaj. Sortowanie przez scalanie i sortowanie szybkie. Algorytm jednoczesnego wyszukiwania minimum i maksimum w zbiorze. Złożoność algorytmów. Rozwiązywanie równań rekurencyjnych. Metoda zachłanna – problem wydawania reszty, problem plecakowy, decyzyjny problem plecakowy. Inne przykłady algorytmów. Programowanie dynamiczne na przykładzie problemu plecakowego i decyzyjnego problemu plecakowego. Inne przykłady algorytmów (np. problem LCS). Drzewa i ich reprezentacje. Drzewa binarne. Sortowanie na drzewie binarnym. Uporządkowanie, metoda postorder, preorder, inorder. Inne typy drzew (drzewa czerwono-czarne, drzewa AVL, B-drzewa). 3 2 2 2 Wyk13 Wyk14 Problemy grafowe. Algorytmy wychodzenia z labiryntu. Przeszukiwanie z nawrotami (przeszukiwanie grafu w głąb). Znajdowanie najkrótszej drogi wyjścia – algorytm Dijkstry. Algorytmy szyfrowania informacji. Szyfr podstawieniowy i przestawieniowy. Szyfrowanie symetryczne i asymetryczne. 3 2 Wyk15 Algorytmy wyszukiwania wzorca. 2 Wyk16 Podsumowanie i zaliczenie 2 Suma godzin 30 Forma zajęć: ćwiczenia Liczba godzin Cw1 Zastosowanie instrukcji warunkowych. 2 Cw2 Zastosowanie instrukcji iteracyjnych. Analiza złożoności algorytmów. 2 Cw3 Algorytmy oparte na wykorzystaniu tablic. 2 Cw4 Sortowania. Analiza złożoności algorytmów. 2 Cw5 Rekurencja. 2 Cw6 Metody rozwiązywania problemów: zachłanna, dziel i zwyciężaj, programowanie dynamiczne. 2 Cw7 Dodatkowe zadania problemowe obejmujące materiał Cw1 – Cw6. 2 Cw8 Podsumowanie i zaliczenie. 1 Suma godzin – ćwiczenia 15 VI. Narzędzia dydaktyczne: 1 Prezentacje multimedialne z wykładu. 2 Listy zadań ćwiczeniowych. 3 Zadania testowe. 4 F1 F2 P1 Komputer z zainstalowanym pakietem Office, Adobe Reader, przeglądarką internetową z możliwością uruchamiania apletów Java oraz obsługą języka Java Script. VII. Sposoby oceny (F – formująca, P – podsumowująca) Ocena punktowa rozwiązań list ćwiczeniowych. Ćwiczeniowe listy zadań to zbiory prostych zadań, możliwych do rozwiązania podczas pojedynczych zajęć. Za rozwiązanie każdej listy zadań student otrzymuje punkty zależne od zakresu, jakości, samodzielności i tempa wykonanej pracy. Kolokwia w formie testów wielokrotnego wyboru sprawdzające wiedzę i umiejętności z wykładu. Ocena końcowa z wykładu ustalana jest na podstawie sumy punktów uzyskanych przez studenta z kolokwiów (F2). Ocena pozytywna przyznawana jest studentowi, który zdobył łącznie przynajmniej 50% sumy wszystkich punktów możliwych do uzyskania w ramach oceny F2. Ocena końcowa z ćwiczeń wyznaczana jest na podstawie sumy punktów uzyskanych przez studenta ze wszystkich list zadań (F1) Ocena pozytywna P2 przyznawana jest studentowi, który zdobył łącznie przynajmniej 50% sumy wszystkich punktów możliwych do uzyskania w ramach oceny F1. VIII. Obciążenie pracą studenta Łączna i średnia liczba godzin Forma aktywności na zrealizowanie aktywności Zajęcia z bezpośrednim udziałem nauczyciela 30 akademickiego – wykład. Samodzielna nauka, studiowanie literatury, 14 przygotowanie do testu zaliczeniowego z wykładu. Zajęcia z bezpośrednim udziałem nauczyciela 15 akademickiego – ćwiczenia. Przygotowanie ćwiczeniowych list zadań. 13 Konsultacje 18 SUMA 90 SUMARYCZNA LICZBA PUNKTÓW ECTS DLA PRZEDMIOTU IX. Literatura podstawowa i uzupełniająca Literatura podstawowa: 3 1. Banachowski L., Diks K., Rytter W., Algorytmy i struktury danych. Wydawnictwa Naukowo-Techniczne, Warszawa 2003. 2. Sysło M.M. , Algorytmy. Wydawnictwo Szkolne i Pedagogiczne, Warszawa 2002. 3. Wirth N., Algorytmy + struktury danych = programy. Wydawnictwa NaukowoTechniczne, Warszawa 2002. Literatura uzupełniająca: 1. Cormen T.H., Leiserson C.E., Rivest R.L., Wprowadzenie do algorytmów. Wydawnictwa Naukowo-Techniczne, Warszawa 1997. 2. Stuzińska-Walczak A., Walczak K., Nauka programowania dla początkujących. Turbo Pascal. Wydawnictwo W&W, 2003.