diff --git a/free-programming-books.md b/free-programming-books.md index d2715f3a8a1182cc48fa19588e4ecdbcf133d788..9f026b40339ecd0682c11e3e9b746eeea9ecef64 100644 --- a/free-programming-books.md +++ b/free-programming-books.md @@ -130,11 +130,24 @@ * [Linked List Problems](http://cslibrary.stanford.edu/105/LinkedListProblems.pdf) * [Open Data Structures](http://opendatastructures.org/) * [Purely Functional Data Structures](http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf) -* [Introduction to Computing](http://www.computingbook.org/) +* [The Great Tree List Recursion Problem](http://cslibrary.stanford.edu/109/TreeListRecursion.pdf) +* [Matters Computational](http://www.jjj.de/fxt/#fxtbook) +* [Algorithmic Graph Theory](http://code.google.com/p/graphbook/) +* [Foundations of Computer Science](http://infolab.stanford.edu/~ullman/focs.html) - Al Aho and Jeff Ullman +* [A Field Guide To Genetic Programming](http://dces.essex.ac.uk/staff/rpoli/gp-field-guide/toc.html) +* [The Art of Computer Programming](http://www.cs.utsa.edu/~wagner/knuth/) (fascicles, mostly volume 4) +* [Programming Pearls](http://cs.bell-labs.com/cm/cs/pearls/) * [Algorithms for Programmers: Ideas and Source Code](http://www.jjj.de/fxt/fxtbook.pdf) * [Sequential and parallel sorting algorithms](http://www.inf.fh-flensburg.de/lang/algorithmen/sortieren/algoen.htm) * [Text Algorithms](http://igm.univ-mlv.fr/~mac/REC/text-algorithms.pdf) +####Theoretical Computer Science +* [Structure and Interpretation of Computer Programs](http://mitpress.mit.edu/sicp/) +* [Programming Languages: Application and Interpretation](http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/) +* [Introduction to Computing](http://www.computingbook.org/) +* [An Introduction to the Theory of Computation](http://www.cse.ohio-state.edu/~gurari/theory-bk/theory-bk.html) +* [Think Complexity](http://www.greenteapress.com/compmod/) - Allen B. Downey + ####Operating systems * [The Art of Unix Programming](http://catb.org/esr/writings/taoup/html/) * [The Little Book of Semaphores](http://greenteapress.com/semaphores/) - Allen B. Downey @@ -167,9 +180,7 @@ * [Is Parallel Programming Hard, And, If So, What Can You Do About It?](http://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html) ####Software Architecture -* [The Architecture of Open Source Applications](http://www.aosabook.org/en/index.html) -* [The Performance of Open Source Applications](http://aosabook.org/en/) -* [Programming Pearls](http://cs.bell-labs.com/cm/cs/pearls/) + * [Seamless Object-Oriented Software Architecture](http://www.bon-method.com/book_print_a4.pdf) * [Summary of the GoF Design Patterns](http://domaindrivendesign.org/sites/default/files/discussion/PatternSummariesUnderCreativeCommons.doc) * [How to write Unmaintainable Code](http://mindprod.com/jgloss/unmain.html) @@ -181,6 +192,19 @@ * [Best Kept Secrets of Peer Code Review](http://smartbear.com/codecollab-code-review-book.php) * [Domain Driven Design Quickly](http://www.infoq.com/minibooks/domain-driven-design-quickly) * [Essential Skills for Agile Development](http://elliottback.com/wp/essential-skills-for-agile-development/) +* [Guide to the Software Engineering Body of Knowledge](http://www.computer.org/portal/web/swebok) +* [Programming Reliable Systems (Joe Armstrong's PhD thesis)](http://www.sics.se/~joe/thesis/armstrong_thesis_2003.pdf) +* [How to Design Programs](http://www.htdp.org/) +* [NASA Manager Handbook for Software Development](http://homepages.inf.ed.ac.uk/dts/pm/Papers/nasa-manage.pdf) (PDF) +* [NASA Software Measurement Handbook](http://www.scribd.com/doc/7181362/NASA-Software-Measurement-Guidebook) +* [Don't Just Roll the Dice](http://www.neildavidson.com/dontjustrollthedice.html) + +####Open Source Ecosystem +* [Getting started with Open source development](http://public.dhe.ibm.com/software/dw/db2/express-c/wiki/Getting_started_with_open_source_development_p2.pdf) (PDF) +* [Producing Open Source Software](http://producingoss.com/) +* [The Cathedral and the Bazaar](http://www.catb.org/esr/writings/cathedral-bazaar/) +* [The Architecture of Open Source Applications](http://www.aosabook.org/en/index.html) +* [The Performance of Open Source Applications](http://aosabook.org/en/) ####Information Retrieval * [Introduction to Information Retrieval](http://nlp.stanford.edu/IR-book/information-retrieval-book.html) @@ -205,22 +229,17 @@ * [Mathematical Logic - an Introduction](http://www.ii.uib.no/~michal/und/i227/book/book.pdf) (PDF) * [Bayesian Methods for Hackers](https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers) * [Introduction to Statistical Thought](http://www.math.umass.edu/~lavine/Book/book.html) +* [Mathematics for Computer Science](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/readings/) +* [Category Theory for Computing Science](http://www.math.mcgill.ca/triples/Barr-Wells-ctcs.pdf) +* [Essentials of Metaheuristics](http://cs.gmu.edu/~sean/book/metaheuristics/) by Sean Luke ####Misc * [97 Things Every Programmer Should Know](http://programmer.97things.oreilly.com/) * [97 Things Every Programmer Should Know - Extended](https://leanpub.com/97-Things-Every-Programmer-Should-Know-Extended) -* [How to Design Programs](http://www.htdp.org/) * [How to Think Like a Computer Scientist](http://openbookproject.net/thinkcs/) * [I Am a Bug](http://www.amibug.com/iamabug/p01.html) * [Learn to Program](http://pine.fm/LearnToProgram/) -* [Foundations of Computer Science](http://infolab.stanford.edu/~ullman/focs.html) - Al Aho and Jeff Ullman * [Foundations of Programming](http://codebetter.com/files/folders/codebetter_downloads/entry179694.aspx) -* [Structure and Interpretation of Computer Programs](http://mitpress.mit.edu/sicp/) -* [An Introduction to the Theory of Computation](http://www.cse.ohio-state.edu/~gurari/theory-bk/theory-bk.html) -* [Programming Languages: Application and Interpretation](http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/) -* [Programming Methodology](http://www.stanford.edu/class/cs106a/cgi-bin/handouts/) -* [Category Theory for Computing Science](http://www.math.mcgill.ca/triples/Barr-Wells-ctcs.pdf) -* [The Cathedral and the Bazaar](http://www.catb.org/esr/writings/cathedral-bazaar/) * [Communicating Sequential Processes (PDF)](http://www.usingcsp.com/cspbook.pdf) - Tony Hoare * [Come, Let's Play: Scenario-Based Programming Using Live Sequence Charts](http://www.scribd.com/doc/175241338/Come-Let-s-Play) * [Computer Musings](http://scpd.stanford.edu/knuth/index.jsp) (lectures by Donald Knuth) @@ -229,27 +248,14 @@ * [Designing Interfaces](http://designinginterfaces.com) by Jennifer Tidwell * [Digital Signal Processing For Engineers and Scientists](http://www.dspguide.com/) * [Distributed systems for fun and profit](http://book.mixu.net/distsys/single-page.html) -* [Don't Just Roll the Dice](http://www.neildavidson.com/dontjustrollthedice.html) -* [Essentials of Metaheuristics](http://cs.gmu.edu/~sean/book/metaheuristics/) by Sean Luke -* [A Field Guide To Genetic Programming](http://dces.essex.ac.uk/staff/rpoli/gp-field-guide/toc.html) * [Flow based Programming](http://jpaulmorrison.com/fbp/#book) * [Getting Real](http://gettingreal.37signals.com/) -* [Getting started with Open source development](http://public.dhe.ibm.com/software/dw/db2/express-c/wiki/Getting_started_with_open_source_development_p2.pdf) (PDF) -* [The Great Tree List Recursion Problem](http://cslibrary.stanford.edu/109/TreeListRecursion.pdf) -* [Guide to the Software Engineering Body of Knowledge](http://www.computer.org/portal/web/swebok) -* [Matters Computational](http://www.jjj.de/fxt/#fxtbook) * [Modeling Reactive Systems with Statecharts](http://www.scribd.com/doc/167971960/Modeling-Reactive-Systems-With-Statecharts) -* [NASA Manager Handbook for Software Development](http://homepages.inf.ed.ac.uk/dts/pm/Papers/nasa-manage.pdf) (PDF) -* [NASA Software Measurement Handbook](http://www.scribd.com/doc/7181362/NASA-Software-Measurement-Guidebook) * [PNG: The Definitive Guide](http://www.libpng.org/pub/png/book/) * [Pointers And Memory](http://cslibrary.stanford.edu/102/PointersAndMemory.pdf) -* [Programming Reliable Systems (Joe Armstrong's PhD thesis)](http://www.sics.se/~joe/thesis/armstrong_thesis_2003.pdf) -* [Producing Open Source Software](http://producingoss.com/) * [Project Oberon](http://www-old.oberon.ethz.ch/WirthPubl/ProjectOberon.pdf) (PDF) * [Security Engineering](http://www.cl.cam.ac.uk/~rja14/book.html) * [Small Memory Software](http://www.smallmemory.com/book.html) -* [The Art of Computer Programming](http://www.cs.utsa.edu/~wagner/knuth/) (fascicles, mostly volume 4) -* [Think Complexity](http://www.greenteapress.com/compmod/) - Allen B. Downey * [Introduction to High-Performance Scientific Computing](http://tacc-web.austin.utexas.edu/veijkhout/public_html/istc/istc.html) - Victor Eijkhout * [Object-Oriented Reengineering Patterns](http://win.ua.ac.be/~sdemey/) - Serge Demeyer, Stéphane Ducasse and Oscar Nierstrasz * [High-Performance Scientific Computing](http://bit.ly/hpc12) (class lectures and slides) @@ -290,7 +296,7 @@ * [Programming from the Ground Up](http://download.savannah.gnu.org/releases/pgubook/ProgrammingGroundUp-1-0-booksize.pdf) (PDF) * [Software optimization resources by Agner Fog](http://www.agner.org/optimize/) * [The Art of Assembly Language Programming](http://cs.smith.edu/~thiebaut/ArtOfAssembly/artofasm.html) -* [x86 Assembly](http://en.wikibooks.org/wiki/X86_Assembly) +* [x86 Assembly](http://en.wikibooks.org/wiki/X86_Assembly) * [Ralf Brown's Interrupt List](http://www.ctyme.com/rbrown.htm) @@ -311,7 +317,7 @@ * [Learn C the hard way](http://c.learncodethehardway.org/book/) * [The new C standard - an annotated reference](http://www.knosof.co.uk/cbook/cbook.html) * [Object Oriented Programming in C](http://www.planetpdf.com/codecuts/pdfs/ooc.pdf) (PDF) -* [C Programming - Wikibooks](http://en.wikibooks.org/wiki/Programming:C) +* [C Programming - Wikibooks](http://en.wikibooks.org/wiki/Programming:C) ###C++