I highly recommend Gregor Kiczales‘s CS classes from UBCx as a starting point [0]<p>Gregor’s courses are based on the “How to Design Programs” book that Matthias Felleisen at Northeastern, Shriram Krishnamurthi at Brown, and others wrote.<p>They have a great paper discussing the pedagogical philosophy called The Structure and Interpretation of the Computer Science Curriculum [1]<p>[0] <a href="https://www.edx.org/course/how-code-simple-data-ubcx-htc1x" rel="nofollow">https://www.edx.org/course/how-code-simple-data-ubcx-htc1x</a><p>[0] <a href="https://www.edx.org/course/how-code-complex-data-ubcx-" rel="nofollow">https://www.edx.org/course/how-code-complex-data-ubcx-</a><p>[1] <a href="https://www2.ccs.neu.edu/racket/pubs/jfp2004-fffk.pdf" rel="nofollow">https://www2.ccs.neu.edu/racket/pubs/jfp2004-fffk.pdf</a>
I built <a href="https://algodaily.com" rel="nofollow">https://algodaily.com</a> to serve as a gentle intro to CS fundamentals for non-traditional students. Check it out and see if it's what you're looking for.