| The OSSU curriculum has a nice selection of textbooks. However, I am concerned with the fact that these curated lists lack a unifying idea of what CS is. If you go to pure math instead, the consensus is clear. A pure math bootcamp, like Math 55, is mostly linear algebra and real analysis, taught from Axler and Rudin in its current iteration. Simpler math curriculums progress more slowly, or use easier textbooks, but the idea remains the same: Linear algebra and real analysis. What is the equivalent distilled core of CS? It can't be so many things. There must be a core which you build upon by stacking other courses and textbooks. My take on this is logic and computation. They are the algebra and calculus of CS, and they are intimately related by the Curry-Howard isomorphism. I find it alarming that CS students are often not taught basics of propositional logic, first-order predicate logic or lambda calculus. It's the basics, and it is really useful. Software Foundations [1] implements a nice curriculum in line with the ideas I have written about, but it is aimed at graduates and consequently it lacks background. I am still thinking about combinations of textbooks for undergrads that would offer something equivalent. Any suggestions welcome. [1] https://softwarefoundations.cis.upenn.edu/ |
N2T teaches digital logic, what Turning saw, how it was physically implemented and how programming languages were and are developed. TLS introduced various topics like the halting problem in an effective and playful manner. Both spark interest, something I find some maths courses fail to do in many people unfortunately.