What to Take and What to Avoid

 Here's a complete list of the courses I have credit for. I've ordered them by course number and added a ranking (1-10). Keep in my that some of these might no longer exist or have been renamed/renumbered (*ahem* intro). I've also put a brief synopsis of each course down at the bottom, in case you're curious what the class is or why I rated it the way I did. These are actually pretty informative since I have some notes about professors and occasional updates about what has changed since I took it.
NumberCourseInstructor(s)UnitsSemesterRating
15-127Introduction to Programming and Computer ScienceStehlik, Roberts1019
15-151Mathematical Foundations of Computer ScienceClarke, Sutner915
15-211Fundamental Structures in Computer Science 1Morris, Thrun1227
15-212Principles of ProgrammingCrary, Lafferty1238
15-213Intro to Computer SystemsBryant, O'Hallaron1239
15-251Great Theoretical Ideas in Computer ScienceRudich12210
15-381Artificial IntelligenceCarbonell, Moore948
15-399Constructive LogicAwodey953
15-412Operating SystemsKesden1869
15-441Computer NetworksSteenkiste, Harchol-Balter1269
15-451Algorithms: Design and AnalysisA. Blum, Sutner956
15-462Computer Graphics IWelling1249
15-493Video Game ProgrammingKuffner1277
15-539Independant Study in CS Pedagogy(Rudich)12410
15-599Undergraduate Research Thesis(Steenkiste)187-89
15-781Machine LearningMitchell, Moore1277
16-199Building the FutureAtkeson449
16-362Mobile Robot ProgrammingNourbakhsh12510
18-100Intro to Electrical and Computer EngineeringSullivan1236
19-601Information WarfareMorel1287
21-115Differential Calculus (AP credit)-5--
21-116Integral Calculus (AP credit)-5--
21-117Integration and Differential EquationsTolle515
21-118Calculus of ApproxomationTolle515
21-241Matrix AlgebraTolle927
21-259Calculus in Three DimensionsSchaeffer935
21-355Advanced CalculusHrusa959
21-484Graph TheoryMartin967
21-621Intro to Lebesgue IntegrationHrusa677
33-104Experimental Physics (with lab)Luokkala, Feenstra926
33-111Physics for Science Students 1 (AP credit)-12--
33-112Physics for Science Students 2Swendsen, Feenstra1216
36-217Probability Theory and Random ProcessesGenovese949
48-095Architecture for Non-MajorsCelento959
69-130TennisMoss385
69-131VolleyballWebb37,88
70-340Business CommunicationsKirkpatrick987
73-100Principles of EconomicsDalton944
76-101Interpretation and ArgumentGripp913
76-271Introduction to Professional Technical WritingCheng987
79-266Times of Feast, Times of FamineLynch922
80-100What Philosophy IsBuldt957
80-180Nature of LanguageSimons932
85-211Cognitive PsychologyLovett965
88-120Reason Passion and Social CognitionLerner968
99-068Fun With Robots(Robotics Club)175

15-127: Mark and Jim! Together!! Oh yeah, the taught us something too, introductory programming or something. They would've got a 10 if remembered the course for the material as well as their antics. Update: Intro is constantly changing so your mileage may vary. The big thing though is that there is no more special version for majors.

15-151: The bane of freshman year. Horrible intro to discrete math. I hate being a guinea pig. Fine, so I learned stuff, not very well though.

15-211: The second semester data structures course. It was kinda mediocre. We did have some good labs, and the theory was taught quite well, but I'll never forgive them for using java.

15-212: ML! Recursion! Continuations! Good course. Quite hard, but that was my first time with functional programming and I think they did a great job presenting it. Why just an 8? well, what can you REALLY use ML for?

15-213: Getting down to the basics, pure C. This was a great class, those labs (coding malloc, a web proxy, and defusing the bomb!) will stay with me for a while. GDB and pointer hacking was a lot of fun, multi-threading was cool, and the networking code was good too. The only thing that kept this course from getting a 10 was the lectures, I remember getting up bright and early only to be put back to sleep.

15-251: Leaps and bounds above 151, this course finally stretched and broke my limits. It got me thinking about problems in totally different ways and improved my reasoning skills tremendously. This is basically the bar for other classes to match. I won't even begin to list topics, which are quite broad, but the course isn't about the particulars of the material. It's on a meta-level above that; how to approach material. Rudich is quite the lecturer so don't miss this one, it's a perfect 10! Update: This has been split up into two classes.

15-381: The title is a little misleading, we actually learned about what AI isn't. We got a nice survey of neural nets, markov systems, and general search techniques. In other words, we solved problems that typically take 'intelligence'. Not a terribly tough course, but quite interesting anyway. That and Moore was a great lecturer.

15-399: Eh... it fulfills a category and isn't very hard so it does have some benefits. But it is also slow and boring and not well structured. Basically, avoid this class unless you're willing to put up with these sort of problems. Update: I heard the class is much better now!

15-412: OS will kick your ass! But I learned so much!! This was a very interesting course that exposed me to what really happens under the hood. Also I finally got to work on large interesting projects. My major gripe is that I had to drop my partner half way through the last project and this definitely soured my experience. Update: Like 251, this great class is being split in half because someone complained it's too hard.

15-441: Another great course that everyone should take. I'm not so sure it teaches you systems programming also the support and feedback were lacking, but Mor's lectures were absolutely wonderful and definitely got me thinking. Oh yeah, and you really learn how the internet works :) Definitely take it with Mor Harchol-Balter, she's really enthusiastic about this stuff!

15-451: This felt very much like a rehash of 251. I did like the 'presentation' aspect though since you could also chat with the TAs.

15-462: Computer graphics was FUN! Take this class! You hack lots of code and debug by looking at pictures. Yes, it IS a 400 level course, and there's a reason for that, but it's so refreshing to look at pictures for a change! So why not a 10? Well, the problem with this course is that it often feels like a guided study and that's because I remember the labs only. Although labs were the major part of the class, they were fairly disjoint from everything else. Update: This class is very different now, I hear it still good though.

15-493: What can I say, you get to hack a game. I was a guinea pig here and a lot of the class sucked, but the focus was definitely on the final project. This open-ended assignment was simply to write a video game as well as a webpage and report for it. Working with a new friend we took home the best-overall game award and the end of the semester! I expect this to become a great course after a few iterations so stay tuned.

15-539: Second semester of sophomore year I did an independent study in CS pedagogy. I became part of the course staff for 15-251. Taking a second look at the course, this time from the other point of view, was incredibly enlightening. Aside from learning to speak well, prepare materials, and approach students, I also got a second look at the course material and added to it.

15-599: Everyone should try research, it's definitely unique. And you also learn interesting things with communication as you'll give several short presentations, make two posters, and write a huge paper. It is a full year though so make sure you find an advisor you like and a field you're interested in. This also lets you interact with professors in a very different way... suffice to say the whole thing is a unique experience.

15-781: Builds on AI, but doesn't extend it far enough in my opinion. Overview classes are nice and this one definitely provoked some creative discussion with eager grad students. As usual, Moore is an awesome guy so it's worth taking.

16-199: This was a project based course where we actually built stuff! Andrew, Justin, and I formed a team code-named librient. We put together a web-page and had a lot of fun making all the toys. It's definitely not a 10, this was only a mini-course and the first time being taught, but if it were expanded...

16-362: Great class! It's a lot of fun to actually see your robot run in the real world and debug by looking at physical behaviors. It is closer to research than a traditional class... but I think that's a huge plus! And Illah (last name pronounced Nor-baush) is great, so sign up for this one.

18-100: Learned some basic circuit/logic stuff... not too interesting, but it did have a saving grace. This course had a lab component and we built a gps receiver! Very cool! Fun with soldering fumes and ICs :)

19-601: I was very disappointed by this class, it wasn't at all what I expected. I just assumed it would be more technical, that we would actually be creating exploits and doing case studies of some of the major attacks. Instead this class was filled with a huge variety of students, some had no prior knowledge of computer networks or encryption, others were masters students with industry experience in security. We ended up talking a lot about policy which wasn't what I had signed up for. One saving grace was the interesting guest lectures from CERT. If you want to hack code, stay away from this class. If you want an easy A, with no work, no need to attend class, and no stress then this is the 12 unit filler for you.

21-11x: Basic calculus courses... boring but I had it with Tolle who was fun.

21-241: Matrix... learned a lot of math stuff, and it was geared for cs majors. Kinda boring, but I think all cs majors should know this material. Also taught by Tolle :)

21-259: Calc in 3D. Boring, and NOT taught by Tolle :( It's the other math requirement for graphics, though I don't think I learned much here. Still, it was a good review of matrix.

21-355: The material is kind of bland and dry, you really need to appreciate math for its own sake. But Hrusa is the man and made it a lot of fun anyway; assuming he's teaching again, I highly recommend this class.

21-484: Much of this was review of past cs classes. Interesting material and not very demanding. Not an outstanding class but certainly not a bad one.

21-621: A too-fast introduction to measure theory. Despite Hrusa's best efforts, I didn't find the material nearly as interesting as advanced calc.

33-104: Did some basic physics experiments... nothing groundbreaking, and writing the lab reports sucked. But I still like getting my hands dirty so that was fun.

33-112: I was really into physics at the time and enjoyed electricity and magnetism. I'm not sure why so many people do so poorly in it... Granted the material is a bit abstract and dry, but the math isn't hard and it relates nicely to the big picture.

36-217: I had this with Genovese, who is a great teacher. It's your basic probability stuff. We had plenty of interesting problems to tackle and it was also geared for cs majors. Still, math gets boring after a while and I didn't have any friends in the class. Update: I heard this class has taken a turn for the worse when Genovese stopped teaching.

48-059: Architecture was a great class. Much of the time is spent at home just building stuff. Class itself is more like a big discussion period and very engaging. The projects themselves were really tough on me because, apparently, I have no artistic talent. Still, this one goes in my all-time favorites, mostly thanks for one of the coolest profs ever.

69-130: The coach was so unenthusiastic, it was boring. On the plus side you do get to use a whole hopper of balls and can go off on your own.

69-131: I'm a volleyball nut and Julie is a great instructor. I took this class twice even :) Oh, and this class meets in the main skibo gym... I had a little trouble finding it my first day because she has this habit of cancelling class.

70-340: Brushed up my resume and really improved my interviewing skills - this seems to be all business majors do anyway so they know what they're talking about. Otherwise it felt like baby sitting - Claudia gives off this grandmother aura. I'm not the first to complain about the group work, the work ethic of my groupmates was waaaaaay below what I'm used to.

73-100: Basic econ, don't think I actually learned anything in this class, but Dalton was cool and I never fell asleep.

76-101: Required english class, otherwise I wouldn't have taken it. Not much to say here.

76-271: A refreshing view of written communications. I don't think I learned much here, but it was a different perspective.

79-266: Unlike econ, I'm SURE I didn't learn anything here. Easy class, and it fulfills a breadth requirement... Update: I think this one is gone, so no more easy A for you.

80-100: We had a visiting German professor who I really enjoyed. Much of the course seemed to be a waste, however we did break into some nice philosophical debates and the papers didn't feel like a chore. Update: I've seen the prof back on campus so maybe you'll get to take a class with him afterall.

80-180: Nature of language sucked, it felt like a waste with no redeeming activities, plus I think she tried to teach things that were just plain incorrect.

85-211: Cognitive psyc had some interesting topics but hardly any depth... a very cursory overview of a huge range of topics. On the plus side, she got her BS in CS.

88-120: Lerner was a great lecturer and got me interested in business and psychology stuff that I wouldn't have otherwise cared about or even notived.

99-068: It was rewarding to actually see my own robot navigate a physical maze. This stuco provided an interesting distraction but not much more.

 

About

Resume

Pictures

Robotics

Dom@cmu.edu