Course detail

Programming Seminar

FIT-IPS Acad. year: 2019/2020 Winter semester

Dynamic memory allocation, pointer and reference data type. Activation record and recursion. Compilation, binary program invocation. Implementation of state automata. Implementation of algorithms for regular expressions. Program synchronization. Principles of threads and processes. Selected synchronization issues. Introduction to message passing interface. Problematics of page faults and related performance effects.

Language of instruction

Czech

Number of ECTS credits

2

Learning outcomes of the course unit

  • The student is able to explain the problems of program execution, she/he can explain dynamic memory allocation.
  • Student can use state automata in program control.
  • Student manages the application of regular expressions.
  • Student manages implementation of parallel programs.
  • The student is able to identify a decrease in program performance due to memory accesses.

Prerequisites

Programming in C language. Fundamentals of algorithmization. Basic synchronization primitives. Computer architecture.

Assesment methods and criteria linked to learning outcomes

  • Evaluation of the two home assignments solved in pairs of students (max 20 points)
  • Evaluation of an accreditation exam (max 80 points)

Exam prerequisites:
The minimal total score of 50 points gained during a semester.

Aims

The goal of the course is to provide a different point of view to key principles of programming and operating systems. In particular, with respect to the abstraction of algorithms and formal automata and models, to reach the connection of theoretic and practical knowledge of a given topic.

The study programmes with the given course

Programme IT-BC-3: Information Technology, Bachelor's
branch BIT: Information Technology, elective

Programme BIT: Information Technology, Bachelor's
specialization BITP: Information Technology, elective

Programme B3A-P: Applied Sciences in Engineering, Bachelor's
branch B-MAI: Mathematical Engineering, elective (voluntary)

Type of course unit

 

Seminar

20 hours, optionally

Syllabus

  1. Pointers, dynamic memory allocation.
  2. Stack frames, recursion.
  3. Compilation and debugging of programs.
  4. (computer laboratory)
  5. (computer laboratory)
  6. Finite automata, POSIX regular expressions.
  7. Synchronization of processes.
  8. Deadlock.
  9. (computer laboratory)
  10. (computer laboratory)
  11. Page tables.
  12. Demand paging and cache in relation to performance.
  13. Accreditation exam.

Project

6 hours, compulsory

Syllabus