Skip to content


Course Logistics

Instructor: Prof. Emma Tosch (she/her) -

TA(s): Michael McConnell -

Meeting times and location

MWF 9:40am-10:30am, Votey 207

Student hours (Office hours)

  • Every day after class (10:30-noon), Innovation Hall E456, unless otherwise stated in Teams

I am also available over MS Teams chat (may not be synchronous), and by appointment with 24hrs notice. Unless you wish to discuss a sensitive issue, please post any questions to the appropriate Teams channel; it is likely that more people will be interested in your question or observation than you realize!


There is no official text for this class, but much of the content can be found in Russell and Norvig's Artifical Intelligence: A Modern Approach (which I will refer to as R&N). There are now four editions of this book. I will note corresponding chapters to the third edition, when applicable, in the schedule. There is a lot of vocabulary in this textbook and we will not be following the text in order, which is why I will not be assigning reading. Therefore, you should view these references as strictly supplementary.

Many of the techniques used in AI and presented in R&N come from other areas of computer science. While the text does an excellent job of providing narrative and historic perspective, there are myriad other resrouces that go into greater depth. When appropriate, I will link these resources on the schedule.


This course provides in-person instruction only. In the event that we move to online instruction by university mandate, we will use the provided MS Teams Team. Please be advised that MS Teams is not fully functional on *Nix operating systems. Please ensure you familiarize yourself with the available technical support for students. If you need a device for fully participating during a stay-at-home order, please contact UVM IT and your advisor for help acquiring a suitable device.

Please see the section on attendance on the covid policies page.

Platforms and Software

We will be using the following tools and technologies:

  • Blackboard will be used as a portal for:
    • important links (i.e., those listed below)
    • displaying grades
    • handing in assignments
  • MS Teams will be used for group chats and notifications. If the university mandates remote instruction, we will meet on Teams. Please turn on Teams notifications, especially for the Announcements channel will be used for group chats and notifications. If the university mandates remote instruction, we will meet on Teams.
  • The course website will hold the schedule and a copy of the information in this syllabus. Copies will live on Blackboard and Teams, but this website should be considered the most up-to-date.
  • iClicker Cloud will be used for in-class quizzes.
  • A Github repository will be used to manage blogging.

Mask Policy

All students are required to wear masks during class, regardless of vaccination status or state/university policy, until notified otherwise. This follows standard masking protocol.


At present there are no listed pre-requisites for the course. I expect students to have mathematical maturity. We will cover core technical technical background in probability theory and discrete math as needed. I expect some programming experience, but it is possible to achieve a decent grade in this course without it. Students with less background in these areas will likely need to put more time into the course and should plan ahead.

I expect any motivated student to be able to excel in this course.

Classroom Environment Expectations

This course is in-person. Participation will be not be graded per se, but there will be periodic exercises during class for which you may earn points. All students are strongly encouraged to ask questions and engage with the material during class time.

I may occassionaly tell a student to come talk to me during student hours. I mean this! We have limited time in class, and I may not have a pithy way to answer your question; student hours provides the breathing room needed. That said, if other students also have questions you should feel empowered to ask that the question be answered during class time, even if it risks putting us behind schedule. Were I to order students using a function that captures the amount of time this cohort spends on course material, I aspire to move at a pace that corresponds to 6-8hrs of external study time for the median student. This is very hard to measure, so I will use your engagement during class as a proxy. Feel free to reach out to me outside of class time if you do not feel comfortable speaking up during class. Everyone is miserable if we ignore our collective state and just power through. Let's all do our part to be a little less miserable.

Course Content

Course Learning Objectives. In this course you will learn how to identify classes of problems that require AI solutions. You will learn a sample of AI techniques for solving these problems and analyze their utility formally and empirically.

Grading System

All students will be graded on a points-based system. Points are assigned as follows:

Type Subtype Graduate Points Undergraduate Points
Participation In-class quizzes 1 2
Participation Blog Posts 9 6
Participation Blog Comments 3 3
Homework Theory Assignments 10 10
Homework Programming Assignments 15 15
Exams Hourly Exams 25 25
Exams Final Exam 100 100

Note that there are well over 100 points available. In fact, there are possible (although not probable!) worlds where a single student could earn over 400 points! However, such worlds might require an unreasonable amount of time and an unfortunate lack of engagement from other students (e.g., such a student might elect to write a blog post for every class).

To make the grading scheme reasonble, graduate students will be graded out of a least upper bound of 200 points, while undergraduate students will be graded out of a least upper bound of 150 points, subject to constraints:

Letter Grade Graduate Points Undergraduate Points
A+ N/A1 Above 1502
A 188-200+ 143-150
A- 175-187 135-142
B+ 162-174 127-134
B 149-161 119-126
B- 136-148 111-118
C+ 123-135 103-110
C 110-122 95-102
C- 97-109 87-94
D+ 84-96 79-86
D 70-83 70-78
F Below 70 Below 70

Type Min Max
Participation 0 20
Homework 0 70
Exams 70 100
Bounties 0 15

Note that the only minimum constraint is that you must take at least some exams. It is possible to bomb several exams and still earn a decent grade. For example, let's suppose you earn the minimum points on the exams and max out the other categories. Some ways this can happen:

  • You score very high on 3/4 hourlies, but do not take one quarterly and do not take the final (e.g., 25, 25, and 20).
  • You completely bomb all the quarterlies and do a little better on the final (e.g., 5, 5, 5, 5, 50).

Then you finish with a total of 175 points -- this is still an A+ for undergraduates and an A- for graduates!

That said, if you max out the non-exam categories but only earn, e.g. a total of 69 points on the exams, you will still fail the class, despite earning 174 points. Note that 70 points on exams corresponds to an average of 35% across all exams. If you are concerned you are in danger of failing, please come talk to me.

Also note that because a maximum of 100 points counts toward your grade, you cannot simply test out of this course for credit — you must still hand something in. The intent of this grading scheme is to reward engagement in the class via in-class quizzes, blogging, and assignments.

How should I plan what to do?

Obviously you should try your hardest at everything. Just kidding! I realize you have other classes and priorities; anyone who tries to tell you otherwise is either an ass or a fool.

Here is my suggested plan for success:

  1. Decide at the beginning of the semester how many hours per week you want to spend on this class.
  2. Decide at the beginning of each week which days you will work on this course, and for how long.
  3. Each time you sit down to work, write down what you are working on and track how much time each task takes.
  4. After the first exam, re-assess which tasks you want to prioritize.

Some people struggle in exam environments. Some struggle with programming. Some are uncomfortable with formalisms. Some learn best when explaining content to others. It is up to you to choose your own adventure.

In-class quizzes

There will be regular in-class quizzes via iClicker Cloud. Given the time constrains of the class, these questions will be fairly straightforward. Graduate students will recieve 1 point for every correct response. Undergraduate students will receive 1 point for every attempted response and 2 points for every correct response. You cannot make up in-class quizzes.


All students will have the option to post summaries of topics discussed in class to the class blog. Please see the blogging guidelines for guidance on the process of translating your notes to blog posts, instructions on how to submit your drafts, and the details of how to receive full credit on your posts. Students must notify me ahead of time about their intent to blog. Graduate students may recieve up to 9 points per blog posts, while undergraduates may receive up to 6 points.

In addition to writing blog posts, I encourage you to interact with each other via comments. The purpose of comments is to stimulate discussion. You may receive up to 3 points per commented-on post. Please see the comments grading criteria for more detail.

Blog posts will be due 2 classes after the class the post is about. For example, if you write up your notes from a Monday class, the post will be due by class time Friday. All authors of each blog post must have attended the class they are blogging for.


We will have 8 assignments total, split between theory and programming, both due in Blackboard.

Theory assignments will exercise your skills in: modeling, derviations, complexity analysis, and proofs of correctness or convergence. Programming assignments will give you hands-on experience with the tools and techniques of the course.

All theory assignments can be retaken any number of times and will have both soft and hard deadlines. Soft deadlines correspond to the assignment due date on the syllabus. The hard deadline is the date of the corresponding exam. Theory assignments will be auto-graded.

Assignments are preparation for the exams. Unfortunately auto-grading can sometimes lead to students attempting to brute-force their solutions without realising it. To help you engage with the material more deliberately, every theory assignment will grade one solution incorrectly. This means that if there are n questions on the assignment, a perfect score may look like (n-1)/n upon submission. You will not know which question has the incorrect solution until after the exam, when we mark that question as correct.

You may work in groups to solve the theory assignments.


There will four hourly exams and one final. Hourly exams will take place in the lecture classroom and are closed-book. They will cover the material of the particular unit we are in. The final exam will be cumulative and also closed-book. If you have maxed out your quarterly exams you should plan to not take the final.

If you do well on the assignments, you should expect to do well on the exams. If you finish your exam early and choose to leave early without a valid excuse, you will lose 3pts off your exam. I would love it if all students learned the material so well that you did not need the full time! However, sometimes folks misread questions or take longer to figure something out. Students leaving can be very distracting with the class being only 50 minutes long and the classroom close to capacity, this means that the potential for some students to become derailed by the noise and movement. Think of the 3 points as an incentive to be considerate of your peers and a tax you pay to have the privilege of leaving early.


As stated in the assignments section, every theory assignment will have one incorrectly marked question. For each assignment there will be an additional place where you can upload the solution to the question you have identified as being incorrect, along with a justification for the correct solution. It is not enough to identify which question is incorrect — all incorrect solutions will be corrected after the exam. To receive your bounty, you must justify your work.

Note that there may be some questions that are marked as incorrect that are not intended to be the bounty — I do make mistakes and am generally creating all of the content for this course myself! If I have made a mistake, I will respond promptly, update the assignment and notify the class and you will receive credit for the bounty. You may resubmit if you feel you have identified the correct bounty (or if you prefer, include both in your submission).

Academic Alerts

Here are the conditions under which I will issue an academic alert:

  1. You have earned zero points in the course by Feb. 9.
  2. You have earned (a) fewer than 30 points total or (b) zero points on exams by March 14.
  3. If I have reached out to you over email and you have not responded.

Due to the flexibility of the course, I cannot definitely say whether a student is on track to fail any given point in time. For example, it is mathematically possible to do nothing in the course and still pass the class by taking the final exam and getting better than a 70 on it. This scenario is exceedingly unlikely, but it can happen.

To succeed in this class you need to be honest with yourself and realistic about the time you have. I am happy to discuss possible paths to various possible grades. Things happen; grades don't define you. However, if you set unrealistic expectations it can become easy to spiral and not complete the course. If you find yourself in this situation, I recommend picking a minimum grade target you can live with and aiming for that, working a little bit every day. Due to the points system, it is very likely you will be able to achieve something better!

I will approve a late withdraw for any student who requests it, provided they have the support of Student Services.


Incompletes must be issued and approved by the college you are enrolled in. I will only agree to incompletes for students whose current point threshold is a C. This means you must have earned 110 points for a graduate students and 95 for undergraduates.

Graduate Qualifying Exam in AI

This course may be used to prepare for the graduate qualifying exam in AI. I will highlight problems, questions, and concepts of particular importance for the qualifying exam. I will not be conducting any qualifying exams before June 1.

Course Evaluation

All students are expected to complete an evaluation of the course at its conclusion. Evaluations will be anonymous and confidential, and the information gained, including constructive criticisms, will be used to improve the course.

  1. I will not be giving out A+s to graduate students. 

  2. Note that if you will only qualify for an A+ if you meet both the categorical constraints and your total points are above the threshold.