Algorytmy i struktury danych

Transkrypt

Algorytmy i struktury danych
2009
Zespół Szkół Społecznych STO
Krzysztof Kadowski
[ALGORYTMY I STRUKTURY
DANYCH]
Program nauczania w klasie informatycznej klas ponadgimnazjalnych.
Klasa: I, II
Semestr: II, III, IV
Godzin w cyklu: 3
1. Wstęp do algorytmów i programowania obiektowego
1.1 Abstrakcyjne typy danych.
1.2. Enkapsulacja.
1.3. Dziedziczenie.
1.4. Wskaźniki.
1.5. Polimorfizm.
1.6. C++ a programowanie obiektowe.
1.7. Standardowa biblioteka szablonów.
1.8. Wektory w standardowej bibliotece szablonów.
1.9. Struktury danych a programowanie obiektowe.
1.10. Przykład zastosowania: plik z dostępem swobodnym.
2. Analiza złożoności
2.1. Złożoność obliczeniowa i asymptotyczna.
2.2. O-notacja.
2.3. Właściwości O-notacji.
2.4. Notacje.
2.5. Możliwe problemy.
2.6. Przykłady złożoności.
2.7. Określanie złożoności asymptotycznej.
2.8. Złożoność optymistyczna, średnia i pesymistyczna.
2.9. Złożoność zamortyzowana.
3. Listy
3.1. Listy jednokierunkowe.
3.2. Listy dwukierunkowe.
3.3. Listy cykliczne.
3.4. Listy z przeskokami.
3.5. Listy samoorganizujące się.
3.6. Tablice rzadkie.
4. Stosy i kolejki
4.1. Stosy.
4.2. Kolejki.
4.3. Kolejki priorytetowe.
5. Rekurencja
5.1. Definicje rekurencyjne.
5.2. Wywołania funkcji a implementacja rekurencji.
5.3. Anatomia wywołania rekurencyjnego.
5.4. Rekurencja ogonowa.
5.5. Algorytmy z powrotami.
6. Drzewa binarne
6.1. Drzewa, drzewa binarne i binarne drzewa poszukiwania.
6.2. Implementacja drzew binarnych.
2
6.3. Wyszukiwanie w drzewie binarnym.
6.4. Przechodzenie po drzewie.
6.5. Wstawianie i usuwanie.
7. Drzewa wielokierunkowe
7.1. Rodzina B-drzew.
7.1.1. B-drzewa.
7.1.2. B*-drzewa.
7.1.3. B+-drzewa.
7.1.4. B+-drzewa przedrostkowe.
7.1.5. Drzewa bitowe.
8. Grafy
8.1. Reprezentacje grafów.
8.2. Przechodzenie po grafach.
8.3. Najkrótsza droga.
8.3.1. Problem najkrótszych dróg typu "wszystkie-do-wszystkich".
8.4. Wykrywanie cykli.
8.5. Drzewa rozpinające.
8.6. Sieci.
9. Sortowanie
9.1. Podstawowe algorytmy sortowania: sortowanie przez wstawianie, przez wybieranie, bąbelkowe.
9.2. Drzewa decyzyjne.
9.3. Efektywne algorytmy sortowania: sortowanie Stella, przez kopcowanie, szybkie (quicksort),
poprzez scalanie, pozycyjne.
10. Mieszanie
10.1. Funkcje mieszające.
10.2. Rozwiązywanie problemu kolizji.
10.3. Usuwanie.
10.4. Doskonałe funkcje mieszające.
11. Kompresja danych
11.1. Warunki kompresji danych.
11.2. Kodowanie Huffmana.
11.3. Metoda Shannona-Fano.
12. Podstawowe metody numeryczne
12.1. Macierze i ich właściwości.
12.2. Prawa macierzy.
12.3. Rozwiązywanie układów równań liniowych.
12.4. Eliminacja pełna Jordana-Gaussa.
12.5. Eliminacja Gaussa.
12.6. Rozkład Cholesky'ego.
12.7. Metody iteracyjne.
12.8. Transformaty Fouriera.
3
Literatura podstawowa
1.
Autor: Adam Drozdek
Tytuł: C++. Algorytmy i struktury danych
ISBN 83-7361-385-4
Wydawnictwo: Helion
Literatura uzupełniająca
2.
Autor: Cormen Thomas H., Leiserson Charles E., Rivest
Ronald L.
Tytuł: Wprowadzenie do algorytmów
ISBN 83-204-3149-2
Wydawnictwo: WNT
3.
Autor: Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman
Tytuł: Algorytmy i struktury danych
ISBN: 83-7361-177-0
Wydawnictwo: Helion
4.
Autor: Piotr Wróblewski
Tytuł: Algorytmy, struktury danych i techniki programowania.
Wydanie III
ISBN: 83-7361-101-0
Wydawnictwo: Helion
4
5.
Autor: Kyle Loudon
Tytuł: Algorytmy w C
ISBN: 83-7197-912-6
Wydawnictwo: Helion
6. Strony internetowe:
Kurs Data Structures and Algorithms http://www.losto.net/ki/book/dsac/index.html
Kurs Fundamental Numerical Methods and Data Analysis by George W. Collins
http://www.losto.net/ki/book/fnm/index.htm
Kurs Numerical Recipes in C (Cambridge University Press)
http://www.losto.net/ki/book/numerical/index.html
Materiały na szkolnej stronie http://www.losto.net/articles.php?id=26
Materiały na e-KI
UWAGI
Przedmiot realizowany metodą wykład + ćwiczenia wspieraną materiałami w postaci strony e-learning.
Czas:
wykład / ćwiczenia – 1h/tyg.,
praca własna z materiałami na stronie e-learning – około 1-2h/tyg.,
projekt własny – 10h.
Przedmiot kończy się testem po każdym semestrze. Ocena z testu stanowi 50% oceny semestralnej.
5

Podobne dokumenty