Skip to content

Laboratory for Software Science

Teaching

Programming education is frequently oriented towards immediate gratification, emphasizing the creation of entertaining projects and seeing results quickly. However, as one’s skills mature, it becomes increasingly important to consider the broader impact of one’s work. At the Laboratory for Software Science, we aim to cultivate not only technical excellence but also a conscientious approach to software development. We invite students who are committed to creating reliable, responsible software to join our courses, which cover a wide range of foundational principles and practices essential for building safe and dependable systems.

Undergraduate courses

  • Automata, Languages, and Compilers. This is our compiler construction course. We lay the intuitive foundations here for the inductive reasoning needed to write reliable software. This is taught every spring.
  • Advanced Topics in Automata, Languages and Compilers. The course contains additional topics on automata, languages and compilers: programming in OCaml and introduction to various kinds of static program analysis. This is taught every spring.
  • Functional Programming is an introductory functional programming course in Idris. It covers both classic topics as well as an introduction to using a powerful type system to reason about the correctness of programs. This is taught every autumn.
  • Logic in Computer Science. This course provides an overview of methods for formal modelling of computer systems and the construction of corresponding reasoning. This is taught every spring.

Graduate courses

  • Principles of Programming Languages. This is our programming language theory course, giving the students the required knowledge to be able to mathematically model programs, formally reason about their behaviour, and formulate, write, and verify the correctness properties of programs. This is taught every autumn.
  • Software Security. This an introductory course to quality-based software security. This is taught every spring.
  • Verified Functional Algorithms. This course teaches students how to use the Rocq Prover based on the the 3rd book of the Software Foundations book series. This is taught every spring.
  • Programming Language Research Seminar. This is a weekly seminar series for all bachelor, master, and PhD students who are interested in programming language research. The central theme and precise structure of the seminar series changes from semester to semester. This is taught every semester.

Old courses

  • Programming Language Foundations. This course covered the 1st and 2nd books of the Software Foundations book series. It was largely meant for independent study, with biweekly meetings to discuss issues. This was last taught in autumn 2023.

Accept Cookies