Uniwersytet Warszawski, Wydział Fizyki - Centralny System Uwierzytelniania
Strona główna

Kurs programowania w C++

Informacje ogólne

Kod przedmiotu: 1000-213bCPP
Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Kurs programowania w C++
Jednostka: Wydział Matematyki, Informatyki i Mechaniki
Grupy: Przedmioty obieralne narzędziowe dla informatyki
Przedmioty obowiązkowe dla II roku informatyki
Przedmioty obowiązkowe dla II roku JSIM - wariant 3I+4M
Przedmioty obowiązkowe dla II roku JSIM - wariant 3M+4I
Punkty ECTS i inne: 4.00 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.

zobacz reguły punktacji
Język prowadzenia: polski
Rodzaj przedmiotu:

obowiązkowe

Wymagania (lista przedmiotów):

Wstęp do programowania 1000-211bWPI

Skrócony opis:

Celem tego przedmiotu jest pokazanie studentom nowoczesnego i efektywnego stylu programowania w języku C++.

Pełny opis:

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.

Efekty uczenia się:

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)

Metody i 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.

Zajęcia w cyklu "Semestr zimowy 2023/24" (zakończony)

Okres: 2023-10-01 - 2024-01-28
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin więcej informacji
Koordynatorzy: Marcin Peczarski
Prowadzący grup: Anh Linh Nguyen, Jakub Pawlewicz, Marcin Peczarski, Przemysław Rutka
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin

Zajęcia w cyklu "Semestr zimowy 2024/25" (jeszcze nie rozpoczęty)

Okres: 2024-10-01 - 2025-01-26
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin więcej informacji
Koordynatorzy: Marcin Peczarski
Prowadzący grup: Jakub Pawlewicz, Marcin Peczarski, Przemysław Rutka, Maciej Zielenkiewicz, Wiktor Zuba
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Warszawski, Wydział Fizyki.
ul. Pasteura 5, 02-093 Warszawa tel: +48 22 5532 000 https://www.fuw.edu.pl/ kontakt deklaracja dostępności USOSweb 7.0.3.0 (2024-03-22)