prowadzący ćwiczenia:
Jędrzej Wardyn, (zajęcia w piątki, 8:15-10:00)
Piotr Dziekan, (zajęcia w piątki, 10:15-12:00)
Polecane podręczniki:
[https://pl.wikibooks.org/wiki/C++]
Polecane zasoby (darmowe :-)):
[https://www.cplusplus.com/]
[https://www.cprogramming.com/]
[http://stackoverflow.com]
Polecane interpretery C++ dostępne z poziomu przeglądarki:
[https://www.onlinegdb.com/]
[https://replit.com/languages/cpp]
Polecane inne kursy:
"Programming Abstraction in C++", Marty Stepp (CS106B, Stanford)
"Programming Paradigms", Jerry Cain (CS107, Stanford)
[https://hackr.io/blog/cpp-course ]
[https://www.fuw.edu.pl/~werner/lecture/index.html]
Zasady oceniania:
ocena =
$p_1 + p_2 + p_3 + p_4$, gdzie:
| $x$ |
$f(x)$ |
| >=90 |
5 |
| 81-89 |
4+ |
| 72-80 |
4 |
| 62-71 |
3+ |
| 50-61 |
3 |
$p_1$ — oceny z projektów zaliczeniowych (0-25)
$p_2$ — aktywność na ćwiczeniach (0-25)
$p_3$ — ocena z kolokwium (0-25)
$p_4$ — ocena z egzaminu (0-25)
Zadania z Project Euler
Rozwiązując można zgromadzić dodatkowe
Kwalifikują się zadania które dotąd rozwiązało < 500 uczestników i są spoza zbioru:
{#308, #417, #437, #497, #523, #603, $610, #615, #692, #704, #709, #710, #713, #743, #755, #788, #793, #804, #810, #816, #820}
Zestawy projektów zaliczeniowych
- (rozwiązania proszę nadsyłać do końca maja)
Dyfuzja ciepła i domain decomposition (autor: Piotr Dziekan)
Gaz Klasyczny (autor: Jędrzej Wardyn)
Gra Idle (autor: Jędrzej Wardyn)
Klastery (autor: Grzegorz Łach)
Kratery (autor: Grzegorz Łach)
| Wykład 1 |
2025-02-26 09:15—10:00 sala 1.02 |
- organizacja wykładu i ćwiczeń, zasady zaliczenia
- C++ vs Python vs inne języki w obiegu
- C++ vs Python, podstawy skladni: if, while, do…while
- deklarowanie funkcji
- biblioteka iostream, przestrzenie nazw
Wykład 1 (PDF)
| Wykład 2 |
2025-03-05 09:15—10:00 sala 1.02 |
- argumenty opcjonalne i wartości domyślne
- typy danych, sprzętowa realizacja typów danych
- typy signed i unsigned
- konwersja typów
[https://www.dropbox.com/scl/fi/4drv0gumkvtqp87meembe/wyklad-2.pdf?rlkey=fkz8gr39o00crv4nazhhx9k2p&dl=0 Wykład 2 (PDF)]
| Wykład 3 |
2025-03-12 09:15—10:00 sala 1.02 |
- reprezentacja typów float i double
- wskaźniki
- arytmetyka wskaźników
- przekazywanie argumentów funkcji przez wartość i przez referencję
Polecam: Fast Inverse Square Root — A Quake III Algorithm
Wykład 3 (PDF)
| Wykład 4 |
2025-03-19 09:15—10:00 sala 1.02 |
- tablice statyczne
- tablice dynamiczne, new, delete
- kontener vector z STL
- iteratory
Polecam: Bjarne Stroustrup: C++ | Lex Fridman Podcast #48
Wykład 4 (PDF)
| Wykład 5 |
2025-03-26 09:15—10:00 sala 1.02 |
- pętla for (w tym składnia z C++11)
- inne struktury danych STL (list, set, unordered_set, deque)
- map
- algorytmy z STL na kontenerach STL i na tablicach
Przyklady użycia:
[https://www.geeksforgeeks.org/unordered_set-in-cpp-stl/]
[https://www.geeksforgeeks.org/unordered_map-in-cpp-stl/]
Wykład 5 (PDF)
| Wykład 6 |
2025-04-02 09:15—10:00 sala 1.01 |
- struktury i unie
- klasy
- zmienne prywatne i publiczne
- konstruktory
Wykład 6-7 (PDF)
| Wykład 7 |
2025-04-09 09:15—10:00 sala 1.01 |
- konstruktor kopiujący
- destruktory
- const
- dziedziczenie
Wykład 6-7 (PDF)
| Wykład 8 |
2025-04-16 09:15—10:00 sala 1.01 |
Wykład 8 (PDF)
| Wykład 9 |
2025-04-23 09:15—10:00 sala 1.01 |
- złożoność podstawowych algorytmów algebry liniowej
- jaką złożoność ma liczenie odwrotności macierzy?
- numeryczna algebra liniowa i implementacja za pomocą szablonów
- biblioteka eigen
Wykład 9 (PDF)
| Kolokwium |
2025-05-14 09:15—10:00 sala 1.01 |
| Wykład 11 |
2025-05-21 09:15—10:00 sala 1.01 |
- dziedziczenie
- metody wirtualne
- klasy abstrakcyjne
- przyklad dziedziczących od siebie klas ostream/ofstream/ostringstream
Wykład 11 (PDF)
| Wykład 12 |
2025-05-28 09:15—10:00 sala 1.01 |
| Wykład 13 |
2025-06-04 09:15—10:00 sala 1.01 |
| Wykład 14 |
2025-06-11 09:15—10:00 sala 1.01 |