@ -4,30 +4,30 @@ This guide details how to contribute to this repository.
## Contributor license agreement
By submitting code you agree to the [LICENSE](/LICENSE) of this repository.
By submitting code you agree to the [LICENSE](https://github.com/vhf/free-programming-books/blob/master/LICENSE) of this repository.
## Everyone is welcome to add a new free book to the list
Yep, that is true, you and your friends are welcome to add new free books to the list. And by free, we mean free, really free.
And you know what? It's really easy, see below.
## All the steps you need
1. First of all, what you want to add should be actually 'Free'. Don't mistake "An easy link to Download a book" with "Free".
2. If you don't know how to work with git or github, just simply go to [Wiki: Contribution](https://github.com/vhf/free-programming-books/wiki/Contribution) and read the rest.
3. We have 3 kinds of lists. Make sure you know where you're adding the link:
+ **Books** : PDF, HTML, DJVU, ePub, a gitBook.io based site, a Git repo, etc.
+ **Courses** : A course is a well designed learning material which was made by an organized group and is availabe for a long time where there is no interactive tool embeded in the site. e.g.: [OpenCourseWare](http://ocw.mit.edu/), [PHPAcademy](https://phpacademy.org), etc.
+ **Interactive Tutorials** : An application which helps you learn, by actually typing syntax. e.g.: [Codecademy](http://www.codecademy.com/), [Try Github](http://try.github.io/), etc.
## Steps to add a new book
Make sure that you've read [Contribution](https://github.com/vhf/free-programming-books/wiki/Contribution), which guides you to editing a repository. Then:
1. Again, unlike other projects, we prefer multiple small commits rather than one large change in a pull request - it's fine to have one pull request, but please make sure your title reflects what you've changed.
2. Use our standard for formatting the .md file. Check it out: [Formatting](#formatting)
3. Please try to use alphabetic order.
4. We prefer small commits rather than one large commit in a pull request. If you don't have the time to make small commit, add an issue with all the links included and we'll add them for you.
5. Use our standard for formatting the .md file. Check it out: [Formatting](#formatting)
6. Please try to use alphabetic order.
### Formatting
We are adults. Let's respect the next standard.
+ All lists are ```.md``` files. Try to learn Github's Markdown syntax. It's simple!
+ All the lists start with an Index, the idea is to show all of sections and subsections there, so it's important to have an index for each section. Right now it's alphabetized, so please use alphabetic order.
+ Sections are using level 3 heading (in HTML is ```<h3>```, in Markdown is ```###```), and subsections are using level 4 (in Markdown is ####).
+ Sections are using level 3 heading (in HTML is ```<h3>```, in Markdown is ```###```), and subsections are using level 4 (in HTML is ```<h4>```, in Markdown is ```####```).
The idea is to have
+ ```2``` empty lines between last suggested book & header
+ ```2``` empty lines between last suggested book &new header
+ ```0``` empty line between header & first book of that very section.
+ ```0``` empty line between each book in 1 section.
+ ```1``` empty line at the end of each ```.md``` file.
- Read the [TODO](/TODO.md) file(Adding new books is our #1 priority, but things like Alphabetizing are important, too.)
- Edit (we prefer multiple small commits rather than one large change)
- [Edit](https://github.com/vhf/free-programming-books/edit/master/free-programming-books.md) (we prefer multiple small commits rather than one large change)
- [Send a PR](https://help.github.com/articles/using-pull-requests)
- be part of a project that over 23,000 people starred in 6 months. ;)
- be part of a project that over 24,000 people starred in 7 months. ;)
**Again, unlike other projects, we prefer multiple small commits rather than one large change in a pull request - it's fine to have one PR, but please make sure your title reflects what you're changing**, thanks.
* [Compiler Design: Theory, Tools, and Examples, C/C++ Edition](http://elvis.rowan.edu/~bergmann/books/c_cpp/) - Seth D. Bergmann
@ -305,23 +307,23 @@
* [AI Algorithms, Data Structures, and Idioms in Prolog, Lisp, and Java](http://wps.aw.com/wps/media/objects/5771/5909832/PDF/Luger_0136070477_1.pdf) - George F. Luger, William A Stubblefield
* [An Introduction to Statistical Learning](http://www-bcf.usc.edu/~gareth/ISL/) - Gareth James, Daniela Witten, Trevor Hastie and Robert Tibshirani
* [Artificial Intelligence | Machine Learning](http://see.stanford.edu/see/materials/aimlcs229/handouts.aspx) - Andrew Ng *(Notes, lectures, and problems)*
* [Artificial Intelligence A Modern Approach](http://51lica.com/wp-content/uploads/2012/05/Artificial-Intelligence-A-Modern-Approach-3rd-Edition.pdf) (PDF)
* [Bayesian Reasoning and Machine Learning](http://web4.cs.ucl.ac.uk/staff/D.Barber/pmwiki/pmwiki.php?n=Brml.HomePage)
* [Computer Vision: Algorithms and Applications](http://hackershelf.com/book/134/computer-vision-algorithms-and-applications/)
* [Gaussian Processes for Machine Learning](http://www.gaussianprocess.org/gpml/)
* [Machine Learning, Neural and Statistical Classification](http://www1.maths.leeds.ac.uk/~charles/statlog/whole.pdf) (PDF) or [online version](http://www1.maths.leeds.ac.uk/~charles/statlog/) - This book is based on the EC (ESPRIT) project StatLog.
* [Neural Networks and Deep Learning](http://neuralnetworksanddeeplearning.com)
* [Probabilistic Models in the Study of Language](http://idiom.ucsd.edu/~rlevy/pmsl_textbook/text.html) (Draft, with R code)
* [Reinforcement Learning: An Introduction](http://webdocs.cs.ualberta.ca/~sutton/book/ebook/the-book.html)
* [The Elements of Statistical Learning](http://www-stat.stanford.edu/~tibs/ElemStatLearn/) - Trevor Hastie, Robert Tibshirani, and Jerome Friedman
* [The Python Game Book](http://thepythongamebook.com/en:start)
* [The LION Way: Machine Learning plus Intelligent Optimization](http://www.e-booksdirectory.com/details.php?ebook=9575)
* [Introduction to Machine Learning](http://arxiv.org/abs/0904.3664v1)
* [Artificial Intelligence A Modern Approach](http://51lica.com/wp-content/uploads/2012/05/Artificial-Intelligence-A-Modern-Approach-3rd-Edition.pdf) (PDF)
* [The Python Game Book](http://thepythongamebook.com/en:start)
####Mathematics
@ -522,6 +524,7 @@
####Theoretical Computer Science
* [An Introduction to the Theory of Computation](http://www.cse.ohio-state.edu/~gurari/theory-bk/theory-bk.html)
* [Building Blocks for Theoretical Computer Science](http://www.cs.uiuc.edu/~mfleck/building-blocks/index.html) - Margaret M. Fleck
* [Category Theory for Computing Science](http://www.tac.mta.ca/tac/reprints/articles/22/tr22.pdf) (PDF)
* [Homotopy Type Theory: Univalent Foundations of Mathematics](http://homotopytypetheory.org/book/) (PDF)
* [Introduction to Computing](http://www.computingbook.org/)
* [Introduction to Theory of Computation](http://cg.scs.carleton.ca/~michiel/TheoryOfComputation/) (PDF) - Anil Maheshwari and Michiel Smid
@ -540,11 +543,11 @@
###Ada
* [A Guide to Ada for C and C++ Programmers](http://www.cs.uni.edu/~mccormic/4740/guide-c2ada.pdf) (PDF)
* [Ada 95: The Craft of Object-Oriented Programming](http://faculty.cs.wwu.edu/reedyc/AdaResources/bookhtml/contents.htm)
* [Text Processing in Python](http://gnosis.cx/TPiP/) - David Mertz
* [Welcome to Problem Solving with Algorithms and Data Structures](http://interactivepython.org/runestone/static/pythonds/index.html) - Brad Miller and David Ranum
* [Web2py: Complete Reference Manual, 6th Edition (pre-release)](http://web2py.com/book) - HTML