Module also offered within study programmes:
General information:
Name:
Advanced Programming Techniques
Course of study:
2016/2017
Code:
JIS-2-006-SW-s
Faculty of:
Physics and Applied Computer Science
Study level:
Second-cycle studies
Specialty:
Systemy wbudowane i rekonfigurowalne
Field of study:
Applied Computer Science
Semester:
0
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Responsible teacher:
dr hab. inż. Mindur Bartosz (mindur@agh.edu.pl)
Academic teachers:
dr hab. inż. Mindur Bartosz (mindur@agh.edu.pl)
Module summary
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)
Social competence
M_K004 Student potrafi samodzielnie i w zespole pracować i zdobyć odpowiednią wiedzę i umiejętności niezbędne do realizacji postawionego przed nim zadania Activity during classes,
Execution of a project,
Execution of laboratory classes
M_K005 Student ma świadomość odpowiedzialności za własną pracę. Activity during classes,
Execution of a project,
Execution of laboratory classes
Skills
M_U004 Student potrafi napisać program z wykorzystaniem paradygmatów programowania obiektowego połączonych z paradygmatami programowania uogólnionego. Activity during classes,
Scientific paper,
Execution of a project,
Execution of laboratory classes
M_U005 Student potrafi napisać program działający i komunikujący się bez udziału użytkownika Activity during classes,
Execution of a project,
Execution of laboratory classes
M_U006 Student potrafi przygotować dokumentację oraz prezentację poświęconą zaawansowanym zagadnieniom programistycznym Activity during classes,
Execution of a project,
Execution of laboratory classes
Knowledge
M_W008 Student zna zaawansowane cechy i elementy charakterystyczne dla obiektowych i uogólnionych języków programowania. Activity during classes,
Scientific paper,
Execution of a project,
Execution of laboratory classes
M_W009 Student zna i potrafi wyjaśnić działanie zaawansowanych konstrukcji używanych w językach wysokiego poziomu Activity during classes,
Scientific paper,
Execution of laboratory classes
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
Social competence
M_K004 Student potrafi samodzielnie i w zespole pracować i zdobyć odpowiednią wiedzę i umiejętności niezbędne do realizacji postawionego przed nim zadania - - + + - - - - - - -
M_K005 Student ma świadomość odpowiedzialności za własną pracę. - - + + - - - - - - -
Skills
M_U004 Student potrafi napisać program z wykorzystaniem paradygmatów programowania obiektowego połączonych z paradygmatami programowania uogólnionego. - - + + - - - - - - -
M_U005 Student potrafi napisać program działający i komunikujący się bez udziału użytkownika - - + - - - - - - - -
M_U006 Student potrafi przygotować dokumentację oraz prezentację poświęconą zaawansowanym zagadnieniom programistycznym - - - + - + - - - - -
Knowledge
M_W008 Student zna zaawansowane cechy i elementy charakterystyczne dla obiektowych i uogólnionych języków programowania. - - + + - + - - - - -
M_W009 Student zna i potrafi wyjaśnić działanie zaawansowanych konstrukcji używanych w językach wysokiego poziomu - - + + - + - - - - -
Module content
Laboratory classes:
Tematyka

Studenci w ramach prowadzonych zajęć laboratoryjnych będą samodzielnie pisać oraz testować i weryfikować krótkie programy komputerowe ilustrujące tematykę poruszaną w ramach seminarium.
Efekty kształcenia:
• student potrafi przedstawić cechy charakterystyczne obiektowych i uogólnionych języków programowania
• student potrafi napisać programy wykorzystując elementy charakterystyczne dla ww. języków
• student potrafi zastosować w swoich programach złożone komponenty wchodzące w skład biblioteki różnych dostępnych bibliotek

Project classes:
Tematyka

Studenci w dwuosobowych zespołach realizują projekty. Każdy zespół otrzymuje do wykonania inny, przydzielony losowo projekt. Punktem wyjścia dla studentów są dostarczone założenia i wskazówki projektowe. W ramach projektu należy w oparciu o cechy charakterystyczne programowania obiektowego i uogólnionego oraz zasoby biblioteczne napisać oprogramowanie realizujące w miarę optymalny sposób założone zadanie.

Seminar classes:
Tematyka

1. Szablony funkcji i klas
2. Biblioteka standardowa STL
3. Kontenery specjalne
4. Standard C++11
5. Wzorce projektowe
6. Efektywne zarządzanie pamięcią
7. Serializacja
8. Wątki i ich synchronizacja
9. Komunikacja międzyprocesowa
10. Niskopoziomowe programowanie sieci (TCP, UDP, Raw)
11. Tworzenie serwisów systemowych (Windows/Linux)
12. Tworzenie bibliotek statycznych i dynamicznych

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 160 h
Module ECTS credits 6 ECTS
Participation in laboratory classes 20 h
Participation in project classes 20 h
Participation in seminar classes 20 h
Completion of a project 30 h
Preparation for classes 40 h
Realization of independently performed tasks 30 h
Additional information
Method of calculating the final grade:

Średnia ważona ocen z zajęć seminaryjnych (S) zaliczenia laboratorium (L) oraz zaliczenia projektu (P), przy czym do obliczania średniej brany jest wynik procentowy.
OK = 0.4*S + 0.3*L + 0.3*P

Prerequisites and additional requirements:

Znajomość programowania w języku C oraz C++

Recommended literature and teaching resources:

• Materiały z seminariów
• Josuttis N., “C++. Programowanie zorientowane obiektowo”, Helion 2003 / Object– Oriented Programming in C++, Wiley 2002
• Vandevoorde D., Josuttis N., “C++. Szablony”, Helion 2003 / “C++ Templates The Complete Guide”, Addison– Wesley 2002
• http://en.cppreference.com/w/cpp
• http://www.boost.org/

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:
    - Nieobecność na nie więcej niż jednych zajęciach wymaga od studenta
    samodzielnego (z możliwością wykorzystania godzin konsultacji) opanowania
    przerabianego na tych zajęciach materiału.
    - Nieusprawiedliwiona nieobecność na więcej niż jednych zajęciach oznacza brak
    możliwości zaliczenia ćwiczeń laboratoryjnych.
    - Student ma prawo do odrobienia każdej usprawiedliwionej nieobecności w
    wyznaczonym przez prowadzącego terminie – do dwóch tygodni od zaistnienia tej nieobecności lecz nie później jak w ostatnim tygodniu trwania zajęć.
  • Zasady zaliczania zajęć:
    Ćwiczenia laboratoryjne:
    - Podstawowym terminem uzyskania zaliczenia jest koniec zajęć w danym semestrze. Przy braku zaliczenia w terminie podstawowym student może przystąpić do poprawkowego zaliczania. Na terminie poprawkowym student może poprawiać ocenę tylko z jednego wybranego projektu, z którego student uzyskał ocenę niedostateczną. Oceny uzyskane w terminie poprawkowym zastępują odpowiednie oceny cząstkowe z „poprawianych” projektów tzn. są one uwzględniane podczas ponownego wyliczania oceny końcowej z laboratorium.
    - Student który bez usprawiedliwienia opuścił więcej niż jedne zajęcia nie
    uzyskuje zaliczenia ćwiczeń.

Ćwiczenia projektowe:
- Podstawowym terminem uzyskania zaliczenia jest koniec zajęć w danym semestrze,
- Projekt można wykonywać samodzielnie lub w grupach
- Projekt grupowy wymaga aktywnego uczestnictwa każdej z osób, które będą oceniane indywidualnie.
- Projekt można oddać tylko osobiście.

Seminarium:
- Student przedstawia na określonych zajęciach prezentację na wskazany przez prowadzącego temat.
- Temat oraz termin zostają ustalone z co najmniej dwutygodniowym wyprzedzeniem.
- Student przedstawia prowadzącemu prezentacje do akceptacji najpóźniej jeden tydzień przed terminem jej wygłoszenia.
- Nieusprawiedliwiona nieobecność na zajęciach podczas, których student maił wygłaszać prezentację lub brak zaakceptowanej prezentacji oznacza brak zaliczenia przedmiotu.

  • Szczegółowe informacje organizacyjne dotyczące trybu zaliczania zajęć i
    odrabiania zaległości dostępne są na stronie
    http://fatcat.ftj.agh.edu.pl/~mindur/adv/