Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Report of work done during GSoC 2019 for AIMACode project AIMA Exercises.

GSoC '19 Report | Sachin Chopra | AIMACode | Aima-Exercises


The Google summer of code program has been a great and fun learning experience to me over the past months, during which I was developing an interactive platform for AIMA Exercises. My project idea was to make a dynamic site without having a backend thus saving server costs,improving UI/UX for the platform, devise a mechanism for submission of answers to various exercises of the book, add other features like bookmarking exercises, question bank mode, fixing cross references, proposing questions and extracting questions among others.

What is AIMA-Exercises

AIMA-exercises is an open-source community of students, instructors and developers. Anyone can add an exercise, suggest answers to existing questions, or simply help us improve the platform. The fourth edition of the book Artificial Intelligence: A Modern Approach will not be having exercises inside the book, but the exercises have been shifted to this online platform, where the users/students can see, solve and request for answers to various exercises.

Project Goals

  • Improving UI and workflow of the platform
  • Switching to Lanyon Jekyll theme without disturbing the current code structure.
  • Adding feature to bookmark exercises
  • Fixing Cross-references.
  • Adding Question Bank mode
  • Getting rid of disqus and implementing staticman
  • Improving the answer submission workflow and removing hard coded HTML from exercises.
  • Bringing back search feature with Lanyon theme
  • Bringing back breadcrumb feature with Lanyon theme
  • Using Github API to fetch data from answers folder because Jekyll doesn't have such an inbuilt function yet.
  • Bringing back upvote question feature with Lanyon theme
  • Feature to propose questions
  • Feature to extract questions

Contributions to AIMA Exercises before GSoC:

  1. Solved Issues: #25, #27, #28, #31, #32, #30, #51, #57, #68, #70 and sent Pull Requests #45, #47, #48, #49, #50, #55, #58, #69, #71 respectively (solutions to exercises).
  2. Sent PR #54, #56, #53, #52, #60 (merged), #61(merged) , #66 solving issues related to the website and created issues #42, #51, #59 to report missing files, bugs and inconsistencies in the codebase. Made the required missing index file related to Issue #42 awaiting review from mentors so as to get merged.
  3. Made sample UI designs for Table of Contents page, Question Bank and Exercises page and uploaded screengrabs under Issue #36.

Pull Requests merged during GSoC period along with Goals

Working Screengrabs:

  1. Homepage


  2. Chapter mode view


  3. Exercise Mode View


  4. Form to Submit Answers


  5. Search Query results




Future Aspects There are things that I could not finish during the GSoC period and could act as starting point for anyone who would be interested to contribute to the project further.

  1. Feature to propose new exercises through the platform itself.
  2. Bringing back the upvote question button with the Lanyon theme.
  3. Feature to extract a few chosen question in Pdf/Tex/Md format.
  4. Improving the request for community answer mechanism.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment