Module also offered within study programmes:
General information:
Name:
Methods and Programming Techniques 2
Course of study:
2017/2018
Code:
IES-1-205-s
Faculty of:
Computer Science, Electronics and Telecommunications
Study level:
First-cycle studies
Specialty:
-
Field of study:
Electronics and Telecommunications
Semester:
2
Profile of education:
Academic (A)
Lecture language:
English
Form and type of study:
Full-time studies
Course homepage:
 
Responsible teacher:
dr inż. Bułat Jarosław (kwant@agh.edu.pl)
Academic teachers:
dr inż. Bułat Jarosław (kwant@agh.edu.pl)
dr inż. Rusek Krzysztof (krusek@agh.edu.pl)
Module summary

The fundamentals of computer science, part II.

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 Understands necessity of self-learning (progress) ES1A_K01 Project
Skills
M_U001 Can solve more difficult algorithmic tasks ES1A_U24 Project
M_U002 Can code algorithms in object-oriented programming language ES1A_U24 Project
M_U003 Can use dynamic data structures ES1A_U24 Project
M_U004 Can solve simple engineering tasks in Matlab programming language ES1A_W14, ES1A_U24 Project
Knowledge
M_W001 Knows and understands role of processes and threads in programming ES1A_W07 Test
M_W002 Knows and understands principles of low level hardware programming ES1A_W07 Test
M_W003 Knows and understands principles of engineering calculations in Matlab programming language ES1A_W14, ES1A_W07 Test
M_W004 Knows UML language and its role in designing information computer-based systems ES1A_W17, ES1A_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 Understands necessity of self-learning (progress) + - + - - - - - - - -
Skills
M_U001 Can solve more difficult algorithmic tasks - - + - - - - - - - -
M_U002 Can code algorithms in object-oriented programming language - - + - - - - - - - -
M_U003 Can use dynamic data structures - - + - - - - - - - -
M_U004 Can solve simple engineering tasks in Matlab programming language - - + - - - - - - - -
Knowledge
M_W001 Knows and understands role of processes and threads in programming + - - + - - - - - - -
M_W002 Knows and understands principles of low level hardware programming + - - + - - - - - - -
M_W003 Knows and understands principles of engineering calculations in Matlab programming language + - - + - - - - - - -
M_W004 Knows UML language and its role in designing information computer-based systems + - - + - - - - - - -
Module content
Lectures:

LECTURES (14h)

1. Processes and threads in C/C++ language: structure and states of a process, process table, mother process and child process, massages and signals, synchronization, forking, code exchange (replacement).
2-3. Programming I/O devices: processor, registers, memory segmentation and pagination, hardware and software interrupts, BIOS functions and their calling/usage, DMA channels. Assembler, linking assembler and C/C++ language codes. Libraries extending C/C++ language.
4-6. Matlab language as a universal computational tool for engineers and scientists. Programming principles. Examples of scientific and technical/engineering calculations.
7. Introduction to UML language.

Laboratory classes:

LABORATORY (28h)

In this course lectures are accompanied by laboratory exercises, during which students write programs in two programming languages: C/C++ and Matlab. Laboratory exercises aim at clarification and extension of knowledge given during the lectures. Topics of exercises are also based on lectures of the course “Programming methods and techniques I” presented one semester earlier. Now laboratory is more concentrated on programming techniques (complex data structures, dynamic data structures, lists, queues, stacks, trees, etc.) and different algorithmic problem solving (sorting elements, finding an element, etc.) than on programming language itself.

Details

1. Recursive functions. Risks and advantages of their usage. Practical applications.
2. Static data structures. Manipulation of data in tables of structures.
3. Sending complex data structures between program functions, the range problem.
4. Dynamic data structures, memory allocation and its release.
5. Problem of memory management in languages without mechanism ,,garbage collection’’.
6. Processes and threads. Analysis and management of processes from the Linux shell and from the C language program.
7. Concurrent programming in C language using process forking.
8. Introduction to object-oriented programming. Declaration of a class and its components.
9. Elements of object-oriented programming. Overloading functions and mathematical operations.
10. Sorting algorithms: BubleSort, QuickSort, qsort().
11. Algorithms for sorting and searching in tree structures.
12. Introduction to Matlab programming language. Differences between Matlab and C.
13. Simple programs in Matlab.
14. Analysis and processing of experimental data in Matlab.

Project classes:

Project classes (14)

During project classes, students design and write on their own program according to specifications.

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 100 h
Module ECTS credits 4 ECTS
Participation in lectures 16 h
Realization of independently performed tasks 16 h
Participation in laboratory classes 14 h
Participation in project classes 14 h
Preparation of a report, presentation, written work, etc. 28 h
Contact hours 12 h
Additional information
Method of calculating the final grade:

1. Positive final evaluation from, both, laboratory exercises and test after the lectures.
2. Mean value is calculated from marks obtained by a student during all final laboratory evaluations and lecture test dates.
3. Final mark is calculated using the following formulae:
if mean>4.75 then OK:=5.0 else
if mean>4.25 then OK:=4.5 else
if mean>3.75 then OK:=4.0 else
if mean>3.25 then OK:=3.5 else OK:=3
4. If positive results from laboratory and lecture test are obtained during the first attempt (date) and the final mark is lower than 5.0, then the final mark is increased by 0.5.

Prerequisites and additional requirements:

Credit for a course „Programming Methods and Techniques I”

Recommended literature and teaching resources:

1. Bjarne Stroustrup, Język C++, (assume knowledge of C, PL/EN)
2. Jerzy Grębosz, Symfonia C++, (from C to C++, popular)
3. Stephen Prata, Language C++, (PL/EN)
4. https://stackoverflow.com C/C++, algorithms, systems, conf., …
5. https://www.wikibooks.org C/C++ (good PL/EN)

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

- Bulat, Jaroslaw, et al. “Data processing tasks in wireless GI endoscopy: Image-based capsule localization & navigation and video compression.” Engineering in Medicine and Biology Society, 2007. EMBS 2007. 29th Annual International Conference of the IEEE. IEEE, 2007.
- Bułat, Jarosław, and Andrzej Głowacz. “Vision-based navigation assistance for visually impaired individuals using general purpose mobile devices.” Signals and Electronic Systems (ICSES), 2016 International Conference on. IEEE, 2016.

Additional information:

None