University of Warsaw - Central Authentication System
Strona główna

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 Basic information on ECTS credits allocation principles:
  • the annual hourly workload of the student’s work required to achieve the expected learning outcomes for a given stage is 1500-1800h, corresponding to 60 ECTS;
  • the student’s weekly hourly workload is 45 h;
  • 1 ECTS point corresponds to 25-30 hours of student work needed to achieve the assumed learning outcomes;
  • weekly student workload necessary to achieve the assumed learning outcomes allows to obtain 1.5 ECTS;
  • work required to pass the course, which has been assigned 3 ECTS, constitutes 10% of the semester student load.

view allocation of credits
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
Selected timetable range:
Navigate to timetable
Type of class:
Lab, 30 hours more information
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
Selected timetable range:
Navigate to timetable
Type of class:
Lab, 30 hours more information
Coordinators: Marcin Peczarski
Group instructors: Jakub Pawlewicz, Marcin Peczarski, Przemysław Rutka, Maciej Zielenkiewicz, Wiktor Zuba
Students list: (inaccessible to you)
Examination: Examination
Course descriptions are protected by copyright.
Copyright by University of Warsaw.
Krakowskie Przedmieście 26/28
00-927 Warszawa
tel: +48 22 55 20 000 https://uw.edu.pl/
contact accessibility statement USOSweb 7.0.3.0 (2024-03-22)