Module also offered within study programmes:
General information:
Name:
Metodyka i techniki programowania 2
Course of study:
2017/2018
Code:
IET-1-309-n
Faculty of:
Computer Science, Electronics and Telecommunications
Study level:
First-cycle studies
Specialty:
-
Field of study:
Electronics and Telecommunications
Semester:
3
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Part-time studies
Course homepage:
 
Responsible teacher:
dr hab. inż. Cyganek Bogusław (cyganek@agh.edu.pl)
Academic teachers:
dr hab. inż. Cyganek Bogusław (cyganek@agh.edu.pl)
Smolarek Łukasz (smolarek@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_K001 Rozumie potrzebę uczenia się ET1A_K01 Project
Skills
M_U001 Potrafi rozwiązywać trudniejsze zadania algorytmiczne ET1A_U24 Project
M_U002 Potrafi zapisywać algorytmy w obiektowym języku programowania ET1A_U24 Project
M_U003 Potrafi stosować dynamiczne strukturalne danych ET1A_U24 Project
M_U004 Potrafi rozwiązywać proste zadania inżynierskie w języku Matlab ET1A_U24, ET1A_W14 Project
Knowledge
M_W001 Zna i rozumie rolę procesów i wątków w programowaniu ET1A_W07 Test
M_W002 Zna i rozumie podstawy niskopoziomowego programowania komputerów ET1A_W07 Test
M_W003 Zna i rozumie zasady przeprowadzania obliczeń inżynierskich w środowisku Matlab ET1A_W14, ET1A_W07 Test
M_W004 Zna język UML i jego rolę w tworzeniu systemów informatycznych ET1A_W17, ET1A_W07 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
Social competence
M_K001 Rozumie potrzebę uczenia się + - + - - - - - - - -
Skills
M_U001 Potrafi rozwiązywać trudniejsze zadania algorytmiczne + - + - - - - - - - -
M_U002 Potrafi zapisywać algorytmy w obiektowym języku programowania + - + - - - - - - - -
M_U003 Potrafi stosować dynamiczne strukturalne danych + - + - - - - - - - -
M_U004 Potrafi rozwiązywać proste zadania inżynierskie w języku Matlab + - + - - - - - - - -
Knowledge
M_W001 Zna i rozumie rolę procesów i wątków w programowaniu + - + - - - - - - - -
M_W002 Zna i rozumie podstawy niskopoziomowego programowania komputerów + - + - - - - - - - -
M_W003 Zna i rozumie zasady przeprowadzania obliczeń inżynierskich w środowisku Matlab + - + - - - - - - - -
M_W004 Zna język UML i jego rolę w tworzeniu systemów informatycznych + - + - - - - - - - -
Module content
Lectures:

Zajęcia w ramach modułu prowadzone są w postaci wykładu (8 godzin) oraz ćwiczeń laboratoryjnych (16 godzin). Ćwiczenia laboratoryjne dotyczą materiału z bieżącego wykładu oraz poprzedniego „Metodyka i techniki programowania I”.

WYKŁADY

1. Procesy i wątki w języku C/C++: budowa i stany procesu, proces macierzysty i potomny, komunikaty i sygnały, synchronizacja, rozwidlenie, podmiana kodu.
2-3. Programowanie urządzeń wejścia/wyjścia: procesor, rejestry, segmentacja i stronicowanie pamięci, przerwania sprzętowe i programowe, funkcje BIOS-u i ich wywoływanie, kanały DMA. Asembler, łączenie kodu napisanego w asemblerze z kodem napisanym w języku C/C++. Biblioteki rozszerzające język C/C++. Podstawy grafiki komputerowej.
4-6. Język Matlab jako narzędzie obliczeń inżynierskich. Podstawy programowania. Przykłady obliczeń naukowo-technicznych.
7-8. Wprowadzenie do języka UML.

Laboratory classes:

ĆWICZENIA LABORATORYJNE

W module prowadzone są zajęcia laboratoryjne (komputerowe), w trakcie których studenci piszą programy w języku C/C++ i Matlab. Treści tych zajęć ugruntowują i rozszerzają wiedzę przekazywaną podczas wykładów. Materiał laboratorium dotyczy także zagadnień przekazanych podczas wykładu w poprzednim semestrze. W tym semestrze laboratorium bardziej koncentruje się na technikach programowania i algorytmicznym rozwiązywaniu problemów niż na samym języku programowania (algorytmika, struktury danych, C++, Matlab).

1. Funkcje rekurencyjne. Ilustracja korzyści i zagrożeń wynikających z wykorzystania funkcji rekurencyjnych. Praktyczne wykorzystanie funkcji rekurencyjnych w implementacji algorytmów obliczeniowych.
2. Statyczne struktury danych. Manipulacja polami struktur uporządkowanych w tablicach.
3. Przekazywanie złożonych struktur danych pomiędzy funkcjami programu, problem zasięgu.
4. Dynamiczne struktury danych, rezerwowanie i zwalnianie pamięci pod zmienne dowolnego typu.
5. Problem zarządzania pamięcią w językach bez mechanizmu ,,garbage collection’’.
6. Procesy i wątki. Analiza i zarządzanie procesami w systemach uniksopodobnych z poziomu powłoki oraz języka programowania.
7. Elementy współbieżnego programowania w języku C przy wykorzystaniu rozwidlenia procesu.
8. Wprowadzenie do programowania obiektowego. Deklaracja klas i podstawowych elementów składowych.
9. Elementy programowania obiektowego: przeładowanie funkcji i operatorów. Możliwość rozszerzenia podstawowych funkcji języka za pomocą mechanizmu przeładowania.
10. Algorytmy sortowania: bąbelkowe, QuickSort, qsort().
11. Algorytmy sortowania i wyszukiwania w strukturach drzewiastych.
12. Wprowadzenie do języka programowania i środowiska Matlab. Różnice pomiędzy Matlab i C.
13. Proste programy w języku Matlab.
14. Opracowywanie wyników eksperymentu w języku Matlab.
15. Sprawdzenie wiadomości. Wystawienie ocen.

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 75 h
Module ECTS credits 3 ECTS
Participation in lectures 8 h
Participation in laboratory classes 16 h
Realization of independently performed tasks 39 h
Preparation for classes 12 h
Additional information
Method of calculating the final grade:

Aby uzyskać pozytywną ocenę końcową niezbędne jest uzyskanie pozytywnej oceny z ćwiczeń laboratoryjnych oraz kolokwium z wykładu.
Obliczamy średnią arytmetyczną z ocen zaliczenia i kolokwium uzyskanych we wszystkich terminach.
Wyznaczmy ocenę końcową na podstawie zależności:
if sr>4.75 then OK:=5.0 else
if sr>4.25 then OK:=4.5 else
if sr>3.75 then OK:=4.0 else
if sr>3.25 then OK:=3.5 else OK:=3
Jeżeli pozytywną ocenę z ćwiczeń laboratoryjnych i kolokwium uzyskano w pierwszym terminie oraz ocena końcowa jest mniejsza niż 5.0 to ocena końcowa jest podnoszona o 0.5

Prerequisites and additional requirements:

Znajomość materiału z wykładu „Metodyki i techniki programowania I”

Recommended literature and teaching resources:

P. Metzger: „Anatomia PC”, Helion, Gliwice 2006.
J. Grębosz: „Symfonia C++ standard”, Wydawnictwo „Edition 2000”, Kraków 2005.
S. Prata: „Język C++. Szkoła programowania”, wyd. 5, Helion 2006.
P. Wróblewski: „Algorytmy, struktury danych i techniki programowania”, Helion, Gliwice 2003.
N. Wirth: „Algorytmy + Struktury danych = Programy”, WNT, Warszawa 1989.
P. Rudra: Matlab 7 dla naukowców i inżynierów”, PWN 2007.
J. Brzózka, L. Dorobczyński: „Matlab środowisko obliczeń naukowo-technicznych”, PWN 2008.

Scientific publications of module course instructors related to the topic of the module:

Additional scientific publications not specified

Additional information:

None