Module also offered within study programmes:
General information:
Name:
Programming in C++
Course of study:
2016/2017
Code:
JFT-1-306-s
Faculty of:
Physics and Applied Computer Science
Study level:
First-cycle studies
Specialty:
-
Field of study:
Technical Physics
Semester:
3
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Course homepage:
 
Responsible teacher:
dr hab. inż. Krawczyk Małgorzata (krawczyk@fis.agh.edu.pl)
Academic teachers:
dr hab. inż. Wołoszyn Maciej (woloszyn@newton.fis.agh.edu.pl)
dr hab. inż. Krawczyk Małgorzata (krawczyk@fis.agh.edu.pl)
dr hab. inż. Bołd Tomasz (tomasz.bold@fis.agh.edu.pl)
Module summary

Celem modułu jest poznanie języka programowania C++ w stopniu umożliwiającym samodzielne przeprowadzenie obliczeń i symulacji.

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Skills
M_U001 Student potrafi utworzyć klasę i wykorzystać mechanizm dziedziczenia do stworzenia odpowiedniej hierarchii klas. FT1A_U11, FT1A_U08 Activity during classes,
Test,
Execution of laboratory classes
M_U002 Student potrafi korzystać z programowania uogólnionego. FT1A_U11 Activity during classes,
Test,
Execution of laboratory classes
M_U003 Student umie zarządzać pamięcią w programie. FT1A_U08 Activity during classes,
Test,
Execution of laboratory classes
Knowledge
M_W001 Student wie kiedy stosować proceduralne, a kiedy obiektowe podejście do rozwiązywanego problemu. FT1A_W02 Activity during classes,
Test,
Execution of laboratory classes
M_W002 Student rozumie istotę polimorfizmu i hermetyzacji. FT1A_W02, FT1A_W04 Activity during classes,
Test
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Skills
M_U001 Student potrafi utworzyć klasę i wykorzystać mechanizm dziedziczenia do stworzenia odpowiedniej hierarchii klas. - - + - - - - - - - -
M_U002 Student potrafi korzystać z programowania uogólnionego. - - + - - - - - - - -
M_U003 Student umie zarządzać pamięcią w programie. - - + - - - - - - - -
Knowledge
M_W001 Student wie kiedy stosować proceduralne, a kiedy obiektowe podejście do rozwiązywanego problemu. + - + - - - - - - - -
M_W002 Student rozumie istotę polimorfizmu i hermetyzacji. + - + - - - - - - - -
Module content
Lectures:
  1. Wstęp

    • obiektowość w C++
    • standardy języka
    • słowa kluczowe języka
    • pierwszy program w C++
    • podstawy instrukcji sterujących

  2. Typy danych, zmienne

    • zmienne proste
    • typy liczbowe
    • typ znakowy
    • typ logiczny
    • operatory arytmetyczne
    • konwersja typu

  3. Typy złożone

    • ciągi znaków
    • struktury, unie, wyliczenia
    • tablice, alokacja i zwalnianie pamięci
    • wskaźniki

  4. Instrukcje sterujące

    • instrukcje warunkowe
    • instrukcje iteracyjne

  5. Funkcje

    • przekazywanie wartości do funkcji
    • zwracanie wartości z funkcji
    • przeciążanie funkcji
    • szablony funkcji
    • funkcje anonimowe

  6. Klasy

    • konstruktor i destruktor
    • metody klas
    • dziedziczenie
    • szablony klas
    • przeciążenie metod
    • przeciążanie operatorów
    • klasy zaprzyjaźnione

  7. Biblioteka STL

    • programowanie uogólnione
    • kontenery
    • algorytmy

  8. Wyjątki

    • słowa kluczowe obsługi wyjątków
    • obsługa wyjątków
    • asercje

  9. Operacje wejścia/wyjścia

    • strumienie
    • obiekty cout i cin
    • operacje na plikach

Laboratory classes:
  1. Zajęcia wprowadzające

    • Student potrafi samodzielnie napisać program wypisujący komunikat na ekran
    • Student potrafi wykonywać operacje na zmiennych całkowitych i zmiennoprzecinkowych
    • Student potrafi skompilować i uruchomić napisany program

  2. Instrukcje sterujące

    • Student potrafi napisać złożoną instrukcję warunkową
    • Student potrafi skorzystać z konstrukcji switch
    • Student potrafi napisać pętle typu for i while
    • Student potrafi wykorzystać w programie argumenty wiersza poleceń

  3. Tablice

    • Student potrafi zaalokować i zwolnić tablice jedno- i dwuwymiarową
    • Student umie poruszać się po tablicy za pomocą indeksu
    • Student potrafi poruszać się po tablicy za pomocą wskaźnika

  4. Funkcje

    • Student potrafi przekazywać parametry do funkcji
    • Student umie zwracać wartości z funkcji
    • Student potrafi korzystać w wyrażeń lambda

  5. Klasy

    • Student potrafi utworzyć klasę zawierającą elementy niezbędne do jej prawidłowego funkcjonowania
    • Student potrafi utworzyć metody zwracające bądź nie wartość oraz przyjmujące bądź nie parametry
    • Student potrafi skorzystać z przeciążania metod
    • Student potrafi utworzyć egzemplarz zdefiniowanej przez siebie klasy i wywołać metody
    • Student potrafi utworzyć i wywołać metodę statyczną
    • Student potrafi przeciążyć operator

  6. Dziedziczenie

    • Student potrafi skorzystać z mechanizmu dziedziczenia

  7. Ciągi znaków

    • Student potrafi skorzystać z metod dostępnych w klasie Sting

  8. Programowanie uogólnione

    • Student potrafi utworzyć uogólnioną klasę
    • Student potrafi utworzyć egzemplarz klasy uogólnionej
    • Student potrafi utworzyć i wywołać uogólnioną metodę

  9. Biblioteka STL

    • Student potrafi dobrać i skorzystać z odpowiedniego kontenera dla zadanego problemu
    • Student potrafi wykorzystać algorytmy dedykowane do wykonywania operacji na określonych kontenerach

  10. Operacje na plikach

    • Student potrafi odczytać dane z pliku
    • Student potrafi zapisać dane w pliku

  11. Wyjątki

    • Student potrafi zastosować obsługę wyjątków
    • Student rozumie do czego służą asercje i potrafi je wykorzystać

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 145 h
Module ECTS credits 5 ECTS
Realization of independently performed tasks 35 h
Participation in lectures 30 h
Participation in laboratory classes 45 h
Preparation for classes 35 h
Additional information
Method of calculating the final grade:

Każde zajęcia laboratoryjne rozpoczynają się krótką kartkówką z materiału wcześniejszego, za które można uzyskać 25% punktów. Pozostałe 75% punktów można uzyskać za program napisany w czasie zajęć. Przy obliczaniu oceny końcowej z laboratorium anulowana jest najsłabsza ocena z kartkówek i najsłabsza ocena z programów. Ocena końcowa obliczana jest jako średnia arytmetyczna oceny uzyskanej z ćwiczeń laboratoryjnych oraz egzaminu, przy czym do obliczania średniej brany jest wynik procentowy. Ocena uzyskana w drugim terminie nie może być jednak wyższa niż 4.0, natomiast uzyskana w trzecim terminie nie może być wyższa niż 3.0. Dotyczy to, zarówno oceny z laboratorium, jak i z egzaminu. Wysokość oceny końcowej będzie ustalana zgodnie ze skalą ocen obowiązującą w regulaminie AGH, przyporządkowującą procent opanowania materiału konkretnej ocenie (Par.13, pkt.1).

Prerequisites and additional requirements:

Podstawowa umiejętność posługiwania się komputerem

Recommended literature and teaching resources:
  1. Dokumentacja aktualnego standardu języka
  2. Stephen Prata, ”Język C++”, ISBN 83–7361–958–5 (najnowsze wydanie)
  3. Bjarne Stroustrup, ”Programowanie. Teoria i praktyka z wykorzystaniem C++”, ISBN 978-83-246-2233-7
  4. Bruce Eckel, ”Thinking in C++, edycja polska”, wydanie IV, ISBN 83-7197-709-3
Scientific publications of module course instructors related to the topic of the module:

Additional scientific publications not specified

Additional information:

Sposób i tryb wyrównania zaległości powstałych wskutek nieobecności studenta na zajęciach:

  • ćwiczenia laboratoryjne: usprawiedliwiona nieobecność na zajęciach wymaga od studenta samodzielnego opanowania przerabianego na tych zajęciach materiału i jego zaliczenia w formie i terminie wyznaczonym przez prowadzącego zajęcia
  • obecność na wykładzie: zgodnie z Regulaminem Studiów AGH

Zasady zaliczania zajęć:

  • ćwiczenia laboratoryjne: podstawowym terminem uzyskania zaliczenia jest koniec zajęć w danym semestrze. Student może dwukrotnie przystąpić do poprawkowego zaliczania.
    Student który bez usprawiedliwienia opuścił więcej niż dwa zajęcia i jego cząstkowe wyniki w nauce były negatywne może zostać pozbawiony, przez prowadzącego zajęcia, możliwości poprawkowego zaliczania zajęć. Od takiej decyzji prowadzącego zajęcia student może się odwołać do prowadzącego przedmiot (moduł) lub Dziekana.
  • warunkiem przystąpienie do egzaminu jest wcześniejsze uzyskanie zaliczenia z ćwiczeń laboratoryjnych
  • egzamin przeprowadzany jest zgodnie z Regulaminem Studiów AGH § 16