Skip to main content

SOEN 691: Engineering AI-Based Software Systems

Background

The development, deployment and servicing of AI-based systems requires specialized training since such systems tend to have fundamental differences compared to traditional software systems. For example, traditional software systems are written to implement a specific behaviour that is expected of the system, whereas, AI-based systems infer their behaviour from training data. In such cases, technical aspects such as debugging if something is wrong becomes much harder since there is no ‘expected output’. The goal of the course is to provide graduate students with the basic and fundamental technical background while exercising SE concepts in the context of an AI-based software system.

Course Description

This course introduces key concepts related to the engineering of AI-based software systems. Topics include requirements and architectures of AI-based software systems, data validation and management, model selection, quality assurance, deployment and continuous delivery of AI-based software systems. Additionally, special topics on interpreting and monitoring models, and operations in large-scale AI-based system will be included. A course project involving a real-world open source AI-based software system will be required.

A tentative list of the topics that will be covered in this course is given in the tentative schedule section at the botom of the page.

Evaluation Criteria

Component%
Class participation10
Paper critiques & activities20
Project proposal10
Research project40
Quiz20

You must pass the quizzes and the course project to pass the course.

Paper Critiques

We will have two assigned research papers on most weeks. Each student is expected to send a critique of one of the papers that are being presented. The critique should include a brief summary of the paper, at least three strengths of the paper and at least three weaknesses of the paper. For the other paper, each student is required to submit a summary of the paper. The critiques and paper summaries are due at noon on Fridays before the class. All paper critiques will be graded in detail.

Research Project

A large portion of the course deliverables is a course research project. You are expected to work on the course project in groups of 4-5 students. Each group is expected to write a research paper by the end of the semester. The topic is to be determined with the instructor. Examples include a new contribution on a specific related topic, a survey paper of a related topic (typically involves surveying 30 – 60 papers), or building a tool to support engineering AI-based software systems.

Tentative Schedule

The table below provides a summary of the material that will be covered during the course as well as a tentative schedule. Please check the course web page for any changes. We will also update the table weekly to include the PDF of the Slides of each topic.

WeekDateTopic + Slides in PDF
1Jan 10Introduction & overview
2Jan 17AI for Software Engineers
3Jan 24Quality of AI-based systems
4Jan 31Software requirements for AI-based systems
5Feb 7Software architectures of AI-based systems
6Feb 14Data validation and management
7Feb 21Project updates (student presentations)
8Mar 7Model selection and experimentation
9Mar 14Deployment and testing
10Mar 21Continuous delivery
11Mar 28Interpreting, explaining, monitoring models, and MLOps (special topics)
12Apr 4Quiz
13Apr 11Project presentations (student presentations)

Reference Material

Reading materials (i.e., researcher papers) will be assigned and provided.

The course will occasionally reference the following textbook:

  • Building Intelligent Systems: A Guide to Machine Learning Engineering, 2018. Geoff Hulten

Contact Information

In case you need to communicate or ask any questions about the course, please send an e-mail to:

  • Dr. Emad Shihab: emad [dot] shihab [at] concordia [dot] ca
  • Dr. Diego Elias Costa: diego [dot] costa [at] concordia [dot] ca