Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Rocznik:
2012/2013
Kod:
JIS-2-006-SW-s
Nazwa:
Zawansowane techniki programowania
Wydział:
Fizyki i Informatyki Stosowanej
Poziom studiów:
Studia II stopnia
Specjalność:
Systemy wbudowane i rekonfigurowalne
Kierunek:
Informatyka Stosowana
Semestr:
0
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma i tryb studiów:
Stacjonarne
Osoba odpowiedzialna:
dr hab. inż. Mindur Bartosz (mindur@fis.agh.edu.pl)
Osoby prowadzące:
dr hab. inż. Mindur Bartosz (mindur@fis.agh.edu.pl)
Krótka charakterystyka modułu

Opis efektów kształcenia dla modułu zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń)
Wiedza
M_W008 Student zna zaawansowane cechy i elementy charakterystyczne dla obiektowych i uogólnionych języków programowania. Aktywność na zajęciach,
Referat,
Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
M_W009 Student zna i potrafi wyjaśnić działanie zaawansowanych konstrukcji używanych w językach wysokiego poziomu Aktywność na zajęciach,
Referat,
Wykonanie ćwiczeń laboratoryjnych
Umiejętności
M_U004 Student potrafi napisać program z wykorzystaniem paradygmatów programowania obiektowego połączonych z paradygmatami programowania uogólnionego. Aktywność na zajęciach,
Referat,
Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
M_U005 Student potrafi napisać program działający i komunikujący się bez udziału użytkownika Aktywność na zajęciach,
Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
M_U006 Student potrafi przygotować dokumentację oraz prezentację poświęconą zaawansowanym zagadnieniom programistycznym Aktywność na zajęciach,
Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
Kompetencje społeczne
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 Aktywność na zajęciach,
Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
M_K005 Student ma świadomość odpowiedzialności za własną pracę. Aktywność na zajęciach,
Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
Matryca efektów kształcenia w odniesieniu do form zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć
Wykład
Ćwicz. audyt.
Ćwicz. lab.
Ćwicz. proj.
Konw.
Zaj. sem.
Zaj. prakt.
Zaj. terenowe
Zaj. warsztatowe
Inne
E-learning
Wiedza
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 - - + + - + - - - - -
Umiejętności
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 - - - + - + - - - - -
Kompetencje społeczne
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ę. - - + + - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Ćwiczenia laboratoryjne:
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

Ćwiczenia projektowe:
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.

Zajęcia seminaryjne:
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

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 160 godz
Punkty ECTS za moduł 6 ECTS
Udział w ćwiczeniach laboratoryjnych 20 godz
Udział w ćwiczeniach projektowych 20 godz
Udział w zajęciach seminaryjnych 20 godz
Wykonanie projektu 30 godz
Przygotowanie do zajęć 40 godz
Samodzielne studiowanie tematyki zajęć 30 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

Ś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

Wymagania wstępne i dodatkowe:

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

Zalecana literatura i pomoce naukowe:

• 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/

Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Nie podano dodatkowych publikacji

Informacje dodatkowe:
  • 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:
    - Jedynym terminem uzyskania zaliczenia jest koniec zajęć w danym semestrze,
    przy czym przy obliczaniu końcowej liczby punktów nie będą brane pod uwagę jedne
    ćwiczenia, z których dana osoba uzyskała najmniejsze liczby punktów. Termin
    ten może zostać wydłużony w przypadku niemożliwości wcześniejszego wyrównania
    zaległości wynikającego z usprawiedliwionych przyczyn.
    - Student który bez usprawiedliwienia opuścił więcej niż jedne zajęcia nie
    uzyskuje zaliczenia ćwiczeń.

Ćwiczenia projektowe:
- Jedynym 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/