Course detail

Programming Seminar

FIT-IPSAcad. year: 2024/2025

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

Mode of study

Not applicable.

Entry knowledge

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

Rules for evaluation and completion of the course

  • Evaluation of the two home assignments (max 35 points)
  • Evaluation of the two home assignments (max 30 points)

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 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.

Study aids

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Not applicable.

Recommended reading

A. Kumar, A. K. Verma. A Novel Algorithm for the Conversion of Parallel Regular Expressions to Non-deterministic Finite Automata. 2014. doi: 10.1.1.403.6706
Drepper, D.: What Every Programmer Should Know About Memory, 2007.
Kernighan and Ritchie. The C Programming Language, 2nd edition. Chapter A. Storage Allocator for C maloc and free. 1989.
Maged M. Michael. Scalable lock-free dynamic memory allocation. In Proc. of PLDI'04. doi: 10.1145/996841.996848
Michael, M.M.: Scalable lock-free dynamic memory allocation. 2004. In Proc. of PLDI'04. doi: 10.1145/996841.996848

Classification of course in study plans

  • Programme BIT Bachelor's 2 year of study, winter semester, elective
  • Programme BIT Bachelor's 2 year of study, winter semester, elective

Type of course unit

 

Seminar

20 hod., optionally

Teacher / Lecturer

Syllabus

  1. Pointers, dynamic memory allocation.
  2. Stack frames, recursion.
  3. Compilation and debugging of programs.
  4. --
  5. Demonstration and solution of a given task.
  6. Finite automata, POSIX regular expressions.
  7. Synchronization of processes.
  8. Deadlock.
  9. --
  10. Demonstration and solution of a given task.
  11. Page tables.
  12. Demand paging and cache in relation to performance.
  13. Demonstration and solution of a given task.