An examination of the objectives, key techniques and achievements of work on artificial intelligence in Computer Science.


  • Course material posted on this course website.
  • Community Discussion Boards via (Invite link in D2L Content)
  • Exams/Assignment/Project Submission/Grading via D2L
  • Class interaction via TopHat (UCIT ID, not CPSC ID) - Do not sign in with high school or other institution TopHat login


  • Lectures begin on Tuesday, September 6th, 2022
  • Last day to drop is Tuesday, September 15th, 2022
  • Lectures end and last day to withdraw is Wednesday, December 7th, 2022
  • CPSC 433 L01 TueThu 12:30-13:45 ENE 241


  • Tutorials will begin on Monday/Tuesday September 12/13th, 2022
  • The main goals of the tutorials will be to help you in more deeply understanding the concepts presented in the lectures (providing more examples) and with your assignment.
  • CPSC 433 T01 MonWed 16:00-16:50 MS 156 Nathan Douglas
  • CPSC 433 T02 MonWed 13:00-13:50 MS 156 Kimiya Saadat
  • CPSC 433 T03 MonWed 17:00-17:50 MS 119 Nathan Douglas
  • CPSC 433 T04 MonWed 18:00-18:50 MS 156 Nathan Douglas
  • CPSC 433 T05 MonWed 14:00-14:50 MS 160 Kimiya Saadat

Office Hours

Important Dates

  • Term Break: Sunday-Saturday, November 6-12th, 2022. (no lectures or tutorials)
  • University Closed for Truth and Reconciliation Day Friday, September 30th, 2022.
  • University Closed for Thanksgiving Day Monday, October 10th, 2022. (no tutorials)
  • University Closed for Remembrance Day Friday, November 11th, 2022. (during term break)
  • Midterm Exam: Friday, October 28th, 2022 19:00-21:00 (07:00-09:00pm) ICT 102. [out-of-class activity]
  • Final Exam: Saturday, December 10th, 2022 8:30-10:30 ENE 241.


  • Join Code: 981700
  • Use your UofC Account to access Tophat, not a computer science, former institution, or prior high school account.

Textbook Resources

  • Artificial Intelligence: A Modern Approach 4e
    • Author: Russell Norvig
    • ISBN: 9780134610993
    • Optional: For those who appreciate another resource. Taught material diverges from this source.
    • Version 3e/5e likely just as good for your purposes.

The due dates for the projects/assignments can be found in the Assignments sections of this page.

Support Materials

  • Course Information Sheet (Outline)
  • Organization pdf
  • Introduction pdf
  • Knowledge Representation pdf
  • Search Definitions pdf
  • Set-based Seach pdf
  • And-Tree-based Seach pdf
  • Or-Tree-based Seach pdf
  • Other Search Models pdf
  • Search Controls pdf
  • Midterm Exam: Friday, October 28th, 2022 19:00-21:00 (07:00-09:00pm) ICT 102. [out-of-class activity]
  • Know. Rep. Neural Networks pdf
  • Know. Rep. Logic pdf
  • Know. Rep. Rules pdf
  • Know. Rep. Frames pdf
  • Know. Rep. Semantic pdf
  • Bias pdf
  • Summary pdf
  • Final Exam: Saturday, December 10th, 2022 8:30-10:30 ENE 241.
    • Exam Preparation link


  • Java 17 (labs -> 17.0.4)
    • Labs are standardized on Java 17 so this is the required version. Higher versions of Java are only allowed if you receive TA approval that they are prepared to grade a higher version.
    • Download Oracle JDK 18: Oracle has wanted you to sign in, in the past, but at the moment this seems to work without it Here
    • Download Open JDK 18 Here
    • IntelliJ IDEA Here (Should be able to use ucalgary email to access Professional version as student)
    • Apache Netbeans IDE Here
    • Eclipse IDE Here
    • Visual Studio Code IDE Here
  • Python 3 (labs -> 3.10.6)
    • Python 3.10.6 or newest version Python 3.10.6 can be found Here
    • Pycharm IDE Here (Should be able to use ucalgary email to access Professional version as student)
    • Eclipse IDE Here
    • Visual Studio Code IDE Here
    • Optional: Google Colab: interactive notebooks for python here
    • Optional: Jupyter IPython Notebooks (can run these in Pycharm or otherwise install on your own system) Here
    • Optional: Jupyter IPython Notebooks through Syzygy Here

Guidelines for Academic Misconduct


  • Project Proposal Paper
  • Project Demonstration
    • Due Date: Dec 1st -> Dec 9th, 2022
    • Description: Presentation of your search system.
    • Here are the times available for the teams to do the demos of their systems to me (in the undergraduate lab). Please send me an email indicating at least 3 possible times (and the order of your preference)! It would be nice, if the email also provides a final list of the members of the team.
    • Available meetings times:
      • Thu 1st 10am, 2pm, 3pm, 4pm
      • Fri 2nd 10am, 11am, 12pm, 2pm, 3pm, 4pm
      • Mon 5th 10am, 11am, 12pm, 3pm, 4pm
      • Tue 6th 10am, 11am, 2pm, 3pm, 4pm
      • Wed 7th 10am, 11am, 12pm, 3pm, 4pm
      • Thu 8th 10am, 11am, 12pm, 1pm, 3pm, 4pm
      • Fri 9th 10am, 11am, 12pm, 1pm, 2pm, 3pm, 4pm
  • Project Final Submission
    • Due Date: Friday, December 9th, 2022 23:59 (11:59 PM)
    • Description: Submission of the source code of your search system and its documentation, together with your solutions to dropbox.
    • The two input files for the Department example instances you will have to send me the results from your system for are here. Set all the required parameters to 1 to produce the results.