My formal teaching duties consist of courses for registered students at the University of Calgary.  If you are interested in being a student in LSMR (undergraduate or graduate), check out this article.

Below are pointers to upcoming or current courses.  More information is available on on the UofC's D2L pages for current students.

UCOSP (Undergraduate Capstone Open Source Projects): On-going

For reasonably strong students (think: minimum B average, but experience and a positive attitude are important factors), there is the possibility of participating in UCOSP, a program that brings together students from across Canada to work together on open source projects in conjunction with industry mentors.  If you are interested in this program, you should contact Dr. Walker at least two months before the term in which you would be interested (i.e., by June 30 for the Fall term, and by October 31 for the Winter term; UCOSP does not run in the Spring/Summer).

Fall 2016

SENG 301 Software Analysis and Design

This is the usual introductory SE course focusing on analysis and design.

CPSC 594 Software Engineering Project (Runs from September through April)

This capstone course will consist of a team-based software development project in conjunction with an industry partner (the partner and project are already known); everyone enrolled in the course will work on the same project.  The point is to practice the skills that you have acquired previously, or at least the theory that you have learned about.  You will have to investigate unfamiliar technologies.  The team will be self-managing, but supervised by me and my collaborators at the industrial partner.  This means, you need to know how to organize a software development project, how to track its progress, how to deal with interpersonal conflicts in a professional manner, etc. ... all the soft skills that go along with software development in the real world.

This course requires my permission for you to enroll in it.  For me to give that permission, I need to believe that you have the skills and the interest to contribute to the successful completion of the project.  We don't want to waste the time of the industrial partner.  We don't want to waste the time of potential teammates.

If you want to enter this course, send me an email with the following details: your experience in earlier software engineering courses; your experience in courses involving teamwork; any industrial experience you have in which team management was involved (this can be other than software development experience); and why should I believe that you will be a useful contributor?

Winter 2017

SENG 541/641 Software Evolution and Reuse

This is my usual but infrequent course in my area of research expertise, combining exposure to research in this area with a practical application.  Unlike past years, the emphasis will be on research, even for the undergrads; you will have to read research papers, learn to critique them, and learn to present what they are about.  On the practical side, you will likely have to (1) understand some static analysis technique, (2) understand the purpose and function of recommendation systems in software engineering, (3) build a recommendation system, and (4) perform a meaningful evaluation on it.  The details are still to be determined.

Fall 2017

SENG 300 Introduction to Software Engineering

This course combines and replaces SENG 301 and SENG 403.  In the first part of the course, students will learn individual skills in analysis, design, testing, and the use of some basic software development tools.  In the second part of the course, students will work in small teams on a software development project that simulates a realistic working situation: changing requirements and changing teams.  It is split in this way so that students can gain some background skills first and then apply them while learning teamworking skills.

Winter 2018

SENG 300 Introduction to Software Engineering

This course combines and replaces SENG 301 and SENG 403.  In the first part of the course, students will learn individual skills in analysis, design, testing, and the use of some basic software development tools.  In the second part of the course, students will work in small teams on a software development project that simulates a realistic working situation: changing requirements and changing teams.  It is split in this way so that students can gain some background skills first and then apply them while learning teamworking skills.

SENG 541/641 Software Evolution and Reuse

This is my usual but infrequent course in my area of research expertise, combining exposure to research in this area with a practical application.  Unlike past years, the emphasis will be on research, even for the undergrads; you will have to read research papers, learn to critique them, and learn to present what they are about.  On the practical side, you will likely have to (1) understand some static analysis technique, (2) understand the purpose and function of recommendation systems in software engineering, (3) build a recommendation system, and (4) perform a meaningful evaluation on it.  The details are still to be determined.