Module Computer architecture and Autonomous Systems, Computer Science (Bachelor) (ER 6)
Module summary

Computer architecture and Autonomous Systems


Prof. Dr. Martin Sulzmann

4 ECTS points / 4 Contact hours

6th Semester


Module Internship

The realisation of technical systems is at the teaching core of this module. Two different basic concepts are addressed: Concepts for the software development of autonomous systems and the hardware concepts, which have to be employed to realise such systems. The module spans the corresponding space of system compositions with respect to hardware and software. The module builds upon the previous courses of computer engineering and software engineering. Therefore it can advance the students quite far conceptually as well as concerning the application fields. The focus is on the domain specific conceptual thinking, which supports the decision making competence of the graduatesfor therealisation ofsystems. The module also enables the graduates for further scientific activities in system development.

Written Exam 120 Min. (graded)
Course Autonomous Systems



Prof. Dr. Martin Sulzmann



Module exam

Students in this course

  • obtain an overview of methods for formal modelling and verification of autonomous/reactive systems,
  • get to know programming concepts to master highly concurrent/distributed systems.l

Selection of topics covered:

(1) Modeling and Verification

  • Statemachine models
    • Mealy/Moore
    • Communication statemachines
    • Timed statemachines
    • Harel Statecharts
  • Specification
    • Reguar languages
    • Temporal logic (CTL)
  • Modelchecking
  • Testcasegeneration via modelchecking
  • Run-Time Verification
  • Coverage criteria

(2) Concurrency and Synchronisation

  • Shared memory
    • Threads and Locks
    • Lock-free Algorithms
    • Software Transactional Memory
  • Message-passing
    • Foundations: CSP, Join
    • Haskell, Go

  • Lecture notes and slides
  • Exercises
  • Selection of textbooks:
      • Real World Haskell
        by Bryan O'Sullivan, Don Stewart, and John Goerzen
      • Real-Time Systems and Programming Languages (Fourth Edition) Ada 2005,
        Real-Time Java and C/Real-Time POSIX
        by Alan Burns and Andy Wellings
      • Principles of Model Checking
        Christel Baier and Joost-Pieter Katoen
      • Real-Time UML: Developing Efficient Objects for Embedded Systems (2nd Edition)

Mix of lecture and theoretical and practical exercises.

Course Computer architecture



Prof. Dr. Martin Sulzmann
Dr. rer. nat. Peter Altevogt



Module exam

In the lecture we will deal with the most important principles of organization and design of microprocessors.
Microprocessors are the central building blocks of practically all current computer systems, from smartphones to supercomputers and thus of the complete digital world.

The focus of the lecture will be the programming of 64-bit ARMv8 processors and the logical design of processors with the help of Verilog.
In addition to teaching the theoretical basics, great emphasis is placed on practical programming exercises.

The following topics are covered:

  - Computer Abstractions and Technology
  - Instructions: Language of the Computer
  - Arithmetic for Computers
  - Performance Analysis
  - Logic Design with Verilog
  - The Processor
  - The Memory Hierarchy
  - Parallel Processors

Computer Organization and Design : The Hardware/Software Interface , ARM Edition,  D.A. Patterson, J.L. Hennessy, Elsevier Inc. 2017

In general, the lectures start with a discussion of the exercises associated with the previous lecture. Afterwards we address new topics.
Questions and feedback are always welcome!