Course - Real-time Programming - TTK4145
Real-time Programming
About
About the course
Course content
Programming formalisms for real-time systems; POSIX, Ada, Java and Go. Threads/processes, synchronization and communication. Shared variable-based synchronization and resource control. Fault Tolerance, availability and consistency. Message-based synchronization, CSP and formal methods. Exercises and project.
Learning outcome
Knowledge:
- Thorough knowledge of synchronization mechanisms like semaphores and monitors.
- Thorough knowledge of messagebased synchronization.
- Thorough knowledge of threads, processes, scheduling and synchronization in context of a real-time operating system.
- Thorough knowledge of common mistakes 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 developement of real-time software, both based on shared variable synchronization and messagepassing.
- Ability to plan and execute a software developement project of significant complexity (~some thousand lines of C code)
- Good skills in using one programming language (probably C, C++, Java or ADA).
- The student should be able to relate constructively in his design to error handling and consistency in systems with more participants.
General Competence:
- Teamwork.
- IT and software developement in general.
Learning methods and activities
Lectures and problem sets/project. 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.
Compulsory assignments
- Exercises
- Project
Recommended previous knowledge
Proficiency in at least one programming language and thorough knowledge of computers and operating systems.
Course materials
Alan Burns og Andy Wellings: Real-Time Systems and Programming Languages. Other litterature may be announced at the start of the semester.
Credit reductions
| Course code | Reduction | From |
|---|---|---|
| SIE3050 | 7.5 sp |
Subject areas
- Computers
- Computer Systems
- Program/system-utvikling
- Technological subjects