t.BA.IT.SNP.19HS (System-oriented programming) 
Module: System-oriented programming
This information was generated on: 20 April 2021
No.
t.BA.IT.SNP.19HS
Title
System-oriented programming
Organised by
T InES
Credits
4

Description

Version: 1.0 start 01 February 2019
 

Short description

C and Unix-like operating systems, such as Linux, are closely related and widely used in industry. In this module the student will learn the fundamentals of Unix-Like OSs, how to program under Linux and interfacing with it via the POSIX calls. Shell scripts will also be handled.

Module coordinator

Doran, Hans Dermot (donn)

Learning objectives (competencies)

Objectives Competences Taxonomy levels
You can explain the fundamental components of a computer system including cache, memory management unit, DMA and floating point units. You can explain how a computer system boots.  F, M C2
You can use an operating system shell and program shell scripts F, M C3
You have the ability to use, understand, program and test small programs in the C programming language. You have the competence to program and test larger programs   F, M C3 (C4)
You understand and can use the concepts of processes and threads and can use the appropriate system calls and test multi-threading and multi-process programs. You can understand and use synchronisation and inter-process communication system calls.   F, M C3
You can explain the operation of a file system and use the appropriate system calls.  F, M C3
You can manage POSIX clocks and high-resolution timers F, M C3
You understand memory management and optimise memory accesses F, M C3

Module contents

Programming in C (14 Lectures)
  • Introduction to C
  • Types and composite types (standard types and structs)
  • Standard control flow (for, if, while)
  • String and string functions. Pointers and (multidimensional-) arrays. Pointer arithmetic. Structures and pointers.
  • Modular programming, interfaces, tools and verification and validation (headers, make, CUnit)
  • Local, global and static variables. Dynamic memory management, stack and heap.
  • Functions: „Call by address“: pointers, pointers to functions, multi-dimensional arrays as parameters and constant parameters. Functions with variable number of parameters and command line parameters.
Operating Systems Programming (14 Lectures)
  • Bash command line input and scripts, SSH
  • Processes and threads and relationship to schedulers (FIFO, RR, CFS)
  • Interprocess communication (pipes, sockets ..)
  • Synchronisation (mutex, semaphores and signals)
  • File systems and I/O programming
  • Memory models and accesses
  • POSIX clocks and high resolution timers
Laboratories 

Teaching materials

Slides

Supplementary literature

 

Prerequisites

PROG1 Programming and Testing Fundamentals

Teaching language

(X) German ( ) English

Part of International Profile

( ) Yes (X) No

Module structure

Type 3a
  For more details please click on this link: T_CL_Modulauspraegungen_SM2025

Exams

Description Type Form Scope Grade Weighting
Graded assignments during teaching semester Exercises Oral 10 Exercises Grade 20%
End-of-semester exam Exam Written 90 Minutes Grade 20%

Remarks

 

Legal basis

The module description is part of the legal basis in addition to the general academic regulations. It is binding. During the first week of the semester a written and communicated supplement can specify the module description in more detail.
Course: Systemnahe Programmierung - Praktikum
No.
t.BA.IT.SNP.19HS.P
Title
Systemnahe Programmierung - Praktikum

Note

  • No module description is available in the system for the cut-off date of 01 August 2099.
Course: Systemnahe Programmierung - Vorlesung
No.
t.BA.IT.SNP.19HS.V
Title
Systemnahe Programmierung - Vorlesung

Note

  • No module description is available in the system for the cut-off date of 01 August 2099.