You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+15-8Lines changed: 15 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,13 @@
1
1
How to Contribute to aima-python
2
2
==========================
3
3
4
-
Thanks for considering contributing to `aima-python`! Here is some of the work that needs to be done:
4
+
Thanks for considering contributing to `aima-python`! Whether you are an aspiring [Google Summer of Code](https://summerofcode.withgoogle.com/organizations/5663121491361792/) student, or an independent contributor, here is a guide to how you can help:
5
+
6
+
## Read the Code and Start on an Issue
7
+
8
+
- First, read and understand the code to get a feel for the extent and the style.
9
+
- Look at the [issues](https://github.com/aimacode/aima-python/issues) and pick one to work on.
10
+
- One of the issues is that some algorithms are missing from the [list of algorithms](https://github.com/aimacode/aima-python/blob/master/README.md#index-of-algorithms).
5
11
6
12
## Port to Python 3; Pythonic Idioms; py.test
7
13
@@ -31,7 +37,8 @@ Beyond the above rules, we use [Pep 8](https://www.python.org/dev/peps/pep-0008)
31
37
- I have set `--max-line-length 100`, not 79.
32
38
- You don't need two spaces after a sentence-ending period.
33
39
- Strunk and White is [not a good guide for English](http://chronicle.com/article/50-Years-of-Stupid-Grammar/25497).
34
-
- I prefer more concise docstrings; I don't follow [Pep 257](https://www.python.org/dev/peps/pep-0257/).
40
+
- I prefer more concise docstrings; I don't follow [Pep 257](https://www.python.org/dev/peps/pep-0257/). In most cases,
41
+
a one-line docstring suffices. It is rarely necessary to list what each argument does; the name of the argument usually is enough.
35
42
- Not all constants have to be UPPERCASE.
36
43
- At some point I may add [Pep 484](https://www.python.org/dev/peps/pep-0484/) type annotations, but I think I'll hold off for now;
37
44
I want to get more experience with them, and some people may still be in Python 3.4.
@@ -40,7 +47,7 @@ Beyond the above rules, we use [Pep 8](https://www.python.org/dev/peps/pep-0008)
40
47
Contributing a Patch
41
48
====================
42
49
43
-
1. Submit an issue describing your proposed change to the repo in question.
50
+
1. Submit an issue describing your proposed change to the repo in question (or work on an existing issue).
44
51
1. The repo owner will respond to your issue promptly.
45
52
1. Fork the desired repo, develop and test your code changes.
46
53
1. Submit a pull request.
@@ -88,15 +95,15 @@ Then you can run the testsuite with::
88
95
# Choice of Programming Languages
89
96
90
97
Are we right to concentrate on Java and Python versions of the code? I think so; both languages are popular; Java is
91
-
fast enough for our purposes, and has reasonable type declarations (but can be verbose); Python is popular and has a very direct mapping to the pseudocode in the book (but lacks type declarations and can be slow). The [TIOBE Index](http://www.tiobe.com/tiobe_index) says the top five most popular languages are:
98
+
fast enough for our purposes, and has reasonable type declarations (but can be verbose); Python is popular and has a very direct mapping to the pseudocode in the book (but lacks type declarations and can be slow). The [TIOBE Index](http://www.tiobe.com/tiobe_index) says the top seven most popular languages, in order, are:
92
99
93
-
Java, C, C++, C#, Python
100
+
Java, C, C++, C#, Python, PHP, Javascript
94
101
95
-
So it might be reasonable to also support C++/C# at some point in the future. It might also be reasonable to support a language that combines the terse readability of Python with the type safety and speed of Java; perhaps Go or Julia. And finally, Javascript is the language of the browser; it would be nice to have code that runs in the browser, in Javascript or a variant such as Typescript.
102
+
So it might be reasonable to also support C++/C# at some point in the future. It might also be reasonable to support a language that combines the terse readability of Python with the type safety and speed of Java; perhaps Go or Julia. I see no reason to support PHP. Javascript is the language of the browser; it would be nice to have code that runs in the browser without need for any downloads; this would be in Javascript or a variant such as Typescript.
96
103
97
-
There is also a `aima-lisp` project; in 1995 when we wrote the first edition of the book, Lisp was the right choice, but today it is less popular.
104
+
There is also a `aima-lisp` project; in 1995 when we wrote the first edition of the book, Lisp was the right choice, but today it is less popular (currently #31 on the TIOBE index).
98
105
99
-
What languages are instructors recommending for their AI class? To get an approximate idea, I gave the query <tt>[norvig russell "Modern Approach"](https://www.google.com/webhp#q=russell%20norvig%20%22modern%20approach%22%20java)</tt> along with the names of various languages and looked at the estimated counts of results on
106
+
What languages are instructors recommending for their AI class? To get an approximate idea, I gave the query <tt>[\[norvig russell "Modern Approach"\]](https://www.google.com/webhp#q=russell%20norvig%20%22modern%20approach%22%20java)</tt> along with the names of various languages and looked at the estimated counts of results on
100
107
various dates. However, I don't have much confidence in these figures...
0 commit comments