Computer Science · Columbia University
tbh I would recommend having a bit of coding experience prior to starting the class. The class is split into two halves: in the first half, all the sections are together to learn foundational python skills, and in the second half, you split into your respective sections. I definitely did learn how to code, but since you learn all the foundational skills in essentially 6 weeks, I feel like my skills are still a bit lacking. If you want to actually learn Python, I would maybe recommend an Intro Python course instead of this. For econ section: The second half of the course was much harder and seemed very targeted for those interested in finance. It mostly covers probability and databases; for our projects, we built monte-carlo simulations, did basic financial modeling, and combed through stock data. Practical and useful concepts, although I found it very advanced for a class that is supposed to be for beginners and non-majors. FOR BARNARD ECON MAJORS: this class does not fulfill econ reqs. do not make my mistake. take only if interested.
Prior to my beginning I heard good things about Cannon, and I am happy to say that they're true! His course is very difficult, especially to people without a background in programming but if you put in the time he will assist you in any way he can. Cannon even went above and beyond for me, helping me in a more personal manner.
I love Adam Cannon and I loved this class. As someone with ZERO experience in coding or any CS I was scared going into this class. I actually almost dropped this class because I was so scared, but the TA Griffin (shoutout Griffin) talked me off the edge and I'm SO HAPPY he did. This class was not by any means easy. It was definitely tough.....did I walk out of some classes genuinely so confused...yes......did I walk out of some classes feeling like a CS god....yes.......that to me was the temperament of this class. I think Professor Cannon is a great teacher, but to me, more importantly, a great human. He teaches a big class, but if you go see him in OH he is genuinely interested in who you are, your story, etc. which to me is refreshing at Columbia. He is open to answering any questions and creates a very stimulating class environment. My advice for this class is to actually attend class and be present. It can be a tad on the boring side sometimes, but to me the material really started to sink in when I was making sure I understood his every step. Not just sitting in class to sit there. This class is amazing for non-majors looking to dip their toes in the CS pool to see if they like it. To me, the hardest part was the first few weeks.....no one teaches you how to think like a coder which to me is 75% of the struggle. Once you learn to think like one and can figure out how to…
Genuinely an amazing guy. I was really worried going into comp sci as it was a topic I had never covered before but Professor Cannon was the highlight of most of my days in my first semester at Columbia. Always comes to class with positive energy, always open to conversation, and genuinely wants to teach and answer peoples questions. If you show interest in the topic and work hard, he'll recognize it.
This is heavily based on which TA you have. Adam doesn't teach this. It's all undergraduate students who teach this seminar
Professor Cannon is, in my opinion, one of the best educators I have experienced in my entire life. He is very very knowledgeable about the subject. But he is also able to transmit that knowledge so that his students understand it. He explains clearly, succinctly, and well. Cannon is always available in his frequent office hours, and the TAs (of which there are about 20, and all of whom are amazing as well) also have office hours every day (including Sundays and occasionally Saturdays). You get 120 hours of "grace time" in the Spring semester (I believe it's 150 hours in the Fall). You can use all, none, or any amount of this. TAKE ADVANTAGE OF IT. It is an incredible resource to have. As for the workload: I had very minimal CS experience coming into this. However, I've still managed to understand everything he talks about because the man is a supremely good lecturer. If you have the opportunity to take a class with him, do not under any circumstances switch out! It is worth changing the rest of your schedule to accomodate his class.
There wasa lot of sexual tension between these two... it was very distracting in what i wanted to be a simple home economics class. i didn't learn very much, but i definitely learned a lot about myself.
Adam Cannon is not a good profesor for this class. He is undeniably good for the Intro to Java, but my experience in Python is negative. He knows his stuff, and while excuses have to be made since this is only the 3rd year this course exists, he is still refining the curiculum. However, while the cotent of the lectures was interesting (read: sometimes, other times not falling asleep was hard) they were only vaguely related to the homework, and most of the time, were it not for online documentation on Python, me and all my friends in the class would have failed. Although he leaves time in lecture for questions, his sometimes sarcastic answers and interactions with students discourage many from asking. Oftentimes, he will not actually answer the question posed in class, just tells you to "deal with it" in a roundabout way, or gives a non-sensical answer. His office hours dont help: although he holds the same amount of office hours as other professors, he is teaching about 400 students at a time, so there is always at least a 10-20 student line waiting to talk to him during office hours. To be fair though, there are about 5 TAs, though they often are not clear on the specific requirements of the assignment and will sometimes give you wrong information if you ask a mildly specific/complex question on the problem sets. Desperate emails sent the day before the homework is due dont g…
Professor Cannon is great. While his lectures aren't always structured like they're coming from an outline you can copy down, they aren't boring and they do get the information across. The point of Discrete Math is to make you learn to think through problems, and few problems in the real world just appear in your head with a clear path to get you from A-B-C-D-E. If it were that easy, it wouldn't be a problem that you needed to learn how to solve. When he lectures, he doesn't just go A-B-C-D-E, he tries to get you to think about the process behind getting to E. The class covered a lot of material very fast, and it definitely helped if you had a rudimentary familiarity with things like statistics, logic, and counting. But if you didn't he gave enough information that you should have been fine. His lecturing style is a bit free flowing. He seems to have an ordered list of a dozen or so things to get through each lecture, and will work through them. He does enjoy occasional diversions to related topics. He clearly likes the material and manages to keep what could be a very dry topic interesting. He welcomes questions, and is one of the best professors I've seen at being able to explain concepts multiple ways when people don't grasp them. If you ask a stupid question, he won't sugar-coat his response, but he won't out-right mock you either. And in one-on-one interactions, he's grea…
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.