The CS61 series at UC Berkeley is a series of foundational CS courses namely CS61A, 61B and 61C.<p>I am listing the archive pages for the courses below:<p>1. CS61A- <https://inst.eecs.berkeley.edu/~cs61a/archives.html><p>2. CS61B- <https://inst.eecs.berkeley.edu/~cs61b/archives.html><p>3. CS61C- <https://inst.eecs.berkeley.edu/~cs61c/archives.html><p>If you go through the archives you can find out different semester course pages and find videos as well as other course materials that you can do on your own pace.<p>Now, these are lower division or foundational courses that cement the skill of programming, data structures, paradigms of programming and how a computer works under the hood i.e. starting with Python, SQL, Scheme in CS61A, then Java in CS61B to C and Assembly (RISC-V) in CS61C.<p>Those who have taken these courses claim that after completing this series they feel like they can achieve or learn almost anything if they wanted because they are already well versed on the lingo and tools of CS that is programming, problem solving and low level stuff.<p>What other courses of this calibre are available freely to the public from other schools? Courses that really up your game.<p>I found that MIT 6.0001 & 6.0002 didn't come even close to what CS61A alone taught. The Prof John DeNero of 61A and Josh Hug of 61B were phenomenal in their teaching and the course projects were awesome.
Funny. At my uni (western europe), foundational courses for CS were about 70% maths + electronics + physics, and 30% about DS+algorithms, OS, etc. Literally, the first year of the CS degree one was asking oneself: did I sign up for a Maths degree?<p>This was 16 years ago or so. Nowadays, it's kinda the opposite.