Official course description:

Full info last published 3/02-23
Course info
Language:
English
ECTS points:
7.5
Course code:
KSOPSYC1KU
Participants max:
25
Offered to guest students:
yes
Offered to exchange students:
yes
Offered as a single subject:
yes
Price for EU/EEA citizens (Single Subject):
10625 DKK
Programme
Level:
MSc. Master
Programme:
MSc in Software Design
Staff
Course manager
Assistant Professor
Teacher
PhD student (4+4, part 1)
Course semester
Semester
Efterår 2022
Start
29 August 2022
End
31 January 2023
Exam
Exam type
ordinær
Internal/External
ekstern censur
Grade Scale
7-trinsskala
Exam Language
GB
Abstract

The course focuses on system programming concepts (I / O, network programming and concurrent programming), and their implementation in C. The course deals with how hardware, operating system and the compilation process of programs are related. During the course, students will design and implement a simple Linux kernel module in C.

Description

System programming is essential in order to build software systems with high performance, hardware-protected security or low energy consumption, e.g., cloud-based big data systems or embedded systems.

In this course, all students get a deeper understanding of the hardware and operating system software that their programs are running on. Students who have the ambition to contribute to the Linux kernel, become software developer at a cloud service provider, or design low-level security solutions get a strong foundation that they can develop further later on.

The course covers:

  • C programming language
  • Computer organisation
  • Operating system principles

The course covers the three fundamental computer system abstractions (interpreter, memory and communication) and the corresponding operating system concepts (processes, virtual memory and files). There is a particular focus on data representation, memory management, buffer overflow, cache management, dynamic memory allocation, exceptional control flow, file system and synchronisation. Assembly is used to introduce coherence between hardware architecture and C concepts such as pointers or stack-based function calls.

Formal prerequisites

Experience with a programming language is necessary.

Intended learning outcomes

After the course, the student should be able to:

  • Read, write and debug C programs in a shell-environment
  • Interpret how C programs execute on a computer system
  • Describe basic system programming concepts in C (I/Os, network programming, concurrent programming)
  • Reflect on the impact of hardware, operating system and compilation process on application programs
  • Design and implement cache efficient matrix multiplication
Learning activities

Five assignments will be given during the course of the class, two of them are mandatory and constitute the basis of the exam. Lectures will consist of slide presentation and live coding. Exercises will be based on peer programming and exercises from the textbook. The course language is English.

Mandatory activities

Two out of the five assignments are mandatory activities. Students choose which assignments are mandatory. Feedback is given on the assignments, assuming that they are handed over before the associated deadline. If the assignments are submitted late, no feedback is given. Detailed description of the assignments and deadlines will be announced on the course page of LearnIT.

The student will receive the grade NA (not approved) at the ordinary exam, if the mandatory activities are not approved and the student will use an exam attempt.

Course literature

The course literature is published in the course page in LearnIT.

Student Activity Budget
Estimated distribution of learning activities for the typical student
  • Preparation for lectures and exercises: 20%
  • Lectures: 20%
  • Exercises: 20%
  • Assignments: 40%
Ordinary exam
Exam type:
C: Submission of written work, External (7-point scale)
Exam variation:
C11: Submission of written work
Exam submission description:
The exam is a 3 week take-home exam.
The assignment consist of questions based on the 3 mandatory assignments from the semester.


reexam
Exam type:
B: Oral exam, External (7-point scale)
Exam variation:
B1H: Oral exam with time for preparation. Home.
Exam duration per student for the oral exam:
30 minutes

Time and date