Theory of Computational Systems Course, Summer 2005
Department of Computer Sciences, University of Salzburg
Prof. Christoph Kirsch
Time, Location: Tue 3-4, Th 2-4, Techno-Z T04. First two lectures on Thursday, March 17, 2-4, Techno-Z T04 and Friday (!), March 18, 1-2, Techno-Z T01 (to catch up with lost time).
This course is for the practically-minded graduate student who always wanted to know what the theory of computation and systems is good for. The course provides a hands-on yet graduate-level introduction to the classical theory of computation and to the theory of computational systems such as concurrent, reactive, real-time, and hybrid systems. The first part of the course reviews classical automata theory, formal languages, and computational complexity theory; the second part gives an overview of concurrency models such as CSP, CCS, and Petri nets, as well as of reactive, real-time, and hybrid systems such as timed and hybrid automata. The key question asked in this course is: why do we need theories of computation and systems and how do they manifest in practice? The purpose of this course is to give practical meaning to computer science theory and advocate principled engineering. The target audience are students interested in the design of complex software systems such as operating systems, distributed systems, and real-time systems. Students will experience casual access to computer science theory by designing (defining) and implementing (proving) their own mini theories of computation or systems in class projects.
Goal of the course:
Learn how to make sense of computer science theory and appreciate principled engineering.
Grading: 100% project.
Prerequisites: Basic knowledge in automata theory, formal languages, and computational complexity theory is helpful but not required.
Administrative contact: Petra . Kirchweger @ cs . uni-salzburg . at