ABOUT THE EXAM: The exam will take place on Wednesday October 25th, 2017, at 4pm in Auditorium A111. Note that you will be allowed to take with you to the exam a two-sided A4-sized hand-written (not copied) "cheat sheet" with your own notes written on it. You are also allowed to have a calculator (but it will not be required).

IMPORTANT ANNOUNCEMENT: The last week of exercises will be completed in Robotics Workshops instead of the normal exercise groups. You have to register to the workshops separately. See the link in the github material (Week 6).

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

Other teaching

11.09. - 16.10.2017 Mon 16.15-18.00
Juho Leinonen
Teaching language: English
13.09. - 18.10.2017 Wed 16.15-18.00
Juho Leinonen
Teaching language: English
13.09. - 18.10.2017 Wed 10.15-12.00
Juho Leinonen
Teaching language: Finnish
20.09. - 18.10.2017 Wed 14.15-16.00
Teaching language: English



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