TTK4145 (sanntid)

Real-time Programming

Spring

Trondheim

English

Overview

22 candidates

Average grade

D

2.36

0.47

Pass rate

82%

10 points

Grade distribution
Average over time
Pass rate over time

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

Exercises.

Learning outcomes

Knowledge:

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

Skills:

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

Teaching methods

Lectures, exercises and project. The project is quite large, and will be done in cooperation with two other students as a main rule.