HACKER Q&A
📣 _lessthan0

Self taught programmer, now wanting to learn more about CS theory


Please show me the best free / online courses to allow me to gain a further understanding of CS theory and other closely related theory (Maths, cryptography, etc). If this has been asked before or something similar please link. Thanks.


  👤 rramadass Accepted Answer ✓
Two books (get used copies for cheap);

* Foundations of Computer Science - http://infolab.stanford.edu/~ullman/focs.html

* Specifying Software: A Hands-On Introduction - https://www.amazon.com/Specifying-Software-Hands-Introductio... The name is a misnomer. See the ToC. This is actually a practical introduction to CS theory.



👤 f00_
My current favorites:

https://runestone.academy/runestone/books/published/pythonds...

Grokking Algorithms

Classic Computer Science Problems in Python


👤 DoreenMichele
This was recommended to me:

https://www.edx.org/course/introduction-to-computer-science-...

You can do it for free (or pay to get academic credit). I haven't yet managed to start the course.


👤 xkef
maths:

- Linear algebra (fischer's book)

- analysis (koenigsberger's book)

- discrete maths (zorich's books)

- probability theory (all of stats - wassermann)

foundations:

- parallel programming (A minicourse on multithreaded programming Charles E. Leiserson, Harald Prokop.)

- algorithms and datastructures (Widmayer's book)

core:

- systems (Computer Systems: A Programmer's Perspective" (3rd Edition) by R. Bryant and D. O'Hallaro)

- network (Computer Networking: A Top-Down Approach, James F. Kurose and Keith W. Ross)

- numerical methods

- data modeling and dbs

- formal methods and functional programming (Miran Lipovača. Learn you a Haskell for great good!)

(eth zurich's bachelors)

All the books are one google search away.


👤 closed
I'm really enjoying Types and Programming Languages right now. Imagine that rather than explaining typing using metaphors (a useful activity), people started at a much lower level and built up from there. That's this book!

https://www.cis.upenn.edu/~bcpierce/tapl/


👤 streetcat1
TLA+. This will make you a better programmer.

http://lamport.azurewebsites.net/video/videos.html




👤 psv1
How to Design Programs

https://www.htdp.org/


👤 shomshin
go to edx.org and take cs50 from Harvard University