/engineering-ai-systems-course

Repository containing the course's material of Engineering AI-Based Software Systems

Creative Commons Attribution Share Alike 4.0 InternationalCC-BY-SA-4.0

EngineeringAISystems

SOEN 691: Engineering AI-Based Software Systems

SE4AI Training Program

SE4AI

This course is part of the SE4AI Training Program, a training program on the development, deployment and servicing of Artificial Intelligence-based Software Systems. The program was established in collaboration world-renowned researchers and technology leaders and is composed of four Canadian universities: Concordia University, Polytechnique Montréal, Queens University, and the University of Alberta.

There is also a more practical 15-week version of this course that was given at UQAM. The material for this version of the course can be found as a release and on the branch mgl7811-winter-2023.

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.

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 Content

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.

Week Modules
1 Introduction & overview
2 AI for Software Engineers: Hands-on Activity
3 Software requirements for AI-based systems
4 Software architectures of AI-based systems
5 Data validation and management
6 Project updates (student presentations)
7 Model selection and experimentation
8 Deployment and testing
9 Continuous delivery
10 Explaining and Trusting Predictions (special topic)
11 Quiz
12 Project presentations (student presentations)

Evaluation Criteria

The course evaluation has five components and includes a Research Project, participation in class, paper critiques and a final exam (quiz).

Component %
Class participation 10
Paper critiques & activities 20
Project proposal 10
Research project 40
Quiz 20

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.

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

Want to use any of the course's materials?

You are free to use and distribute the course's material as long as you:

  • Abide by the license, please check the LICENSE conditions
  • Notify us and let us know how you plan to use the material using the contact e-mails below. There is no vetting process in place, we just want to be notified to have control of who is using the material.

You can cite this repository using the following BibText entry, if you plan to use this material in a scientific work:

@misc{SE4AI_course,
author = {Emad Shihab and Diego Elias Costa},
title = {SE4AI course: Engineering AI-Based Software Systems},
publisher = {Data-Driven Analysis of Software (DAS) Lab, Concordia University},
note = {https://github.com/create-se4ai/engineering-ai-systems-course}
}

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