Översikt

  • Allmänt

    • All course material can be found in A+ at https://plus.cs.aalto.fi/ai/2024spring/ (Warning: There seems to be an hour or two delay from the first attempt to log in A+ to access being granted!)

      The course offers a broad introduction to main areas of Artificial Intelligence of importance to CS and IT , including

      • search and problem-solving
      • constraint solving, deduction, logic, and automated reasoning
      • probabilistic inference and reasoning about uncertainty
      • semantic technologies
      • sequential decision-making, decision-making under uncertainty
      • game-theoretic and adversarial decision-making
      • adaptation and learning, especially reinforcement learning

      The methods covered in the course are the basis of AI's most important industrial applications, in control and management of complex systems, information technology, and autonomous systems and robotics. They also form much of the new advanced software methodology that will revolutionize parts of information technologies in the next decades.

      The course will give an introduction to the main forms of advanced software tools for solving hard combinatorial problems that are increasing in importance both in A.I. and construction of intelligent systems as well as in the advanced automation in CS and IT more generally. The question answered by the course is: what kind of advanced technologies are needed to get beyond current SW technologies, in important applications in IT and other industries?

      Prerequisites of the course are: basic math, programming skills at the level of a 2nd/3rd year CS student, knowledge of basic data structures and algorithms. The programming exercises will be in Python, so basic knowledge of Python would be useful.

      Registration deadline: January 15, 2024

      This course consists of weekly lectures on Thursdays, with course material delivered as lecture presentations (slides), material in traditional textbook format, as well as programming and other exercises to be completed every week. The exercise deadlines are every week on Wednesday evenings at 21:00 (generally 13 days after the exercise assignments have been handed out.)

      The course is lectured by Prof. Jussi Rintanen.

      The course starts on Thursday January 11, 2024. Lectures are given in hall A of the Otakaari 1 building on Thursdays at 12:15-14:00.

      The course examination is on Thursday April 18, 2024 at 17:00-20:00. The second opportunity to do the exam is on Wednesday June 5, 2024 at 13:00-16:00. Registration is obligatory for all exams of the course, and must be done one week before the exam, at the latest. (Do not ask for registration by email!)

      Some of the course's exercises involve programming in Python, or using tools written in Python. All exercises have been first developed and tested under Linux, but it is possible to get them working also under macOS and Windows. If you have difficulties with the lalter OSs, you can use Linux in Aalto's computing facilities through vdi.aalto.fi or by logging in to kosh.aalto.fi by using SSH (For instructions for creating the required ssh-keys see https://scicomp.aalto.fi/scicomp/ssh/.)

      Some small parts of the course that were covered in the lecture will not be part of the exams:

      • Diagnosis
      • 2 Watched Literal scheme for unit propagation
      • Montague semantics (but basics of lambda calculus may be asked about)
      • pseudocode for algorithms like alpha-beta, MCS, MCTS, UCB1 (but the general ideas and properties of these algorithms may be asked about)
      • Bayesian network reasoning by Weighted Model-Counting
      • MDP solution by Linear Programming

      The grading of the course is based on the points collected from the exercises and the exam, with a ratio 50:50. Additional points are given from weekly feedback and from the end-of-course questionnaire and feedback. See the course overview presentation PDF for details.


      Tentative schedule:

      1. Jan 11: Introduction & preliminaries
      2. Jan 11: Introduction & preliminaries
      3. Jan 18: Search and problem-solving
      4. Jan 25: Search and problem-solving
      5. Feb 1: Logic: Propositional logic, constraint solving, predicate logic
      6. Feb 8: Logic: Predicate logic, natural language, semantic technologies
      7. Feb 15: Reasoning under uncertainty
      8. Feb 29: Decision-making under uncertainty, Reinforcement Learning
      9. Mar 7: Game-tree search, game-playing
      10. Mar 14: Decision-making under partial observability, Multi-agent decision-making
      11. Mar 21: Game theory, A.I. applications & Future

      Exercise sessions will take place on Tuesday at 14:15-16:00 in hall T1 (T2 starting on February 13) and at 16:15-18:00 in hall T2. Teaching assistants will answer questions and provide help with completing the weekly exercises. Deadline for weekly exercises is Wednesday at 21:00, about two weeks after the exercise has been published (ignoring the exam/evaluation week in late February.) An exception to this is the first part of the introductory exercises given out on January 11, which are due on January 17.

      Support for  weekly exercises is available also on the course's Zulip channels from Mondays to Wednesday: https://cs-e4800-spring-2024.zulip.aalto.fi.
      Before asking help in Zulip the first time, read the instructions available in Zulip.

      Zulip support hours
      day hours
      Monday 12-21
      Tuesday 18-20
      Wednesday 12-21

      TA schedule

      Monday Tuesday Wednesday
      12 HN
      PS NV
      13 HN
      PS NV
      14 TT
      TT, PS
      15 TT
      TT, PS
      16 ES, RS
      RS, VK
      17 ES, RS
      RS, VK, AK
      18 AK, VK
      NV, HN
      ES, PS, AK
      19 AK, VK, LA
      NV, HN
      ES, PS, LA
      20 LA
      LA