# aima-python Python 3 code for the book *Artificial Intelligence: A Modern Approach.* Eventually, this repository should have code for everything in the book. # Style Guide We default to [Pep 8](https://www.python.org/dev/peps/pep-0008), but with a few exceptions: - I'm not too worried about an occasional line longer than 79 characters. - You don't need two spaces after a sentence-ending period. - Strunk and White is [not a good guide for English](http://chronicle.com/article/50-Years-of-Stupid-Grammar/25497). - I prefer more concise docstrings; I don't follow [Pep 257](https://www.python.org/dev/peps/pep-0257/). - Not all constants have to be UPPERCASE. - [Pep 484](https://www.python.org/dev/peps/pep-0484/) type annotations are allowed but not required. If your parameter name is already suggestive of the name of a type, you don't need an annotation, e.g.: def retry(url: Url) -> None: # This 'Url' annotation should be avoided; but '-> None' is useful # Language Popularity Are we right to concentrate on Java and Python versions of the code? What languages do students already know? The [TIOBE Index](http://www.tiobe.com/tiobe_index) says the top five are: Java, C, C++, C#, Python What languages are instructors recommending for their AI class? To get an approximate idea, I gave the query norvig russell "Modern Approach" along with the names of various languages and looked at the estimated counts of results on various dates. However, I don't have much confidence in these figures...

Language20042005200720102016
none 8,08020,10075,200150,000132,000
java 1,9904,93044,20037,00050,000
c++ 8751,82035,300105,00035,000
lisp 84497430,10019,00014,000
prolog 7892,01023,20017,00016,000
python 7851,24018,40011,00012,000