Courses I've taken


In Spring 2006, I finished my Bachelor of Science in Mathematics with Computer Science (course 18C). I graduated with a GPA of 5.0 out of 5.0, despite all my efforts to the contrary (including writing these reviews). I am currently a PhD student, still at MIT. Fortunately, I am done taking classes.

Spring 2006 (M.S.)

24.955 More Advanced Syntax (grad) — Sabine Iatridou, Elena Anagnostopoulou (grade: A)
Very nice class, wonderfully delivered. Somehow, jumping straight from undergrad semantics to the most advanced grad class turned out to be quite okay.
6.863/9.611 Natural Language Processing (grad) — Berwick (grade: A)
Easy class. Some work, but not much; moderately annoying. There is no point in attending. Most of the material is about formalizing simple and stupid heuristics, which seems to be an unfortunate common feature of AI classes.
24.903/24.933 Semantics and Pragmatics — von Fintel (grade: I, for now)
Minor in linguistics.
6.899 Advanced Seminar in Complexity and Cryptography (grad)
This is the complexity reading group. Somehow I was always busy and didn't attend, except when I gave a talk.

Fall 2006 (M.S.)

18.409 Metric Embeddings (grad, special topic) — Michel Goemans (listener)
The class was way too early in the morning.
6.876/18.426 Zero-Knowledge and Applications (grad, special topic) — Silvio Micali, Ran Canetti (grade: A)
Wow, I was so lost in this class! But Silvio is hilarious.

Spring 2006 (senior)

18.434 Seminar in Theoretical Computer Science (CI-M) — Michel Goemans (grade: A)
The course covers some fairly challenging material. However this is a seminar for CI-M purposes, so lectures are given by undergrads, who often get you confused even if you already understand the material. Here are the notes for the two lectures I thaught:
6.100 Electrical Engineering and Computer Science Laboratory — supervised by Erik Demaine (grade: A)
A device to get 6 more units of credit, needed to maintain my financial aid for the last semester.

Fall 2005 (senior)

14.12 Economic Applications of Game Theory (HASS) — Yildiz (grade: A+)
Reasonably interesting and easy. It's impossible to stay awake during lectures, but it's easy to understand what's going on from the material online, and quizes are very easy.
21M.065 Introduction to Musical Composition (HASS-D) — Robison (grade: A)
Teach people with zero musical background how to compose music in one semester? Totally unrealistic, but lots of fun. The professor is hilarious, and very relaxed (forgets about quizes, lets you hand in assignments weeks late). The only really annoying part were the quizes: recognizing songs is one thing, remembering how to spell the composer's name is another.
My final project was A Bear in the Sandstorm.
21A.100 Introduction to Anthropology (HASS-D) — Paxson (grade: A-)
I was genuinly interested in anthropology, but this was boring; we focused way too much on women's studies. Fortunately, the work is rather minimal.

Spring 2005 (junior)

Teaching Assistant for 6.897 Advanced Data Structures (grad, special topics) — Erik Demaine
The course was very cool, but it took a lot of effort. I taught 4 of the lectures. I also created and graded problem sets; most of them are pretty interesting. Finally, I editted the scribe notes, which turned out to be a very time consuming task. It's really unbelievable what some people submit as scribe notes.
6.856/18.416 Randomized Algorithms (grad) — David Karger (grade: A)
The course is fun and contains very interesting material. It's also not too hard or time-consuming. I recommend taking it earlier in your career. I knew about half of the material already, which was annoying.
6.841/18.405 Advanced Complexity Theory (grad) — Madhu Sudan (grade: A)
The course is cool, and you learn a few interesting things. Madhu has a rather unusual teaching style: he side-tracks a lot, is very informal etc. But in the end, it works quite well in conjunction with the material of this class, and he's a very cool guy.
6.182 Psychoacoustics Project Laboratory (LAB req.) — Braida (grade: A)
A rather brain-dead course. Lectures are unbearable; I only attended a few, and never really needed to learn what the rest of them were about. Labs are very annoying: all you have to do is listen to loud sounds for hours. Data-faking skills are essential to keeping your sanity.

Fall 2004 (junior)

24.902 Language and its Structure II: Syntax (HASS) — Sabine Iatridou (grade: A+)
This was a great class. The material was very interesting. Sabine Iatridou is an excellent lecturer; she's very eloquent and very energetic. On the down side, she's quite patronizing, and assigns long homework.
6.896 Sublinear Time Algorithms (grad, special topics) — Ronitt Rubinfeld, Eli Ben-Sasson, guests (grade: A)
Friendly and easy class. Sublinear algorithms are not too interesting; the catch phrase is "at least you can do something", but that something is usually very weak and uninteresting. The class is best understood as the exercise for the mind that every theory student needs to stay in shape.
6.893 Database Systems (grad, special topics) — Sam Madden (grade: A)
This class convinced me that I belong in complexity theory. I just hated all these lame attempts at "practical research". This was a full-blown systems course, with all the standard features such as crappy exams, lots of awful reading (that I usually ignored), projects etc.
18.447 Probabilistic Methods in Combinatorics and Algorithms (grad) — Peter Shor (grade: A)
Peter Shor is the absolute superlative of a bad lecturer. A Tibetan monk who doesn't speak English could not be much worse at teaching Mathematics. That said, you are stuck with reading the book, which is actually quite good and contains a lot of interesting material.
7.012 Introductory Biology (BIO req.) — Lander and Weinberg (grade: A+)
The class was actually not bad. You learn a lot of very interesting stuff, and it's mostly logical. Unfortunately, there is also a fair amount of memorization involved (no, don't believe what they tell you in the first lecture). Both professors were cool; Weinberg was funny, and Lander energetic.

Spring 2004 (sophomore)

18.312 Algebraic Combinatorics — Rom Pinchasi (grade: A)
Very cool material, even though it has almost no bearing on CS. Rom was very fun during lectures (often intentionally); too bad he left for Technion. Here are some course notes which Corina and I prepared while studying for the final exam.
CS 225 Pseudorandomness (grad, Harvard) — Salil Vadhan (grade: A+)
A worthy theory course, teaching a lot of very important and interesting ideas. Unfortunately, Salil and at least a part of the students never quite got to be on the same wave-length during lectures.
6.896 Theory of Parallel Hardware (grad, special topics) — Charles Leiserson, Michael Bender, Bradley Kuszmaul (grade: A+)
The material is very interesting, smart and rather surprising. The class is very easy, especially due to Leiserson's determination to teach at a slow pace and always start from the very-very basics. I think he's taught 6.046 once too many times.
6.823 Computer System Architecture (grad) — Krste Asanovic (grade: A+)
The material is fun and interesting. Lectures are good; recitations are so boring that your neurons wil want to commit suicide (needless to say, I didn't attend many). The class is nice and easy overall, but the quizzes are rather tedious (they require fast and unintelligent reasoning).
6.033 Computer System Engineering (CI-M) — Sam Madden (grade: A)
The material and the projects are quite interesting. The recitation sections taught by Sam were very nice; I didn't attend lectures. Surprisingly, quizzes actually require thinking, and learning what is taught in lectures won't help at all. Unfortunately, some questions are entirely unclear, so some amount of random guessing is necessary.

Fall 2003 (sophomore)

6.840/18.404 Theory of Computation (grad) — Michael Siper (grade: A+)
Absolutely beautiful class, including brilliant material and excellent teaching. A must for anybody who is interested in CS (not only theory). I got 9 out of 10 for one problem in one problem set (unjustly), and a max on everything else.
6.838 Geometric Computing (grad, special topics) — Piotr Indyk (grade: A+)
Very interesting material, including a nice coverage of current research topics. This class totally demistified computational geometry to me, even to a point where I can think about research problems. Piotr is a very good lecturer.
6.854/18.415 Advanced Algorithms (grad) — Erik Demaine and David Karger (grade: A+)
The material was fun and very interesting; everything else was terrible. Featuring: buggy problem sets, many problem sets, dumb problems on the problem sets, graders who expected pages of explanations on such dumb problems, and instructors who were always late to class and never finished on time.
18.314 Combinatorial Analysis — Stanley (grade: A)
Nice and interesting class, though there was too much emphasis on algebraic manipulation for my taste (i.e. the tricky part was almost always the algebra, not the combinatorics). Stanley's lectures are a bit boring, but they become interesting towards the end (I attended the first and last couple of weeks).
24.900 Introduction to Linguistics (HASS-D, CI) — Flynn (grade: A)
A rather good way to satisfy the HASS-D and CI requirements. The material is reasonably interesting, and the class is not hard. Unfortunately, two things made this class rather annoying: exams were mostly an exercise in memorization, and Suzanne Flynn was the worst lecturer I have seen so far.

Spring 2003 (freshman in sophomore standing)

6.897 Advanced Data Structures (grad, special topics) — Erik Demaine (grade: A+)
Very nice class; you are exposed to a lot of research topics in data structures. Erik usually manages to explain the essential points very well.
6.004 Computation Structures — Ward (grade: A)
Very fun; you actually have to design a complete RISC processor. It reminded me of the good old days when I was interested in processor architecture. It's nice because you can take the class "offline" (don't attend anything, and only study for the quizzes the evening before).
6.002 Circuits and Electronics — Gray (grade: A+)
Reasonably interesting, and not too hard. Sometimes annoying, especially because of the labs, and the instructors' determination to treat students as idiots (though I conjecture there are people who need to be explained three times the same simple idea).
6.046/18.410 Introduction to Algorithms — Indyk and Tidor (grade: A+)
Probably hard for those who don't know the material already. But I found it very annoying, because problem sets took me 30 seconds of thinking and 6 hours of typing. Attendance is entirely unnecessary (I spent some 2 hours in class during the whole semester).
14.02 Introduction to Macroeconomics (HASS) — Vickery (grade: A+)
Not as fun as micro (mainly because the material is too easy), but still a pretty good way to satisfy the HASS requirement.

Fall 2002 (freshman)

6.041 Probabilistic Systems Analysis (REST) — Medard (grade: A+)
Very easy, but worth taking because you learn a lot of very important material.
14.01 Introduction to Microeconomics (HASS) — Gruber (grade: A+)
Very fun and interesting, and it also satisfies the HASS requirement. Prof. Gruber is very good. Grading is quite unfair, but it's the same for everyone, so it doesn't matter.
3.091 Solid State Chemistry (CHEM req.) — Sadoway (grade: A)
The class covers an incredible number of topics, but is not too hard. The solid state slant makes it more interesting than 5.11, and you also get to enjoy Prof. Sadoway's jokes.
6.A41 Sailing, Signal Processing, and Magic (freshman seminar) — Al Oppenheim
An interesting seminar with my freshman advisor.
24.04/17.01 Justice (HASS-D, CI) — Cohen (grade: B+)
A bit boring, but ideal because it satisfies the HASS-D and CI requirements, it has no final, and the workload is low (especially if you don't do the reading and don't attend lectures). It's annoying because the most desirable things about an essay seem to be clarity, logic of argument, and total lack of any original idea.

Before MIT

I studied for one year at the University of Craiova, in the Department of Automatic Control, Computers and Electronics. I managed to get a 10 (out of 10) in all my classes there. I came to MIT as a freshman, not transfer student. Still, I made very good use of the year I spent in Craiova. Here's how.

First, I took the following advanced standing exams (with grades of A in every one):

8.01 - Physics I
The exam was pretty easy. Topics not covered by the Romanian high school curriculum included elementary problems with moments of inertia, and Kepler's laws.
8.02 - Physics II
The exam was really easy. The curriculum is a mathematically (and otherwise) primitive version of the Electrotechnics course taught in Romanian universities. There are many topics not covered in the Romanian high school curriculum. A rather inclusive formula sheet was provided.
18.03 - Differential Equations
The exam was pretty long. The curriculum is a very stripped-down version of the Special Mathematics course from Romanian universities. Instead, the MIT class is heavy on intuition and practical cases.

I got the following tranfer credit, for courses taken at the University of Craiova:

18.01 - Calculus I
18.02 - Calculus II
18.04 - Complex Variables and Applications
18.06 - Linear Algebra

This is quite a misrepresentation of the original classes, which were fairly advanced theoretical classes. The following classes from MIT would have been better equivalents:

18.100B - Analysis
18.700 - Linear Algebra
18.112 - Functions of a Complex Variable

I also took some courses for which I didn't get transfer credit (I didn't try): Solid Mechanics, Advanced Physics (some quantum, relativistic, and analytical stuff), and Technical Drawing.