TTK4145 - Real-time Programming


Examination arrangement

Examination arrangement: Portfolio assessment
Grade: Letters

Evaluation Weighting Duration Grade deviation Examination aids
Work 25/100
School exam 75/100 4 hours D

Course content

Topics: Programming formalisms for real-time systems; POSIX, Ada, Java and Go. Threads/processes, scheduling, synchronization and communication, concurrency. Fault Tolerance, availability and consistency. Software quality and development methodology.

A software development project done in groups is a significant part of the course.


Learning outcome


  • Thorough knowledge of synchronization mechanisms like semaphores and monitors. 
  • Thorough knowledge of message-based synchronization.
  • Thorough knowledge of threads, processes, scheduling and synchronization in context of a real-time operating system.
  • Thorough knowledge of pitfalls in real-time programming.
  • Thorough knowledge of error handling and fault tolerance.
  • Thorough knowledge of availability and consistency in systems with more threads/processes.
  • Knowledge of the programming languages C, C++, Java, Ada and Go.
  • Knowledge of CSP, formal methods and use of analysis tools for real-time systems.


  • Good skills in design and development of real-time software, both based on shared variable synchronization and message-passing.
  • Ability to plan and execute a software development project of significant complexity (~1-2 thousand lines of C code)
  • Good skills in using one programming language (the one used in the project, the project groups choice).
  • The student should be able to relate constructively in his design to error handling and consistency in systems with more participants.

General Competence:

  • Teamwork.
  • Software development
  • Information technology in general.

Learning methods and activities

Lectures, exercises and project.

Compulsory assignments

  • Exercises
  • Project

Further on evaluation

Portfolio evaluation is the basis for the final grade in the subject. Parts of the portfolio are final exam in writing 75%, project and selected problem sets 25%. The result for each part is given in percentage units, while evaluation of the entire portfolio (the final grade) is given as a letter. If there is a re-sit examination, the examination form may change from written to oral. In the case that the student receives an F/Fail as a final grade after both ordinary and re-sit exam, then the student must retake the course in its entirety. Submitted work that counts towards the final grade will also have to be retaken

Specific conditions

Compulsory activities from previous semester may be approved by the department.

Course materials

Course material will be announced at the start of the semester.

Credit reductions

Course code Reduction From To
SIE3050 7.5
More on the course



Version: 1
Credits:  7.5 SP
Study level: Third-year courses, level III


Term no.: 1
Teaching semester:  SPRING 2022

Language of instruction: English

Location: Trondheim

Subject area(s)
  • Computers
  • Computer Systems
  • Technological subjects
Contact information
Course coordinator: Lecturer(s):

Department with academic responsibility
Department of Engineering Cybernetics


Examination arrangement: Portfolio assessment

Term Status code Evaluation Weighting Examination aids Date Time Examination system Room *
Spring ORD Work 25/100
Room Building Number of candidates
Spring ORD School exam 75/100 D 2022-05-18 09:00 INSPERA
Room Building Number of candidates
  • * The location (room) for a written examination is published 3 days before examination date. If more than one room is listed, you will find your room at Studentweb.

For more information regarding registration for examination and examination procedures, see "Innsida - Exams"

More on examinations at NTNU