IMPORTANT ANNOUNCEMENT: From this week on, visiting another group will be allowed only if requested in advance. This also applies to those who may at that time still be registered to group 99.

Due to the great popularity of the course, we have been able to create a 4th exercise group. It's on Wednesdays at 2-4pm. The language will be English. We request that everyone who can, move to the new group. Especially those who are currently in group 99. Note that as this hopefully creates vacancy in the other groups, students currently in group 99 can choose any of the other groups in case there is space left.

The course material is found in two places:
i) a separate github page with most of the material, including exercises,
ii) the lecture slides can be found on this page.

See section Material below.



Here is the course’s teaching schedule. Check the description for possible other schedules.

Thu 7.9.2017
14:15 - 16:00
Fri 8.9.2017
10:15 - 12:00
Thu 14.9.2017
14:15 - 16:00
Fri 15.9.2017
10:15 - 12:00
Thu 21.9.2017
14:15 - 16:00
Fri 22.9.2017
10:15 - 12:00
Thu 28.9.2017
14:15 - 16:00
Fri 29.9.2017
10:15 - 12:00
Thu 5.10.2017
14:15 - 16:00
Fri 6.10.2017
10:15 - 12:00
Thu 12.10.2017
14:15 - 16:00
Fri 13.10.2017
10:15 - 12:00
Thu 19.10.2017
14:15 - 16:00
Fri 20.10.2017
10:15 - 12:00



Master's Programme in Data Science is responsible for the course.

The course belongs to the Computers and Cognition module.

The course is available to students from other degree programmes.

  • basic data structures and algorithms (incl. stack, priority queue, tree traversal; for example Data Structures and Algorithms)
  • programming skills in one or more languages (Java or python recommended)
  • elements of discrete mathematics (set operations, graphs, and vectors)
  • probability calculus (multivariate probability is helpful but not required; for example Probability calculus I)

Courses in the Computers and Cognition and Machine Learning modules in the Data Science Master's programme, and the Philosophy of Artificial Intelligence course in the Linguistic Diversity in the Digital Age (LDA) Master's programme.


  • can express the basic philosophical problems related to AI (the difficulty in defining AI and consciousness, acting vs thinking, Turing test)
  • can distinguish between realistic and unrealistic AI in science-fiction
  • can describe the contrast between "Good Old Fashioned AI" (GOFAI) and modern AI approaches
  • knows the main stream developments in the history of AI
  • can formulate a problem as a graph and apply search algorithms to solve it
  • can explain and implement A* search
  • can formulate a simple game (such as tic-tac-toe) as a game tree
  • can explain and implement the minimax algorithm and depth-limited alpha-beta pruning
  • can design a reasonable heuristic evaluation function in a game (e.g., chess)
  • can express uncertain knowledge in a simple situation using a probabilistic model
  • can apply the Bayes theorem to calculate posterior probabilities given evidence in a simple scenario
  • can estimate probability values from a sample
  • can represent a problem solving situation as a Bayesian network
  • can apply an approximate (Monte Carlo) technique to perform inference in a Bayesian network
  • can distinguish between unsupervised and supervised machine learning scenarios
  • can implement at least two supervised classification methods (e.g., naive Bayes, nearest neighbour classifier)
  • knows the main types of neural networks (feed-forward, recurrent, self-organizing map) and their main principles
  • can implement the perceptron algorithm in a simple binary classification problem
  • can generate natural language sentences from a context-free grammar
  • can parse a sentence using the Cocke-Younger-Kasami algorithm
  • appreciates the difficulty of implementing an autonomous robot in the real world
  • implements simple functionalities, e.g., following a line on the floor, using a robot with limited sensor capabilities

Recommended time/stage of studies for completion:

2nd year or later of the Bachelor degree for Computer Science majors or other students planning to apply to the Data Science Master's programme

1st semester (Autumn) for Data Science Master's students

Term/teaching period when the course will be offered:

Autumn, typically 1st period

The course gives an introduction to the various aspects of Artificial Intelligence. Each topic will be addressed on an elementary level, but still aiming to achieve concrete skills by studying and implementing practical algorithms. More in-depth treatment of many of the topics is available in follow-up courses.

  • the history and philosophy of AI (briefly)
  • tree and graph traversal and search algorithms (A* search)
  • problem solving using graphs
  • games (minimax algorithm, alpha-beta pruning, heuristic evaluation)
  • logic in AI (briefly)
  • knowledge representation and belief updating using probability (Bayes theorem)
  • elements of Bayesian networks
  • supervised machine learning (nearest neighbour classifier, naive Bayes)
  • neural networks (kinds of neural network, perceptron algorithm)
  • natural language processing (sentence parsing, word disambiguation)
  • robotics (sensors, actuators, challenges in operating in the real world)

A separate write-up covering the topics of the course is provided.

Lectures and weekly exercise sessions.

Grading on a scale 1–5. Grading depends on the completed exercises (about 33% of the grade) and the course exam (about 67% of the grade).

  • Contact teaching
  • The course requires minimum 50% attendance at the exercise sessions, unless otherwise noted
  • Exercises or small projects and course exam