Laboratorium to uzupełnia wykład dr Tomasza Marksa pod tym samym tytułem.
Na drugim roku zajęcia te są poświęcone językowi C++.
Laboratorium jest prowadzone w formie 1,5 godzinnych zadań ocenianych na bieżąco.
Program przedmiotu:
- Język C a C++. Definiowanie prostych klas.
- Typy referencyjne. Domyślne wartości argumentów. Przeciążanie funkcji.
- Konstruktory, destruktory. Definiowanie operatorów. Strumieniowe operacje we/wy.
- Wskaźnik this. Operatory new, delete. Funkcje zaprzyjaźnione.
- Klasa Vector z dynamicznie alokowaną tablicą składowych.
- Pola i metody statyczne. Dostępność składowych klasy.
- Klasa z polem obiektowym typu Vector.
- Dziedziczenie, polimorfizm i metody wirtualne.
- Jak realizowany jest mechanizm wirtualności? Metody czysto wirtualne i ATD.
- Obsługa błędów. Obsługa wyjątków. Wyjątki jako mechanizm sterujący.
- Konwersje, operatory konwersji i konwertery.
- Definiowanie i wykorzystanie szablonów funkcji.
- Definiowanie i wykorzystanie szablonów klas.
- Elementy biblioteki STL.
- C++ a inne języki programowania obiektowego.
Zasady oceniania
Zajęcia laboratoryjne obejmują wykonanie 13 zadań o różnym stopniu trudności. Za każde zadanie można otrzymać maksymalnie 5 punktów.
Dopuszczenie do wykonania zadania może być uwarunkowane zaliczeniem kolokwium wstępnego. Zadanie powinno być wykonane, zaprezentowane i ocenione w czasie zajęć.
W nadzwyczajnych sytuacjach, niezależnych od studenta, prowadzący może zezwolić na dokończenie zadania w domu, ustalając nową (niższą) maksymalną ocenę w zależności od stopnia zaawansowania
pracy wykonanej na zajęciach. Programy kończone w domu należy zaprezentować podczas następnych zajęć.
UWAGA: wiąże się to ze stratą czasu na realizację kolejnego zadania.
Przy ustalaniu oceny bierze się pod uwagę zakres merytoryczny zrealizowanego zadania, wykorzystane środki formalne
języka C++, aspekty użytkowe interfejsu oraz stronę estetyczną napisanego programu (kodu źródłowego).
Zaliczenie
Ocena z laboratorium wystawiana jest na podstawie procentowego udziału sumy uzyskanych punktów do sumy punktów możliwej do uzyskania ze wszystkich ćwiczeń
wg następującej zależności:
- (50%, 60%] - 3,0
- (60%, 70%] - 3,5
- (70%, 80%] - 4,0
- (80%, 90%] - 4,5
- (90%, 100%] - 5,0
Nieobecność na zajęciach równoważna jest 0 pkt., w przypadku nieobecności usprawiedliwionej te zajęcia nie wliczają się
do powyższej zależności.
Łączna liczba nieobecności (nieusprawiedliwionych i usprawiedliwionych) nie może być większa niż 3 (trzy), w tym nieusprawiedliwionych nie więcej niż jedna.
Studenci są zobowiązani wtedy do zrealizowania materiału we własnym zakresie i przedstawienia rozwiązania zadania prowadzącemu (bez punktów), aby na kolejnych
zajęciach nie tracić czasu na uzupełnianie rozwiązań programowych realizowanych podczas nieobecności.
Na ostatnich zajęciach osoby, którym brakuje do lepszej oceny nie więcej niż 5 pkt, mogą uzyskać dodatkowe punkty
przez zrobienie dodatkowego zadania, uwzględniającego cały zakres przedstawionego na wykładzie materiału.
Zaliczenie eksternistyczne
Możliwe jest także eksternistyczne zaliczenie laboratorium przez wykonanie projektu zatwierdzonego przez prowadzącego.
Osoby chcące zaliczać w tej formie powinny to uzgodnić z prowadzącym najdalej na drugich zajęciach w semestrze.
Na trzecich zajęciach otrzymają specjalne zadanie mające charakter kolokwium kwalifikującego do pracy w tym trybie.
Wymagania dla projektów eksternistycznych:
- ciekawy i nietrywialny problem, do którego rozwiązania najlepiej nadaje się podejście obiektowe,
- dokładna specyfikacja projektu,
- porządnie napisany program z dobrze sformatowanym kodem źródłowym,
- dokumentacja źródłowa w kodzie,
- dokumentacja użytkownika.
Zaliczanie projektu eksternistycznego:
- etapy kontrolne: beta (5), release candidate (10) i final (15) (w nawiasach podano graniczny numer zajęć),
- każdy etap musi uzyskać pozytywną ocenę,
- po etapie beta prowadzący zajęcia może projekt całkowicie zdyskwalifikować, dlatego do tego czasu zaleca się uczestniczyć w zajęciach w trybie normalnym,
- po etapie release candidate, w przypadku braku szansy na ukończenie projektu zawierającego wszystkie elementy języka omawiane na wykładzie,
prowadzący zajęcia może projekt zamknąć i od tego momentu należy uczestniczyć w zajęciach w trybie normalnym,
- przy ustalaniu oceny ostatecznej mogą być brane pod uwagę oceny etapów pośrednich.