C++ programming course
General data
Course ID: | 1000-213bCPP |
Erasmus code / ISCED: | (unknown) / (unknown) |
Course title: | C++ programming course |
Name in Polish: | Kurs programowania w C++ |
Organizational unit: | Faculty of Mathematics, Informatics, and Mechanics |
Course groups: |
Elective courses (tools for programming) for Computer Science Obligatory courses for 2nd grade Computer Science Obligatory courses for 2nd grade JSIM (3I+4M) Obligatory courses for 2nd grade JSIM (3M+4I) |
ECTS credit allocation (and other scores): |
4.00
|
Language: | Polish |
Type of course: | obligatory courses |
Requirements: | Introductory programming 1000-211bWPI |
Short description: |
(in Polish) Celem tego przedmiotu jest pokazanie studentom nowoczesnego i efektywnego stylu programowania w języku C++. |
Full description: |
(in Polish) 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. |
Learning outcomes: |
(in Polish) 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) |
Assessment methods and assessment criteria: |
(in Polish) 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. |
Classes in period "Winter semester 2023/24" (past)
Time span: | 2023-10-01 - 2024-01-28 |
Navigate to timetable
MO LAB
LAB
LAB
TU LAB
LAB
W LAB
TH FR |
Type of class: |
Lab, 30 hours
|
|
Coordinators: | Marcin Peczarski | |
Group instructors: | Anh Linh Nguyen, Jakub Pawlewicz, Marcin Peczarski, Przemysław Rutka | |
Students list: | (inaccessible to you) | |
Examination: | Examination |
Classes in period "Winter semester 2024/25" (future)
Time span: | 2024-10-01 - 2025-01-26 |
Navigate to timetable
MO TU W TH FR |
Type of class: |
Lab, 30 hours
|
|
Coordinators: | Marcin Peczarski | |
Group instructors: | Jakub Pawlewicz, Marcin Peczarski, Przemysław Rutka, Maciej Zielenkiewicz, Wiktor Zuba | |
Students list: | (inaccessible to you) | |
Examination: | Examination |
Copyright by University of Warsaw.