Spring Term

  • Software Construction
    This undergraduate course covers methods and tools for effective software development in the small. It includes topics like version control with git, build automation, continuous integration, refactoring, unit testing, mock testing, and metrics and simple code analysis - i.e. the technical competences and tools needed for agile development.
  • .Net Framework and C#
    This course covers the core .Net architecture and the runtime model (CLR) and gives an in depth introduction into the C# programming language. It provides a view "behind the facade", showing the functioning of the garbage collector, the Intermediate Language, LINQ and other exiting features, like lambda expressions, extension methods etc.
  • .Net Enterprise Application Development
    This course builds on the .Net Framework and C# course, and covers the technologies and frameworks for the development of .Net Enterprise Applications including GUI development with WPF, Web development with ASP.Net MVVM, MVC and Silverlight, Database development using ADO.Net, Entity Framework, WCF and WF.

Fall Term

  • Software Engineering and Architectures (Graduate)
    This course of the MSE Master study covers advanced topics in software engineering and software architecture. I teach this course in conjunction with two colleagues from Lucerne and Winterthur. I cover the topics software evolution, and software analysis and visualisation
  • Software Testing and Quality Management
    This course is a kind of follow-up of the Software Construction course, which teaches advanced methods for building high-quality software and use appropriate measures to control and ensure software quality with modern tools: Working with distributed version control systems and the appropriate workflows, acceptance testing, GUI testing, database testing, review techniques, planning of quality assurance into the development process, technical debt, dependency management, traceability in software projects.

Former Courses

  • Software Development Processes (2018)
    This course provides a practical introduction into the concepts and techniques of modern software development processes and project management. I provide a thorough practical introduction into the agile development process, applying the Scrum City Game, a Scrum simulation project.

  • Mobile Application Development (2008)
    Dieser Kurs gibt eine fundierte praktische Einführung in die Entwicklung von mobilen Softwareanwendungen. Sie lernen die neuesten Plattformen, Methoden und Technologien zur Entwicklung portabler mobiler Softwareanwendungen für Handys kennen und anwenden.
  • Introduction into .Net (2008)
    This course gives an introduction into the .Net technology covering the core .Net base class library, the architecture and also the additional frameworks like Winforms, ADO.Net, ASP.Net and Web Services.
  • Web Services Architecture (2007)
    Web Services haben sich als ein sehr effektiver und interoperabler Integrationsstandard etabliert und zahlreiche kommerzielle Anwendungen wurden bereits mit Web Services realisiert. In diesem Modul lernt der Student die wichtigsten Web Services Begriffe und Konzepte kennen. Anhand konkreter Programmieraufgaben wird er diese Lerninhalte anwenden und vertiefen.
  • Object-oriented Analysis and Design (2003-2005)
    An introduction into object-oriented analysis and design based on Craig Larman's book Applying UML and Patterns.
  • Software Engineering (1999-2003)
    I taught for several years a thorough introduction into Software Engineering. During this course I also captured diverse material, links and document templates which are still available for use.