Programowanie obiektowe
- Wykład 1
Cel przedmiotu.
Rozwój konstrukcji programistycznych jako naturalna potrzeba lepszego wyrażania intencji programisty (do struktur).
- Materiały
- Zadania
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Wykład 2
Główne koncepcje programowania obiektowego (na przykładzie języka Java):
klasy i obiekty
- Materiały
- Zadania
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Wyjaśnić pojęcie klasy i obiektu.
- Wykład 3
Główne koncepcje programowania obiektowego (na przykładzie języka Java):
inicjalizacja obiektów, sygnatura metody, dziedziczenie (w tym IS-A, HAS-A), this
- Materiały
- Zadania
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Wyjaśnić czym jest dziedziczenie i po co zostało wprowadzone.
- Wyjaśnić czym różnią się zmienne/funkcji związane z instancją od tych związanych z klasą.
- Sygnatura.
- Użycie this.
- Wykład 4
Główne koncepcje programowania obiektowego (na przykładzie języka Java):
- Materiały
- Zadania
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Użycie static.
- Czym jest abstrakcja.
- Różnica pomiędzy klasą abstrakcyjną a interfejsem.
- Interfejs jako metoda wprowadzania zależności poziomej między klasami.
- Czym jest enkapsulacja.
- Czym jest polimorfizm.
- Słowo kluczowe super i final.
- Wykład 5
Główne koncepcje programowania obiektowego (na przykładzie języka Java):
- Materiały
- Zadania
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Czym jest runtime polymorphism.
- Czym jest static polymorphism.
- Co to jest binding.
- Czym są szablony i typy generyczne.
- Omów zbiór zasad SOLID.
- Omów zbiór zasad GRASP.
- Wymień wady i zalety programowania obiektowego.
- Wykład 6
Algorytmy: bubble sort, selection sort, insertion sort
- Materiały
- Zadania
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Opisać poszczególne kroki rozważanych algorytmów: bubble sort, selection sort, insertion sort.
- Zilustrować poszczególne kroki rozważanych algorytmów (bubble sort, selection sort, insertion sort) na konkretnym przykładzie.
- Wykład 7
Algorytmy: merge sort, quick sort (wersja uproszczona)
- Materiały
- Zadania
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Opisać poszczególne kroki rozważanych algorytmów: merge sort, quick sort (wersja uproszczona).
- Zilustrować poszczególne kroki rozważanych algorytmów na konkretnym przykładzie.
- Wykład 8
Algorytmy: quick sort, radix sort, natural merge
- Materiały
- Zadania
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Opisać poszczególne kroki rozważanych algorytmów: quick sort, radix sort, natural merge.
- Zilustrować poszczególne kroki rozważanych algorytmów na konkretnym przykładzie.
- Wykład 9
Złożoność obliczeniowa
- Materiały
- Zadania
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Czym jest złożoność obliczeniowa
- Relacja dominująca i analiza asymptotyczna
- Różne złożoności czasowe
- Ogólne klasy złożoności
- Praca z Big Oh
- Wykład 10
Złożoność obliczeniowa - ciąg dalszy
Rekurencja (w tym m.in. rola stosu, drzewo wywołań rekurencyjnych)
- Materiały
- Zadania
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Czym jest rekurencja.
- Podać rekurencyjne rozwiązania prostych problemów.
- Wykład 11
Rekurencja - ciąg dalszy
- Materiały
- Zadania
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Wyjaśnić, czym jest tzw. rekurencja ogonowa.
- Umieć zastosować rekurencję ogonową dla prostych problemów, np. silnia czy ciąg Fibonacciego.
- Wykład 12
Rekurencja inaczej, czyli programowanie dynamiczne na przykładzie liczenia odległości pomiędzy dwoma napisami.
- Materiały
- Zadania
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Na czym polega programowanie dynamiczne.
- Wykład 13
Kontynuacja - liczenie odległości pomiędzy dwoma napisami w wersji rekurencyjnej i tablicowej.
- Materiały
- Zadania
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Na czym polega programowanie dynamiczne.
- Wykład 14
Podsumowanie materiału, dyskusje na wybrane tematy
- Materiały
- Zadania
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
- Wykład 15
Podsumowanie materiału, dyskusje na wybrane tematy
- Materiały
- Zadania
- Co po tych zajęciach powinno się znać / wiedzieć / umieć
Materiały