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.
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
Recommended previous knowledge
Proficiency in at least one programming language and thorough knowledge of computers and operating systems.
Course materials
Course material will be announced at the start of the semester.
Credit reductions
| Course code | Reduction | From |
|---|---|---|
| SIE3050 | 7.5 sp |
Subject areas
- Computers
- Computer Systems
- Technological subjects
Contact information
Course coordinator
Lecturers
Department with academic responsibility
Examination
Examination
Ordinary examination - Spring 2020
Arbeider
Home exam
Submission 2020-06-02 Time Release 09:00
Submission 13:00 Duration 4 hours Exam system Inspera Assessment