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:
- Clone the project locally.
- Go to the folder directory where you cloned the project in the terminal.
gem install Jekyll bundler
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
_includesfolder and contains reusable files like
staticman_comments.htmlwhich 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
_sitedirectory as Github Pages is compatible with Jekyll and
_sitefolder is updated every time the root directory folders are changed.
figures- The figures folder contains figures for all the exercises.
latex- Latex folder contains latex files for all the exercises.
Markdownfolder 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
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.lockfile 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
LICENSE.md- License file for aima exercises project. It is released under standard MIT License.
README.md- 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.