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