<p>Hello guys!
I would like to know if it is possible for a DC major to take some of these classes in their freshman year:</p>
<p>15-122
15-150
15-210
15-213
15-251</p>
<p>If so, which ones are the most manageable in terms of workload and difficulty?</p>
<p>Thanks!</p>
<p>You can take any of those classes, you’re not banned from CS classes just because you’re DC. However, you’ll have a hard time getting into them because CS majors get priority, and of course you’ll have to make sure they fit into your schedule. But tons of non-CS folk take these classes all the time! It’s not unusual at all to do that.</p>
<p>I can’t speak for the difficulty, however. I haven’t taken any of these, all I know is that 122 is the course on this list I hear the least complaints about and 251 is, well. It’s 251.</p>
<p>In the fall, CS majors take a special section for 15-122, so non-majors can take the other lecture. Of the courses you listed, the only one you could possibly take in the fall is 15-122 (assuming you test out of 15-112). To take 15-112, you need to also take Concepts of Math (21-127) in the fall semester as well. </p>
<p>You’ll probably get waitlisted for 15-122 when you first register, but you shouldn’t worry because you’ll get off the waitlist before classes start.</p>
<p>^ sometimes you can get away with not taking concepts with 122 (I somehow managed that because I couldn’t overload first semester). If I had to rate courses based on overall difficulty/time dedication I’d say
122 > 150 > 213 > 210 > 251, although 150 is a completely different way of looking at programming, so some people will either find it more difficult than 213 or easier than 122
213 generally spends about 10 hrs a week or more, depending on how stuck you are.</p>
<p>I agree with Selena731. But to add on with additional information:</p>
<p>[ul]
[<em>] 15122 is conceptually fairly easy: data structures and basic C concepts (pointers, memory allocation/freeing, &c). Schools that have AP CS programs that were initially targeted towards the AP CS AB exam (instead of just the A exam offered now) will cover a good amount of the material, I think. It’s just a class you have to put the time in. The final project (writing a VM for C-nought, a slightly safer version of C you’ll use for the first part of the course) is probably close to 15213-level difficulty and debugging frustration.
[</em>] 15150 is very slow the first half of the semester if you’ve done a reasonable amount of functional programming (and higher order functions are nbd to you) and gets more conceptually difficult/interesting later on. I think this is also a fairly easy CS course but most people will be less familiar with the material than with 15122, and the proofs for 15150 can get interesting. Typically sitting down for a few evenings and seriously working on 15150 (or a full day and then another few hours to comment code/do the proofs) is good enough.
[<em>] 15213 is more time-consuming than both 15122 and 15150, and I do feel the amount of material you need to learn is greater. It’s nice in that the textbook for the course perfectly follows the material (it was written for the course). It’s a fairly straightforward class if you put in the time learning the information (it’s probably more fact-heavy than a lot of other CS classes, since you have to learn quite a bit about how computer systems work) and reading the textbook/understanding your debuggers to do the assignments.
[</em>] 15210 is quite different from 213: what I’ve noticed is that in 213 doing the assignments inherently requires sitting in front of a computer for hours, poking through assembly code, reading up on docs, or running through different versions of the same code to see what’s faster/slower. In contrast, I’ve been spending a lot less time coding in 15210 and a lot of time thinking and trying to come up with an algorithm. I’d say it’s definitely conceptually harder than 15213, but it’s really dependent on how you like the class and the style of thinking. Routinely consumes a good portion of my weekend.
[li] 15251 is hard, conceptually and in the time you have to take for it (and the unfortunate thing is that you’ll spend a lot of time working on proofs and not feeling like you’re making progress). Generally consumes most of your week up until the assignment is due. I’d schedule all my assignments around 251 p-sets.[/li][/ul]</p>
<p>You may have to suck it up and take the early-morning recitations of some of these classes in order to get in, but there’s often space and tons of non-majors (people interested in CS or math/ECE/IS types doing it for fun) take the classes.</p>