Overview -> Introduction

Note Because of the exceptionally small class, I will adapt even more to the class than I usually do. For this reason, there is no rigid schedule for the session.


  1. How do we organise the module?
    • Learning Outcomes
    • Assessment Criteria
    • How do you prefer to work with a taught module?
    • What is the most effective way to reach the learning outcomes?
  2. Problem solving
    • Three problem solving challenges for the module
      • Solving Engineering Problems
      • Learning as Problem Solving
      • Program Machines to Solve Problems
    • The role of modelling in problem solving
    • Agile Approaches
  3. Practical Exercise in CodinGame (see below)
    • you should be able both to program and to explain the solution
    • use a formal model to explain the solution
  4. What is AI?


In general, you are supposed to read through the reading material and watch any videos assigned before class. Since this is the first class, it may not have been possible in this case, but please do it if you can.

Generally, I will try to add a few focus points or questions for you to keep in mind when reading. They are not questions for which you can expect to find a clear-cut answer in the text, but rather questions which require you to form your own answer by interpreting the text.

  • Reading Russel & Norvig, Chapter 1.
    • What is intelligence?
    • What is artificial intelligence?

Other materials

Learning outcomes

After the completion of this workshop, students should

  • be familiar with the tools used, including the wiki, Blackboard, and CodinGame.
  • have an understanding of the flipped classroom and seminar approaches to teaching and learning, and be able to discuss pros and cons of these approach.
  • be able to solve simple Easy puzzles on CodinGame that typically involve the implementation of reflex agents (agents will be introduced next week).
  • be aware of some of the ethical concerns about Artificial Intelligence.

Practical Exercise (CodinGame)

Today, we will work primarily on easy puzzles at CodinGame. This is to familiarise ourselves with CodinGame, and brush dust of our programming skills. You may use any programming language supported by CodinGame, but I am best placed to help you with python.

Problem-Solving on CodinGame.

You do not have to create a user account to use CodinGame, but if you agree to their terms and conditions, you may.

The following puzzles are recommended. I do not expect anyone to manage all six.
Everbody should do the Power of Thor.
If you think this is difficult, you start with Onboarding. Otherwise, please hunt exercises which you find interesting.

  1. Onboarding
    • Description: A tutorial mission for newcomers. Defend the planet with a big laser cannon from the invading insectoid alien ships
    • Topic: Finding a minimal value
  2. Power of Thor — Episode 1
    • Description: Thor’s hammer, Mjollnir has lost all of its powers… Will you be able to guide Thor towards the light of power to make the hammer whole again?
    • Topic: Condition statements (if-else)
  3. The Descent
    • Description: The enterprise is in danger: drawn towards the surface of an unknown planet, it is at risk of crashing against towering mountains. Help Kirk and Spock destroy the mountains… Save the enterprise!
    • Topic: Search in an array
  4. Mars Lander — Episode 1
    • Description: You have been promoted to commander of the Mars Lander mission! The goal of the operation is to land an exploration rover on martian ground. Your superiors at NASA expect very much of you for this mission, and you’ll have to prove that you have what it takes to become a great intersideral commander. You will have to land the space ship on mars, making sure that the landing is done smoothly.
    • Topic: Speed regulation
  5. Defibrillators
    • Description: Want to save lives? Good! So help us find the closest defibrillator from a given position in the city of Montpellier, France.
    • Topic: Distance calculation, big data
  6. Horse-racing Duals
    • Description: To make a race between two horses interesting, you will to find the horses with the closest strength.
    • Topic: Sorting, finding a minimum


Later in the semester, we will have to test ourselves against problems not available on CodinGame. You need to make sure that you can use python and git on your system.

  1. Make sure you have a development environment (IDE or otherwise) for python on your system.
  2. You should install the numpy and matplotlib libraries. (Use pip or whatever your IDE suggests.)
  3. Make sure that you are able to clone repositories from github.
  4. Test that you are able to run my (some of) test code from the repoes above.

The exact steps depends on your system and preferences.


Modelling Thor’s World

A model of Thor’s world
A model of Thor’s world

What does the world look like?

  • Thor moves in a field.
  • We can use Carthesian Coordinates in 2D.
  • The field is a grid, using integer co-ordinates

What can Thor do?

  • Thor has a location (coordinate) in the world.
  • He can move to change his location.
  • Given a current location and an action, what is Thor’s next location?

What is Thor’s goal?

  • Thor needs to find his hammer.
  • The hammer has a location (coordinate) in the world.
  • Hence Thor needs to move to the (known) location of the hammer.


  1. Read through the reading material for this class once more.
  2. Do the preparation for the next lecture, on Rational Agents.