MSE Master of Science in Engineering

The Swiss engineering master's degree


Each module contains 3 ECTS. You choose a total of 10 modules/30 ECTS in the following module categories: 

  • 12-15 ECTS in technical scientific modules (TSM)
    TSM modules teach profile-specific specialist skills and supplement the decentralised specialisation modules.
  • 9-12 ECTS in fundamental theoretical principles modules (FTP)
    FTP modules deal with theoretical fundamentals such as higher mathematics, physics, information theory, chemistry, etc. They will teach more detailed, abstract scientific knowledge and help you to bridge the gap between abstraction and application that is so important for innovation.
  • 6-9 ECTS in context modules (CM)
    CM modules will impart additional skills in areas such as technology management, business administration, communication, project management, patent law, contract law, etc.

In the module description (download pdf) you find the entire language information per module divided into the following categories:

  • instruction
  • documentation
  • examination 
Software Assurance (TSM_SoftwAs)

Students shall gain an overview over current methods for software assurance. This may include, but is not limited to,

   * advanced techniques for automated debugging; and

   * advanced techniques for formal correctness of programs.

Prerequisites

Students will need knowledge in software engineering, specifically testing. Students will need to be reasonably fluent in a variety of languages including but not limited to C and Python. Knowledge of some assembly (e.g., x86, x86-64, or ARM) will be advantageous.

Learning Objectives

  • Students get an overview of advanced techniques for software assurance that are related to automated debugging. This may include, but is not limited to, delta debugging, automated fault repair, and mining function specifications.
  •  Students know techniques and tools for automated test case generation, such as fuzzing, how they work, to what class of faults they apply, how to interpret their outputs, and how to use them in their own projects.
  • Students receive an in-depth introduction to techniques of formal correctness, such as symbolic execution or automated correctness proofs

Contents of Module

  • Automated debugging
  • Formal methods

Teaching and Learning Methods

Lectures will be part ex-cathedra lectures, part in-class exercises.

These exercises are designed to be done either individually or in groups and can be done remotely. There may also be guest lectures.


Literature

Andreas Zeller, Why Programs Fail. Morgan Kaufman. Second Edition, 1770. (Yes, that's the date that Amazon has for the book. In reality, the second edition is from 2008.)

Ari Takanen, Fuzzing for Software Security Testing and Quality Assurance. Artech House Publishers. Second Edition, 2018. Seokhie Hong (Ed.), Side Channel Attacks. MDPI. 2019.

David J. Smith and Kenneth G. L. Simpson, The Safety Critical Systems Handbook: A Straightforward Guide to Functional Safety: IEC 61508 (2010 Edition), IEC 61511 (2015 Edition) and Related Guidance. Butterworth-Heisman. Fifth edition, 2020.


Download full module description

Back