Konsultacje:
środa 12-14Adres:
Instytut Informatyki9 czerwca 2011 r.
Zadanie dodatkowe:
Przygotowałem zadanie dodatkowe (dotyczące kolekcji z STL w C++) dla tych studentów, którzy potrzebują dodatkowych punktów do uzyskania lepszej oceny klasyfikacyjnej. Punkty z tego zadania nie wliczają się do granicznej sumy występującej w rankingu.
2 czerwca 2011 r.
Ostatnie laboratorium:
W tym roku będzie 11 list z zadaniami do realizacji na laboratorich. Ostatnie zadanie jest już podlinkowane na tej stronie (patrz niżej).
26 maja 2011 r.
Laboratorium w grupie PRz:
Dzisiejsze (26 maja) laboratorium w mojej grupie zostaje przesunięte na następny tydzień. Powodem przesunięcia zajęć jest odbywający się w tym samym terminie wykład zaproszonego gościa dr Marka Wrońskiego (zapraszam do sali 25). Marek Wroński od kilkunastu lat z wielkim zaangażowaniem zajmuje się tropieniem nierzetelności naukowej, przede wszystkim plagiatów. Opisał ponad sto przypadków, często występując przeciwko władzom uczelni, które chciały sprawy plagiatów zlekceważyć lub utajnić.
2 maja 2011 r.
Wirtualny wykład:
Podlinkowałem materiały dotyczące bibliotek i przestrzeni nazw - dość prosta treść, która była zaplanowana na wirtualny wykład 28 kwietnia. Do tego materiału dopisałem zadanie (trzeba umieścić jakieś definicje w przestrzeni nazw i zrobić z tego bibliotekę).
21 kwietnia 2011 r.
Wykład po Świętach:
Zaraz po Świętach, 28 kwietnia, wykład z C++ nie odbędzie się fizycznie - odędzie sie w sposób wirtualny (polimorficzny ;) tj. zrobię notatki uzupełniające dzisiejszy wykład o wyjątkach, dopiszę coś o przestrzeniach nazw i podlinkuję na stronie.
21 marca 2011 r.
Trzecie laboratorium:
Doprecyzowałem zadanie trzecie.
12 marca 2011 r.
Drugie laboratorium:
Zadanie na drugie laboratorium opublikuję w wobotę 12 marca około godziny 12:00.
3 marca 2011 r.
Pierwsze laboratorium:
Pierwsze laboratoria dla wszystkich grup odbędą się dopiero w przyszłym tygodniu 7-11 marca.
24 lutego 2011 r.
Punkt informacyjny:
To właśnie w tym miejscu będą się pojawiać ważne ogłoszenia dotyczące organizacji zajęć związanych z tym przedmiotem. Proszę zaglądać do tych ogłoszń, szczególnie przed wykładem i przed laboratorium.
C++ to obiektowo zorientowany język programowania. Został on zaprojektowany przez B.Stroustrupa z myślą o programowaniu systemowym oraz do zaawansowanych obliczeń matematycznych. Świadome używanie C++ do rozwiązywania problemów algorytmicznych daje dużo satysfakcji doświadczonym programistom, zwłaszcza dlatego, że generowany przez kompilator kod jest bardzo efektywny.
Kurs ten jest Celem kursu jest zapoznanie studentów z bogatą składnią języka C++, najważniejszymi technikami stosowanymi w programowaniu z wykorzystaniem tego języka oraz z obszernymi fragmentami biblioteki standardowej STL.
Literatura papierowa polskojęzyczna:
Literatura elektroniczna anglojęzyczna:
Spis wykładów:
Omawiane zagadnienia:
historia języka C++, pierwsze programy, struktura programu
(pliki źródłowe i nagłówkowe), referencje, napisy, klasa jako
nowy typ danych, składowe w klasie, tworzenie i usuwanie
obiektów na stosie i na stercie, konstruktor, standardowe
wejście i wyjście.
Prezentacja:
łagodne wprowadzenie do C++ (ppt)
Omawiane zagadnienia:
klasy i obiekty, pola i metody składowe, ukrywanie składowych,
przeciążanie funkcji i metod, konstruktory i destruktor,
stałość, zgłaszanie błędów poprzez wyjątki.
Prezentacja:
klasy i obiekty (ppt)
Omawiane zagadnienia:
składowe statyczne, funkcje i metody wbudowane, argumenty
domyślne, funkcje i klasy zaprzyjaźnione.
Prezentacja:
składowe statyczne (ppt)
Omawiane zagadnienia:
przeciążanie operatorów.
Prezentacja:
przeciążanie operatorów (ppt)
Omawiane zagadnienia:
istota dziedziczenia, dostęp do odziedziczonych składników,
projektowanie hierarchii klas, dziedziczenie wielobazowe,
dziedziczenie wirtualne, konwersje standardowe wskaźników
i referencji.
Prezentacja:
dziedziczenie (ppt)
Omawiane zagadnienia:
funkcje wirtualne, implementacja wywołań polimorficznych,
wczesne i późne wiązanie, klasy abstrakcyjne.
Prezentacja:
polimorfizm (ppt)
Omawiane zagadnienia:
wskaźniki do składowych, operatory konwersji w klasie,
konstruktory konwertujące, konwersje w tradycyjnym stylu,
składowe wrażliwe, nowoczesne operatory konwersji.
Prezentacja:
... (ppt)
Omawiane zagadnienia:
obsługa błędów, zgłaszanie i łapanie wyjątków, grupowanie
wyjątków, dopasowywanie wyjątków, zdobywanie zasobów poprzez
inicjalizację, wyjątki w konstruktorach i w destruktorach,
specyfikacja wyjątków, wyjątki standardowe, definiowanie
własnych wyjątków.
Prezentacja:
wyjątki (ppt)
Omawiane zagadnienia:
modularyzacja kodu, tworzenie bibliotek, przestrzenie nazw,
deklaracja i dyrektywa użycia, standardowa przestrzeń nazw.
Prezentacja:
biblioteki i przestrzenie nazw (ppt)
Omawiane zagadnienia:
definicja szablonu, funkcje i klasy szablonowe, przeciążanie
szablonów, specyfikowanie strategii za pomocą parametrów
szablonu, parametry domyślne, specjalizacja.
Prezentacja:
szablony (ppt)
Omawiane zagadnienia:
strumienie w bibliotece standardowej, operatory >>
i << do operacji formatowanych, sterowanie formatem,
manipulatory, nieformatowane operacje na strumieniach, błędy
w strumieniach, strumienie związane z plikami, strumienie
związane z łańcuchami, synchronizacja strumieni.
Prezentacja:
strumienie (ppt)
Omawiane zagadnienia:
struktura STL, kontenery, iteratory, obiekty funkcyjne,
algorytmy.
Prezentacja:
... (ppt)