Introduction to Artificial Intelligence — LP4, VT 2018

This is the course-PM for the course TIN175/DIT411 Introduction to Artificial Intelligence, 7.5 credits, spring 2018, at Chalmers and University of Gothenburg.

Note: if you’re looking for…


12 March
Don’t forget that Friday is also the deadline for your individual evaluation. See the instructions at the deadlines page.
11 March
The deadline for the essay is Friday 16th March, not any other non-existing date that I might have written earlier (but which in that case is now corrected).
7 March
Here’s a clarification about the oral examination: There will be a projector, so you can prepare some slides or show runtime examples or some graphs if you want, during your 10-minute presentation. There will also be whiteboard pens.
7 March
All groups should have got their essay reviews today. Please write your final version, taking the reviews into account, and upload it to EasyChair by Friday 16th March. Take note of the following text (copied from the essay page):
  • You have to revise your essay according to the reviews you received. Note that you do not have to follow every advice that the reviewers gave, only those that make sense to you and that you believe will make your essay better.
  • The final essay should not be anonymised, so add your names below the title.
  • Important: Together with your final essay, you have to write a short text describing which of the reviewers’ issues you have addressed (and in which way) and what you have decided not to care about. Add this description as an extra page at the end of your essay (as an appendix, after the references).
6 March
Next week is the oral examination. It works like this (copied from the deadlines page):
  • The oral examination works similar to the supervision sessions, but there will be two teachers present. The exam is 30 minutes and starts with you showing your project, describing the functionality, and giving a short explanation of how the extensions work. This should take c:a 10 minutes. Then we will ask you detailed questions about the project.
  • Important: Everyone in the group must be prepared to answer the questions, so make sure that everyone understands how the code works!
20 Feb
The list of possible Shrdlite extensions has been extended
15 Feb
Tuesday’s exam is now online among the old exams. There will be exam reviews during the following dropin supervision times:
  • Tuesday 20 February, 13:15-16:00, in room 2514
  • Monday 26 February, 13:15-16:00, in room 2514
13 Feb
Thanks to everyone who participated today!

I apologise for the incorrect question 1: none of the suggestions were in fact the correct answer. The grade limits of the exam have been lowered to 6 points (and similarly for higher grades).

I will look through all corrections during this week, and you will have your grades reported by next week.

12 Feb
Everyone of you has to create an EasyChair account. Please do that at the latest Monday 19 February, by following this URL:

When you have done that, every group should send a mail to Claes with information about (1) the EasyChair accounts (i.e., the email address you used) for every group member, and (2) the preliminary title of your essay.

8 Feb
(A pre-print of) the repetition lecture 8 is available in the schedule.
5 Feb
There are now more exercise suggestions for chapters 4, 5 and 7, in the reading list.
5 Feb
One of you noted that test-interpreter.ts sometimes reports an error when it shouldn’t. This is because the test file compares interpretations in a very stupid way, so the literals in the “correct” interpretations must occur in the same order as the ones returned by the interpreter. If you encounter this problem, the easiest solution is to just change the order between the literals in InterpreterTestCases.ts. (The best solution is of course to fix test-interpreter.ts, and if you prefer that please ask your supervisor, or Peter)
1 Feb
Lecture 6 (and a pre-print of lecture 7) is available in the schedule.
31 Jan
There are suggested exercises for the CSP chapter, in the reading list.
29 Jan
You can now book a 30 minutes essay supervision slot, during 14–16 February:
28 Jan
(A pre-print of) next lecture 5 is available in the schedule.
26 Jan
The Github template has been updated!
The files InterpreterTestCases.ts and test-interpreter.ts are slightly modified: a test case is now a string[] instead of string[][], and you write your test cases more intuitively.
26 Jan
Lecture 4 (and all previous ones) are available in the schedule.
22 Jan
Now there are some suggested exercises for chapters 2–3 (from the course book and the previous exams), in the reading list.
22 Jan
(A pre-print of) next lecture 3 is available in the schedule. (Lectures 1 and 2 are already there).
19 Jan
The groups are decided, and their supervision times. You should have got an email with this information. If not, please contact me as soon as possible.
4 Jan
The webpages are (mostly) updated for the 2018 course instance.


Examiner and course responsible

Course assistants/supervisors

Student representatives


The course consists of three main subcourses, of which two are done in groups of preferrably 4 students. The groups are selected during the first days of the course.

This is a joint Chalmers/GU course. It has two different course codes and two different course plans, but in reality it is exactly the same course:

Note that this is an advanced course: we assume academic maturity, a willingness to explore independently, and good programming skills.

You should be a good programmer and have enough experience in programming to do a sizeable project. The project must be implemented in TypeScript. You don’t need to know TypeScript before taking the course, but you should be able to teach yourself the language and discover any tools, libraries, environments, etc. which you may need. In general we will not be able to help you with your coding problems – your programs will be discussed at an abstract, pseudo-code level.


The main course book is a standard textbook in AI, we will mainly use the first 7 chapters:

It’s quite expensive and we will only use 1/4 of the chapters, but it’s a classic and very useful if you want to continue studying (or working with) AI. Alternatively, you can read it online at Chalmers library. (If the link doesn’t work, just go to Chalmers library and search for the book).


You have to pass all three subcourses to pass the course. More information about passing the subcourses and their grading criteria can be found on the pages Written examination, Project, and Essay. But in summary, to pass the course you need to pass the following course moments:


All subcourses are graded (U/345 resp. U/G/VG), and the final grade is decided like this:

Note that the final grades on all subcourses are individual! This means that you can get a higher or lower grade than what your other group members will get, depending on your personal contributions to the group work. To know this, we look at the following things:

For older students (DIT410, TIN172–TIN174)

Previously, there was only two subcourses: the written exam and the group work. The group work consisted of both the essay and the programming project.

For grading criteria, please ask the course responsible (see above for email).

Changes since 2017

The course only had minor changes since 2017.

Changes to the course structure and grading

Changes to the theoretical content

Changes to the Shrdlite project

Changes to the essay