Data Structures in Java

May 2021

I didn't know Hagrid's calendar moves at a different rate than us mortals. When Hagrid says he will upload homework or post your grades at a certain time, expect that to take maybe about ten times longer because us mortals' calendars somehow move at a faster speed than Hagrid's.

Apr 2021

The review dated June 09, 2020 is probably the most accurate review of this class imo. In short: Blaer is a lovely, hilarious teddy bear that I want to befriend irl but he isn't the most outstanding Professor. I think that Blaer can choose better TAs tbh. There are several TAs who are frequently arriving to their OHs late/ forgetting to attend their own OHs. Furthermore, some of them don't bother to refresh their memory on the current topics/homework. That being said, Bo is the most amazing TA I've ever met! He taught me to approach Blaer's data structures class in a more lighthearted manner. I will miss Bo after this semester!

Mar 2021

The class content is not hard. Professor Paul tends to extend the homework due date when most students starting on it later than his expectation. That's great since we were supposed to have 6 homework sets and now we have 5. The entire TAing system is a mess. When there are questions regarding clarification of the homework problems, TAs may give inconsistent answers. So the best thing to do is post the clarification question on Piazza directly. Homework problems are related to his lecture closely. And he sometimes will talk through the structure of some coding homework problems during class which is helpful. Exams are similar to homework but much easier.

Feb 2021

This class is a hot mess. I don’t know if it is because it’s online or just his teaching style but the lectures are super confusing. It seems that he just talks and talks and expects the information to naturally stick. Even worse, the textbook makes no sense and is very dense. Being the only DS class offered this semester I had to take it, but definitely one of the most confusing classes I have taken so far.

Jan 2021

Prof. Blaer is my favorite professor at Columbia and I loved taking Data Structures with him! His lectures always target the key points, and he’ll occasionally throw in a relevant joke or story. He’s also accommodating and receptive to feedback, and the curve is generous. Even if you aren’t pursuing a CS degree, I highly recommend taking Data Structures with him if you enjoyed 1004. My only complaint is that the Weiss textbook is subpar and should not be your primary resource in this class. The book is dense and reads more like an academic paper; it’s clogged with esoteric proofs and errors. Use Weiss for its source code, but refer to Cracking the Coding Interview, YouTube videos (I recommend the Back To Back SWE channel), and sites like GeeksforGeeks for mastering the concepts.

Dec 2020

Prof Blaer is hilarious and a brilliant and caring teacher. He teaches the content efficiently, and every lecture is interspersed with his humor, especially when he reacts to the chats, and occasionally an anecdote. Given how dry the material has the potential to be, Prof Blaer makes attending class a super enjoyable experience and adds depth to the content. It's clear he cares about his students and about teaching. As with any CS class, it doesn't hurt to read some online resources about the things you're learning. I didn't read the textbook at all and was more or less fine, but sometimes he can gloss over the code for certain algorithms and it'll be up to you to learn it inside and out for the exams.

Dec 2020

My only qualm is that he doesn't give out a week by week syllabus coverage. Other than that, Hagrid is great at breaking down and explaining abstract concepts and very patient with our questions. His anecdotes and side tangents are usually relevant, even if they aren't they really lighten the atmosphere.

Jun 2020

The good: Blaer is nice, funny, approachable, and the curve is generous. The hw sets are also reasonable. The bad: Blaer is not a good lecturer. The currciuculum glosses over a lot of topics. The motivation behind the data structures are not explained. Honestly, data structures at Columbia is a joke. For a class that is very important to computer science, you will feel like you can do the problem sets and maybe get As, but will end the class thinking that you did not learn anything. Connections between the data structures are not explained. A lot of times I had knowledge of the topic behind explained, but sat there and saw him explain it for the first time and thought that if this was my first time being exposed to what he is saying, I wouldn't have grasped the material. Honestly, a very frustrating experience. Also the book is terrible; the code is filled with a lot bugs. Skip class and learn the material on your own. Also use problems sets from other universities to actually learn data structures. If you are doing the problem sets being assigned and think they are easy, that is because you are not learning actual data structures, just a bunch of disconnected programs. The theory part is better than the programming though. The course lacks the depth needed for cs.

May 2020

Hagrid is a clear, knowledgeable, kind, and helpful professor. I admit the class felt a little easy because of how slow he went; I ended up not paying attention to most lectures and instead relied on the very excellent textbook by Weiss to get me through. The homeworks and tests were quite easy and fair. It's not a breeze though. You need to put in the time to understand these occasionally complex algorithms, and develop an intuition for them. If you know the basics of Java, the programming is a breeze. The written homeworks (i.e. exercises from the textbook) were occasionally difficult, but never completely stumped me. I never used them, but I've heard office hours and TAs are genuinely incredible.

May 2020

Blaer is a nice guy who is not a great teacher. As a professor of a large lecture class, those two qualities are heightened: his jokes (though repetitive) can be stress-relieving, and if you have a background in java, his explanations are intriguing. However, if you don't have a background in java, Blaer is not very good at explaining simple concepts. He over-explains, confuses students, and gets distracted easily. I personally felt that my time was better spent on learning java online than learning in his class. One specific moment that comes to mind is Blaer's introduction to stacks. He went on an hour-long description of the intricacies of a stack, over-explaining it, when in all honesty it's a somewhat-simple java topic. All he really needed to say was "this is like a list, but instead of being able to access any node at any time, stacks follow the process of last-in first-out, like a tissue box or a pile of books." To be fair to Blaer, he is an incredibly nice professor who has the difficult job of teaching nearly 450 students in one large lecture class. I'm not sure anyone would have been able to do as good a job as online learning, especially in a class on Computer Science. My advice: take his class, but don't expect it to be great. Enjoy the comedic, positive side of Blaer, and deal with the negative sides of the class by learning online or reading the textbook.

Feb 2020

Apparently, he is an awful professor

Feb 2020

Extremely kind, fair, and helpful professor. I really enjoyed his class, and his grading is very fair. He’s super welcoming to questions and always stays after class to answer all the students’ questions. His lecture slides are very clear and super helpful for understanding how the different data structures and algorithms work. Great class!

Jan 2020

Bauer is an excellent professor. His lecture slides are probably the most useful thing; they're super clear and easy to understand. He breaks down the concepts through visual animations which is nice if you're a visual learner. I took intro to java with Paul Blaer, and I would say Blaer is definitely more engaging and makes the class fun. Whereas BAUER can be kind of dry and I've fallen asleep twice during lecture. He can get in the theory and mathematics of algorithms which can get pretty boring, depending if you're into that. Homework projects aren't too hard nor too easy. Spread out well, giving enough time to finish them. Super kind and understanding: I was sick and he gave me an extension of a week for one of the homeworks. He's very helpful in office hours and I could ask him the stupidest question and he would explain the concept.

Jan 2020

LOVE Paul Blaer!! Hands down my favorite Professor at Columbia so far. He is such a good teacher & amazing at explaining concepts. He is also incredibly nice & just a really genuine, down to earth person. As for the class itself: I loved it as well & was definitely one of my favorite classes at Columbia so far. I had actually not done any programming in Java for a few years, because I had taken AP CS in high school & skipped 1004, so it took me a bit of time to adjust and remember/relearn some things. The class was definitely challenging, but not too much and in a good way I think. I really learned a lot from the class & fell in love with CS again (I wasn't a CS major going into the class, but I am now). The TAs were also super super helpful & I highly recommend going to office hours to work on the assignments/study for tests (it's so much harder on your own trust me), and there are so many TAs so there are office hours like literally all the time which is so nice. This class is required for the CS major & minor, but I'd honestly recommend taking it even if you aren't majoring/minoring in CS. I would also highly recommend taking it when Blaer is teaching,if possible (he's like 1000x better than the other profs who teach it).

Aug 2018

Blaer is one of the best professors I ever had (and probably will ever have)!!! He is a well-organized lecturer and delivers the material in a very clear and succinct way. After taking this class, I decide to pursue CS further - one of the best course I have taken and my favorite class. 20/10 recommend!

Feb 2018

By far the best professor I ever had. He speaks loudly and clear with a touch of wit. Most importantly, however, professor Blear knows how to explain the crap out of everything. I never walked out of his lecture asking myself, "What the hell was that?" He has a way of explaining the most difficult topics so a 5-year-old could understand. Thank you, Professor Blear!

Nov 2017

Amazing TA. I always try to go to her office hours because she is able to explain the material in a way that makes sense. Gives clear concise responses to answers. 10/10

Sep 2017

Great professor. As mentioned above, literally Hagrid. Has a booming voice that is easy to understand. Homework assignments are tough but fair. Exams are similar. Will not try to confuse you; go to class, read the book, and you'll be prepared for the exams.

Apr 2017

Literally hagrid. 11/10 prof

Sep 2016

I took this course with Prof. Blaer, but often went to Prof's Bauer's office hours. He is SO kind an helpful, always taking the time to patiently explain any difficult concepts.

May 2016

Prof. Blaer really reached out to me in a personal way to make both Intro to CS and Data Structures meaningful courses for me. Blaer is an expert in the field of computer science (also, has special interests in robotics programming), speaks [loudly and] clearly during lectures, has a dry but relatable sense of humor, and is generally an approachable friendly human. tl;dr I highly recommend Blaer for CS major courses: 'Introduction to CS in Java' and 'Data Structures in Java'.

May 2015

Professor Bauer was a really nice guy and very approachable and helpful one-on-one but he failed to command the attention of the class. It was a bit hard to understand/hear him when he taught and his class was severely boring. That being said, if you take the time to attend his office hours he is very patient and will sit with you and explain things you don't understand. The homeworks he assigned were much harder than he realized and took several hours to complete- often dealing with little Java technicalities such as generics which were usually much more involved than Bauer taught in class. Additionally, the textbook for this class absolutely sucks but for the most part Bauer's slides were helpful. Overall, for a class that is so important for computer science majors, this class did not meet my expectations. I do think Bauer learned a lot from teaching this for the first time and this class will only improve.

Jan 2015

Professor Blaer is a great instructor. He is clear, able to command a large lecture hall without much trouble, and able to explain concepts in a fairly simple manner. I honestly don't understand why some people chose not to attend this class because I found the book to be average at explaining concepts, while I found Professor Blaer to be exceptional at explaining the material. I rarely referred to the book after his lectures because I either understood the material from his lecture, or was able to understand is after digesting my notes. I think this is a sign of a great teacher. Even in a 200+ person class, Blaer was able to captivate the room with his large voice and abundant personality. In addition, he managed to encourage student participation, which kept the class interactive and engaging. In addition, occasionally, Professor Blaer would drive home the importance of a particular concept with a story about his research, which usually involved a hilarious and catastrophic ending involving multi-ton robots ramming into buildings or almost running people over. Professor Blaer's exams are fairly straightforward and he essentially tells you about 50% of the exam, so these are fairly low stress endeavors. I found the final harder than the midterm, but still fairly straightforward. Not much to worry about here. My only complaint with Professor Blaer is an organizational complaint. He would usually claim he would post the HW by a certain date and note post it till 3 or 4 days afterwards. He also granted classwide extensions in unecesarry situations which made the last HW assigned and due during reading week, which was poor planning on his part. Lastly, I feel that the first 15 minutes of class, where students as clarification questions on the HW, is a waste of time. If he wrote his questions in a less ambiguous manner, and used this class time to teach more material, that would be more efficient. Apart from those organization things, I can't complain about this professor. I would recommend his class to anyone in a heartbeat.

Dec 2014

Paul Blaer is an excellent professor. His lectures are generally very clear and straightforward. Don't hesitate to ask questions if you don't understand something, since he is very good at answering questions both in-class and through emails. Occasionally he'll tell a few stories about his research. Overall, a cool and funny guy who definitely deserves the nugget. The learning curve might be a bit steep in the beginning (it wasn't too bad for me, but some of my peers thought it was), but once you can get over that initial hump everything works itself out. Just be sure to start early on the programming assignments or you will have a terrible time (no joke). In contrast to the 1004 TAs, it seemed that the 3134 TAs were more lenient on the style of the code - if the code works, you get a 100% regardless of how ugly your code looks. TL;DR Excellent class. If you put in the work and pay attention in class, you will do well. Reviewer's grade: A

Sep 2014

Took course over the summer. Very solid instructor, lectures were clear. Managed to make 3 hours of lecture bearable. Assignments really helped understand the material and were time-consuming, challenging, but not unmanageable. The reviews below apply. Why am I reviewing then, if what I've said above has already been said before? If you are taking THE SUMMER COURSE, expect to receive your final grade VERY LATE compared to the usual standards. Class ended in mid-August, and I received my grade early September, about 3-4 weeks after the end of the course. When I took Intro to MATlab with him during the year a long time ago, grading timeliness was never an issue at all, so I'm not sure where the disconnect lies.

Jul 2014

I took Data Structures in Fall 2013 with Professor Pasik and it was one of the worst decisions I could have made. He starts off the class by letting the students know that he codes differently than most professors and has his own styles. This "style" is pretty much squeezing your entire program into one line of code for no reason. We had quizzes that consisted of regurgitating exactly what was on his slides for class. The worst part was that there was no textbook to supplement the lecture. He very much minimized how horrible his teaching style was by saying that if you attend class you would get an A. This class is only for people who like to teach themselves through other classes textbooks or magically understand this secret coding style that he has created.

Jul 2014

Professor Hershkop's class is a great class to take if your intention is to make it into grad school. Shit, after taking this class as a postbac, I was accepted to both Columbia and Penn for a Masters in CS, so I guess it worked out. His class will give you the A or A+ you need, presuming he grades you properly and submits appropriate grades. For me, that presumption turned out to be false. The issue involved the professor giving me a B+ when I deserved and had been graded with an A. The reason for this problem was minor - I had been granted a written extension to turn in a final project, I turned the assignment in based on that timeline, and had received a zero by error of the professor. The professor agreed that I deserved an A for the class after grading my final assignment. Despite multiple communication attempts with him and spending over two months on the issue, the professor did not submit a grade change. He acknowledged the grade I had received was an A, but was either too busy/lazy to change it over basically the entire summer. This created deep stress for me, and concerned me, especially because I intended to apply for masters programs the next semester. As a result, I brought my advisor in to help resolve the issue. After she confirmed the appropriate grade with the professor, she waited several weeks for the professor to resolve the issue. He didn't. She fixed the issue herself by submitting a document to change the grade. I believe this professor is an unfortunate member of the Columbia community, and is one of several reasons why I decided to attend Penn instead of Columbia for my masters program. His work ethic on administrative issues important students is completely insulting.

Dec 2013

I haven't written any CULPA reviews prior to this, but I feel compelled to do so now, because I am really quite surprised by how negative the two previous reviews are. I really liked Professor Pasik and didn't think he was at all arrogant. Yes, it may have been kind of inconvenient that he didn't have any formal office hours, but he was always receptive to questions during class and was also available before/after class. While going through code during most classes can get a bit dry after a while, some of his lectures/stories about AI at the end of the semester were really great. (And there were a few other interesting anecdotes he told throughout the semester.) As the previous review mentions, it can be somewhat difficult to study for the exams; however. that isn't really a problem, but rather reflects the fact that as long as you have a decent conceptual understanding of the material and understand the code that is shown in class, you should be okay. Regarding Pasik's coding style, I don't think there's any reason to make too big of a fuss--it may be slightly different in certain aspects from how other people would code, but it really doesn't make things any more difficult.

Dec 2013

I have no idea why this guy has a silver nugget. I've had a couple professors with silver nuggets who are great, but Professor Pasik is not one of them. Pasik's class has a couple problems: 1) his TAs. They are almost all jaded graduate/PhD students. In our case, 2 left throughout the semester, so as a result, all our assignments came back late. He did not hire new ones. They made TONS of grading errors, so make sure to go to office hours to check up on your quizzes. Finally, their rubrics are sometimes laughable. They award lots of points for the simplest things, and few for the most difficult parts. 2) the structure of his class. He starts by covering a new topic with slideshow-supported lecture (slideshows posted on CourseWorks), consisting mostly of code and some text here and there. After each major topic (every 4 lectures or so), there's a quiz. Memorizing his code is a surefire way to get an A on these quizzes -- if you don't look at the code and didn't follow the lecture, expect to fail the quiz. Winging it is pretty tough. That being said, I failed two quizzes, but then scored significantly above the average for one I didn't study for at all. Why? No idea. After the quiz, you may or may not have a programming assignment. The programming assignment will probably be super easy. 3) his code. Like people have said below, his code is extremely, extremely dense. He prides himself on brevity, but there is essentially a learning curve to reading his code (which shouldn't be the case, since you already know Java if you're taking this class). He teaches bad style that is not based on Java. 4) him. Pasik is arrogant, but more importantly he doesn't hold regular office hours, so if you want to see him, either deal with his awful TAs or schedule an appointment. 5) emphasizes weird things. We barely spent any time on hash tables and hash maps, but then spent tons of time on miscellaneous artificial intelligence topics at the end of the course, just because he enjoys them. You are learning the wrong material! Tl;dr: please, please take a different section. This class is a crapshoot -- I never knew why I was getting the grades I did. I really regret not having actually put off data structures for another semester until another professor came along. This guy is no good.

Oct 2013

This was a HORRIBLE class. The instructor does not explain the coding and his slides do not make sense. There is no textbook for the class, so there is nothing else to use to understand the material. When asked about this, the Professor instructed us to use Wikipedia to understand the material. I think that this approach is ridiculous - Why pay for a columbia university class when you are told to use wikipedia to learn the material?!? The instructor is very arrogant and spends more time talking about how wonderful he is than trying to teach the material. He belittles and embarrasses students who ask questions, telling them that what he explained was crystal clear and that there is no need for clarification. This is not a good learning environment and is not appropriate for a class at Columbia University, which should hold itself to much higher standards! The material on the exams was not covered in class. Unless you have prior experience with data structures, I don't know how you can do well in this class with this instructor. I wish this class were taught by someone else, who would actually teach.

Nov 2012

Disclaimer: I got a very high grade in this class. I feel bad for anyone who was slightly interested in computer science before they took this course. The class is as boring as you could make it, and the teacher is awful. You would think he might learn a thing or two after teaching for thirty years but the practice didn't do him any good. He prides himself on making his code as compact as possible, squeezing as much stuff in to one line as possible, which is stupid. It would be like cramming this whole paragraph in to one grammatically correct sentence. Sure, it's still "right," but there's a reason no one does it, and that is because it is a fucking stupid thing to do. I took data structures at a different school a few years ago, and I thought I should take it again to brush up on the basics. It was a pretty big mistake; you would learn way more about data structures by skimming wikipedia for a week than taking this course. In fact, I would recommend learning the material elsewhere and then checking his slides to see the stupid shit he changes. If you're interested in CompSci, know that this is not what it's usually like.

May 2012

From everything I can tell, he's a very different teach when teaching Data Structures and when teaching AI. I've heard and read so much about how he doesn't actually teach in AI, but for Data Structures that was certainly not true -- over the course of the semester we covered a lot of material even if it's less than you would in some other Data Structure sections. It is true that he only ends up coming to class about 2/3 of the time since there's 4 quizzes, 4 review sessions, and 1 final. When he's there though, he's very passionate and often quite amusing. I also found that between the lectures and the programming assignments I came out with a very thorough understanding of what he covered. Beware though that his programming style is extremely bizarre so you may pick up some weird habits. The quizzes were kind of mini-midterms -- they took the whole class but only counted for 10% of your grade and only covered 3-4 lectures worth of material. Of the 10 points, 7 usually entailed coding and the others were either on theory or definitions. Since most of the class doesn't have a CS background (since the class isn't for the major) he spends a decent amount of time reviewing basics although if you really never understood Java at all, you'll be in trouble. One last plus about Pasik is that he's very organized: he puts up the class-by-class syllabus and all the homework assignments weeks before the semester even starts so the expectations for the class are unambiguous.

May 2011

Great guy, really gets excited about the content. I don't know how someone could get so worked up about recursion and binary trees, but it made the class a bit more interesting I guess. I didn't pay attention most of the time, but when I did, he was pretty clear and the content was relevant to our assignments and midterms. In the end, I feel like I learned a lot about data structures, although if you are an IEOR major, there isn't a high chance you will use it again.

Jun 2010

This class was crazy hard, but Professor Pasik is a good teacher and did his best to guide you along. As a student with no natural ability for Comp Sci I managed to survive the class, and in the end I learned a lot. Make no mistake this is an extremely difficult class, but is also rewarding. Pasik focuses on programming a lot more than other professors that teach the class. Overall do not take this class lightly, but if you want to be challenged and learn A LOT than I definitely recommend him for Data Structures. If your just looking to get through the class than you should take the class with a different professor.

May 2010

This class is a joke. Go to class, everyone says. And it is true, you should go to class if you really want to understand the material. What he does in class is he just goes over the coding that is on courseworks, first in general and then looking at the code itself. So for say, the linked lists, he would first explain what linked lists are, and then go over it in code. Of course, you really don't even need to take any notes, since if all you do is pay attention, you'll understand how the structures work and then you can just read the code to refine it even more. He also let us out more than twenty minutes early multiple times, because that's how clear he makes the material. So what makes this class a total joke? First, he assigns six homeworks. They aren't hard at all, and if you have a comp sci-major friend, they're actually easy. They don't take all that much time to do, and best thing, they're worth 50% of your final grade. 50% for six homeworks? Yup, he takes the "lowest" grade (you should be getting 10's on all the homeworks anyway) and adds it on as extra credit. If you have good enough friends, you should be getting ten points extra credit. Not only that, but on two of the assignments he had two MORE ways of getting extra credit: one was a simple, two line code, and the other was a bit tougher but still very doable, and he gave three points each for a grand total of sixteen points extra credit max. And note, these are on the HOMEWORKS, not on the tests that actually test your knowledge. The tests make up the rest of your grade. Two midterms worth 15% each (15 points each) and a final worth 20% (20 points). They were also jokish. On each midterm he made sure to put at least one problem where you have to code, and one problem where it's a freebie 3 points if you went to class and listened (simple things like 'what is the time complexity of heapsort'). The final was a bit different: one tough problem, one very very easy problem (his freebie question worth 6 points, everyone should have gotten this one) and one coding (practically the same as the code in class). Even more, because all his midterms are point-based (they're out of 15 points), it's not like other classes where it's out of 100 and then scaled. What you get is how many points you add onto your final score, but with your sixteen points extra credit, you technically don't even have to take a midterm and you'll still get an A+. But even if you do, you're practically guaranteed an A+ unless you really don't know java, in which case you'll just get an A. He practically guarantees that everyone gets at least 7/15 points, so at most, if you aren't that good at java, you'll get 14/30 from the midterms. The final was much harder, but the TAs said that they graded generously, so you should probably get at least a 13/20 on the final, so that's 27/50, and then you add the free points from extra credit, and you get a 77/100, but then you add the extra credit and voila, you're back at a 93/100, and you get an A for doing so badly on the tests. Don't be scared when, in the first day of class he complains about grade inflation and describes how one standard deviation above the mean is a B and two standards is an A, because really, with that much extra credit (and the ease of this class), at least half the class got A-range grades.

May 2010

Like everyone else said, go to class! There's no textbook and it's at 6:10 so it's not like you're skipping a morning class to sleep. Pasik is an excellent lecturer and if you go to class, the material is very clear. I had no programming experience before college, and I didn't do amazing in 1004 and I got a freakin A+ in this class! (HOLY CRAP!!!) He LOVES recursion. Definitely try to learn it because it really opens your mind about programming. Also, learn a bit of LISP before hand because Pasik basically programs in LISP but in the Java language. It'll be a lot less overwhelming when you meet recursion for the first time. His grading style is very interesting. He curves to a B- but there's a decent amount of extra credit to be learned. The TAs are super nice so if you have trouble with the assignments (AKA not enough experience with Java like me), they are really helpful. Keys to success: GO TO CLASS. Seriously, try not to miss any lectures. Start the assignments early. (I have stayed up to 4am debugging. It was terrible.)

May 2010

I liked Doctor Pasik's class. It seemed I have a better programming talent than my peers, so take this review with a grain of salt. You must go to lecture in order to do well; there is no course textbook. He's taught this course many times, so he knows what he's doing. There is a mad steep learning curve, starting with recursion. Once you get this, however, his code becomes a lot easier to understand. For each data structure, there is an abstract understanding of it, and there is a programming understanding. The conceptual understanding is more important; the programming is only important in the assignments (and he posts all his code on Courseworks anyway). His conceptual explanations makes use of diagrams, so recommend taking notes on pencil and paper. His explanation of each data structure is very systematic in this way. Doctor Pasik is very approachable, but only after class (he has no office hours). He always stays to answer all questions the students have; you can often get hints on the assignments this way. Additionally, he has lots of insight into the rest of computer science, and potentially a networking contact, depending on your desired industry. The assignments can be difficult; however, you never have to work from the ground up (except the last one). You take his code from Courseworks, and using those basic methods, you build the rest of the methods to complete the assignment. Again, these additional methods require a conceptual understanding of what you are doing. His grading style is interesting. There are 60 points worth of assignments (6 assignments, 10 points each), and 50 points worth of tests. To calculate the curve, he will take the 5 highest scores from everyone's assignments and the 50 points from the tests and calculate the average from that (curved to a B-). Then he'll add on the raw points from the 6th assignment to the score, boosting everyone's grades.

Apr 2009

Pasik is an interesting and fun guy. It does help to be the right kind of student (interactive, awake, asking questions). He usually doesn't have a text book and doesn't do much on the board or with notes. He basically talks to you. Attendance is absolutely essential. If you show up every day and pay attention, you can't help but get an A, because he explains everything. If you skip classes, and you don't already know the material, then you're in trouble. While I like him as a Professor, he's not the strongest when it comes to math or theory. He's a pretty practical guy. That works for him though, especially in data structures, which is a practical course. His coding skills are very well practiced. If you want your code to be clear, modular, and work the first time, watch him go through code. If he posts code online, take it and put it in your coding base. It's really well written code. By the way, he loves recursion... really loves it. The main thing I learned from him was how to write concise, elegant, semantically clear, recursive code. Little things to note: 1. He will not accept anything late. He assigns things extremely far in advance. Get them done. 2. Make sure you really get the material. Since he lectures well, the average scores on the tests tend to be pretty high (at least in my experience). So if you want an A, you need to do well on the tests. 3. The tests are really straight-forward (no surprises), but they might require you to actually know what you're doing (not just get the gist). He will make you write code snippets on the spot on exams.

Dec 2008

Elson is a phd student but is a good professor overall. Not a class for computer science majors, but this class is a lot of work. Elson does his best to make it manageable, he knows that most of the class struggles with the programming sections, so he gives you late days and tries to help with the homework. Overall, a hard class that takes a lot of time, but if you are good at computer science, this should be no sweat. If not, then watch out.

Mar 2008

Though this is David Elson's first semester teaching, I think he's done an outstanding job of it. I've always marveled at why I seem to enjoy classes taught by graduate students better than I do classes taught by actual professors, but I think it is because graduate students are more understanding of how to lead a class of undergrads in such a way that they will be interested and entertained. David Elson has two qualities that really qualify him as an excellent teacher, 1) excellent English and ability to explain concepts and 2) a wicked sense of humor. I have never missed a Data Structures class because of this; this was true of Chris Murphy's 1004 class I took last semester, too. David Elson really CARED that the students are learning the material -- he explains things clearly, does relevant examples, cracks corny jokes, and always tries to encourage class participation (a noble endeavor indeed!). His availability is also extremely flexible -- he answers emails even at excruciating times like 2 AM on a Friday or Saturday night, which really helps for the people who chronically try to complete hw assignments two days before the due date. The homework assignments started out rather tedious and long, but David took into account the class's complaints / suggestions and lessened the workload to really help us learn the implementations of data structures instead of spending 40 hours struggling with other irrelevant code. I love his programming assignments -- thought they were totally relevant and even FUN, dare I say. This is one of the few classes I ENJOY doing work for. All in all, I thought Data Structures would be the death of me this semester, but I ended up loving it and learning far more than I thought I would. Thank you, David!!!

Dec 2007

I thought David was hysterical. A PhD candidate with a sense of humor as keen as his is rare. Well, some people loved him. Others thought he was a bit aloof. What was best about him was his analogies and drawings. He makes sure the class knows what is going on before proceeding. Most people, however, don't want to raise their hands. Very approachable with fascinating stories to tell I highly recommend you take this course with Elson. For a point of reference, if you took AP Comp Sci AB in high school you'll be fine until the last week where he studies things like NP completeness.

May 2007

A mixed review. Shlomo can be condescending at times, friendly and joking around at other times. The class is apparently easier than with other professors. Sometimes his jokes are terrible but at least he tries. Involves the class as much as possible but he'll shoot you down if you have the wrong answer, and he'll even manage to make you look stupid if you have the right answer! Probably not the best way to teach a class. Also he's pretty absent minded.

Dec 2006

Pasik is the best professor by far I have had in the Computer Science department and was my favorite professor I've taken so far overall as well. He made his class very interesting and made it easy to do the assignments just on his notes, as he did not seem to like the book that much (I never even opened it up) If you go to class, to me it seems like the class is a breeze, but seemed like more than half of the class did not show up for his lectures and thus complained it was too hard. With and excellent professor, fairly easy grading and very fair tests, and a ton of extra credit, I don't see how anyone would pass up the chance to take a class with him.

Apr 2005

Janek is the best computer science teacher you could have. I mean this literally - he TEACHES very well. He is able to explain concepts very fundamentally and easily. He breaks down complex ideas ver well and provides very easy to follow examples and analogies. He grades slightly on the stricter side, but is pretty soft in office hours. ---Very Highly Recommend---

Dec 2004

Janak is a real nice guy. He himself has been a Columbia student for the past 10 years. He is considerate of his students and goes out of his way to be accesible to them. He is firm in his grading procedure but very fair. Workload is a lot, but that is just the nature of the class. You're fortunate if you're in Janak's class.

Jan 2004

He's the most awesome teacher I've met at Columbia so far. He makes computer science really fun to learn, and I hate comp sci with my gut and soul. but his class was a lot of fun and very rewarding. he knows his stuff well and teaches it in a way that's accessible to the programming-illiterate. he holds extra office hours if you request it just to help you go over homework problems. one of two of them can be tough but he's always willing to help you out. he's also one of the few teachers that tries to get to know the students on a personal level. after the final, he came after me just to ask me how i did on the final. i haven't met any professor in seas who's nice enough to come running after you just to ask you how you did... a great, articulate, intelligent, warm instructor.

Apr 2003

Ted was absolutely great! After taking Intro to Java, I thought I was doomed for Data Structures, but this class was surprisingly pleasant. For every assignment, he always gave us a tutorial that guids us through the whole assignment, and in it are explanations and examples that helps you complete about 75% of the work. Then the last 25% is the actual homework. This was really helpful. The book is not so helpful, but his lectures are quite important but fun to attend. He learns names of students and explains things not in some comp sci jargon but in easily understood everyday words. Ted cracks jokes often so it's not uncommon to have the whole class burst out laughing. The review sessions are really awesome since he gives great examples and lively demonstrations to make sure everyone understands the material. He's really reasonable with homework also, so we actually got extensions for all the assignments. In the end, there was even extra credit opportunities which really helped my grade. If you can, take data structures with him!!!!

Dec 2002

Ok, if u r thinking of taking this course, then most likely u dont have a choice. this is for all those non CS majors. its offered only in the FALL so plan accordingly!! if u have to take it, take it with prof diament (we call him TED). he is awesome. has a very good sens eof humor. makes fun of himself and CS. very friendly guy/ he is extremely reasonable to students and underatands that this course is for NON CS MAjors who arent that good in programming. he always gave us extensions. he made long online tutorials posted online which help a LOT! the book doesnt help much so u got to go to his classes, follow them and make sure u go through the tutorials. we were supposed to have 5 assignments but got only 4 due to the extensions he gave us. so he is cool. in general, TAKE IT WITH him; the material is still difficult but he will make it bearable. u can easily get a C+ or even B- if u do well on the programming assgn. its always best to brush up on ur JAVA skills before u start this class and always begin days if not weeks in advance. i strongly recommend this ta named JUSTIN!! he was awesome! a very nice guy. he isnt one of those CVS TA's who just tell u what to do and then leave u there, but one of those rare ones who will help u every step. he even agrees to meet up during weekends or outside his office hrs for programming assgn. another TA was OLGA-- helpful but then again, only if u know what u are doing. if u r raw at java/DS, then she is not for u

Dec 2002

One major problem at this school is that many professors are chosen based on their skills in their field, not in teaching; thus, most of the time it turns out that the prof knows what he's doing but the rest of the students do not. Prof. Diament actually knows what he's doing AND how to teach it to others, a skillset I greatly admire. And on top of all that, he even has a sense of humor!