Zalecana literatura do przedmiotu
"PROGRAMOWANIE OBIEKTOWO ZORIENTOWANE"
1. Podręcznik podstawowy
Jerzy Grębosz
Symfonia C++
Programowanie w języku C++ orientowane obiektowo Łatwy podręcznik
Wydawca: Oficyna Kallimach, Kraków
Wyd IV - 1996 r. ISBN 83-901689-1-X Cena trzech tomów ok 58 zł
2. Podręcznik podstawowy
Algorytmy
struktury danych i techniki programowania - wyd. II
Autor: Piotr Wróblewski ISBN: 83-86718-91-9 Format: B5, stron: 348 Zawiera dyskietkę Data wydania: 07/1997 Cena książki: ok. 29.50 zł
3. Podręcznik pomocniczy
Wiesław Porębski
Język C++. Wprowadzenie do programowania
Poziom: Dla początkujących i zaawansowanych Stron: 176 B5
cena : ok. 16 zł
"Algorytmy, struktury danych i techniki programowania - wyd. II" -- spis treści:
Przedmowa
Rozdział 1. Zanim wystartujemy
1.1. Jak to wcześniej bywało, czyli wyjątki z historii maszyn algorytmicznych
1.2. Jak to się niedawno odbyło, czyli o tym kto "wymyślił" metodologię programowania
1.3. Proces koncepcji programów
1.4. Poziomy abstrakcji opisu i wybór języka
1.5. Poprawność algorytmów Rozdział 2. Rekurencja
2.1. Definicja rekurencji
2.2. Ilustracja pojęcia rekurencji
2.3. Jak wykonują się programy rekurencyjne?
2.4. Niebezpieczeństwa rekurencjio
2.4.1. Ciąg Fibonacciegoo
2.4.2. Stack overflow!
2.5. Pułapek ciąg dalszyo
2.5.1. Stąd do wiecznościo
2.5.2. Definicja poprawna, ale...
2.6. Typy programów rekurencyjnych
2.7. Myślenie rekurencyjneo
2.7.1. Spiralao
2.7.2. Kwadraty "parzyste"
2.8. Uwagi praktyczne na temat technik rekurencyjnych
2.9. Zadania
2.10. Rozwiązania i wskazówki do zadań Rozdział 3. Analiza sprawności algorytmów
3.1. Dobre samopoczucie użytkownika programu
3.2. Przykład 1: Jeszcze raz funkcja silnia...
3.3. Przykład 2: Zerowanie fragmentu tablicy
3.4. Przykład 3: Wpadamy w pułapkę
3.5. Przykład 4: Różne typy złożoności obliczeniowej
3.6. Nowe zadanie: uprościć obliczenia!
3.7. Analiza programów rekurencyjnycho
3.7.1. Terminologiao
3.7.2. Ilustracja metody na przykładzieo
3.7.3. Rozkład "logarytmiczny"o
3.7.3.o
3.7.4. Zamiana dziedziny równania rekurencyjnegoo
3.7.5. Funkcja Ackermanna, czyli coś dla smakoszy
3.8. Zadania
3.9. Rozwiązania i wskazówki do zadań Rozdział 4. Algorytmy sortowania
4.1. Sortowanie przez wstawianie, algorytm klasy O(N2)
4.2. Sortowanie bąbelkowe, algorytm klasy O(N2)
4.3. Quicksort, algorytm klasy O(N log2N)
4.4. Uwagi praktyczne Rozdział 5. Struktury danych
5.1. Listy jednokierunkoweo
5.1.1. Realizacja struktur danych listy jednokierunkowejo
5.1.2. Tworzenie listy jednokierunkowejo
5.1.3. Listy jednokierunkowe - teoria i rzeczywistość
5.2. Tablicowa implementacja listo
5.2.1. Klasyczna reprezentacja tablicowao
5.2.2. Metoda tablic równoległycho
5.2.3. Listy innych typów
5.3. Stoso
5.3.1. Zasada działania stosu
5.4. Kolejki FIFO
5.5. Sterty i kolejki priorytetowe
5.6. Drzewa i ich reprezentacjeo
5.6.1. Drzewa binarne i wyrażenia arytmetyczne
5.7. Uniwersalna struktura słownikowa
5.8. Zbiory
5.9. Zadania
5.10. Rozwiązania zadań Rozdział 6. Derekursywacja
6.1. Jak pracuje kompilator?
6.2. Odrobina formalizmu... nie zaszkodzi!
6.3. Kilka przykładów derekursywacji algorytmów
6.4. Derekursywacja z wykorzystaniem stosuo
6.4.1. Eliminacja zmiennych lokalnych
6.5. Metoda funkcji przeciwnych
6.6. Klasyczne schematy derekursywacjio
6.6.1. Schemat typu whileo
6.6.2. Schemat typu if... elseo
6.6.3. Schemat z podwójnym wywołaniem rekurencyjnym
6.7. PodsumowanieRozdział 7. Algorytmy przeszukiwania
7.1. Przeszukiwanie liniowe
7.2. Przeszukiwanie binarne
7.3. Transformacja kluczowao
7.3.1. W poszukiwaniu funkcji Ho
7.3.2. Najbardziej znane funkcje Ho
7.3.3. Obsługa konfliktów dostępuo
7.3.4. Zastosowania transformacji kluczowejo
7.3.5. Podsumowanie metod transformacji kluczowej Rozdział 8. Przeszukiwanie tekstów
8.1. Algorytm typu brute-force
8.2. Nowe algorytmy poszukiwańo
8.2.1. Algorytm K-M-Po
8.2.2. Algorytm Boyera i Moore'ao
8.2.3. Algorytm Rabina i Karpa Rozdział 9. Zaawansowane techniki programowania
9.1. Programowanie typu "dziel-i-rządź"o
9.1.1. Odszukiwanie minimum i maksimum w tablicy liczbo
9.1.2. Mnożenie macierzy o rozmiarze N(No
9.1.3. Mnożenie liczb całkowitycho
9.1.4. Inne znane algorytmy "dziel-i-rządź"
9.2. Algorytmy "żarłoczne", czyli przekąsić coś nadszedł już czas...o
9.2.1. Problem plecakowy, czyli niełatwe jest życie turysty-piechura
9.3. Programowanie dynamiczne
9.4. Uwagi bibliograficzneRozdział 10. Elementy algorytmiki grafów
10.1. Definicje i pojęcia podstawowe
10.2. Sposoby reprezentacji grafów
10.3. Podstawowe operacje na grafach
10.4. Algorytm Roy-Warshalla
10.5. Algorytm Floyda
10.6. Przeszukiwanie grafówo
10.6.1. Strategia "w głąb"o
10.6.2. Strategia "wszerz"
10.7. Problem właściwego doboru
10.8. Podsumowanie Rozdział 11. Algorytmy numeryczne
11.1. Poszukiwanie miejsc zerowych funkcji
11.2. Iteracyjne obliczanie wartości funkcji
11.3. Interpolacja funkcji metodą Lagrange'a
11.4. Różniczkowanie funkcji
11.5. Całkowanie funkcji metodą Simpsona
11.6. Rozwiązywanie układów równań liniowych metodą Gaussa
11.7. Uwagi końcoweRozdział 12. W stronę sztucznej inteligencji
12.1. Reprezentacja problemów
12.2. Gry dwuosobowe i drzewa gier
12.3. Algorytm mini-maxRozdział 13. Kodowanie i kompresja danych
13.1. Kodowanie danych i arytmetyka dużych liczb
13.2. Kompresja danych metodą Huffmana Rozdział 14. Zadania różne
14.1. Teksty zadań
14.2. RozwiązaniaDodatek A. Poznaj C++ w pięć minut Literatura
Spis ilustracji Spis tablic Skorowidz