Site menu:

Course Overview

The design of automated systems capable of accomplishing complicated tasks is at the heart of computer science. Abstractly, automated systems can be viewed as taking inputs and producing outputs towards the realization of some objectives. In practice, the design of systems that produce the best possible outputs can be quite challenging when the choice of outputs is constrained, the consequences of the outputs are uncertain and/or dependent on other systems, the information provided by the inputs is incomplete and/or noisy, there are multiple (possibly competing) objectives to satisfy, the system must adapt to its environment over time, etc. This course provides an introduction to Artificial Intelligence, covering some of the core topics that underly automated reasoning. The modeling techniques that will be covered are quite versatile and can be used to tackle a wide range of problems in many fields including natural language processing (e.g., topic modeling, document clustering), robotics (e.g., mobile robot navigation), automated diagnosis (e.g., medical diagnosis, fault detection), data mining (e.g., fraud detection, information retrieval), operations research (e.g., resource allocation, maintenance scheduling), assistive technologies, etc.


Teaching Assistants


The main text is A second useful reference is


We will be using the Piazza discussion board. Please sign up for Piazza and the course here.

Public Piazza posts are the prefererd method for questions about course material. Students can then help each other out and instructors can also read and reply so that everyone in class can see the responses. Private Piazza posts (to instructors only) can be used for any post that contains solution snippets or private questions. All lecture material is available on this site (under Schedule) as well as on Learn. Assignments will be posted on Learn. If you email an instructor or a teaching assistant then you must you your address.


For students registered in CS 486 For students registered in CS 686


Please see the project webpage for more details on the project expectations and format. A project proposal (worth zero marks) is due on November 1, 2017. The final project report is due on the last day of classes (December 4, 2017). However, final project reports will be accepted, with no penalty, up to and including the date of the final exam.

Late Policy

Assignments are due when specified in the course schedule. Students are allowed to submit assignments up to 48 hours after the deadline. However, no questions about the assignment will be answered during this 48 hour grace period, and no assignment will be accepted after the 48 hours.


If you have an assignment that you would like to have remarked, please follow the instructions on Piazza for that assignment to submit your request. If you have an exam that you would like remarked, then please provide the course instructor with a written request on paper and your exam. Note that the entire exam will be remarked and it is possible for the grade to go either up or down. The deadline for submitting a remarking request for either the midterm exam or an assignment is one week after the exams or assignments are first returned.

Academic Integrity

Academic Integrity: In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility. All members of the UW community are expected to hold to the highest standard of academic integrity in their studies, teaching, and research. The Office of Academic Integrity's website ( contains detailed information on UW policy for students and faculty. This site explains why academic integrity is important and how students can avoid academic misconduct. It also identifies resources available on campus for students and faculty to help achieve academic integrity in and out of the classroom.

Grievance: A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70 - Student Petitions and Grievances, Section 4,

Discipline: A student is expected to know what constitutes academic integrity, to avoid committing academic offences, and to take responsibility for his/her actions. A student who is unsure whether an action constitutes an offence, or who needs help in learning how to avoid offences (e.g., plagiarism, cheating) or about rules for group work/collaboration should seek guidance from the course professor, academic advisor, or the Undergraduate Associate Dean. When misconduct has been found to have occurred, disciplinary penalties will be imposed under Policy 71 Student Discipline. For information on categories of offenses and types of penalties, students should refer to Policy 71 - Student Discipline,

Avoiding Academic Offences: Most students are unaware of the line between acceptable and unacceptable academic behaviour, especially when discussing assignments with classmates and using the work of other students. For information on commonly misunderstood academic offenses and how to avoid them, students should refer to the Faculty of Mathematics Cheating and Student Academic Discipline Policy,

Appeals: A student may appeal the finding and/or penalty in a decision made under Policy 70 - Student Petitions and Grievances (other than regarding a petition) or Policy 71 - Student Discipline if a ground for an appeal can be established. Read Policy 72 - Student Appeals,

Note for students with disabilities

AccessAbility Services, located in Needles Hall, Room 1132, collaborates with all academic departments to arrange appropriate accommodations for students with disabilities without compromising the academic integrity of the curriculum. If you require academic accommodations to lessen the impact of your disability, please register with AccessAbility at the beginning of each academic term.