Kurs programowania w C++ 1000-213bCPP
1. Podstawy, biblioteka standardowa:
* uruchamianie kompilatora,
* elementy biblioteki standardowej: napisy, kontenery, iteratory, algorytmy,
* wyrażenia regularne.
2. Zaawansowane podstawy, przestrzenie nazw:
* preprocesor,
* jednostki translacji, łączenie kodu w C++ z kodem w C,
* deklaracje zapowiadające,
* maglowanie nazw,
* zakres widoczności nazw, symbole lokalne i globalne,
* inicjowanie obiektów globalnych.
3. Semantyka wartości:
* definiowanie typów,
* konstruktory,
* operatory,
* interfejs publiczny, prywatny,
* składowe statyczne,
* referencje,
* słowo kluczowe const,
* obiekty stałe i tymczasowe.
4. Szablony i metaprogramowanie:
* szablony klas, funkcji i metod,
* szablony ze zmienną liczbą parametrów, wyrażenia rozwijane,
* częściowa specjalizacja szablonu,
* wyrażenia wyliczane w trakcie kompilowania.
5. Zarządzanie pamięcią, wyjątki, RAII:
* wskaźniki,
* typy shared_ptr, weak_ptr, unique_ptr,
* typy niekompletne,
* destruktor,
* obsługa wyjątków,
* poziomy gwarancji odporności na wyjątki,
* operator przypisania Suttera,
* gwarancje oferowane przez kontenery z biblioteki standardowej.
6. Polimorfizm dynamiczny, moduły:
* dziedziczenie, wielodziedziczenie, dziedziczenie wirtualne,
* metody wirtualne,
* rzutowanie, static_cast, dynamic_cast,
* moduły.
7. Programowanie funkcyjne:
* wskaźniki do funkcji i do metod,
* wyrażenia lambda.
Rodzaj przedmiotu
Wymagania (lista przedmiotów)
Koordynatorzy przedmiotu
Efekty kształcenia
Umiejętności - absolwent potrafi:
- pozyskiwać informacje z literatury, baz wiedzy, Internetu oraz innych wiarygodnych źródeł, integrować je, dokonywać ich interpretacji oraz wyciągać wnioski i formułować opinie (K_U02),
- posługiwać się przyjętymi formatami reprezentacji różnego rodzaju danych stosownie do sytuacji (liczby, tablice, tekst) pamiętając o ich ograniczeniach, np. związanych z arytmetyką komputera (K_U08),
- samodzielnie planować i realizować własne uczenie się przez całe życie (K_U09),
- zrealizować projekt informatyczny, w szczególności zaprojektować i zrealizować prosty system informatyczny, używając właściwych metod, technik i narzędzi; tworzyć, oceniać i realizować plany testowania; efektywnie uczestniczyć w inspekcji oprogramowania; posługiwać się przynajmniej jednym z popularnych systemów zarządzania wersjami (K_U16),
- wykonać analizę istniejących rozwiązań informatycznych, w szczególności: ocenić, na podstawowym poziomie, przydatność rutynowych metod i narzędzi informatycznych, wybrać i zastosować właściwą metodę i narzędzia do typowych zadań informatycznych, wykonać prostą analizę sposobu funkcjonowania systemu informatycznego i ocenić istniejące rozwiązania informatyczne, przynajmniej w odniesieniu do ich cech funkcjonalnych (K_U18)
Kompetencje społeczne - absolwent jest gotów do:
- krytycznej oceny posiadanej wiedzy i odbieranych treści (K_K01),
- pracy z poszanowaniem uczciwości intelektualnej w działaniach własnych i innych osób; przestrzegania zasad etyki zawodowej i wymagania tego od innych oraz dbałości o dorobek i tradycje zawodu informatyka (K_K02),
- uznawania znaczenia wiedzy w rozwiązywaniu problemów poznawczych i praktycznych oraz wyszukiwania informacji w literaturze oraz zasięgania opinii ekspertów (K_K03)
Kryteria oceniania
W czasie semestru studenci dostają do zaprogramowania 7 zadań o rożnym poziomie trudności. Programy tworzone są w zespołach lub indywidualnie. Rozwiązanie każdego zadania oceniane jest w skali od 0 do 10 punktów. Od sumy punktów odejmowane są punkty za powtarzanie współpracy z tymi samymi osobami. Ocena końcowa jest proporcjonalna do liczby uzyskanych punktów.
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: