Artificial Intelligence — LP4, VT 2017

This is the course-PM for the course TIN174/DIT410 Artificial Intelligence, 7.5 hec, spring 2017, at Chalmers and University of Gothenburg.


24 May
The individual self- and peer-evaluation is now available. Submit it by Friday 2nd June (or earlier).
24 May
Friday 26th is the deadline for the Shrdlite project. You do this by committing the project to the master branch of your repository. That’s it. We will discuss your code during the oral exam next week.
Next week’s oral exam is 30 minutes. There will be two (or more) teachers present. You start with 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 and the essay. Everyone in the group must be prepared to answer the questions, so make sure that everyone understands how the code works!
18 May
If you are planning to update the Shrdlite grammar (e.g., because you want to implement an extension), then there you have to read this first. The Nearley system compiles the file into Grammar.ts, but the latest version of Nearley introduced a bug, so that the resulting Typescript file has a type error. To solve this, you can install an older version of Nearley:
  npm install -g nearley@2.8
11 May
The deadline for the essay is tomorrow, Friday 12th May, at midnight (24:00).
If you didn’t pass the exam, please don’t forget to register for the 8th June reexam! The deadline for registration is 18th May and you do that the “normal” Chalmers way. (If you passed the exam, don’t forget to unregister from the reexam)
9 May
Friday is submission deadline for the essay: Don’t forget to create an EasyChair account and notify Claes Strannegård all the details about your account!
4 May
The exam and solution suggestions are now published together with the previous exams.
3 May
The exam is corrected, checked and double-checked. In total 85 students wrote the exam, and 81% passed (i.e., got at least 8 points). Well done!

Contrary to what I said during the correction session, I decided to give some half-points to some questions. I have only double-checked the exams that were below the passing limit, but that shuoldn’t be a big problem (if you pass you pass, the points don’t matter…)

If you are unsure whether you passed the exam or not, please come to the “tentagranskning” (exam check):

  • Monday 8th May, 10:00, in room 2515 (Idéläran)
28 April
There is information in the schedule about which exam questions we went through during the practise sessions.
21 April
Your group can now choose a time slot for the oral exam in week 22 (29–31 May):
There were two minor “bugs” in InterpreterTestCases.ts, for the examples “put a large box on a large brick” and “put it on the floor”. Nothing important and you can defintely solve them yourselves, but I anyway updated the Github template repository. So if you want you can pull the changes into your own project.
4 April
All slides are now available in PDF format, for offline reading. See the schedule.
31 March
All of you should have received a mail from Claes about the Essay. The same information is also on the essay page.
24 March
The supervisors and supervision times are decided! All groups should have got a mail with this information – please contact me asap if you didn’t receive this mail.
The slides from todays lecture are in the schedule.
23 March
The Github invitation is published now. See the deadlines, and accept the invitation when your group is finally decided.
22 March
I have mailed group suggestions to everyone today. Please contact me before Friday if you have problems with the suggestion, or if you didn’t get any mail.
The slides from the introductory lecture are in the schedule.

Note: if you’re looking for…


Examiner and course responsible

Course assistants/supervisors

Student representatives


The course consists of three main tasks, of which two are done in groups of 4–5 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:


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

Unfortunately, Cremona couldn’t order the book in time for the course start, so it’s not available as a hard-copy! Instead, you can read it online at Chalmers library. (If the link doesn’t work, just go to Chalmers library and search for the book).


To pass the course you need to pass all five course moments:

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.

Grading criteria

Your final course grade depends on your results in the group work, i.e., the written examination does not influence your final grade! Shrdlite, the essay and the reviews can give you up to 10 “bonus” points, like this:

The final grade for your group will then be calculated according to this:

Note that your final grade on the course is individual! This means that you can get a higher or lower grade than what the above calculation suggests, depending on your personal contributions to the group work. To know this, we look at the following things:

Changes since 2016

The course only had minor following changes since 2016.

Changes to the peer-reviewed exam

Changes to the theoretical content

Changes to the Shrdlite project

Changes to the essay

Changes to the supervision