Metody projektowania algorytmów i strategie algorytmiczne: specyfikacja, projektowanie pętli – niezmienniki, metoda siłowa (brute force), algorytmy zachłanne, rekurencja, dziel i rządź, programowanie dynamiczne, przeszukiwanie z powrotami, zamiatanie*
Elementy złożoności obliczeniowej: operacja dominująca, złożoność pesymistyczna, notacja asymptotyczna O (wielkie O), podstawowe klasy funkcji złożoności (logarytmiczna, liniowa, nlog n, kwadratowa, sześcienna, wykładnicza)
Algorytmy
Podstawowe algorytmy dla liczb całkowitych: zamiana systemu liczbowego, algorytm Euklidesa (iteracyjny, rekurencyjny), rozszerzony algorytm Euklidesa*, pierwiastkowy test pierwszości, sito Eratostenesa, rozkład na czynniki pierwsze, szybkie potęgowanie
Proste przetwarzanie tablic jednowymiarowych: wypełnianie, przesuwanie (shifting), odwracanie (reversing), przeszukiwanie, przeszukiwanie cykliczne (rotating), znajdowanie minimum/maksimum, wyszukiwanie binarne, sumy prefiksowe, zliczanie, sortowanie przez zliczanie, arytmetyka wielkich liczb
Proste algorytmy dla tekstów, palindromy, wyszukiwanie wzorca w tekście algorytmem naiwnym, algorytm KMP*
Sortowanie: przez wstawianie, sortowanie przez scalanie, sortowanie szybkie*, sortowanie przez kopcowanie*
Proste przetwarzanie tablic dwuwymiarowych: problem 8 hetmanów, wyznaczanie najtańszej drogi z dolnego lewego rogu do górnego prawego rogu w tablicy liczbowej przy ruchach tylko w prawo i do góry, operacje macierzowe*
Przeszukiwanie drzew ukorzenionych (prefiksowe, infiksowe i postfiksowe)
Przeszukiwanie grafów (w głąb i wszerz), drzewo przeszukiwania
Spójność, sortowanie topologiczne, cykl Eulera, dwuspójność*, silna spójność*, domknięcie przechodnie*
Najkrótsze ścieżki (algorytm Dijkstry, Bellmana-Forda, Floyda-Warshall)*
Minimalne drzew rozpinające (algorytmy Prima i Kruskala)*
Skojarzenia w grafach dwudzielnych (algorytm w czasie O(VE))*
Gry kombinatoryczne – algorytm minmax*
Proste algorytm geometryczne na płaszczyźnie*: lokalizacja punktu w wielokącie, wypukła otoczka
Podstawowe abstrakcyjne struktury danych i ich implementacje
Wektor
Stos, kolejka, lista
Reprezentacja grafu
(macierz sąsiedztwa, listy sąsiedztwa)
Kopiec binarny
Reprezentacja zbiorów rozłącznych
(problem Find-Union)*
Zbiór
Statyczne, zrównoważone drzewa przeszukiwań binarnych (drzewa przedziałowe, drzewa licznikowe), dynamiczne, zrównoważone drzewa przeszukiwań binarnych*, wzbogacanie
Kolejka priorytetowa*
Biblioteka STL*

MATERIAŁY ŹRÓDŁOWE
portal: main2.edu.pl
portal: szkopuł.edu.pl