Low-Level Programming

Official Title

194.190 Low-Level Programming (VU, 4SWS, 6ECTS)

Curricula

Mandatory elective course in the Master program "Software Engineering"

Course dates

Register on TISS. Please register before the end of the day of the first lecture. Accounts will be created on the next day.

Lecture date: Wednesday, 16:15-18:00, starting on 2025-10-01, EI1 (Old EI, Gusshausstrasse 25, 2nd Floor).

After the lecture part there are presentations of the student projects (the exercise part) at the same date

Overview

While most application software is written in high-level programming languages, at the bottom of the software stack there is a foundation of low-level programming. This course discusses the reasons for low-level programming and its problems in security and reliability. It also provides competencies in low-level programming, including programming languages and debugging.

Contents

Memory organization in various kinds of software. Memory safety. Programming in Forth. Programming in Rust. Methods and tools, in particular for debugging.

Security problems of low-level programming. Systems programming. Run-time systems for high-level programming languages.

Practical exercises

Project, Group and Deliverables

The group size depends on the number of participants. This year the group size probably is 5.

Write a project (65h of work per person) of your own choice in a low-level language, that performs a task or profitably uses an implementation approach that is not possible in a high-level language like Java or Python.

Present what the program does and how it is implemented. In the presentation, point out the program parts that cannot be implemented in a high-level language.

You present the problem and its programmatic solution in a presentation with up to 18 minutes for the whole group.

Course notes

Slides for the lecture will be updated as the semester progresses.

Forth Tutorial

Lecturer

Anton Ertl