Hausi A. Müller
Hausi A. Müller
Hausi A. Müller
Professor PhD PEng FCAE
Department of Computer Science
Faculty of Engineering
University of Victoria

Last updated
Nov 2019


left header image

 

left header image

SENG 480 Self-Adaptive and Self-Managing Systems

  • Summer 2015
  • Spring 2013
  • Summer 2010
  • The simultaneous explosion of information and integration of technology and the continuous evolution from software intensive systems to systems of systems to ultra-large-scale (ULS) systems requires new and innovative approaches for building, running and managing software systems. A consequence of this continuous evolution is that software systems must become more versatile, flexible, resilient, dependable, robust, continuously available, energy-efficient, recoverable, customizable, self-healing, configurable, or self-optimizing by adapting to changing contexts and environments. One of the most promising approaches to achieving such properties is to equip software systems with self-adaptation and self-managing mechanisms. The topic of self-adaptive and self-managing systems has been studied in a variety of application areas, including autonomic computing, robotics, control systems, programming languages, software architectures, fault-tolerant computing, and biological computing. In this course, we focus on the software engineering aspects, including the methods, architectures, algorithms, techniques and tools support self-adaptive and self-managing behavior and exciting application areas, including autonomic computing and ULS systems.

CSC 111 Fundamentals of Programming with Engineering Applications

  • Fall 2018
  • Fall 2017
  • Fall 2016
  • Fall 2015
  • Fall 2014
  • Fall 2013
  • Fall 2012
  • Fall 2011
  • Fall 2010
  • Computation is fundamental to the design, analysis and implementation of engineering systems. This course introduces the concepts of computer programming with particular attention to engineering examples. The C programming language is used but the course will stress fundamentals so that students will have a basis for understanding and using other programming languages.

CSENG 321 Requirements Engineering

  • Spring 2016
    Spring 2010
  • Summer 2009
  • Combines a range of topics integral to the analysis of requirements, design, implementation, and testing of a medium-scale software system with the practical experience of implementing such a project as a member of a software engineering team. Introduces requirements engineering, specifications, software life cycle models and formal methods for requirements engineering.

SENG 371 Software Evolution

  • Spring 2013
  • Spring 2011
  • An introduction to algorithm design and analysis. Random access machine model. Time and space complexity, average and worst case analysis, upper and lower bounds. Application of correctness proof techniques. Algorithms: internal searching, merging, sorting, selection, hashing; graphs: traversals, topological sort, transitive closure, strongly connected components, shortest path, minimum spanning tree. The existence of intractable problems, heuristics. Data structures: B-trees, heaps and graphs.

CSC 225 Algorithms and Data Structures

  • Spring 2009
  • An introduction to algorithm design and analysis. Random access machine model. Time and space complexity, average and worst case analysis, upper and lower bounds. Application of correctness proof techniques. Algorithms: internal searching, merging, sorting, selection, hashing; graphs: traversals, topological sort, transitive closure, strongly connected components, shortest path, minimum spanning tree. The existence of intractable problems, heuristics. Data structures: B-trees, heaps and graphs.

Courses Offered in the Past

SENG 371 / SENG 420 / SENG 520 Software Evolution

  • Created this course at the University of Victoria in 1997
  • Taught it many times as a 3rd year, 4th year or graduate course.

CSC 480 Software Engineering Topics Courses

  • Software architecture
  • Software evolution
  • Software life cycle
  • Software process
  • Software methods
  • Software reverse engineering
  • Software reengineering
  • Software services

CSC 426 / CSC 526 Computational Geometry

  • Created this course at the University of Victoria in 1993
  • Taught it several times as a 4th year and graduate course
  • Several MSc theses resulted from this course

CSC 110 Programming I

  • Taught and redeveloped this course several times for different programming paradigms (i.e., imperative and object-oriented) programming languages (i.e., Pascal, C, C++ and Java), different programming environments, and different applications

CSC 115 Programming II

  • Taught and redeveloped this course several times for different programming paradigms (i.e., imperative and object-oriented) programming languages (i.e., Pascal, C, C++ and Java), different programming environments, and different applications

CSC 225 Algorithms and Data Structures

  • Taught this course almost every term between 1986 and 1992