I know many find this class extremely useful and engaging, but this was not the case for me. To be honest, I don't think I truly learned anything. Now I am struggling a lot in Data Structures because I don't have the basics of programming. Prof. Cannon often gets distracted, which distracted me. Moreover, we had to learn things such as circuits or read entire chapters about what computer science means, which were really boring. I just wanted a class that taught me how to program, and this class didn't (again, in my personal experience) Also, they took off points from your homework if you didn't indent everything the way he wanted. I think this is pretty pointless because in Data Structures they don't care about that.
Professor Cannon is super nice and makes the lectures engaging. His online lecture was my only class that was able to sort of replicate an in-person experience. My only complaint with the course was the grade weighting. Be warned, the class was not curved this semester since we had no mid-term or final. After the pdf deadline, we received a notification from courseworks that the grade weights had changed. This caused averages to drop by around three points and for me, a full letter grade (I'm not sure if this was a mistake on Cannon's part or courseworks but it was frustrating regardless). The quizzes were supposed to be low stress, but a single question counted for a whole grade percentage point. A single question on the quiz could have a major impact on your grade. Overall, Professor Cannon does a solid job given COVID, but I think the grading system could use some tweaks. I'm pretty sure he will make those changes though as this semester was a trial run of sorts.
This dude is literally the best. Take his class!!!!!
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.
Full disclosure: I had no exposure to Java prior to taking the course, but I did have decent experience with Python and didn’t have much trouble keeping up with Cannon. The intensity of the workload will be entirely dependent on how much programming experience you already have and/or how fast you can adapt to algorithmic thinking. Cannon lives up to the hype. He’s an excellent lecturer for an intro class, and he has a great sense of humor. While it’s true that he doesn’t cover the Java syntax as much as some people would like him to, I appreciated his emphasis on conceptual understanding, namely what’s happening behind the scenes of your code. Still, I recommend reading or skimming the corresponding sections of the textbooks before attending lecture to get the whole picture. Cannon doesn’t exactly hold your hand, but he does provide several resources to help you catch up to speed if you’ve never programmed before. Office hours are held almost all the time thanks to the army of TAs, there are optional review sessions on Fridays, and there’s a separate lab session (again, optional) that runs on Tuesdays and Saturdays (you pick one of the two days to attend regularly). Like most STEM classes, Cannon reserves his A-range for the top third of the class; the cutoff for an A- is around 85% in a typical semester, the cutoff to pass is 55%, and the average is curved to "a high B, not a B+." However, you are nearly guaranteed a good grade if you put in the time and effort, and it’s almost impossible to fail as long as you at least try on the homework.
If you have a decent amount of experience programming, this class will probably be a breeze but pay attention to the minutia of how Java works and especially to the hardware and theory lectures. If you've never programmed before, this is the class to start with. It might be rough, but pay attention and practice and you will succeed. There will be a temptation to slack off during lectures because you will have your laptop open and sometimes the content can seem a little slow. Do not do this. Paul Blaer is a lovely, hilarious, clear, concise, friendly, loud guy and an incredible teacher.
A witty, intelligent, and entertaining professor. He talks a bit fast at times but is always willing to repeat what he said if you ask. Assignments aren't too difficult but might take some time if you're 100% new to CS. If he hears people talking while he's lecturing he will ask what they are talking about or if a part of a song accidentally plays aloud he will ask what song it was – those moments definitely add some excitement to class. All in all a good teacher he seems to genuinely want to help his students succeed. Note: He gives out many A- but As are quite difficult to get.
He is the love of my life
I have truly loved my experience in Intro to Java with Professor Cannon. I had a bit of experience before the class but this class has made me think critically about what it means to be a computer scientist, and how becoming a computer scientist is more than just programming. I think Cannon is engaging and hilarious during lecture, and is great about answering questions throughout class. He is incredibly understanding and looking out for the mental health and well-being of his students. When I have come into situations this semester when I have needed an extension or extra assistance he has been extremely accommodating. He is also accommodating with ODS accommodations. Even if you think you do not want to be a computer science major, I believe you should take this class! Don't let people scare you away from it, it has been my best course this semester.
Professor Cannon is great. A truly wonderful teacher. That does not mean he is easy; he is expectant because he wants to do justice to both his students and the reputation of Columbia in the Computer Science community. Cannon is a tough but fair grader. Go to his office hours if you need help as he is more than willing to lend a hand. I wish he taught more courses.
Adam Cannon is a great professor if you're looking into the computer science field. He is a very good lecturer and explains the material very well. Along with that he keeps the class light and interesting so you won't lose focus. This is not a lecture you can skip though (well you can but I would not advise it), the class moves very fast and if you don't go you could miss out on important information for the problem sets and programming projects. This is a great class to take if you don't have any experience in the computer science field. Do not be discouraged if you don't understand stuff in the beginning the learning curve is big for this class. Along with that the TA's are very knowledgable and will help a lot. They all have different office hours as well as on Sundays when you can go to the class room for more help. There also is a Piazza page for the class to ask questions and they will answer fairly fast. Also, the curve is pretty big for this class.
I really enjoyed this class. I had some programming experience in high school, which was very helpful, but there are lots of people who don’t have experience and still do well. If you are interested in the subject and willing to work hard, this class is very doable. Cannon wants you to succeed and so do all the TAs. There are tons of office hours, which you should go to right away if you are confused, especially at the beginning of the semester because computer science builds on itself. My advice is to start the projects early (seriously, look at the prompt before class and then try to do half of it by the next class and then finish before the deadline) and get help often. You might want to look at some online coding courses before hand, but it isn’t necessary. Many people take this class having never looked at code before in their life and are fine, but it is definitely harder because coding is a new way of thinking that might not work for you. Also, it is important to go to class because there were several questions on the final that are based on programs we went over in class but weren’t explained in the textbook.
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'.