This page lists all of the classes (in reverse chronological order) that I have taught at CU Boulder since my arrival in Fall 1998.

In general, I have taught the following classes:

CSCI 3308: Software Methods and Tools

This class provides instruction on basic software techniques and tools to give a student a firm foundation in software engineering. Topics include Fred Brooks' The Mythical Man Month, the Unix Shell, Shell Programming, Pattern Matching, Installation and Deployment, Build Management, Versioning, Testing, Debugging, Profiling, and XML/XSLT.

CSCI 4448/5448: Object-Oriented Analysis and Design (new number for Fall 2009)

This class covers object-oriented analysis and design. Topics include requirements and design techniques, objects, classes, UML, design patterns, and object-oriented design methods.

CSCI 4448/6448: Object-Oriented Analysis and Design (prior to Fall 2009) 

This class covers object-oriented analysis and design. Topics include requirements and design techniques, objects, classes, UML, design patterns, and object-oriented design methods.

CSCI 4830/7000: Data Engineering

This course investigates the software engineering issues involved with creating data-intensive software systems. It examines how to support the entire data life cycle including collection, storage, analysis, reporting, and visualization and what tools and techniques are available for each of these stages. ֲý help create some of the content for this class by spiking on various technologies (either individually or in teams) and reporting back on what they learned to the class as a whole. ֲý work in teams to develop a prototype system that can support the entire data life cycle for a self-selected application domain.

CSCI 5828: Foundations of Software Engineering

This class covers a wide range of software engineering topics, focusing on formal software engineering techniques and the theoretical foundations for the software engineering field. A few lectures will also deal with “hot topics”. The course assumes that the student has had an introductory course in software engineering, although a brief review of the field is presented at the beginning of the class.

CSCI 7818: Topics in Software Engineering

These seminars cover a wide range of software engineering topics:

  • : Web Services
  • : Web Services
  • : Web Infrastructure, Services, and Applications
  • : XML Techniques, Tools, Standards
  • : Open Hypermedia

According to the numbers below, I have taught roughly 797 undergraduates and 877 graduate students since 1998.

Spring 2018

  • CSCI 5828: Foundations of Software Engineering

Fall 2016

  • : Foundations of Software Engineering

Fall 2015

  • : Foundations of Software Engineering

Summer 2015: CAETE Library

  • : Foundations of Software Engineering (2 graduate students)
  • : Object-Oriented Analysis and Design (7 graduate students)

Spring 2015

  • : Data Engineering (26 undergraduates, 11 graduate students)
  • : Object-Oriented Analysis and Design (5 graduate students)

Fall 2014

  • : Foundations of Software Engineering (46 graduate students)

Fall 2012

  • : Object-Oriented Analysis and Design (48 undergraduates, 50 graduate students)

Spring 2012

  • : Foundations of Software Engineering (49 graduate students)

Fall 2011

  • : Object-Oriented Analysis and Design (53 undergraduates, 40 graduate students)

Spring 2011

  • : Object-Oriented Analysis and Design (55 undergraduates, 39 graduate students)

Summer 2010: CAETE Library

  • : Object-Oriented Analysis and Design (4 graduate students)

Spring 2010

  • : Foundations of Software Engineering (32 graduate students)

Fall 2009

  • : Object-Oriented Analysis and Design (42 undergraduates, 32 graduate students)

Spring 2009

  • : Foundations of Software Engineering (35 graduate students)

Fall 2008

  • : Object-Oriented Analysis and Design (30 undergraduates, 16 graduate students)
  • : Web Services (3 undergraduates, 11 graduate students)

Spring 2008

  • : Foundations of Software Engineering (34 graduate students)

Fall 2007

  • : Object-Oriented Analysis and Design (31 undergraduates, 23 graduate students)

Spring 2007

  • : Foundations of Software Engineering (40 graduate students)

Fall 2006

  • : Software Methods and Tools (38 undergraduates)
  • : Web Services (2 undergraduates; 8 graduate students)

Spring 2006

  • On sabbatical leave... did not teach at CU
  • At Aarhus, I co-taught (with Niels Olof Bouvin) a class on Hypertext to approximately 40 undergrads and I also taught a seminar on Web services to a group of 9 graduate students.

Fall 2005

  • On sabbatical leave... did not teach

Spring 2005

  • : Object Oriented Analysis and Design (28 undergradutes and 38 graduate students)

Fall 2004

  • : Software Methods and Tools (37 Undergraduates)

Spring 2004

  • Took parental leave... did not teach

Fall 2003

  • : Software Methods and Tools (59 Undergraduates)

Spring 2003

  • : Object Oriented Analysis and Design (43 Graduate ֲý)

Fall 2002

  • : Software Methods and Tools (78 Undergraduates)

Spring 2002

  • : Object Oriented Analysis and Design (46 Graduate ֲý)

Fall 2001

  • : Software Methods and Tools (81 Undergraduates)
  • : Topics in Software Engineering: Web Technologies (15 Graduate ֲý)

Spring 2001

  • : Object Oriented Analysis and Design (63 Graduate ֲý)
  • Guest Lectures for 5828: ,,,, and 

Fall 2000

  • : Software Methods and Tools (51 Undergraduates)
  • : Topics in Software Engineering: XML Techniques, Tools, Standards (12 Graduate ֲý)

Spring 2000

  • : Foundations of Software Engineering (48 Graduate ֲý)

Fall 1999

  • : Topics in Software Engineering: Open Hypermedia (9 Graduate ֲý)

Spring 1999

  • : Foundations of Software Engineering (68 Graduate ֲý)

Fall 1998

  • : Object Oriented Analysis and Design (47 Graduate ֲý)

Winter 1998

  • Introduction to Software Engineering at UC Irvine (94 Undergraduates)