Title: Programowanie w języku C++

Section 1
  Kurs przeznaczony jest dla osób, które...
  Ogłoszenia
[1] Wprowadzenie
  [1.1] Wymagania odnośnie oprogramowania
  [1.2] Ćwiczenia praktyczne - szkielety zadań i rozwiązania
  [1.3] CMake
  Etykieta
  Debugging
  [1.4] Debugging in CLion – samouczek
  [1.5] CLion: Elementy GUI służące do debuggowania
[2] Język C – powtórzenie wiadomości
  [2.1] Język C: Ogólne zasady
  [2.1] Język C: Ogólne zasady
  [2.2] Język C: Zmienne i stałe
  [2.2] Język C: Zmienne i stałe
  [2.3] Język C: Deklaracja a definicja, funkcje
  [2.3] Język C: Deklaracja a definicja, funkcje
[3] Na styku języków C i C++
  Wykład
  [3.1] C++: Podstawowe cechy języka
  [3.2] Programowanie zorientowane na obiekty (OOP)
  [3.3] C++ a OOP
  [3.4] C++: Cechy wyróżniające, standardy, filozofia
  [3.5] Język C a język C++: Wstęp praktyczny
  [3.6] Język C a język C++: Wybrane różnice
  [3.7] C++: Przeciążanie funkcji
  [3.8] C++: Argumenty domyślne
  [3.9] Gdzie szukać pomocy? (cz. 1)
  [3.10] Gdzie szukać pomocy? (cz. 2)
  [3.11] Gdzie szukać pomocy? (cz. 3)
  Etykieta
  [PREZENTACJA] Na styku języków C i C++
  Etykieta (kopia)
  Zadania
  [3] Sprawdzian wiadomości
  [3] Sprawdzian wiadomości
  Zadanie: Matlab-1
[4] Obiekty i klasy, podstawy biblioteki standardowej
  Cele laboratorium:przećwiczenie definiowania klasy...
  Wykład
  [4.1] Czym jest obiekt? Czym jest klasa?
  [4.2] Struktura klasy – składowe (pola i metody)
  [4.3] Enkapsulacja
  [4.4] Klasy – korzystanie ze składowych
  [4.5] Konstruktor i destruktor
  [4.6] Strukturalne a obiektowe podejście do programowania (przykład)
  [4.7] Organizacja programu w C++
  [4.8] Biblioteka standardowa - wprowadzenie
  [4.9] Kontener `std::vector`
  [4.10] Dokumentacja biblioteki standardowej
  Etykieta
  [PREZENTACJA] Obiekty i klasy
  [PREZENTACJA] Biblioteka standardowa - podstawy
  [PREZENTACJA] Organizacja programu w C++
  Etykieta (kopia)
  Zadania
  [4] Sprawdzian wiadomości
  [4] Sprawdzian wiadomości
  Zadanie: Matlab-2
[5] Szablony funkcji i klas
  Cele laboratorium:ugruntowanie wiadomości i umieję...
  Wykład
  [5.1] Programowanie generyczne
  [5.2] Szablony funkcji
  [5.3] Szablony klas
  [5.4] Gdzie definiować funkcje i metody szablonowe?
  [5.5] Zalety i wady szablonów
  Etykieta
  [PREZENTACJA] Szablony funkcji i klas
[6] Semantyka wartości a semantyka referencji
  Wykład
  [6.1] Semantyka referencji [do I - wartości]
  [6.2] Semantyka wartości
  [6.3] const correctness - wprowadzenie
  [6.4] Stałe wskaźniki, stałe referencje (do l-wartości)
  [6.5] Stałe metody
  [6.6] Przeciążanie `const`
  Etykieta
  [PREZENTACJA] Semantyka wartości a semantyka referencji
  Etykieta (kopia)
  Zadania
  [6] Sprawdzian wiadomości
  [6] Sprawdzian wiadomości
[7] Biblioteka standardowa
  Cele laboratorium:przećwiczenie korzystania z pods... (kopia)
  Wykład (kopia)
  [7.1] Klasa `std::string`
  [7.2] Iteratory (cz. 1)
  [7.3] Iteratory (cz. 2)
  [7.4] Kontenery - wprowadzenie
  [7.5] Kontener `std::array`
  [7.6] Kontenery asocjacyjne (`std::map`, `std::set`)
  [7.7] Inne kontenery
  [7.8] Kontenery standardowe a wskaźniki i referencje
  [7.9] Algorytmy
  [7.10] Operacje wejścia/wyjścia w oparciu o strumienie - wprowadzenie
  [7.11] Wejście/wyjście w języku C a w języku C++
  [7.12] Operator `«` i operator `»`
  [7.13] Co to jest bufor?
  [7.14] Standardowe strumienie wejścia i wyjścia
  [7.15] Manipulatory strumieni
  [7.16] Strumienie dla łańcuchów znaków
  [7.17] Strumienie dla plików
  [7.18] Stan strumienia
  [7.19] Zastępczy symbol specyfikatora typu (`auto`)
  [7.20] Range-based `for` loop
  [7.21] Funkcje wyższego rzędu, wskaźniki do funkcji
  [7.22] Wyrażenie lambda
  [7.23] Szablon klasy `std::function`
  [7.24] Sposoby inicjalizacji zmiennych
  Etykieta
  [PREZENTACJA] Biblioteka standardowa
  Etykieta (kopia)
  Zadania
  [7] Sprawdzian wiadomości
  [7] Sprawdzian wiadomości
  Zadanie: Matlab-3
  Zadanie: Catalogue-1
[8] Klasy: Rozszerzanie funkcjonalności
  Cele laboratorium:przećwiczenie definiowania relac...
  Wykład (kopia) (kopia)
  [8.1] Klasy: Rozszerzanie funkcjonalności - wprowadzenie
  [8.2] Kompozycja
  [8.3] Dziedziczenie
  [8.4] Przesłanianie (metod)
  [8.5] Składowe chronione
  [8.6] Konstruktory odziedziczone
  [8.7] Polimorfizm
  [8.8] Konwersja typu a dziedziczenie
  [8.9] Wirtualne destruktory
  [8.10] Polimorfizm a szablon `std::function`
  [8.11] Klasy abstrakcyjne
  [8.12] Interfejsy
  [8.13] Kiedy kompozycja, a kiedy dziedziczenie?
  [8.14] Przykład udanego dziedziczenia: Biblioteka standardowa we/wy
  Etykieta (kopia) (kopia)
  [PREZENTACJA] Klasy: Rozszerzanie funkcjonalności
  Etykieta (kopia) (kopia) (kopia)
  Zadania
  [8] Sprawdzian wiadomości
  [8] Sprawdzian wiadomości
  Zadanie: Matlab-4
  Zadanie: Vehicles-1
[9] Klasy: Tworzenie i niszczenie obiektów
  Wykład (kopia) (kopia) (kopia)
  [9.1] Inicjalizacja pól klasy
  [9.2] Inicjalizator wewnątrzklasowy
  [9.3] Listy inicjalizacyjne konstruktora
  [9.4] Konstruktor domyślny
  [9.5] Konstruktory delegujące
  [9.6] Konstruktor kopiujący
  [9.7] Destruktory
  [9.8] Kopiujący operator przypisania
  [9.9] Domyślne operacje specjalne a dziedziczenie
  [9.10] Zasada trzech, zasada pięciu a zasada zera
  [9.11] Kopiowanie a przypisanie
  [9.12] = default
  [9.13] = delete
  [9.14] RAII i cykl życia obiektów
  Etykieta (kopia) (kopia) (kopia) (kopia)
  [PREZENTACJA] Klasy: Tworzenie i niszczenie obiektów
  Etykieta (kopia) (kopia) (kopia) (kopia) (kopia)
  Zadania
  [9] Sprawdzian wiadomości
  [9] Sprawdzian wiadomości
[10] Więcej o klasach...
  Cele laboratorium:ugruntowanie wiadomości i umieję... (kopia)
  Wykład (kopia) (kopia) (kopia) (kopia)
  [10.1] Wskaźnik `this`
  [10.2] Składowe statyczne – Wprowadzenie
  [10.3] Składowe statyczne – Deklarowanie
  [10.4] Składowe statyczne – Definiowanie
  [10.5] Składowe statyczne – Korzystanie
  [10.6] Dziedziczenie a kontenery biblioteki standardowej
  [10.7] Typy wyliczeniowe – Wprowadzenie
  [10.8] Typy wyliczeniowe – `enum`
  [10.9] Typy wyliczeniowe – `enum class`
  Etykieta (kopia) (kopia) (kopia) (kopia) (kopia) (kopia)
  [PREZENTACJA] Więcej o klasach...
  Etykieta (kopia) (kopia) (kopia) (kopia) (kopia) (kopia) (kopia)
  Zadania
  [10] Sprawdzian wiadomości
  [10] Sprawdzian wiadomości
  Zadanie: Matlab-5
  Zadanie: Shapes-1
  Zadanie: Vehicles-2
  Zadanie: Complex-1
[11] System typów
  Wykład (kopia) (kopia) (kopia) (kopia) (kopia)
  [11.1] Aliasy
  [11.2] Przenośność oprogramowania
  [11.3] Alias `size_t`
  [11.4] Niejawne konwersje typów dla klas
  [11.5] Operatory rzutowania - wprowadzenie
  [11.6] Operator `static_cast`
  [11.7] Operator `dynamic_cast`
  Etykieta (kopia) (kopia) (kopia) (kopia) (kopia) (kopia) (kopia)
  [PREZENTACJA] System typów
[12] Semantyka przeniesienia
  Wykład (kopia) (kopia) (kopia) (kopia) (kopia) (kopia)
  [12.1] Semantyka przeniesienia - Wprowadzenie
  [12.2] Semantyka przeniesienia – Referencje do r-wartości
  [12.3] Semantyka przeniesienia – Zawłaszczanie zasobów
  [12.4] Semantyka przeniesienia – Semantyka przeniesienia a wydajność programu i wygoda pisania kodu
  Etykieta (kopia) (kopia) (kopia) (kopia) (kopia) (kopia) (kopia) (kopia)
  [PREZENTACJA] Semantyka przeniesienia
[13] Zarządzanie pamięcią, inteligentne wskaźniki
  Cele laboratorium:ugruntowanie wiadomości i umieję... (kopia)
  Wykład (kopia) (kopia) (kopia) (kopia) (kopia) (kopia) (kopia)
  [13.1] Rodzaje alokacji pamięci, organizacja pamięci programu
  [13.2] Zarządzanie pamięcią z użyciem "surowych" wskaźników
  [13.3] Problemy związane z (nieumiejętnym) zarządzaniem pamięcią
  [13.4] Po co nam inteligentne wskaźniki?
  [13.5] Inteligentne wskaźniki - wprowadzenie
  [13.6] Szablon klasy `std::unique_ptr`
  [13.7] Szablon klasy `std::shared_ptr`
  [13.8] Operacje przenoszące szablonu klasy `std::unique_ptr`
  [13.9] Istotne ograniczenia w stosowaniu inteligentnych wskaźników
  [13.10] Zarządzanie pamięcią w C++98 a C++14
  Etykieta
  [PREZENTACJA] Zarządzanie pamięcią, inteligentne wskaźniki
  Etykieta (kopia)
  Zadania
  [13] Sprawdzian wiadomości
  [13] Sprawdzian wiadomości
  Zadanie: Shapes-2
  Zadanie: Vehicles-3
[14] Przekazywanie obiektów (do i z funkcji)
  Wykład (kopia) (kopia) (kopia) (kopia) (kopia) (kopia) (kopia) (kopia)
  [14.1] Przekazywanie obiektów - ogólne wytyczne
  [14.2] Przekazywanie obiektów (do i z funkcji) - komentarz
  Etykieta (kopia) (kopia)
  [PREZENTACJA] Przekazywanie obiektów (do i z funkcji)
[15] Przestrzenie nazw
  Cele laboratorium:ugruntowanie wiadomości związany...
  Wykład (kopia) (kopia) (kopia) (kopia) (kopia) (kopia) (kopia) (kopia) (kopia)
  [15.1] Przestrzenie nazw - wprowadzenie
  [15.2] Przestrzenie nazw – definiowanie
  [15.3] Przestrzenie nazw – korzystanie
  [15.4] Deklaracje `using`
  Etykieta (kopia) (kopia) (kopia)
  [PREZENTACJA] Przestrzenie nazw
  Etykieta (kopia) (kopia) (kopia) (kopia)
  Zadania
  Zadanie: Matlab-6
[16] Wyjątki
  Cele laboratorium:ugruntowanie wiadomości i umieję... (kopia)
  Wykład (kopia) (kopia) (kopia) (kopia) (kopia) (kopia) (kopia) (kopia) (kopia) (kopia)
  [16.1] Wyjątek – co to? jak to obsłużyć?
  [16.2] throw i try-catch
  [16.3] Rzucanie i wychwytywanie wyjątku
  [16.4] Odwijanie stosu, znajdowanie pasującej klauzuli obsługi, wyjątki a destruktory
  [16.5] Standardowe klasy wyjątków
  [16.6] Korzystanie z własnych typów wyjątków
  [16.7] Kody błędów
  [16.8] Kiedy stosować wyjątki, a kiedy nie?
  Etykieta (kopia) (kopia) (kopia) (kopia) (kopia)
  [PREZENTACJA] Wyjątki
  Etykieta (kopia) (kopia) (kopia) (kopia) (kopia) (kopia)
  Zadania
  Zadanie: Matlab-7
  Zadanie: Matlab-8