Skip to content
Switch branches/tags


Failed to load latest commit information.

AIMA Exercises

AIMA exercises is an interactive and collaborative platform for digitalizing the exercises of the book Artificial Intelligence: A Modern Approach by Stuart J. Russell and Peter Norvig.
Exercises for the book Artificial Intelligence: A Modern Approach. The idea is that in the fourth edition of the book, exercises will be online only (they will not appear in the book). This site will showcase the exercises, and will be a platform for students and teachers to add new exercises.
The present version of AIMA-Exercises uses Jekyll 3 and Ruby 2.5. To run the project locally:

  1. Install a full Ruby development environment
  2. Install Jekyll and bundler gems
  3. Installation Guides:
  1. Clone the project locally.
  2. Go to the folder directory where you cloned the project in the terminal.
  3. gem install Jekyll bundler
  4. bundle exec Jekyll serve

The directory structure is as follows:

  • _includes - The include tag allows you to include the content from another file stored in the _includes folder and contains reusable files like staticman_comments.html which is the form used for submitting answers. Sidebar templates, head.html, and breadcrumb.
  • _layouts - They allow you to have the source code for project template in one place so you don’t have to repeat things like your navigation and footer on every page. The layouts folder has default layout, homepage layout, exercise layout, answer submitted layout and others.
  • _site - This is where the generated site is placed (by default) once Jekyll is done transforming it. While contributing, don't change files in the _site directory as Github Pages is compatible with Jekyll and _site folder is updated every time the root directory folders are changed.
  • figures - The figures folder contains figures for all the exercises.
  • js - The JS folder contains the javascript codes for all the features. answer.js, bookmark.js , search.js , commsol.js, forms.js.
  • latex - Latex folder contains latex files for all the exercises.
  • markdown - Markdown folder contains markdown format of all the exercises along with the index.MD files for generating the exercises pages and the answers folder (if an answer is present for that particular exercise). Each exercise has it's own answers folder.
  • public - Public folder contains CSS files and fonts for the project.
  • search - Search folder contains index.MD file for rendering search results.
  • 404.html - 404 page when a person reaches a page which is not present in the directory.
  • Gemfile - A Gemfile is a file we create which is used for describing gem dependencies for Ruby programs. The Gemfile is where you specify which gems you want to use, and lets you specify which versions.
  • Gemfile.lock - The Gemfile.lock file is where Bundler records the exact versions that were installed. This way, when the same library/project is loaded on another machine, running bundle install will look at the Gemfile.lock and install the exact same versions, rather than just using the Gemfile and installing the most recent versions.
  • .jekyll-metadata - Incremental regeneration helps shorten build times by only generating documents and pages that were updated since the previous build. It does this by keeping track of both file modification times and inter-document dependencies in the .jekyll-metadata file.
  • - License file for aima exercises project. It is released under standard MIT License.
  • - Readme file for the project.
  • _config.yml - Configuration file used by jekyll for building the site.
  • index.html- The front page of the aima exercises project.
  • search_data.json - Search data used by lunr.js for searching through the exercises. It's a script which takes into account all the exercises.
  • staticman.yml - Staticman configuration file for sending automated Pull requests whenever a user submits an answer.

4th Edition of Artificial Intelligence: A Modern Approach will not have exercises. In fact, the exercises will be available online on this platform for students to solve.

Chapter LaTex File Status Markdown
1-Introduction intro-exercises.tex Implemented
2-Intelligent-Agents agents-exercises.tex Implemented
3-Solving-Problems-By-Searching search-exercises.tex Implemented
4-Beyond-Classical-Search advanced-search-exercises.tex Implemented
5-Adversarial-Search game-playing-exercises.tex Implemented
6-Constraint-Satisfaction-Problems csp-exercises.tex Implemented
7-Logical-Agents knowledge+logic-exercises.tex Implemented
8-First-Order-Logic fol-exercises.tex Implemented
9-Inference-In-First-Order-Logic logical-inference-exercises.tex Implemented
10-Classical-Planning planning-exercises.tex Implemented
11-Planning-And-Acting-In-The-Real-World advanced-planning-exercises.tex Implemented
12-Knowledge-Representation kr-exercises.tex Implemented
13-Quantifying-Uncertainity probability-exercises.tex Implemented
14-Probabilistic-Reasoning bayes-nets-exercises.tex Implemented
15-Probabilistic-Reasoning-Over-Time dbn-exercises.tex Implemented
16-Making-Simple-Decisions decision-theory-exercises.tex Implemented
17-Making-Complex-Decisions complex-decisions-exercises.tex Implemented
18-Learning-From-Examples concept-learning-exercises.tex Implemented
19-Knowledge-In-Learning ilp-exercises.tex Implemented
20-Learning-Probabilistic-Models bayesian-learning-exercises.tex Implemented
21-Reinforcement-Learning reinforcement-learning-exercises.tex Implemented
22-Natural-Language-Processing nlp-communicating-exercises.tex Implemented
23-Natural-Language-For-Communication nlp-english-exercises.tex Implemented
24-Perception perception-exercises.tex Implemented
25-Robotics robotics-exercises.tex Implemented
26-Philosophical-Foundations philosophy-exercises.tex Implemented
Future Exercises future-exercises.tex Unimplemented


Exercises for the book Artificial Intelligence: A Modern Approach




No releases published


No packages published