Courses

You'll be taking some of these courses in your first/second year of your CMU life, so have a read to see what you're in for! This may come in handy in selecting courses for your 1st semester.

- Tim 6 Apr 2008

The 15 (CS) courses

15-100 Introductory/Intermediate Programming

Boring. If you have a terrible professor, this can ruin your interest in the subject as well as your foundations. I found myself surfing the Web and chatting on ICQ most of the time during lectures. My lecturer did a great job....of teaching basics...real basics...to people who had never touched a computer before. Ok so I'm exaggerating, but if you do have some computer experience or aptitude I suggest you take Pattis' 15-100 course. Sure it's tougher, but I think you would learn so much more and build up a better foundation. I felt that my prof spent too much time trying to teach those who really had no idea how to code and neglected those who wanted to learn more stuff.

15-111 Intermediate/Advanced Programming

Take this course if you know Java reasonably well. Perhaps if you know how to open/close/read/write to files, and know how to use basic arrays. You should also know what classes/objects are and how they relate to Java/OOP.

This course is mainly about teaching about Data Structures and algorithms, stacks, queues, heaps, trees, hashing, basic graphs, recursion, sorting, complexity, etc.

I would somewhat recommend doing this course first before 15-123 (or for the brave souls, with 15-111).

Tim 5 Apr 2008

15-123 Effective Programming in C and Unix (previously 15-113 Systems Skills in C)

This is a half-sem crash course in C. If you never learnt C, this will teach you everything from basic syntax to pointer arithmetic. I wouldn't recommend it for people who don't know programming at all, since it's treated more as an introduction to the language rather than intro to programming (that's 15-100). They'll teach pointer stuff carefully of course, since that's usually new to people. The assignments are well-placed, little bit at a time testing you the stuff they go through. All in all, a decent course.

For people intending to take 15-213, if you already know C, you can take a placement test to opt out of 15-123. Basically, you won't get credit for 15-123 (unlike AP), but you'll be allowed to directly take 15-213. It's up to you whether or not to take 123, it's useful in many ways ;)

  • This course has been replaced by 15-123, a full-semester course. it's pretty much the same thing except it's no longer a mini and they teach you perl and some unix stuff. -xijie

15-211 Fundamental Data Structures and Algorithms

This is the first chokepoint for CS courses. After taking 15-100 and 15-200 (or getting AP for them), you'll take 15-211 (at least for CS majors, ECE too?) In 15-211 you'll learn data structures and algos, just like what the course title says =) Basically, it's stuff like breadth-first search, depth-first search, string matching, min-max search, queues, stacks, hash tables etc.. Plenty of new stuff to learn =P

Overall, I found the course pretty interesting. Especially the chess ai we coded for the last assignment. That was extremely tiring and frustrating and times, but the outcome is enjoyable! Last sem (Spring 2005) they did a different game, but I suspect the last assignment will be a basic game ai in general. Don't let that scare you, I think the professors do a great job introducing the methods and stuff, so by the time you need to code it, you'll know how to.

A note for those CS majors who took A level computing: you'll get AP for 15-100 and 15-200, which means you may be able to take 15-211 in your first semester (assuming you score well on the discrete maths placement test). My recommendation is like this: if you know Java, or at least OOP (if you don't know what oop is, erm, consider taking 15-200), then go ahead and take 15-211. The difficulty level isn't very much higher than 'A' levels (I think), so it's a good progression. If you don't feel that your programming skillz r 1337 enough, then go ahead and take 15-200. Don't bother with 15-100 though unless you somehow took computing and didn't learn anything =)

15-251 Great Theoretical Ideas in CS I

Also known as GTI (pronounced: going to die), this is the second level discrete maths course for CS majors. Generally you'll take it in spring of the first year after clearing the 21-127 hurdle. If you find 21-127 hard, then 15-251 is going to blow your brains out. Basically, this course is 127++. The homeworks are harder, and the tests require more effort to complete (note: complete, not score well). But overall, after you finish the assignments, you'll feel this great sense of achievement, or at least relief.

After going through the course, you kind of learn more stuff, but what we felt was that 127 thought us the basic techniques, and 251 was a course to drill those techniques into us. We learnt a couple of new ways of thinking, but mostly it was using the stuff we learnt in 127 in much deeper ways. If you're a CS major, you're definitely going to take this, can't run! If you're not, erm, take it if you like discrete maths stuff (like you loved 127 for example), or if you enjoy blowing your brains off =)

Ok lah, it's not so crazy, but it'll definitely take up a lot of time. We generally spent many of our weekday nights/weekends puzzling over questions, then eventually Siyang will goto office hours with the TAs and propagate the hints around..

Som

The 16 courses

16-199 Building the Future

This course may not be offered every semester, but it's done by a really interesting professor. If you're into robotics/technology, then take this course! It's a 4-unit course for a whole semester and you only meet once a week. It's kind of seminar-style, and the professor introduces you to a whole variety of robotic-related topics. It's really interesting!

Sure, it won't fulfill any requirements except free electives, but it's a fun way to spend the evenings, discussing about robots. The "homework" consists of some short assignments (we had to do some soldering and playing with parallel port for one, and a face recognition engine for another), as well as a project. Don't let this faze you though, cos the professor's mentality is to educate. He just wants people to get interested in robotics and learn what they can, so any level of expertise is welcome in the course!

The best thing I feel is how the professor introduces various topics. Things like face recognition, robot motion etc are explained in layman terms so everyone can kind of get it. Sure, you won't be able to go home and code your own AI just from that, but it definitely helps when you're reading some cheem paper in the future.

The 18 (ECE) courses

18-100 Introduction to ECE

Compulsory course for all ECE majors. It gives an introduction to all the basics of EE and CE concepts, like current, Kirchoff laws, resistance, norton/thevinin equivalent circuits, karnaugh maps, logic gates, finite state machines, digital electronics etc. As part of the lab work, you get to build a robot which some may find fun while others don't.

Tim 5 Apr 2008

18-240 Fundamentals of CE

Dwells a little deeper into the computer engineering side of things. Most work revolves around Verilog, the hardware description language. You'll learn more about K-maps, binary, logic, fsms, memory, etc.

The labs can take considerable amount of time to prepare for and complete, and choosing a good partner is crucial for this IMHO.

Tim 5 Apr 2008

The 21 (Math) courses

21-127 Concepts of Mathematics

This course is a compulsory course for ECE and CS majors.

TJ

---

In a nutshell, this course is about discrete maths... you get introduced to stuff like number theory, proofs, induction, sets, functions, congruences, partitions, combinatorics, graph theory... I found them rather interesting, although many times in lecture I just go huh???? But thankfully I had a very good TA who was able to explain everything clearly... Assignments require a bit of thinking... but not too tough.

Kevin

21-259 3D calculus

You will have to take a calculus placement test before you come to the US, and most Singaporeans tend to get placed in 21-259 (though I didn't initially). It's a rather straightforward course for most, but can be a struggle for some (like me).

3D vectors, triple integrations, line & surface integrals are some examples of topics covered.

Tim 5 Apr 2008

The 27 courses

Time to give you guys another side of Cmu. The 27-??? courses - Material Science and Eng - In CMU, you are pretty free to choose the courses you want. And for engineering people, you do not confirm your majors till the 2nd year. So, keep and open mind and try out all the different courses.

27-100 Engineering Materials of the Future

This is the intro course for material science and engineering and basically a course which made me believe that I should switch from ECE to Materials (MSE). In this course, you are basically introduced to various basic materials concept - dislocations, phase diagrams, fatigue etc. After the course, you would gain an appreciation of how everything in the world today is how it is. The course also has a lab requirement which is highly interesting. You will do microscopy and work with multi-million equipment like scanning electron microscope. To sum it up, for my year we even had a ring making lab, where you can make your own sterling silver custom made rings. Recommended course, but be prepared to put in some work since the basic course has a certain amount of mugging factor to memorize the basic materials stuff.

27-201/27-202/27-215 Structures of Materials/Defects in Materials/Thermodynamics of Material

These are sophomore level courses for materials science majors, where you are introduced to the real stuff. They are seriously NOT easy courses, as in all courses of the the sophomore level. 27-201 and 27-202 is required for people who are intending to pursue a materials minor too. 27-201 teaches you about crystallography, which is quite interesting as you are taught to see a lot of patterns in the microstructures in different types of materials. 27-202 teaches how things actually break (to keep it in the simplest form). Both are really good courses, and should be taken if you are interested in materials. Even the computer science students can think about it. A huge chunk of crystallography is based on computational models nowadays.

27-216/27-217 Transport in Materials/ Phase relations and diagrams

Continuation of core courses for materials. Really good professors for these 2 classes. 27-216 brings the fluid flow you learn in A levels to greater height. 27-217 has a lab which you get to work on superconductors. Really cool.. (Talk to me if you want to know more)

27-205 Material Charactarization

A really cool course. You get to use all the big expensive equipment in the labs, like SEM, AFM, AES etc. Its a semester long 3 unit course. I would recommend it for everyone to take, but it will be really hard to get into the course if you are a non-materials major/minor.

27-432 Electrical, Magnetic, Optical Properties of Materals

This is where device physics of the ECE and material science meet. Recommended for ECE/Physics/Chemistry majors too. The course is really enriching. You will gain an appreciation of how your little transistors really work. However, it also depends on which professor is teaching it. The one I had was atrocious.

27-311 Polymeric Biomaterials

This is a very good course. Highly recommended for biology/chemistry/biophysics majors too. Course work is based on real life applications and modern literature, not on textbooks, so it is both interesting, but really challenging too. You get to understand things like artificial heart valves, tissue engineering, novel methods of treatments various medical problems.

Material science and engineering is a hybrid of engineering, physics, chemistry, biology computation and mathematics. It shows how many small things add up to be come real things in this world. Yep, and that's all for my update.

Stownin

The 76 (English) course

76-101 Interpretation and Argument (Writing)

I will be ridiculed by many for this but I will declare this: I like this course, in a strange way. Not because it's really well taught or anything. If you like General Paper, you'll like this. It's possibly the first class that you will hear so much discussion in (next to 80-100 Philosophy) and it's a good initial exposure to real American issues (and from there, social and political issues), from Americans and other students. After being bombarded with all that right-wing rhetoric from our friendly PAP (especially the talk about meritocracy if it exists at all), this course did the opposite: it pulled me right back on the middle of the fence when it comes to political, economic and social views (if you believe that they can be classified into left and right wing) effortlessly. Of course, if you hate GP, avoid this like the plague.

---

Yeah... In some ways I like this course, in some ways I HATE it... But then again, it's compulsory for almost everyone I think, so try to get it over with in your first semester. If anything, it taught me how to crap a lot (intelligent and sensible crap that is!!) and I really really improved my vocabulary, cos almost all the articles I must read in front of www.m-w.com. Lots of cheem words in them...

Kevin

76-260 Survey of Forms: Fiction

Have a passion for storytelling? Itching to progress from blogging to the big stage? Well, this is the course for you! Express that angst and emotion in the genre of fiction, and spin the wildest tales. This course will give you a brief introduction to the many different forms of fiction. Experience stories written from multiple different points of view, set in every place imaginable, with colorful characters you will not forget easily. Learn about how to transform your thoughts into words; how to paint an indelible image into the minds of your readers.

For the more practical people, the workload is pretty high. Expect one or two readings every lesson, which will be discussed in class. Writing assignments are about once a week. The second half of the semester is generally the workshop portion of the course, where students will submit their work for peer review and appraisal. No prior experience necessary, although interest is highly recommended.

  • Celestine

The 80 (Philosophy) courses

80-100 What Philosophy Is

Where else would you get a lecture and recitation which is 80% discussion-driven in your freshman year? Where else would you get the whole class curling their fingers in an exercise to try to understand "free will" more? If you hate sitting in circles and discussing truth, this isn't for you. If you hate having to investigate, hate having to question your beliefs or hate it when people disagree with your beliefs, this is not for you. Well then from another point of view, perhaps this course IS for you since it might help you get a clearer understanding of your beliefs (through questioning them)

TJ

80-150 Nature of Reason

This is a survey course about the history and origins of mathematical and scientific reasoning. The course is a 2000 year overview of the developments in these areas of philosophy, and briefly covers the most important philosophers in this field. There are no papers, although there are weekly reading assignments. Exams are relatively straightforward, and knowledge is emphasized over critical thinking. On the whole, a relatively simple course which is interesting to those interested in the development of logic and reasoning.

Celestine

73-100 Principles of Economics

This course is a really interesting and challenging introduction to micro-economics. The whole course revolves mainly around supply and demand, and how they are affected by many factors such as monopoly etc. What's really outstanding about this course is that it is taught in a really interesting fashion by Prof Steven Klepper. It consists of in-class lectures which occasionaly contain experiments which are meant to reinforce and give a better idea of what you are learning in class. In the experiments you try to make profits by buying and selling assigned commodities, and at the end of the semester, you profits are totalled up and you are assigned lottery tickets based on your profits. Top prize is a cool US$100!!! I won the $10 prize hehe... not bad. The assignments are quite different from the norm too... You are given a course packet which contains the assignment questions and the full solutions to them. Every week, you are required to do the necessary reading from the textbook and then complete the assignments based on your understanding. You are graded totally on EFFORT and not on correctness at all. So even if you come up with some new economic theory but make a concious effort to complete the assignments, you will get 100 marks. Of course, if you get stuck, you can refer to the solutions and get help from your TAs. You will get 0 if your TAs suspects that you copied from the solution. I think this is a really interesting way to learn, and its pretty challenging to try learn the concepts on your own first and do the assignments. Then in recitations your TAs will go thru the concepts and help correct your understanding if they are wrong. This course gets my "Keffka's Choice Award for Fall 2003"!!!! And please take it in Fall semester... cos in Spring it won't be Klepper teaching it. Take this course especially if you didn't do economics before, and take it under Klepper!

Kevin

11-411 Natural Language Processing

So this class is one of the newer ones on campus, just launched in Spring 2008. It's taught by Prof Noah Smith, an associate professor in the Natural Language Processing department. This class is part history of English, part linguistics, part programming and a whole lot of fun. You learn lots of stuff, from morphology, to hidden markov models, to high level tools for generating and using language models. The high light of the class is a team project to build a Wikipedia Question Answering application. Basically, you build software that users can ask questions about a wiki article, and the software answers it. Grammatically. Class consists of pop quizzes (not all that hard), take home assignments (most are fun) and 2 exams.

zhiquan