The course defines principles and practices of verification and reliability of software systems that have dependable characteristics. Verification methods aim at checking that the system meets prescribed software specifications. Reliability aims at observing and predicting the capability of a system to operates according to its specifications over a given period of time.

The goal of the course is to prepare the students to recognize the quality characteristics of a system and to develop and maintain a system accordingly.

Course Syllabus

Dependable properties of systems

Software and software systems testing 

Techniques for verification of software systems 

Advances in test design and implementation 

HW and SW reliability and their models

Lean Startup is designed for acquiring professional and practical skills and knowledge on startup processes. The main educational objectives are:

  • Learning by trying out the initial idea.
  • Applying lean startup practices to validate the idea.
  • Conducting customer discovery and validation.
  • Constructing business model.
  • Experimenting iterative product releasing and progress measuring.
  • Reflecting on how to operate and make decisions in chaos with insufficient data.

The Agile Software Development course intends to instill into future software engineers an agile mentality, and to improve their capabilities of working on software development projects in an agile manner. The main educational objectives are:

  • Understanding the root and essence of agile software development and different agile approaches

  • Applying key agile engineering and project management practices in software development projects

  • Improving teamwork using agile approaches

  • Scaling agile software development beyond agile home ground, including distributed and large software development projects.


Requirements and Design for Dependable Systems