left header image
Hausi A. Müller
right header image

Professor, Associate Dean Research PhD PEng FCAE
Faculty of Engineering
Department of Computer Science
University of Victoria

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 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

  • 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 225 Algorithms and Data Structures

  • Taught this course almost every term between 1986 and 1992