Semestr I
- Wstęp do programowania
- Kod maszynowy i kod źródłowy, kompilacja
- Narzędzia potrzebne do pracy na naszym kursie
- Pierwsze proste programy
- Zmienne i typy
- Co to jest zmienna i do czego służy?
- Wybrane typy języka C++ dla liczb i napisów
- Komunikacja z użytkownikiem
- Wypisywanie informacji na ekran za pomocą cout
- Wczytywanie danych od użytkownika z terminala za pomocą cin
- Programy w trybie tekstowym wykonujące różne obliczenia
- Warunki logiczne
- Instrukcja warunkowa if/else
- Porównywanie liczb i napisów
- Spójniki logiczne (“i” oraz “lub”) i negacja
- Typ logiczny bool
- Pętle
- Budowa i zasada działania pętli while
- Pisanie programów wielokrotnie powtarzających czynności
- Wykorzystanie zmiennych w pętli i jej warunku
- Pętla do-while i jej zastosowania
- Pętla for i jej zastosowania niezwiązane z tablicami
- Funkcje
- Co to jest funkcja w programowaniu i do czego służy?
- Korzystanie z wbudowanych funkcji języka C++
- Definiowanie własnych funkcji
- Parametry i wynik funkcji
- Wykorzystywanie własnych funkcji w programach. Dobre praktyki programowania
- Pierwsze przykłady aplikacji składających się z wielu plików źródłowych
- Tablice
- Deklaracje i korzystanie z tablic o stałej długości
- Zastosowanie pętli for do pracy z tablicami
- Pisanie prostych algorytmów w oparciu o tablice
- Wskaźniki
- Wskaźnik do zmiennej – co to jest, jak można wykorzystać?
- Zmienne typu wskaźnikowego, operatory * i &
- Parametry przekazywane przez wskaźnik i przez referencję
- Arytmetyka wskaźników („przechodzenie po pamięci”)
- Tablice a wskaźniki
- Dynamiczna alokacja pamięci, instrukcje new i delete
Semestr II
- Wstęp do języka programowania Java
- Instalacja niezbędnego oprogramowania i przegląd narzędzi do Javy
- Zasada działania platformy Java, bajtkod, maszyna wirtualna
- Pierwsze programy z podkreśleniem podobieństw i różnic względem C++
- Komunikacja z użytkownikiem
- Klasy i obiekty w języku Java
- Co to jest obiekt i do czego służy?
- Metody, czyli funkcje definiowane w klasach
- Tworzenie obiektów za pomocą konstruktora domyślnego oraz własnych konstruktorów
- Jak ma się zmienna do obiektu?
- Wzmianka o klasach w języku C++. Różnice między Javą a C++
- Obiektowy styl programowania
- Dziedziczenie (rozszerzanie) klas
- Nadpisywanie metod i „polimorfizm”
- Poziomy dostępu i „enkapsulacja”
- Interfejsy i ich przeznaczenie w Javie
- Graficzny interfejs użytkownika Swing
- Okno i jego komponenty
- Podstawy obsługi zdarzeń
- Tworzenie aplikacji „okienkowych” z wykorzystaniem edytora do projektowania wizualnego
- Przykładowe aplikacje z polami tekstowymi, liczbowymi, listami wyboru i przyciskami
- Bezpośrednie rysowanie grafiki 2D w programach Java. Przykład prostej gry
- Kolekcje i struktury danych
- Czym jest lista (List), jak się jej używa i czym się różni od tablicy?
- Pętla „for-each”
- Inne rodzaje kolekcji i ich przeznaczenie
- Słowniki (Map) i ich zastosowanie w programach
- Programy służące do pracy z danymi (podstawy)
- Czytanie i zapisywanie plików
- Przykładowe programy obliczające statystyki na podstawie danych z pliku
- Tradycyjny styl programowania oparty o pętle i warunki
- Rzut oka na funkcyjny styl programowania oparty o strumienie i wyrażenia lambda