Apparently, he is an awful professor
Aho is apparently retiring, so perhaps this review won't be useful anymore. However, he also tried to retire 2 years ago and is still here, so I'm not really sure what he is doing? In general, I enjoyed the class. I thought the homeworks in particular were very well thought out – 5 problems, only 5 homeworks per semester and he drops the lowest grade. They neatly covered the concepts and they weren't easy, but they weren't too hard. With some help from office hours, I learned a lot from completing the homeworks, and got good grades on all of them. Aho's office hours are quite good, but the TAs helped a lot as well. That being said, unfortunately I did feel like I learned a lot more from the homeworks than I did from the class. Aho is not a very engaging lecturer – he talks very slowly in a monotone voice. He also fails to go over very many examples for a lot of the theorems, because they are common sense to him (he is a very Smart Man). I do, however, believe that you can learn to learn from Aho – at the beginning of the semester I felt lost at every lecture, but towards the middle and end I realized that if I attended class and wrote down everything he said, then went over it later for ~30 minutes with the online lecture notes, I could definitely understand the material. Note: apparently Aho is also the only one who teaches lambda calculus (other than Verma, who is new). Although the subject itself is easy, it is also useless plus it means the rest of the semester is rushed so that he can fit in lambda calculus. Overall, I would say it is a good course taught by a good professor. However, it seems that the other sections have been taught by amazing professors (Yannakakis, Verma, etc.), so make sure you look at your options but don't feel bad if you get stuck with this one.
Very underwhelming class. I chose to take CS Theory with Aho due to his fame...in hindsight, this was a bad decision for me. I'm sure there are other people who feel differently, but this was my experience: Lectures- Aho seems to think that the material is a lot easier than it actually is, often failing to adequately explain simpler concepts in favor of complex proofs, etc. that never appeared on homeworks or exams. This is probably due to the fact that he pretty much invented a lot of it; however, for most of us, this was our first experience with theoretical computer science. Aho also just plainly isn't an engaging lecturer. Listening to him lecture is a lot like listening to your great-uncle drone on about the Great Buckwheat Shortage of '68 (if your great-uncle is a great storyteller, then ignore this). Occasionally, Aho will talk about having dinner with Stephen Wolfram or working with Kernighan and Ritchie at Bell Labs, which is always cool but doesn't necessarily make the class worth taking. Homeworks- hard, but doable. There were five problems per problem set. They were problems that you had to do out and solve, which turned out to be useless because: Exams- both the midterm and final were 10 true/false questions (with brief explanation). I just don't understand how ten true/false questions can adequately assess your knowledge of CS Theory. For the midterm, I studied all the algorithms and the workings of automata, but I did poorly on the exam (far below average). Many of the T/F questions were tricky (average was a 45, std. dev. of 22). For the final, I didn't bother to learn how to solve any problems or do any proofs, because I knew they weren't going to be on the exam. Didn't really know much about Turing Machines. Bad mindset, I know, but I just studied the general concepts and did much better than the class average (which was a 75). In conclusion- my recommendation? Take this class with someone else. I was not impressed...I'm not trying to be disrespectful towards Aho, but he is a professor that should be known for his accomplishments, not his teaching ability. Apparently he got a Great Teacher Award from Columbia at some point, but I feel like that has a lot to do with his legacy. I dunno, someone might come along and say something different, but I found the class dull and uninspirational.
Aho was possibly the best CS professor I've had at Columbia... and I've had some pretty good other professors before. The book (HMU, Automata Theory, Languages, and Computation) is a bit dense. Luckily, his class notes (posted on his website) are a very condensed, very readable summary. They don't cover everything, though, so you'll have to fill the rest in yourself. Aho is a very clear and straightforward lecturer. No matter what question you ask, he's able to answer it without hardly having to stop to think - almost robotic (in a good way). Few mistakes, doesn't skip a beat. And a good sense of humor to boot. The midterm and final were straightforward - the problems were difficult, but short (either you knew the answer and could justify it, or you couldn't). No need to memorize tons of proof details when studying, as long as you understood the process and the underlying concepts. Be warned, though, there was at least one trick(y) question on each exam, so you really need to know the material well! I'm glad I took this class, as it gave me an appreciation for theoretical computer science (particularly lambda calculus) that I never had. It wasn't the most back-breaking CS class I've taken, but it's definitely one that you'll want to dedicate some time to, partly because the material is dense and abstract, and partly because Aho is just an all-around awesome dude.
Aho is a really really nice Professor. The problem is that he is too smart for his own good. Sometimes it's difficult to understand what he's trying to convey in class until you get to the problem sets and have to work through them. For the most part he tested exactly what he had taught and was very fair about it. The real difficulty in this class is getting the material. Some people just understand it. Some don't. It's very much like Discrete Math where you are waiting for that ah-ha moment to arrive and suddenly connect the dots and for everything to make sense. Sadly that never came for me. His stories are pretty funny and they make you realize how cool the CS dept is for having someone like Aho on staff. This is really a hit-or-miss class but I would say take it with Aho if you can. In retrospect here's how I would have studied for this class if I could go back: Review your notes after every lecture and then make new notes. Try and see the differences between the various terms (ie: deterministic and non-deterministic, Recursive vs RE). Make sure you understand the theory stuff. Read the book BEFORE the lecture so you have a basic idea of what you're about to do. Do every homework over again before the exams.
I looked forward to this class every day---it's probably one of the best courses I've ever taken. Aho is certainly not for everyone: he's a little dry and very odd, but he clearly cares deeply about the material, and does a good job explaining it. He's a minor god in computer science---his portrait is on the wall at the Google offices downtown---and this class is worth taking for that reason if no other; he's also shameless about reminding you of his associations with major gods of computer science, in particular his friend Don (Knuth, that is). If, like me, you enjoyed Gross's digressions, you'll probably also enjoy accounts of evenings spent (no joke) playing violin concertos with the author of "The Art of Computer Programming." You, like Aho, should care deeply about the material. This is a class about the fundamental questions of computer science---how problems can be described, how they relate to each other, how they are solved, and at the most basic level, what it means to compute. If all you want to do is write Java programs to fit a spec, you shouldn't have bothered with college: the whole point of studying computer science at an institution like this one is to learn how to answer questions like the ones Aho asks, and, you know, do something interesting with your life. In summary, I had a blast; if you like oddball teachers and hard problems you will too.
Overall: A really great class. Let's start with the bad: the lectures were not 100% terrific... so I tended to skip lecture sometimes and when I attended I sometimes didn't pay much attention. It's not that he isn't brilliant (he is... for heaven sake's he is the "a" is "awk"), it's just that he has trouble teaching to a class. Now for the good: His office hours are golden. I cannot stress this enough. If you go into his office hours not understanding something, you'll come out of it completely and utterly understanding the subject; end of story. He is TERRIFIC 1 on 1. The homeworks are incredibly hard, so I recommend checking in during his office hours to double-check your work (or ask for pointers -- no puns intended) before submitting. The other: As I said, his homeworks are incredibly hard (think Discrete math, but far, far more difficult). One of the last problems he gave us included a proof that HE had made in 1993 or some such proving that the way that perl handled regular expression recognition was NP-complete (when he first proposed this... no one believed him until he proved it). There was no way I could have solved this problem without going to office hours. But moreover, with the possible exception of the aforementioned problem, his assignments, while hard, are pretty fun. I don't mean you'll think they are entertaining, but they are well structured, so they are informative, and if you end up understanding the problem, it really helps you get a comprehensive understanding of the material (which is great). He also gives out practice exams that are incredibly useful. Grading is decently quick and fair. This class is required for CS majors, so you have to take it, but if you have an option of taking it with or without Aho, take it with.
In all, Professor Aho was a pretty interesting teacher who went over quite a bit of useful material in an ultimately fulfilling class. He is friendly and always willing to talk, and is very approachable during office hours. I would recommend him for CS4115.
God, poor Aho. This class had an enrollment of about 9 and a daily attendance of about 3. He makes a diligent and sincere effort to teach well, but tends to get derailed (particularly with the constant stream of irrelevant questions that this class seemed to be all about). The lectures are dull, but he's a nice guy and knows everything... it just doesn't work out somehow.
This class was a huge time sink. I was up all night for three of the programming assignments, and I did not miss class (although most did). Professor Aho does have difficulty explaining things in a way that varies from his lesson plan. He did cover the material, that is about the best you can say.
This is supposed to be an intro class, but Aho made it too hard for people with out experience. He is a brilliant man, but unless you already know a lot about comp sci, you are about to get totally screwed over. TA's didn't even know how to solve all of the hw problems. This class was torture to me.
This class was absolutely rediculous. I'm lucky I passed. The homwork was so hard that sometimes the TA's couldnt help. He expects a lot from you and because he is so smart, his whole level of thinking is way beyond us humans. He's a genius robot that shouldn't be in the class room. I respect his mind, but hes a bad professor.
Insane. Who cares about machine language? I just want to learn the basics of programming. The homework problems were impossible, although the programming was hard yet doable. This professor needs to understand that anybody interested in compsci as a major would be scared away by this course. Comp sci is not this hard. An intro level course has no need for 0 and 1 machine language programming. "1000000100000100 // R0 = M; load memory location 5 into R0" Well thanks I'll remember that next time i have to tell the machine how to load numbers into the CPU! Honestly one of the worst classes I have ever taken. Need I even elaborate on the fact that close to nothing was ever taught in class that could later be used in homeworks or programming assignments? Anyways, I'm done venting. Take my advice: If he is teaching any kind of intro class, flee it and take another one. This was ridiculous.
If you are interested in programming languages or are required to take PLT to graduate, I would strongly encourage that you take this course with a different professor. In the beginning of the semester, you will think that Aho's lectures are pretty cool and engaging. Moreover, there is a sense that you are basking in glow of computer science rock-stardom (he is one of the co-authors of the famed "Dragon Book" text that you will be using for the class). But, after the first three or four weeks, we were often told to just look in the book to learn about any new concept. In fact, each new idea that was introduced was concluded with the words "go look in the book." He gives affectations to being devoted to his students, and I remember going to office hours several times to ask about topics that weren't being elucidated particularly well by the book. Each time, he forgot my name, and at the end of the (short) conversation, his helpful response was -- guess what? -- "go look in the book." This was irresponsible teaching, and he's able to get away with it because he is tenured and famed within his field. His teaching style would improve vastly if he could only say "go look in the book" in other ways, like "refer to the book for more details" or "the book contains much more information on this topic" or even "read the book and it will explain this concept better than I can ever explain to you during this lecture." I took this class in Spring 2004, and I'm sadly still bitter about this class. You will learn much from this course, but learning about compilers from this guy would be no better than, say, go looking in the book and reading about it on your own.
He is very nice and interesting, but I feel that everything he says in class is posted online which makes coming sort of pointless. His midterm was very easy and the final was very hard. The homeworks ranged from easy to hard. There was not much of a curve in the final grade.
DO NOT!! I REPEAT DO NOT!! TAKE THIS CLASS...if you know whats good for you..you will stay away. THE WORST PROFESSOR I HAVE EVER HAD...seriously....he doesn't explain anything...all he does is read the lecture notes online. He expects us to know theory and concepts that even the TAs learned just a few weeks ago. The TAs were the only good thing about this class...all of them were extremely helpful
This class was horribly confusing. Not the programming part, that was pretty easy. I already knew C++, Cocoa, Java, Obj-C, Visual Basic, MySQL, JS, etc. The theory part was what was absolutely ridiculous. The theories introduced were NOT introductory material. They were very abstract, and horribly explained by both the professor and the book. After I kept getting back homework assignments in the 60s, I thought I was going to fail the class until I realized that most people were doing worse than I was.
DO NOT TAKE THIS CLASS!!! This was the first semester of Prof Aho's experiment in teaching programming and computer science concepts at the same time. Classes were very confusing and tried to teach you material that encompasses complex computer science matter, the book sucks, and whatever you learn in class doesn't help in any way with the programming assignment. Thank god the TAs were awesome, that's how I can say I walked out of this class feeling that I can actually write a program. Their assignment were very interesting and they (the TAs) were available to help virtually 24/7. I am very disappointed with the theoretical part of the class however, and the theory problem sets (aside from the programming assignments!) were not only ridiculous but impossible and unmanageable.