course-details-portlet

TTK4145

Real-time Programming

Credits 7.5
Level Third-year courses, level III
Course start Spring 2016
Duration 1 semester
Language of instruction English
Examination arrangement Portfolio assessment

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

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
This course has academic overlap with the course in the table above. If you take overlapping courses, you will receive a credit reduction in the course where you have the lowest grade. If the grades are the same, the reduction will be applied to the course completed most recently.

Subject areas

  • Computers
  • Computer Systems
  • Program/system-utvikling
  • Technological subjects

Contact information

Course coordinator

Lecturers

Department with academic responsibility

Department of Engineering Cybernetics

Examination

Examination

Examination arrangement: Portfolio assessment
Grade: Letters

Re-sit examination - Summer 2016

Arbeider
Weighting 25/100
Muntlig eksamen
Weighting 75/100 Date 2016-08-19

Ordinary examination - Spring 2016

Arbeider
Weighting 25/100
Skriftlig eksamen
Weighting 75/100 Date 2016-05-25 Time 09:00 Duration 4 timer Place and room Not specified yet.