Object-Oriented Programming and Design in Java

Oct 2018

Terrible class. Half of the lectures are spent reviewing the useless material from the previous lecture. You don't learn anything about actual coding in lecture, just theory that will only be useful on the homework. The bigger problem is that you are given 30-hour assignment with "2-4 weeks" to complete them, but only learn the first half of relevant material the lecture before they are due. The professor doesn't know how to write notes on the whiteboard (you can't understand what he's saying simply by copying him). 1007 is more (tedious and difficult) work than 1004 or Data Structures, but you're learning less. I can't emphasize this enough: TAKE 1004 or DATA STRUCTURES. Professor is not helpful in Piazza either.

Jul 2013

I loved this class and I thought it was perfect for the level I was at. I originally was worried that it would be too advanced for me since I didn't take w1004 and I felt inexperienced with programming especially after half a year of not touching java, but when I told Adam Cannon (the 1004 prof) that I'd already gotten a 4 on the AP CS exam, he told me to take w1007 instead which led me here. Swap is a pretty good teacher, and a really great person. The classes were fun and there was just a chill atmosphere there. He programmed things like cheezburger cats and harry potter creatures. I think it was structured pretty well, and it really helped me better understand OOP, especially since my teacher from my AP class in high school was pretty bad at explaining the concepts of inheritance, and words like static/final/public/private. At the same time though, I will also say that sometimes the class went off track or just really slowly (some of the stuff covered in the AP apparently wasn't taught to the 1004 class), so I spent a lot of classes coding for the hw assignments. I didn't have to take many notes... I feel like the textbook is pretty easy to read so it's easy to just look up what you need to know if you forget something. Homework took a lot of time to complete, but I thought all the assignments were pretty fun and the grading is straightforward. I think the best advice I have is to not wait until the last moment for starting your assignments. Instead, start them as early as possible. That way, when you run into problems, you have time to go to TA office hours. My TAs were amazing and super helpful, and I really don't know what I would have done without them. I feel like with all the help offered, there really is no reason to not do well in this class, unless you procrastinate and just don't do the work or hand it in late. I'm not even that great at time management, but I still got an A in this class. There's a lot of opportunities for extra credit and the midterm & final aren't hard as long as you look over the code from class and know your vocab. Basically this class gave the confidence to keep pursuing CS as my major. Yes, there were a lot of all nighters, but I enjoy coding all night (it kind of gives me a coding high? haha) so it was partially by choice. Do the work, and you'll be fine!

May 2013

This review is kind of hard to write because Swap is such a nice guy in person. He is totally willing to chat with students during office hours or whenever you need him, and the class environment is super relaxed. However, I was really disappointed in this class. Here's why. As a disclaimer, I will mention that I took 1004 last semester and did quite well. Consequently, much of the material we covered in 1007 was pointless review for me (inheritance, interfaces, etc.). Worse, Swap is not a good lecturer–his classes wander aimlessly, guided by broad topics and students' questions. It was much more efficient for me to read the textbook (readily available in PDF form) rather than listen to his lectures, and then use Big Java to review older material. His homeworks were a mixed bag. Some were quite helpful: the GUI project was especially instructive. Others were incredibly stupid. One assignment involved crawling the HTML of various Wikipedia pages about the Academy Awards and retrieving data (e.g., who won the 1993 Best Actress award, stuff like that). Is HTML parsing useful? Yes, but this assignment literally took 20+ hours of tedious drudgery, because all of the Academy Awards pages are formatted completely differently from each other. Moreover, it didn't really seem relevant to what we learned in the class; the networking involved is extremely simplistic, no graphics, no interfaces, etc. Another assignment involved making a command-line (textual) version of Othello. Again, extremely tedious. Why not just wait to do the Othello assignment until after we had learned graphics programming? The good news is that the topics are useful and important: graphical user interfaces, networking, interfaces, inheritance, file input/output, etc. The exams were really easy. The average was ~80 for the midterm and final. As a result though, there was presumably almost no curve. I got a B+, which felt a little harsh considering how well I did in the class (81 midterm, 90 final, 92 homework average). I was honestly expecting an A. This course is no longer required for the CS major if you've already taken 1004, and I don't recommend taking both. If you have to take it, go ahead–it's not hard, and some of the things you learn are really helpful, but it's often frustrating.

Jan 2013

First of all, W1007 is now Honors Introduction to Computer Science and no longer Object-Oriented Programming and Design in Java. If 1004 and the old OOP course had a baby, this monstrosity of a course would be the result. The course had no target audience. It was excessively basic for some, and impossibly difficult for others. In fact, this was evident from our midterm scores - the curve had two peaks! That said, this was an exceptionally well taught course thanks to Professor Kender. This man can teach. Kender is truly silver (possible gold) nugget worthy. While the content of the course was not the best, (not Kender's fault - he has to comply with the CS department) Kender did an amazing job at teaching it. His lectures were a joy to attend. He is organized and methodical and teaches in the order of the chapters in the book. He has a great sense of humor and tells at least one awesome joke per class. He also gave us lots of cool extra information because this is "an honors class". Also, he has this strange, but fun obsession with the Principle of Least Surprise (PoLS). Don't let Kender's imposing figure scare you. He is a very approachable and reasonable professor who will take the time to help you out. If you're too intimidated to ask him a question in person, there's always the online solution. This course used Piazza which was great since it allowed us to ask questions anonymously and clarify doubts in the assignments. Kender is on Piazza almost 24x7 on the weekends before assignments are due. Assignments were of variable difficulty and length. Many of them were poorly worded causing some confusion. Some were very interesting like making a GUI game to play Rock, Paper, Scissors, Lizard, Spock with an AI engine. The assignments were usually graded within a week or two. The TAs were for the most part good. One TA (name not disclosed) was very stingy with grades and always screwed the assignments he graded. This unfair grading affected some very unlucky students. The midterm and final were long but manageable. Note down everything he says in class. His tests mainly consist of questions from topics discussed in class, especially violations of PoLS. Grading was extremely fair - not easy, not hard. He takes a long time to get exams back because he corrects all of them himself (and he unfortunately had an ill member in his family this semester). He gave us candy canes during the final because glucose apparently stimulates brain activity. Needless to say, that was the most entertaining exam ever. All in all, if you have a strong foundation in Java and design, skip this course. But try to take Kender whenever you can. He makes this course worth while with his godly teaching prowess and great sense of humor.

Oct 2012

Literally the best TA in the world. I've been fortunate enough to have him as a TA for three of my computer science courses, and every time I've needed help, he's been extremely responsive and helpful. He'll help you debug your code and patiently explain theory over and over if you need it. Don is very patient during office hours. He was also the only TA in my COMS 1004 course who wasn't trying to make us all get Cs. His TA office hours are always packed because it's pretty known what a great TA he is. I pretty much love him.

Sep 2012

I'm optimistically assuming that the computer science department has the sense to never let Professor Blaer teach this class again, in which case this review doesn't really serve much of a purpose. However, given the finite probability that computer science continues to show the lack of judgment that they showed in allowing him to teach COMS 1007 this past summer, I feel justified in writing this review. I just got reminded this morning that I took COMS 1007 with Professor Blaer this past summer when I got an email that my grade arrived. The date of the final exam was Thursday August 9th. I had been checking Courseworks weekly since the end of the course, and this is the first time that I saw the grades posted for assignments 3-4. I am currently enrolled in COMS 3137 and have completed the first two assignments prior to receiving my grades for the last two assignments and my final grade from COMS 1007. There is still no grade posted on Courseworks for the final exam, and given that combined with the discrepancy between how well I did in the course and how poorly I felt I did on the final, I'm wondering if he even graded and/or counted the final exam. This might sound like an outlandish accusation, but the classmates who I've talked to are all speculating the same idea. Professor Blaer told us during the final lecture, on Tuesday August 7th, that he was setting the following Monday as the grading deadline for the TAs, and therefore that we should expect to know our final grades by the Tuesday of that week. We were never contacted with notification of any delay. At first I thought it was just me when my grade wasn't posted all summer, but then I got to COMS 3137 and found that several of my classmates who were in the summer class had not received their grades either, and we all had contacted him several times via email, telephone, and direct office visits. Professor Blaer didn't respond to most of the emails or telephone calls, and he wasn't in his office when most people arrived. However, whenever one of us did hear from him, he said that the grades would be up "by the end of the day." The lack of feedback and organization in this class was representative of the fact that the concern for students' learning was absent, which is a shame. After all, isn't that the point of any class? Professor Blaer's lectures were fine. They weren't amazing, but they were fine. However, in teaching a class in computer science, organization and feedback are at least as important as the lectures. I'm my personal opinion, they're far more important because most of the true learning comes from working through and receiving feedback on assignments.

Aug 2012

I honestly wanted to like this class, and expected to after reading several positive reviews. Maybe there is an inherent flaw in teaching a class like this during the summer, but I suspect that the fatal flaw of this class was that it wasn't well planned. Nonetheless, as I read the other reviews of Professor Blaer, I am suspecting that he might be better at implementing a course during the fall or spring than during the summer. It seemed that this entire class was planned as an afterthought, and the class seemed to operate under principles that I previously thought violated those of learning computer science. I thought computer science was about thoroughly understanding concepts and creatively applying them to solving problems. I also thought that lectures were a supplementary feature to the learning process, and that the most important part of the learning came when working through assignments. Finally, I was under the impression that computer science is a subject one couldn't cram for, and the way to learn is through practice. I'm hoping that I was right about all this, and that the only reason I am questioning it now is due to the faulty implementation of this course. I went into this class with the expectation exams should be doable if one is able to figure out the homework assignments on your own. After all, the purpose of said exams are to ensure that people truly understand the material and don't get rewarded with a top grade for getting through the assignments without fully understanding them (for example, by getting excessive TA help or copying from other students). However, that really wasn't the case in this course. The exams tested concepts and syntax that were not covered in the assignments, or that were covered in assignments that weren't assigned until after the exam. (For example, the first time we were ever asked to write a program using anonymous classes was during the midterm exam. These is nothing inherently difficult about using anonymous classes in Java, as it is just a quirky syntax to get used to. However, this straightforward exam problem was significantly more challenging due to the fact that we had never been asked to implement an anonymous class on the computer prior to the exam.) To be fair, he did teach the concepts in lecture, but it is very difficult (for most people) to learn computer science enough to quickly apply it exclusively through lectures. Another expectation I had in taking a computer science class over the summer was that I'd be drinking from the fire hose. I thought I'd be working hard and losing sleep to finish assignments on time. The only time I truly found myself working hard and losing sleep to get the task done in the time allotted was when cramming for exams. There were only four homework assignments, each of which consisted of a written portion and a programming portion. The content of these assignments was fair. They were time consuming (except for the first one), but completely reasonable in scope. Nothing we were required to do went beyond the concepts discussed in class, yet I still found myself learning a good deal while working through these assignments. That being said, I would've liked another assignment or two in order to thoroughly learn the material that was covered on exams but not on the projects, as well as to lessen the weight of each assignment on our grade. Moreover, he extended the deadline for every assignment, which was great for the students who procrastinated. However, for those of us who started the assignments when they were released, these extensions were more of a punishment because they were often granted after we had already allocated significant time to completing the assignment prior to the original deadline. Further, he did not make the new assignment available until the extended due date of the previous one (despite promising to make them available earlier on a few occasions). Due to the poor timing of assignments, the final assignments ended up being due the midnight prior to the final exam. Feedback was another story. Initially there was a single grader for the class, and as a result we did not receive feedback on the first homework assignment until the middle of the fourth week of class. At that point, a new grader was hired. The class ended last night and we have currently received feedback on two of our four homework assignments. It also took two weeks to hand back the midterm exam in class. To be fair, the instructor admitted that the lack of TA help was a problem the course was facing. However, these delays were more than just annoying: they caused many students to be penalized multiple times for the same mistake. Lectures largely consisted of presentation of the textbook author's slides, from the book "Object-Oriented Design and Patterns" by Cay Horstmann, and occasionally he'd present additional examples of his own. These lectures were fine, but not exactly easy to pay attention to for three hours. Easy or not, paying attention was important, as many points he made during lecture had a tendency to show up on exams despite not appearing in the assignments nor being emphasized in the textbook. When the instructor presented his own code, there was often a several day delay between the presentation of the code and the uploading of this code to the course website, which made at least one of the assignments much more difficult than it needed to be. If you are planning to take this offering in the future, make sure you are very confident in your ability to learn computer science quickly and without much practice. Otherwise, you will probably be sensitive to the problems with the course.

May 2012

I was initially terrified to take 1007 because I thought I was going to get Professor Kender, but it turned out Swap was teaching it. He guest lectured for Professor Cannon's 1004 class and I thought he was a cool guy so I signed up for this class. At first it was a bit rough because I hadn't programmed over winter break, but the assignments are completely doable, and he helps us with them by giving us Halo quests which provide a checklist of things one should be doing (they're themed, so the last one was Doctor Who themed!). The TAs are awesome (shoutout to Don!), and Swap is very helpful during his office hours and through email. His lectures are sometimes disorganized, but as the other reviewer said, it's all in the book. And he also has us read cool things like the Law of Leaky Abstractions and things on Lisp. This class solidified my decision to major in Computer Science.

Apr 2012

I'm basically in love with him. I was so happy to find out that I had Swap instead of Kender. Swap is very entertaining to listen to, and a cool dude. Although his lectures were disorganized at time, you can always read the textbook to rehash the lectures and get a firmer understanding. He also gives extensions on most of the homework, which makes him super awesome. The grading for the homework is also super easy. So far I've gotten 100% on all of the homework assignments. Overall, take a class with him. He's awesome.

Jan 2012

I have to disagree with the review below me on multiple accounts. First, workload: There are five assignments, a midterm, and a final. For each assignment, we were given at least two weeks if not more. Kender, though as inscrutable as Dumbledore in his answers, will point you in the general right direction through discussion boards, and office hours with the TAs and Kender himself will help you if you're ever feeling totally lost--but to take advantage of this, you MUST start the assignment earlier than the weekend before they're due. They can take up to a whole weekend to do but often much less. They are difficult, but they can be fun and you'll learn something from each one. Second, as for the phrasing of questions, he just likes for you to state the reason behind the answer rather than rote memorization. To reiterate what previous reviews have said, he seems grumpy but he's really a sweet, witty, silver nugget-worthy guy. He's like an m&m with a hard crunchy outer coating but is really just a sweet, melty, softy on the inside. If you really took his exasperation to heart, then do yourself a favor and get over yourself. He's not a kindergarten teacher who will hug you and listen to your feelings but he will go well out of his way to help you as much as he can without straight up giving you the answer. He wants you to oh my god forbid learn something instead of cruising out with a B+. The grading was very reasonable(not EASY, reasonable), he explained how and why the grades were the way they were, acknowledged when things were unfair, took our feedback into account very well, and if you had a problem with this good luck at Columbia because the fact he even TOOK feedback was like, shocking, at this school.

Dec 2011

I have no idea why this guy has a silver nugget. He's not a good teacher. At all. He always has a very, very specific answer in mind when he asks questions. In class, this leads to him calling on several people before he hears exactly what he wants to hear. He often gets exasperated at people not saying the right answer immediately. What's important to note is that often the right answer has been said, but he just didn't notice because he was too fixated on having it said exactly how he thinks it should be. That's how it was on the exams as well. Clearly, he thought of the answers before he thought of the questions, and didn't spend much time thinking about how to phrase the questions. They were completely incomprehensible. On the midterm, he even gave us all an extra 8 points because he admitted that one question was so terribly convoluted. On the final, the chalk boards were covered by the end of the exam because of how many changes he made to the directions. I must have lost 20 minutes going back and redoing stuff because he was redefining the questions as we were taking the exam! The work load is enormous in this class. Again, the questions were often ambiguous. If you badgered him on the discussion board, he'd sometimes clarify things. He also didn't check the API before assigning some of the graphics stuff. I must have spent 20+ hours combined trying to work around bugs in the API to try to make my designs the way he wanted them. I even sat down with him once in office hours to read through some unofficial API source code, given that his response to one of these bugs was, "Hmmm...that's unexpected..." Overall, this class was the most frustrating experience of my semester. If I didn't have to take it, I wouldn't have. I don't feel like I learned that much (except for some interesting stuff in chapter 7 about generics). I feel like if Kender had been focused, it might have been a semi-enjoyable experience. He was too much in his own head and didn't interact well with students, though.

May 2011

Most teacher I've had at this school thus far have been subpar (*SHITTY*). Blaer is very interesting and funny! He makes everything very understandable and the TAs are very accessible over e-mail. If you get how to do the homeworks you should have a good grasp of everything. The homeworks can take a bit, but they aren't intimidating. Seriously, just pay attention in class and write down everything he says. Should be an easy A if you dedicate some work to it! Blaer was awesome! It feels so weird that I can actually do programming! WA THE FUUUUH?!

May 2011

Prof. Morris is perhaps the sweetest professor on campus. He's always willing to listen to students when they voice concerns. His teaching is pretty standard for a beginning lecturer, and he puts all of his lecture slides online (on Google Docs) so it's easy to follow along if you get lost. I learned stuff - and yes, I could've learned more with a harder professor - but I didn't have to kill myself at all.

May 2011

This class was totally hopeless, and not because of the material but because Professor Morris taught it horribly. I think he is a very busy PhD student and did not have the time needed to teach an important class properly. It is really completely the department's fault for hiring him to teach this class. I thought this class was going to be my hardest class but it was almost my easiest. Almost half the class averaged at above 90% I think. The lectures were terrible, the slides were all taken from the book and the few times I went I always started falling asleep - Mr. Morris would just stand at the front and go on rather incoherently - I couldn't really follow him and he undoubtedly had very bad communication skills as a lecturer. I stopped going to lectures after the first 2 weeks and just read the textbook which had everything we were expected to know and did well on both the midterm and final. The homeworks, except for the first one, were all trivial. They barely took me anytime and I felt that I wasn't learning anything as they didn't require any thinking at all. I definitely spent more time on my homeworks in 1004. Try to avoid taking classes with this professor if you can, he does a bad job of teaching whether or not it's his fault or that of the department. You also won't learn anything.

May 2011

The Good: Prof Morris is very nice and approachable. He is very easygoing. The Bad: Despite the fact that he does put effort into the class, Prof Morris is too disorganized and not a good lecturer. He literally takes EVERYTHING from the book, so all you have to do is take the book to lecture (if you even ended up going after a week) and read the parts the Prof Morris does a really bad job of explaining. For the most part, he knew what he wanted to teach but had a very hard time trying to teach it. In addition, the assignment grades were always very very late, and overall pretty easy. Funnily enough, the course started with the hardest homework assignment and every one after that got gradually easier. You might as well read the book on your own for all you might take away from Prof Morris class. If you want to have a pleasant chat, however, he is a great guy who knows his stuff. He just doesn't know how to teach it.

May 2011

Prof Morris cannot teach. Sorry. He should stick to his PhD studies. He cannot effectively convey his thoughts or a lecture to a class. He stumbles constantly and his slides are very disorganized, meaning that every lecture he will apologize for having already said this in another slide or referring to a slide he will cover 5 slides later. His board skills are also very lackluster. I would not hire this guy nor would I want him to teach me again. He is too hard to follow, even though he's a native English speaker. All of his spelling and grammar mistakes in his slides are quite distracting, too. As for COMS1007, it's a fairly useful class if taught right. Take it with Kender. The text is OK, although Big Java, also by Horstmann, is generally more useful.

May 2010

Bert covered almost exactly what was in the textbook in his lectures--the most useful part of the lectures was that he read the textbook much more carefully than you did, so whenever he found something he found confusing, he expanded on it. He also decided to cover some material that wasn't in the textbook (networking), so before deciding to skip all of his lectures and just teach yourself the material from the textbook which is generally pretty possible, look at the course web page to make sure that he isn't covering something that isn't in the textbook in lecture, because it will be a pain in the ass to try to search it on the internet. On the other hand, his slideshows are pretty complete and he posts them on the course page.

Mar 2010

Professor Kender was one of the most amazing professors I've ever had. His lectures were entertaining and he taught really well. I've never enjoyed any other class as much as his. He's an amazing person with a great sense of humor; I really enjoyed his quirky, nerdy jokes. He made me care so much more about the class, and I went to every single one of his lectures. He really knows his material and clearly explains everything. He is more than happy to clarify any questions, and is very approachable, though he may seem intimidating at first. I was impressed by the level of attention he gives to his students. With the assignments, he tries to give as much help as he can without giving away answers, and provides a lot of interesting and relevant supplements and anecdotes. He is an extremely fair grader and though the class is difficult (generally, most the students are engineers), it is curved. I would definitely recommend taking this class just for the professor. He encouraged the class to attend talks and such around campus and to take advantage of all opportunities provided by the university. He is not only an amazing professor, but an amazing person and makes you feel he cares, even if you've never spoken directly with him. He clearly has a passion for teaching, and I would seriously recommend holding off taking 1007 a semester to be able to take it with him.

Jan 2010

Glad to see Prof. Kender has a silver nugget to show for his excellent classes. Although he is very intimidating at first sight (one of my friends who audited the course for one class actually ran away in the first 15 minutes), Prof. Kender is just a fluffy teddy bear that just wants to be hugged. But since he is too intimidating for any students to just walk up to him and hug, he penalizes us by giving us incredibly challenging (but fun) assignments. His lectures, most of the time, grabs your attention and doesn't let go. The only boring parts would be the ones where he tells us about the necessary evils of memorizing idioms. Even those, however, coupled with Prof. Kender's otherwordly sense of humor and enthusiasm, are possible to get through completely awake and conscious. The assignments are quite difficult, yes, and many people dropped the course halfway through because of a certain assignment. (It personally took two all-nighters in Butler.) But if you enjoy computer science at all, the challenges he throws at you and the sense of accomplishment that you get when you finish will be enough to keep you going throughout the entire semester. FYI, don't worry about the numerical grade that you get. Prof. Kender grades hard on all assignments and tests, and the numerical grades may seem low. But the letter grade won't be; for example, the B+ on the midterm was in the high 50s. If you have a chance to take this man's course, do not let it pass on by. You'll regret it.

Jan 2010

Kender is one of the best (and most intimidating) professors I've had here. Lectures were very well-structured and easy to follow without being simplistic, and although the material was occasionally a bit dry (idiom memorization is not exactly thrilling), Kender's understated and offbeat sense of humor kept things interesting. He puts the material into perspective--the class is taught only in Java, but he explained the language's current (and rapidly shrinking) place in the field and how it differed from other languages (often in the form of deadpan disparagements). While he spent a good portion of the first few weeks of class waiting for students to answer questions, eventually the class began to respond and lectures became more smooth and interactive. Despite a scant four-month programming background, I felt comfortable with the material largely due to the clarity and thoroughness of the lectures. While the first assignment was difficult, Kender polled the class on our experience and modified the next assignment based on the responses (similar polls happened after all assignments and the midterm), which I really appreciated. He took pains to keep the class fair despite challenging material.

Dec 2009

I studied Java for the first time during my senior high school year. Though I felt like I learned how to program in Java and I was confident in programming, this class even challenged me to the next level of profession both in Java and in general. This class taught me enormously amount of knowledge of Design and Object-oriented programming. It was mainly because the assignments were time-consuming and they demanded dedication, and also the ability of Prof Kender to succintly pointed out all crucial aspects of Java and OOD. Prof Kender is very good-natured. He looks tired sometimes but he is full of energy when it comes to lecture time. He is very approachable, and he answers all questions you have in mind. He is very funny in his own way. And above all those, he is a very, very fair grader. (And of course TAs in this course are just like that.) Those who wants to master in programming will not regret taking this class. You will learn much more than the Java itself; you will encounter a lot of situations where you have to decide in terms of design and strategy. You will be ready for the next level of programming, which is in bigger scale and more complicated. I would say that I appreciate this class so much, both from Prof Kender and from the class itself. Beware though, the class is a little tough.

Sep 2009

Professor Kender knows his stuff. His lectures are not the most engaging and gripping, but they are eminently useful--pay attention! His homework assignments are extensive and fair, clearly utilizing the skills taught in the previous unit. He has an abrupt personality, but respects the course, the students and teaching in general. Tests are difficult and graded harshly, but the class is curved at the end of the semester.

Jul 2009

As one of those students NOT coming from a strong CS background, I just have to put it out there that each homework assignment took me roughly 10-15 hours to complete. As for Prof. Blaer, I thought the textbook was just as good a teacher as he was, since he mostly repeated what was in there with some additional reinforcement and examples. He is fairly accessible and does a decent job of presenting the material, but ultimately Java is something you learn mostly by yourself. I certainly learned a lot through the programming assignments. Overall I would recommend him just because he's so helpful and cares about the students doing well.

May 2009

As one of the students that has "practically taken this course before" mentioned below, I should preface this review by noting that if you have any kind of Java experience beyond the AP CS AB level, you should really try to test out of it. I asked about skipping the class and was strongly discouraged by everybody in the department that I talked to; in the end, I think that was a mistake. That being said, a class that by all rights should have been an unbearable repetition of things I'd already taught myself turned out to be a reasonably good experience. Blaer is a really engaging lecturer and an all-around smart, friendly guy -- he was happy to entertain various questions I had about side projects totally unrelated to the course material, and is really accessible outside of class. The homework turns out to be enjoyable as well -- there's enough freedom and flexibility in the assignments, particularly the middle few, that you can have fun playing around within the constraints. All in all, I highly recommend Blaer (and would happily take any other course he teaches), but be wary of signing up for 1007 if you come from a CS background.

Apr 2009

Lakshmi is a competent TA. She is unusually responsive to our questions and very responsive to our discussion board posts, prompt in grading assignments and exams, and dedicated to teaching the course. However, even though she tried she could not always answer questions about fine points of the subject material--we had to send these questions to the professor. In assignments, she also overlooked correct answers at times, so her work sometimes needed to be regraded. Her explanations, when she had them, were quite clear.

Apr 2009

Mitchell was a superstar undergraduate student in COMS W1007 and it shows. He is very knowledgeable about the course materials, and can answer questions concisely and thoroughly. His grading of assignments is prompt and relatively precise, and he monitors the discussion board extremely well. Mitchell is one of the best TAs I've had, and I always look for him when I need to attend office hours.

Apr 2009

Professor Blaer seems to know anything and everything there is to know about the Java programming language, and practically lives and breathes CS. He's always happy to explain the finer points of Computer Science to us. His office hours, immediately after class, are held at an unusually convenient time for most students and even if it takes him more time than he thought it would, we rarely go away with our questions unanswered. In addition to holding his posted office hours, he vigilantly monitors the course discussion board. His board posts are essential (and appreciated) given the difficulty of his assignments. The 6 assignments can be quite time-intensive for people who are less than overqualified, including top students from the recommended prerequisite course (COMS W1004). A substantial number of students have a much stronger background than this, and some have practically taken COMS W1007 beforehand. These may be the people who would call the workload "not too bad." The rest of us just get a lot of programming practice. Fortunately, the grading and grading curve are generous. The median grade is usually B+, and this semester it might be A-. Lectures are understandable and thorough. Professor Blaer sometimes talks so quickly that note taking becomes a bit difficult, but most of the material is from the textbook anyway. The textbook, _Object-Oriented Design and Patterns_ by Cay Horstmann, explains concepts reasonably clearly but provides inexcusably buggy solutions to exercises. Exams are long and information-intensive, but manageable if you've studied. Professor Blaer LOVES to make fun of students who procrastinate (he never singles out individual people but talks about Columbia students as a group). He is also merciful toward those who do procrastinate, because of his liberal extension policy. Sometimes he says things about the average student's level of organization (i.e. our lack thereof) that aren't true. I hope his lectures get put on CVN because they are so good, but those parts are cut because they reflect badly on Columbia University and are a lie. Most students are doing well this semester, and our organizational skills are one of the reasons. I highly recommend this course, but only if a student has taken COMS W1004 or the equivalent beforehand. Otherwise they might get buried in coursework.

Dec 2007

Professor Cannon is an awesome teacher. The class has a really heavy workload, though. Most of what he teaches in class is in the book, but he clarifies it and makes it easier to understand. You have to learn all of Java code on your own though and it can be really frustrating because many times you won't know where to start. The TAs are EXTREMELY helpful, though. I highly recommend that you go to office hours at least once a week because they usually teach you Java concepts and code. The class may be hard and the workload tough, but its a class worth taking because you learn A LOT.

May 2007

I have to say, I'm really not sure where the previous posters are coming from. Maybe Pasik liked the material in the other classes better which would be highly understandable. I'll admit, Prof. Pasik taught concepts well. He definitely oversimplified a lot of material though (recursion, abstract classes etc). There was no real textbook for the class. Everything was essentially from lecture but only 1/3 of the class went anyway. You only had 2 case studies: A rational number calculator, for which Pasik made his own random classes rather than using standard Java classes like Number, and Scopa, an Italian/Sicilian card game. Everything was based off of those two (and I mean everything.) Word of warning: he doesn't accept code that doesn't compile on CUNIX nor does he take late homework assignments (Each was 15% of your grade so don't save it to the last night). Also, don't think that AP Java AB will help you. Some concepts may be easier but watch out for his random implementations while you scratch your head because you know there is an infinitely more efficient algorithm out there. You have to use his code.

May 2007

If there was ever a man who enjoyed teaching object oriented java, it would be Prof Pasik. Him frustrated is just him smiling more and getting happier. Without seeing his website, it was difficult to tell if he had a curriculum planned out for this class. Lectures past the first few consisted of him explaining example code off of his laptop and the projector. You probably won't see what's on the screen if you aren't sitting front and center and have 20/20 vision (though he posts the code online as well). It's disconcerting to hear him say you aren't supposed to learn something in this class but he's going to teach it to you because your assignment directly relates to it. Goals-wise, the assignments are a bit too open-ended for a low level class like this. The exams are straight forward but tend to have an air of scariness to them (mostly because you aren't sure if your answer will fit his requirements since he likes to tell you not to worry). His class essentially is about putting in effort. He gives bonus points which are not counted into the curve so anyone who actually does the extra work will get the "better" curve.

Apr 2007

Very interesting professor, just go to class and enjoy, very funny guy and makes class very enjoyable, tests aren't that hard and assignments are pretty decent. Nothing is hard and he makes class very fun. just make sure you go to class.

Apr 2007

Technically Chris was a TA when I took the class but since he was pretty much awesome and taught his own section I'm considering him a professor. He's young and funny and classes aren't too boring. He makes the material very accessible even for people who are entirely unexposed to computer science. The class itself is okay and while the material may not be too challenging at times, the exams (which were actually written by professor Canon) can be a bit more difficult than expected.

Feb 2007

I wish I had met the Adam Cannon everyone else seems to be talking about. Adam Cannon's class was horrible and the class was anything but an introduction. ***********ATTENTION************** If you do not have a computer science background and don't consider yourself a computer science guy, DO NOT TAKE THIS CLASS. Take 1004 instead. He lies to you at the beginning and says that even if you've never touched a computer before you can do well in this class. Nonsense! I assure you even if you have a decent CS background you WILL SUFFER. I made the stupid decision to take 1007 because I thought I had enough computer science background to ace the class. Turns out my 2 years of CS background in high school (which I had easily aced) in no way prepared me for this class. Despite what he says, this class is INTENDED for CS majors so if you're not a CS-major don't make my mistake, stick with 1004 or an easier CS intro class. I wasn't the only one who had a horrible time in this class either, I know plenty of people who suffered through it and many others who dropped out altogether. Again, take my warning, if you're not a CS-major DON'T take this class.

Dec 2006

At first, he seemed like a very professional, no-nonsense sort of teacher who would teach a lot but give the most boring lectures ever. In reality, he is a very professional, no-nonsense sort of teacher with the most entertaining lectures ever. You learn a lot and have a bit of fun with the class too. Great intro to the CS department. He's a great professor.

Mar 2006

Hershkop is a bad teacher. The lectures are too general, too specific, or have nothing to do with the assignments. Too many times the slides are examples from the book. The midterm and exam didn't reflect what we were supposed to be learning in the class. He is a fair to generous grader. Don't take a class with him if you don't have to.

Feb 2006

Professor Hershkop is a terrible teacher. He is a nice guy, and seems to like the subject, but he just can't teach. There are always typos on his slides and in his assignments, even in the code he gives us to use on projects. He never adequately answers questions and even though I attended all of the classes, I never learned anything. Reading the book during class would've been a better use of my time. He often taught this intro class as if it were Data Structures and expected us to know what he was talking about. Nice guy, but avoid taking a class with him if at all possible.

May 2005

A great professor. He is nice, invites commentary and feedback during class, and even cracks a few jokes here and there. His lectures are generally clear except things got a little confusing during the data structures section, when we covered a top that our book did not handle at all (red-black trees). He likes to make things challenging but not impossible. Good office hours.

Jan 2005

Believe what you read/hear about this guy. He is AMAZING. He is nice about extensions (he's willing to give you extra time on one of the five assignments- meaning you just can't do it all the time). If you attend lectures and understand the material you will do very well on the tests. I knew some java before the class, so that made it easier, but Prof. Cannon will help you- if you're working on it, so is he. He makes himself and the TAs very available to you for help. In class he always stops and attempts to make sure everyone really understands. His lectures are generally pretty interesting and he is really a find. I am a computer science major, however, so perhaps that skews my opinion.

Jan 2005

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[5]; 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.

Jan 2005

I totally agree with the other reviews. He's a great professor, so take his class. What I found the greatest about him is that he taught more than the course material. Like, he told us in the beginning of the semester that what he emphasizes in class and the vocab definitions he writes on the board are probably going to be on the exam. Such hint is so useful when you are bombarded with tons of vocabs and info that you encounter in the textbook; because then you know which the primary and important stuff are and which are not. Also, he explicitly provided studying strategies for the midterm, which, of course, can be used in other classes. However, I didn't find him all that helpful when it came to seeing him during office hours or through email; so I got help the TA's who were simply great (I had Rachel Goldman, Cheryl Lau, and Lauren Wilcox). They basically saved my life, rather than the professor (yet that's just me; other students maybe didn't need as much help). However, I really liked prof. Cannon; it's worth taking his class and getting to know him.

Dec 2004

Prof. Cannon was simply amazing! He had this way of explaining difficult concepts in a way that made it easy to understand, and he didn't mind going over the same concept over and over again until everyone in the class was clear. He also made it very easy to go to office hours (he encouraged it every week). Prof. Cannon warned us in the beginning of the class that CS1007 is a rigorous introduction to computer science and that students who had no previous programming experience should consider taking CS1004. I had no previous programming experience, but I decided to stay in CS1007 because I knew that I would learn more in that class. Prof. Cannon said that students without prior programming experience would find the class difficult (even those who had a lot of programming experience had a hard time), but the class is do-able and Prof. Cannon made sure to say that he would be as supportive as he can. And he was. He also made class fun -- he is funny and witty and actually makes you want to go to class (and you should go. Many times he covered concepts that weren't in the textbook, and we needed to know those concepts for the exams and to complete our homework assignments). If you're looking for an easy A in computer science, then CS1007 is not for you. Take Professor Cannon's advice and take CS1004 (though I'm not sure what the workload is in that class. I know it's easier than 1007, though). But if you're looking for a class that will challenge you and make you proud of all that you've learned, then be brave and take CS1007 and make sure to take it with Prof. Cannon. He is one of the best professors I've encountered so far at Columbia. You will learn a whole lot of programming and will be surprised about the things you learn to do.

Dec 2004

he's so nice and very relaxing while teaching approachable... he's willing to have an appointment with you if you can't make it to his office hours take his class!

Nov 2004

DO NOT!! I REPEAT DO NOT!! TAKE THIS CLASS...if you know whats good for 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

Jun 2004

Awsome guy, very aproachable in and out of class. Often in his office and not to upset if you stop buy. He is a fun charcter, his unix prompt displays "Command me baby:" which everyone got a chuckle from. The class is easy if you are into comp sci and a nightmare if you are not. Great intro to java course though, highly suggested for all people considering a computer science major. I decided to do it because of this course as well as a friend of mine.

Jan 2004

Professor Cannon was great. He was very approachable. If office hours didn't work out for you or if he felt you needed extra help, he would make time for you outside of his normal Office Hours. He is also extremely witty (even obscene and completely politically incorrect at times). However, the content of the course was too difficult. I am not a ComSci major, but this was even tough for someone majoring in the topic. He warned us that we should consider switching into 1004 if we didn't feel up to the challenge. I took 1007 because I wanted to study with Professor Cannon. I took his 1001 class and loved it. I should have swallowed my pride and took the easier class. If you are looking for an easy-A, this is not the class for you, but if you are looking for a challenge and struggle, have fun. His wit and humor could be worth the trouble.

Dec 2003

On the first day of class Cannon said that this course required hours of frustration in front of the computer, and he was telling the truth. Projects are difficult and long, but they do a good job of teaching java. If you do the projects and attend lecture, exams aren't too painful, and he will look over poor exam grades if you do well on the projects (get them to work). The curve is very generous reflecting the heavy workload. Overall, this course can be hell while you are in it, but in the end your knowledge of computer science is extensive.

Mar 2003

Professor Cannon was one of my favorite instructors at Columbia. He's really nice, and he makes learning about what some consider to be a difficult subject much more easy. During his first lecture, Professor Cannon said that students shouldn't be intimidated by the fact that he works at Los Almos because he "isn't creating Terminator." Definitely an interesting class, I learned a lot to prepare me for 1004

Feb 2003

First of all, I don' t understand why the GS program even forces us to take such a ridiculous class. It should be an optional class that is highly recommended (which I don't anyways) but certainly not a requirement. Second, it's hard to figure out what the grading standard is with this instructor. This is one of those classes where you have to write the way the instructor wants you to write to get a half way decent grade. This class teaches you absolutely NOTHING about writing so to all incoming GS students...grit your teeth, suck it up, and try to ignore everything the lousy instructors try to brainwash you with. You're gonna write flowery little exercises that are pointless and will be graded strictly on how much butt you can kiss in class. This class (at least with this instructor) allows absolutely NO creative freedom and this instructor seems to think that expository writing can only be dry, boring, and witless. Of course, this instructor lacks any sense of humor so that makes it even worse! You think i'm just some singled out rebel? HA! I've talked to a few students in my class who would more than agree but we all play his game for the grade. TO ALL INCOMING GS STUDENTS : I FEEL YOUR PAIN. I KNOW THIS CLASS IS ABSOLUTELY RIDICULOUS. WHEN YOU SEE THIS GUY'S NAME ON YOUR SCHEDULE...RUN FOR YOUR LIFE.

Jan 2003

Nice person and nice teacher. Her method of teaching involves going through slides on the projector, and making frequent extra notes on the board. Cracks jokes frequently, and gives the class a very relaxed atmosphere. On Halloween, she played Shrek on the projector and gave out candy for all of us. I definitely recommend her.

Jan 2003

As compsci professors go, Sklar is a pretty good one. She's got a sense of humor that keeps things somewhat interesting, and helps make the material a little less dry. She speaks softly, so sit towards the front. Her understanding of the material is very good - her lectures might be boring to non-geeks, but she explains stuff very precisely and everything's in a logical order. Available help for her classes was very good, and she was even pretty flexible about things like late homeworks. It gets a lot worse than Elizabeth Sklar.

Jul 2002

Prof Sklar was pretty nice and understanding... I was sick for the midterm, and she actually had multiple makeup sessions which made it really easy for me. Her lectures are quite organized and easy to follow along, and she makes a good effort in keeping the class awake. The homework is easy until like the third/fourth one... I felt a bit lost at the end especially. The TAs try to give partial credits which was helpful. An advice: learn to use debugger (Forte or JBuilder)! cuz the cunix system only gives you syntax error, and if you're stuck somewhere logically, then good luck trying to figure out the problem. She won't talk at all about debugger, but I really wish she'd told me earlier! Midterms (multiple choice, T/F, and coding) and Final (all multiple choice) weren't too bad if you know the basic stuff. Overall, not too bad of a class.

May 2002

Take any class with this man!! Absolutely great. One of the nicest ppl you will ever find and he does anything to help his students. He is a dynamic prof. who even makes smthing dry like cs funny! A rare gem in the otherwise mediocre cs dept. Why can't every prof at Columbia be like him??

Feb 2002

Adam Cannon is the best teacher I have had at Columbia. He is a really cool guy and an awesome person. He has a great sense of humor..his jokes are funny and he is so cool. All the people I've talked to about him think hes a great teacher. His lectures are really good...he's great at explaining complex ideas. He is always willing to help. He sincerely cares about his students and how they do in his class. He's a great teacher and I've also heard that many of his female students have had crushes on him.

Jan 2002

Prof Sklar's class wasn't boring at all. She was aware of that some students in the class had minimal programming background, so she tried to accommodate them. Her lectures notes, which were put up online, were extremely useful (as a summary, of course, because lectures were much more detailed) when it came to exam times. She's really into robot soccer games, so many assignments had something to do with that theme. As othere reviews said, first midterm was unbelievably easy, and most people didn't even finish the second midterm. She admitted that she only wanted to make it harder than the first one, but overdid it. Overall, a good class to take especially if you have limited programming background.

Jan 2002

Prof. Sklar's class was by far my favorite of the semester. Easy to understand and very helpful, she was also reasonable especially when it came to homework extensions. Even experienced programmers will learn something in this class, she tries to make it interesting (whether or not she is sucessful depends on who you ask.) Her exams aren't too difficult, if you go to lecture and do the homework you will get an easy B+ in this class, at least.

Dec 2001

Not a bad class. Sklar tried very hard to be friendly (via silly humor and a penchant for telling stories about her drunken, class-skippin' days at Barnard) and was generally quite accessible. Class started off very slowly -- we were told what variables were five or six classes in (for those without programming experience, they're an absolutely essential part of programming), and by the time the first midterm came, there was essentially nothing to test us on. Things sped up later, and some things were glossed over quickly (searching, for instance). For the most part, though, Sklar's lectures (which are quite heavy on blackboard-scrawled code) were clear and straightforward. She posted lectures notes on the class web site, which was extremely useful, and also made attendance quite optional. Overall, a competently-taught class.

Nov 2001

Teaching is not bad. Puts her lecture notes online which is convenient for people who don't go to class. But as she said a few times, "the notes are no substitute for going to class" and so be prepared for some questions in exams on materials covered in lectures. First exam was extremely easy and about 50 people (that's one third of the class) got 98 or above. Second midterm was like 99 times harder and many people handed it almost empty exams. My feeling is that she felt she needed to distinguish between the good students and the very good ones, but she definitely overdid it. She doesn't seem very experienced in teaching and sometimes (just sometimes) forgets basic stuff (like converting a base 10 number to its binary equivalent). But overall she's fine and she tries to make classes interesting by showing random stuff such as video clips and cracking silly jokes. Personally she's the no-bullshit type, looks tough (every time when she comes into class and drops her apparently very heavy backpack onto the podium (bang!) i think, wow she's some lady). She is (I think) a less friendly than other _young female_ professors. In short, people who use excuses like "my grandma died" for late homework shouldn't be hopeful. Graduated from Barnard so knows Columbia well. Majored in CS and English, so is pretty literary and definitely not illiterate like some other CS professors. Overall not bad, above average. Would be pretty good if she made just a little effort to be nicer. (But to be fair perhaps that's hard when you're teaching a class of 150....)

Apr 2001

Amazing! Has a wonderful sense of humor and keeps the class flowing and interesting -- keeping in mind that this is a CS class, that's unbelievable. He actually incorporates such devices as comedy, wit, and humanity into an intro to CS class. A CS class! He is absolutely a must take for CS. Cannon is fabulous! Any class he teaches is worth taking. Any professor whose computer's DOS command line reads: is a must take! While first time CS students may struggle at the beginning, it's largely due to the sheer bombardment of new material that has to be absorbed when learning to program for the first time (many students don't take Cannon's studying suggestions seriously -- as he says he expects since he wouldn't have listened to himself when he was an undergrad). The workload is very do-able though, especially compared to what Data Structures is alleged to laden you with.

Jan 2000

Professor Cannon is your classic young, nice guy professor, who just wants to get in good with his students. Despite having over 200 students, if you reach out to him, he'll never turn the cold shoulder. He is willing to stay in his office until all hours of the night, waiting until every single student has received attention. Bearing a bit of a resemblance to Dave Matthews, he does happen to be a really cool guy. He also exudes a real enthusiasm for the subject, which is a bit of a breath of fresh air. Unfortunately, this comes at the expense of really knowing the material very well. He forgot the JAVA syntax frequently, and occasionaly was at a loss for an answer to a student's question. For people without any programming experience at all, expect to be really lost for the first month or so - Professor Cannon has a hard time getting fundamental concepts across in a coherent manner. Luckily, if you're willing to go to his office hours, and if you attend recitation, these things really do get cleared up, and by the end you really do have a strong grasp of JAVA. I would absolutely recommend him to anyone considering taking computer science.