### Timetable

### Description

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.

**Prerequisites in terms of knowledge**

Basic data structures and algorithms (incl. stack, priority queue, tree traversal; for example TKT20001 Tietorakenteet ja algoritmit (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 MAT12003 Todennäköisyyslaskenta I (Probability calculus I))

**Prerequisites for students in the Data Science programme, in terms of courses**

None

**Prerequisites for other students in terms of courses**

None

**Recommended preceding courses**

A course on data structures and algorithms (e.g. TKT20001 Data Structures and Algorithms)

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.

Student

- 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).

Separate exams last 3 hours and 30 minutes. Renewal exam (marked with "(U)") is the first separate exam after the course and also a renewal exam of course exam(s). In a renewal exam the points student has earned during the course are taken into account. Exams marked with "(HT)" are allowed only to students who have completed the obligatory projects or other exercises included in those courses. Exams marked with "(HT/U)" are renewals to students who have completed the obligatory projects during the course. Separate exams might cover different area than the lectured course. Check the course web page and contact the responsible teacher if in doubt.

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