Photo: Veikko Somerpuro

Introduction to AI

Welcome to the Introduction to AI! This is the Fall 2024 edition of the course at the Department of Computer Science, University of Helsinki. The course is an intermediate level 5 credit course, organized by the Data Science MSc programme. We also welcome students in the Computer Science BSc programme as well as all other students as a part of your minor subject studies.

The calculated workload of a 5 credit course is 18 hours per week, so please be prepared to spend time and effort in learning. The course will require hard work. You have been warned.

Prerequisites: What you should know before starting

Prerequisites are good programming skills, and basic data structures and algorithms, and some university level mathematics.

Field Required skills
Data Structures stack, priority queue, tree traversal, heuristic search, A* algorithm; for example Data Structures and Algorithms (Tietorakenteet ja algoritmit)
Programming good programming skills in python
Mathematics elements of discrete mathematics and linear algebra (set operations, graphs, vectors), probability calculus – multivariate probability is helpful but not required; for example Probability calculus I (Todennäköisyyslaskenta I)

Learning objectives

Theme Objectives (after the course, you ...)
Philosophy and history of AI
  • 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
  • know the main-stream developments in the history of AI
Games and search
  • 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)
Reasoning under uncertainty
  • 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
Machine learning
  • can distinguish between unsupervised and supervised machine learning scenarios
  • can implement at least two supervised classification methods (e.g., naive Bayes, nearest neighbour classifier)
  • know 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
Natural language processing
  • can generate sentences from a given context-free grammar
  • can parse a sentence using the Cocke-Younger-Kasami algorithm
Digital Signal Processing and Robotics
  • can describe the principles of at least one pattern recognition method
  • can apply at least one pattern recognition method in practice
  • appreciate the difficulty of implementing an autonomous robot in the real world
  • implement simple functionalities, e.g., following a line on the floor, using a robot with limited sensor capabilities

Working methods

The course includes lectures (2 x 2h per week) and exercise sessions (2h per week). The exercise sessions are meant for discussing the problems after you have completed them by yourself.

The lectures are not compulsory but they are meant to be useful.

Exercise points are marked in the exercise sessions; see Grading below.

You must register in one of the exercise groups on the registration system. If all the groups are full, please register in the overflow group and contact the lecturer or the TAs for instructions.

In case you have an unexpected constraint and can't make it to your own exercise session, the following options are (prioritized): (a) ask for permission to go to another group; or (b) submit your solutions by email before your own group session AND explain the unexpected situation (NB: being busy at work is not a valid excuse). You can only use the option b two (2) times during the course to gain points.

Course material

There is no course textbook. The course material consists of this material and lecture slides. The lecture slides and other useful information will be posted on the Moodle Page , under section Lecture Slides.

But please continue reading this page first.

Support

Questions and answers are most easily discussed on the course telegram channel. The lecturer and the TAs will do their best to answer questions but other students are also encouraged to engage in the discussion – often the best explanation is provided by a fellow student rather than a professor!

Please maintain a positive and supporting attitude in all discussions. Absolutely no bullying or other inappropriate behavior towards other students. There are no stupid questions, and making a mistake is often an excellent opportunity to learn – also for others.

Grading

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). You get full exercise points for completing 80% of the exercises. The minimum requirement to pass is 50% of both the exercise and the exam points.

Your exercise points will be available in the first two separate examinations after the course exam. Please note at registration of separate exams you need to choose the type (tapa) of exam if you are doing a course exam requiring exercises or if you are completing the course only through the separate exam. In the first case, the grade is composed by the exercises and exam (on the above 33%/67% scheme) in the second case only the exam grade.

Exam instructions (on campus vs remote, open book vs closed book, etc.) are subject to change due to various circumstances. Please check the instructions on the course webpage and Moodle before the exam. Important: Please remember to sign up to separate exams at least 10 days before the exam.

Accounts and tools

Creating a user account

You'll need a user account to the Test My Code (TMC) system that will be used to download the programming exercises. You should also log in to the course material with the same account.

You can enter your student number as "Organizational identifier" (found in TMC settings after login) for future purposes, but on this course the exercises points are not collected directly from TMC. If you don't have an account already, you can create one here: https://tmc.mooc.fi/user/new.

Installing the programming environment

We recommend that for the Python exercises you use VSCode with the TMC extension. The plugin makes it easy to download the exercises. These tools are installed in computer labs B221 and BK107.

  • Python: If you want to do the exercises in Python we recommend using Visual Studio with the TMC-plugin. Navigate to https://www.mooc.fi/en/installation/vscode and follow the instructions for your operating system. Alternatively, you can download project templates with tmc-cli or straight from TMC. To run tests locally use the following command: python3 -m tmc Note: TMC tests require Python 3.

Next select the right course in the programming environment.

Selecting the right course in the programming environment

Open the tmc settings and make sure that the server address is: https://tmc.mooc.fi/org/hy. Then log in and select hy-intro-to-ai-python as your course. This is the python version for this course.
Don't select the hy-intro-to-ai version as it is discontinued. Please change to hy-intro-to-ai-python if you have already selected the old hy-intro-to-ai java version.

Then to the material...

Click 'Part 1' in the navigation bar at the top of this page.

Table of Contents