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.