<p>I can answer as to the above (I’m also a CS-concentrator, and willing to take questions, though I haven’t yet said it explicitly on this thread).</p>
<p>CS offers a few intro courses:</p>
<p>CS15 - teaches you Object-Oriented Programming in Java. Is a VERY large class, and most people who want to learn “useful” (less theoretical) programming take CS15. It’s also a major course for people who just want to “shop” CS to see if they might like it.</p>
<p>CS16 - This is the complement to 15. It teaches functional programming and lots of theoretical CS-ey type things, using Python and Java. Most the people who transition into 16 are likely, at this point, to go further in CS.</p>
<p>CS17 - Intro course using functional progrmaming in Scheme and OCaML. You don’t need a programming background to succeed, but most the students have one (but few have one in functional languages). CS18 continues the sequence (teaching OOP), and this is generally considered to be the more CS-ey of routes.</p>
<p>CS2 - This is the intro course for people who don’t think they’ll do anything else, but want to be literate in CS. It’s taught by Donald Stanford, who has a background as an engineer and seems to know a ton about everything. A basic introduction (in Python and HTML) is given to actual programming, but it’s not likely to be any more in depth (in terms of actual coding) than an AP high school course. But the main focus of the course ISN’T on “programming” but rather analytical skills</p>
<p>CS4 - This is the intro class for engineers, and uses Matlab. It’s also a pretty large class, and I’d recommend 15 or 17 as a more interesting alternative.</p>
<p>CS931 - Introduction to Computation for the Humanities, this class is taught by multiple different professors, and studies computation (this does not mean the same thing as computers) with respect to such things as problems presented in the news and current research</p>
<p>CS195Q - Programming for the Humanities and Social Sciences, this class is taught by Shriram (who also does the advanced intro course, and is a very intelligent, but sometimes tough to get along with person), and requires permission to register for, and is seen as a continuation of 931</p>
<p>CS195P - Cybersecurity and International Relations, this is John Savage’s pet course. I’m not entirely sure how it’s structured and if any programming is involved, but yeah. Having taken CS51 with him, you’d definitely be advised to shop and make sure you can handle his teaching style before committing to this course.</p>