aimacode in Google Summer of Code 2016
The aimacode project has been accepted for the Google Summer of Code (GSoC).
The project maintains code, documentation, and examples to support the pseudo-code algorithms
in the textbook Artificial Intelligence: A Modern Approach by Russell & Norvig.
In just a few days, we received expressions of interest from over 140 students. That's exciting, but it also presents a
problem, because GSoC only supplies support for two students for first-time projects such as this one. So, we will
select one student for aima-java and one for aima-python. For the others students, we hope that many of them will find
a match with other GSoC projects, but some might want to become contribute=ing members of the aimacode community, even if they aren't
sponsored by Google.
Whether you want to apply for GSoC, or you just want to help out the project, you should look at the open "Issues" in the projects, and find one you can resolve, and submit a pull request. You can also look at the pseudocode algorithms. Issues include:
- Add/modify code to reflect changes in the new 4th edition of the textbook (currently being written).
- Fill in the gaps for some algorithms that were never implemented.
- Add tests, examples of usage, and explanations (including Jupyter/Ipython notebooks for Python).
- Add better visualizations of algorithms.
- Update Python code to Python 3 and Java to Java 8.
- Open issues that need work are here: aima-python issues;
aima-java issues
If you'd like to help, you can apply. Since we expect
there will be many applicants, we point out that succesful applicants will
need to combine four factors:
- Very strong coding ability.
- Very clear coding, commenting, and documentation writing skills.
Your code not only has to be correct, it also has to be easy to understand, and easy to see the connection between your code and
the pseudocode description of the algorithms in the textbook.
- Excellent English language skills.
- Enthusiasm for helping other people by explaining things well.
Future Work
This won't be part of GSoC 2016, but in the future we will need community members to help with:
- aima-javascript: Implement algorithms, and more importantly, provide interactive visualizations.
- Possibly add another language? In order of decreasing popularity, the languages that make sense are C#, Scala, Go, Clojure, Typescript, Julia.
- Curate datasets that can be used to solve problems suggested in the textbook.
- Provide documentation for how to use existing software packages such as
TensorFlow,
NLTK,
Dlib,
Weka and others.
Peter Norvig peter@norvig.com