Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Computer Science textbooks that are freely available online (csgordon.github.io)
574 points by MrXOR on Dec 29, 2020 | hide | past | favorite | 53 comments


Their link to "Computer Architecture: A Quantitative Approach (5th edition)" (https://booksite.elsevier.com/9780123838728/references.php) is broken. Here's a couple more [1],[2].

I'm also surprised Jeff Erickson's free lecture notes [3] aren't there given 1) its easy to remember domain 2) its incredibly high, practical quality. Practical because I've had interviews that just grab questions from the book, and also because his course is basically just a walk-through of the book. It's also very easy to read, and although I didn't do great in his class, his conceptual lessons still stick with me.

[1] http://acs.pub.ro/~cpop/SMPA/Computer%20Architecture%20A%20Q...

[2] https://github.com/Seanforfun/Books/blob/master/Computer/Com...

[3] http://algorithms.wtf


Couldn't recommend Jeff Erickson's lecture notes more for algorithms, DP, and the like. I too did rather poorly in the class so you're not alone! In a similar vein, Lawrence Angrave, a systems programming lecturer, has a wonderful crowd-sourced "book" [1] on all things systems programming. It is my go to resource for brushing up on these topics. Lastly, David Forsyth, a statistics/applied ML lecturer has a gold mine of a book for diving into ML and difficult concepts that come with it [2]. [1] https://github.com/angrave/SystemProgramming/wiki [2] http://luthuli.cs.uiuc.edu/~daf/courses/AML-18/learning-book...


Sometimes I’m wondering why U of I doesn’t have a bigger presence in the online learning world, other than net math. The material is great.


Illinois is going bankrupt to the degree that it’s affecting the U of I. They do, however, have both an iMBA and a masters in CS through coursera.


Jeff was one of my favorite teachers. He made algorithms and proofs fun, even if you didn’t get an A.


Not just CS books, but unglue.it offers various books, e.g.

* Paolo Bory: The Internet Myth https://unglue.it/work/442013/

* The Digital Public Domain: Foundations for an Open Culture https://unglue.it/work/136338/

* Francis daCosta: Rethinking the Internet of Things (APress) https://unglue.it/work/310550/

* Shotts: The Linux Command Line (No Starch Press) https://unglue.it/work/136224/

* Fogel: Producing Open Source Software UT: How to Run a Successful Free Software Project https://unglue.it/work/135870/

* Ryder: Unix as IDE https://unglue.it/work/194054/

More at e.g.

* https://unglue.it/free/kw.Computers%20/%20Programming/


By no means a textbook, just a barely-edited book-length anthology of primary sources I put together, but let me plug my own:

Finite of Sense and Infinite of Thought: A History of Computation, Logic and Algebra

https://pron.github.io/computation-logic-algebra


The Bibliography is definitively useful but the editing and commentary is really good too. I'll bookmark it and will keep reading later.


Do you have plans on publishing an epub?


Not currently. Seems like a lot of work, especially with all the margin notes and figures. But if you could suggest tools that might make this easier, I'd give them a look.


I enjoyed your introduction to TLA+, so looking forward to this. Thank you.


An obligatory mention of the /r/csbooks subreddit, where we share titles like these:

https://www.reddit.com/r/csbooks/


Hoping that it's okay to share LearnAwesome's (my open-source project) computer-science topic page here: https://learnawesome.org/topics/2680f6d5-b662-4cc3-99e5-e748...


All my ebooks are free to read online: https://github.com/learnbyexample/scripting_course#ebooks

And here's a huge list of freely available programming books: https://ebookfoundation.github.io/free-programming-books/boo...


Thank you, the scripting course looks awesome.


Thanks for sharing, this is great.

It's also a bit intimidating and overhwelming. There is so much to learn and there is also a danger of just getting through textbooks that cover the same material that you've read before or covering stuff on a surface level without getting any practice with what you've learned. As a data scientist, it feels like anything from mathematics, computer science, statistics, large-scale systems, software engineering in general is within my domain and there is a real danger of spreading oneself a bit too thin and not getting that good at anything.


Exactly what I'm going through as a junior programmer. I have no idea what to do, and everything is changing so fast I'm not sure what to grab.


The fundamentals don’t change fast and are what everything else is built on, so I would start there.

For example, if you don’t have a traditional CS degree, https://teachyourselfcs.com/ is a curated and effective set of books.

If your trying to understand complex systems, I would read Designing Data Intensive Applications, which is perhaps the best and most useful technical book I have ever read, and covers the most important parts of distributed systems. A lot of what’s in the book are fundamental distributed systems, from the 70-80s?/newer things from early 2000s built by BigTechCo


In the vein's shadow:

[audio books] http://audiobookbay.nl/

[books] http://gen.lib.rus.ec/

[research papers] https://sci-hub.do/


Runestone academy has a good collection of interactive online textbooks https://runestone.academy/runestone/books/index

Disclaimer: I helped build this platform as a student


Hey, I worked on Runestone as a student too, with Brad! Small world :).


I had a lot of qualms with my CS education, the professors in particular, but I have to hand it to them they always either tried to have the book and material online for free, or would use the international edition of whatever textbook we needed. Textbooks, and higher education in general, are a complete ripoff for 90% of people doing it.


Nothing worse than courses that require a textbook written by the lecturer decades ago and is now out-of-print, with only one copy in the library that all the students have to fight over.


Yeah there is. Courses that require you to purchase the lecturer's terrible quality printed and photocopied(!) Unpublished "Lecture notes"

At least a garbage textbook damages their reputation in their field.


I had a garbage math professor in college who did this, total bullshit.


I suggest adding Bob Nystrom's "Crafting Interpreters"

http://craftinginterpreters.com/


"Programming in D - Tutorial and Reference" Ali Çehreli

http://ddili.org/ders/d.en/index.html


https://runestone.academy/runestone/books/index has 100% free interactive versions of high quality textbooks. They use a JavaScript implementation of Python which runs in the browser (Skulpt) to provide a REPL.

Example Textbooks: Problem Solving with Algorithms and Data Structures using Python (3rd edition)


I had blogged about them, but for a different reason, also interactive - online turtle graphics:

Online turtle graphics in Python from Runestone Interactive:

https://jugad2.blogspot.com/2013/02/online-turtle-graphics-i...

Had also mentioned that anyone can host a course there for free.


I also really enjoyed MIT's "Mathematics for Computer Science" by Lehman, Leighton & Meyer (http://courses.csail.mit.edu/6.042/spring18/mcs.pdf)



Nice list thanks.

Perhaps you can add "High Performance Browser Networking" in your networking book section:

https://hpbn.co/



I wish this has syntax highlighting


It strikes me as odd that these resources are listed by title, not by author. In my (natural science) field, it's very much the reverse. I wonder whether this is a disciplinary difference, or just a reflection of Gordon's preference.


"Eloquent Javascript" might also be a candidate for this list but it is only available to read online: https://eloquentjavascript.net


"The Little Book of Semaphores" also belongs here.

https://greenteapress.com/wp/semaphores/


Really helped me out when I was getting my CS degree. Some classes I'd use these free copies, but core classes ex. Algorithms I liked having the physical copy of CLRS.



Kind of unrelated, I am wondering does anyone know a good CS lecture note websites? There was a one I saw here few months ago but I forgot the URL.


https://youtu.be/ywWBy6J5gz8

Learn Quicksort via tap dancing.


I wish these lists were better curated rather than just a dump of links with no commentary.



Still doesn’t really explain the contents of any of the linked courses or why you need to take them.

The only decent teach yourself computer science program I have come across is https://teachyourselfcs.com/


It gives you a complete minimally ordered set to high quality a CS education.

> Still doesn’t really explain the contents of any of the linked courses or why you need to take them

That is the job of the course lecturer or author who know best. It is always done in the first lecture of any course and is provided in written form in the syllabus. All you need to do click on the links....


This is a great post, so many good resources and information!!!


https://toc.cryptobook.us/ A comprehensive introduction to provable cryptography that is comparatively modern.


That exact link is already included.


algorithms illuminated isn't freely available. The links forward to amazon.


How do you read your ebooks?

Anyone have any success using the reMarkable 2 for it?


Check out https://getpolarized.io if you are fine with electron a working with a mouse.

Disclaimer: not affiliated


Thank you for sharing this kind of information. It really helps other people :)


Fascinating list. Thanks.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: