[
  {
    "path": "README.md",
    "content": "# GSoC Ideas List: `aimacode`\n\n# (Note: `aimacode` is not participating in GSOC for 2020)\n\nIn the past, the <a href=\"https://github.com/aimacode\"><tt>aimacode</tt></a> project has enjoyed the support of the Google\nSummer of Code. We may do so again in 2021. We had a few student interns help write code. Here are some of the requirements and project ideas from past years:\n\n<ul>\n\t<li> Very strong coding ability. Give us a link to some projects you've done.\n\t<li> Very <i>clear</i> coding, commenting, and documentation writing skills.\nYour code not only has to be correct, it also has to be easy top understand, and easy to see the connection between your code and\nthe description of the algorithms in the textbook. \n    <li> Enthusiasm for helping other people by explaining things well.\n\t\tShow us some examples of your work in this area.\n\t<li> Some experience, or familiarity, or willingness to learn about artificial intelligence\n\t\tand machine learning.\n</ul>\n\n\n<h1>Project Ideas</h1>\n\n<h2>(1) Exercises Website</h2>\n\nUnlike the previous editions, the upcoming 4th edition of <a\nhref=\"http://aima.cs.berkeley.edu/\"><i>Artificial Intelligence: A Modern Approach</i></a> will not have\nexercises in the book; they will be online only. We need help in launching a website for the\nexercises, and in developing some new exercises and answers. Last year we got a good start on the\nproject; this year we need to finish the interface, refine the mechanism for showing answers and\nhints, test it, and do performance load measurements to make sure it will hold up under load.\n<b>Skills:</b> testing, user interface design.\n<b>Possible mentors:</b> Nalin Chhibber\n\t\n<h2>(2) Java Algorithms</h2>\n\nFinish implementing all the pseudocode algorithms in the book in Java. A majority of the algorithms\nfrom the 3rd edition are done, but there are some new ones in the upcoming 4th edition, as\ndescribed in the <a href=\"https://github.com/aimacode/aima-pseudocode\"><tt>aima-pseudocode</tt></a>\nproject. Make sure the code follows the pseudocode well, and also shows good style. Also, provide\nexamples of usage, documentation, and thorough test cases.\n<b>Skills:</b> Java programming, documentation.\n<b>Possible mentors:</b> Peter Norvig\n\n<h2>(3) Python Algorithms</h2>\n\nFinish implementing all the pseudocode algorithms in the book in Python. Almost all of the\nalgorithms from the 3rd edition are done, but there are some new ones in the upcoming 4th edition,\nas described in the <a\nhref=\"https://github.com/aimacode/aima-pseudocode\"><tt>aima-pseudocode</tt></a> project. Make sure\nthe code follows the pseudocode well, and also shows good style. Also, provide examples of usage,\ndocumentation, and thorough test cases.\n<b>Skills:</b> Python programming, documentation.\n<b>Possible mentors:</b> Pierre de Lacaze\n\n<h2>(4) Example Notebooks</h2>\n\t\nUsing Jupyter/IPython or similar mechanisms, develop example worked projects that demonstrate the use of the algorithms from (2) and (3) above to solve interesting problems. Examples could include game playing, natural language processing, machine learning, and other topics, depending on your interest.\n<b>Skills:</b> Python programming, writing clearly.\n<b>Possible mentors:</b> Pierre de Lacaze\n\n<h2>(5) Container Notebooks</h2>\n\nContinuing the theme from (4) above, but demonstrating how to load an existing third-party open\nsource framework, such as TensorFlow, Theano, Caffe, Keras, Torch, Stanford CoreNLP, NLTK, Sci-kit Learn, or Spark. Create a container (Docker or Kubernetes) that has all the dependencies, and a notebook and documentation that shows how to use it to solve an interesting real-world problem or set of problems.\n<b>Skills:</b> familiarity with containers, attention to detail, good at explanations.\n<b>Possible mentors:</b> Peter Norvig\n\n<h2>(6) Javascript Gridworld</h2>\n\nWe have code for agents learning, searching, and acting in a grid layout. We need better visualizations of that it Javascript. Make it possible for students to examine existing problems and see what is going on through a simulation of the world, and visualization of various key metrics. Make it easy to define a new world, or to define a new agent function and run it within the world.\n<b>Skills:</b> User interface design, Javascript programming.\n<b>Possible mentors:</b> Sam Goto\n\n<h1>GSoC Application Process</h1>\n\nIf you'd like to help, you can <a href=\"https://developers.google.com/open-source/gsoc/timeline\">apply to GSoC</a>. \n<p>\nSee:\n<ul>\n<li> <a href=\"https://summerofcode.withgoogle.com/organizations/5663121491361792/\">aimacode <b>GSoC</b> Page</a>\n<li> <a href=\"https://github.com/aimacode\">aimacode <b>Github</b> Page</a>\n<li> <a href=\"https://gitter.im/aimacode/Lobby\">aimacode <b>Chat</b> Room</a>\n<li> <a href=\"mailto:peter.norvig+gsoc@gmail.com\">aimacode <b>mail</b>\n\t address</a>\n<li> Past GSoC projects: \n\t<a href=\"https://summerofcode.withgoogle.com/archive/2018/organizations/5756292874371072/\">2018</a>,\n\t<a href=\"https://summerofcode.withgoogle.com/archive/2017/organizations/6119722806411264/#projects\">2017</a>,\n\t<a href=\"https://summerofcode.withgoogle.com/archive/2016/organizations/5549354102292480/#projects\">2016</a>\n</ul>\n"
  }
]