course
Introduction to Computer Science for Engineers/Applied Scientists - Python

May 2021

I had no background in computer science whatsoever, and I found this course pretty difficult. I liked Professor Bauer, but I feel like because many students in the class were already familiar with a lot of the material, he moved too quickly. Each project took many hours, and I did not know how to do parts of them, despite attending every class. I also got points taken off for things that were not specified on the assignment descriptions but were apparently programming conventions(?) that I was not aware of. Just because your code does exactly what it's supposed to do does not mean you will get full credit. The grade cut-offs were generous, though, and I ended up doing alright. I think you only needed like an 80% for a B+ and like 65 for a B. It's not a bad class, but it wasn't as easy as I expected based on other reviews. So just be aware of that if that'll also be the first computer science class for you!

May 2021

If you have any prior programming experience at all skip this class. The entire course content could be learned in max one weekend. Stopped attending lecture after the 2nd or 3rd class - they're incredibly dry and focus on random minute details. Projects are generally easy and the quizzes are okay. As for the prof. - he seems nice enough in class but he's not really a nice person if you talk to him outside of lecture (YMMV). Overall I took this course to add Python to my skillset as a CS major but this class is really directed towards those with literally no programming experience at all. You also won't really learn much Python either as he spends a LOT of time going over pretty arbritrary aspects of Python (like 90% of the course is just formatting stuff).

Jan 2021

Professor Bauer is the best professor I've ever had!! I went into the class having no prior experience in Python, but he explained things extremely well and I now know how to code "mini-games" if you can call it that. I know many people say his lectures were dry, but I felt the opposite (for the most part). He even showed us a website filled with pictures of CATS following the Fibonacci sequence to add some spice to the class. The TAs for the most part were also really helpful and readily available to answer questions even outside of their OH. I learned a lot from prof Bauer and I would recommend this class to anyone who is looking to dip their toes in comp sci especially since there's no requirement to read the textbook in this class!! The workload is not too much. 4 individual projects and 4 group projects. There are also 2 quizzes and a final. I found the quizzes/exams to be quite hard and failed the first one because I'm a very slow test-taker, but Professor Bauer went over each question I got wrong during a private Zoom session and was super patient with me. Anyway, take this class if you are thinking about it!! It's great :)

Jan 2021

Bauer is a sweetheart, and a fantastic teacher. His wholesome smiling face absolutely made my Tuesdays and Thursdays. 1006 is a great first programming course - I had no prior experience and found it doable, and actually pretty fun. His lectures were always dynamic, class materials were easy to understand, and homework problems were very chill. The quizzes are pretty tough, but it ends up balancing out (and the curve is nice).

Dec 2020

DON'T TAKE UNLESS YOU HAVE EXPERIENCE IN JAVA (if you can avoid it). Do not take Bauer's sweet, sweet smile and precious accent for granted. The TAs are awful and grade sporadically- on the first group assignment, each group member had a different TA and our grades ranged from 68-98. I think he has the best intentions. Truly. There are some concepts that came up on tests that you would only recognize with coding experience under your belt, and the lectures are painful to sit through. Unless you're willing to spend far more time on this class than you had planned, it's not the move. (Unless you know what you're doing already, in that case, easy money baby you got it)

Mar 2020

If only Tim Paine could teach. Two weeks into the course, we spent half a lecture asking questions about HOW homework works. Nope, not the codes we have to write nor the content we are supposed to learn in class, but simply HOW to submit homework. After that class, someone posted a question about homework on Piazza, and Tim basically called him out for "not going to class", though as someone who went to class I had the same question. Professor Paine is more than disappointing. His barely teaches and doesn't have a clear syllabus at all about what content we are supposed to cover. Going to lecture makes me more confused than not. For homework assignments, we lose points not by wrong or incomplete answers, but for stylistic headers he briefly mentioned in class but never clarified on the homework assignment itself. Basically, he takes points off for things we didn't even know we had to do. I won't even make it to the midterms because I will be dropping this course for my sanity.

Feb 2020

He is literally one of the worst teachers I have ever had. Not only are his lectures absolutely useless, he somehow manages to make the homework assignments incomprehensible to anyone that has not taken Python before. He doesn't know how to teach to ANYONE, which makes the class absolutely miserable to sit through and his personality is absolutely awful when you approach him for questions. His slides are literally pointless bc he doesn't label anything. He's also rude on Piazza so you feel stupid for asking questions, and is not receptive to emails AT ALL. If you can avoid taking this class, NEVER TAKE IT.

Feb 2020

Bauer is a great professor. I had no programming experience before coming to Columbia, and taking 1006 with Bauer has made me strongly consider a major in CS. He is approachable, kind, and fair, and he really does care for the well-being of his students. While his lectures can be dry at times, his notes concisely lay out everything you need to know. I thought the quizzes and the final exam had some minor tricks, but they’re probably super easy if you have prior programming knowledge. The TAs are some of the best I’ve had in any of my classes - they’re patient and more than happy to steer you in the right direction without giving away too much. The head TA Spencer was always on top of hosting review sessions and preparing slides/Kahoots, which I found to be incredibly useful. As a whole, if you have to take 1006 (either because you’re in SEAS or because you want a gentler start to CS before taking 1004), I strongly recommend taking it with Bauer. He’s currently on parental leave this semester, but I hope to take more classes with him in the future!

Jul 2018

I honestly have the world of respect for Professor Ferguson. There were times in the semester that I was complaining a lot about this class. As someone who had never taken programming or computer science before, I walked in and I was immediately extremely confused. I went to the lectures, but I felt like they might as well be in French. However, Professor Ferguson realized that there was something wrong with this class. He asked for a lot of our feedback and drastically restructured how he taught later in the semester. Now, don't get me wrong, it wasn't perfect. But the fact of the matter is that he went through a world of effort to make the class better for his students. There was also some confusion pertaining to assignments, but I think that will be refined over time. Also, his office hours were incredibly helpful. He would make extra office hours in the weekend to help students. Again, with zero programming experience, this was key for my success in this class. The extra credit opportunities were also really helpful. Sure, he has his sassy moments, but I think he has a lot of respect for his students and a high commitment to the class.

Apr 2018

Professor Ferguson is the kindest professor I have ever had at Columbia. He is on a mission to singlehandedly take stress culture out of the computer science department. Take his classes. Go to his office hours. Be his friend. He will be there for you, and his first concern is always your well-being.

Apr 2018

I took 1006 with Bauer in Spring 2017 and AI in Fall 2017. He is an incredibly nice person and very organized. His lecture notes are helpful, and as a person who avoids reading the textbook, I found that convenient when reviewing for exams. Bauer does have a German accent but I don't think it is difficult to understand. Although he explains concepts well and respects questions, his lectures can sometimes be a little boring to follow. But if you're willing to pay attention, you will learn enough to do well in the class. He tries to get students excited about AI & ML --there was a simple ML assignment in 1006, and assigned readings in the AI HWs. HW prompts are so detailed to the point where all you need to do is implement it in Python, and exams are straightforward so in terms of difficulty, it's not hard to succeed in his class. 1006 is a required class for many, but whether or not to take AI is a question to consider. Whether you take it with Ansaf or Bauer, the class itself doesn't go very in depth in AI. It's a nice intro and a good class to tack onto some other CS workload--teaches some game theory, deep learning, and a little stats stuff. I had fun but if you're genuinely interested in AI, just go have a conversation with Bauer. Whatever you choose, good luck in your CS career! Overall, I do recommend Bauer and hope to see him improve as a lecturer.

Jan 2018

Prof Bauer is a very kind and helpful man, who gives extremely dry lectures and unnecessarily difficult homework. Most of the time I did not even bother to go to his class. He uploads every lecture note, so that was helpful. He is really boring and it was really hard to concentrate in class but if you actually go to his office hours, you will see that he is very patient and will try to help you as much as he can.

Dec 2017

Disclaimer: I went to two classes total. I can't speak to his teaching style, but Dr. Bauer organized and designed the class very well. The coding exercises on the homework were generally simple and easy. For the programs that required a little more thought, Bauer provided skeleton code that tended to trivialize the problem. The midterms and final were fair. The tests both consisted of A few true/false that required you to know some small nuances of the python language. A few short answer about interpreting code. 1-3 simple coding exercise that required only basic control structures. Honestly,if you don't need this course as a requirement, you should just teach yourself the material. Otherwise, it's still a solid class to leisurely learn the bare basics of python. Also, his lecture notes contain everything you need to know.

May 2014

If you've never had any programming/Computer Science, your first class will be a bit rough, but Cannon warns his students of this. For me, the first month or two were not too challenging, but mid-semester I hit a wall. Try to to the TAs before you feel confused, and if you feel the slightest bit confused, definitely go the TA or get a tutor. Makes life much easier in the long-run. Cannon is a great lecturer (especially for python!) and throws in a good number of jokes (that are actually funny!!) He is approachable and tries to make his introductory classes challenging for all but also accessible to people who aren't taking his class for the major. He also stresses the importance of improvement, and is willing to work with you if you scored really badly on the midterm as long as you improve on the final. The TAs for both intro. classes are great! For Java, study your vocab. A LOT.

Mar 2014

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 get answered until after the dealine (though to be fair, he warned us that he would take minumum 1 or 2 days to respond due to the impressive amount of emails he gets). Overall, although Cannon is a good teacher, he is not good for this course. The learning curve is very slow for the first 3 weeks, and gets incredibly hard after that. While about half the students in the class have programmed before, for the half who have not, the problema set take significantly more hours tan the 8-12 Cannon gives as reference. So start early. DO NOT LEAVE IT UNTIL THE DAY BEFORE OR YOU WILL NOT FINISH. Avoid this class unless you actually have to take it or you are pursuing a mayor/minor/concentration/ect in computer science or related fields. Takes up more time tan what is justified for a class that does not related or is not required for your degree (it is ridiculous how much time it takes away from studying for those clases which actually count towards your degree)!).

Jan 2014

First off, there are 2 types of people that take this class: those who have programmed before, and those who have never programmed before in their life. If you fall into the latter group, like myself, I HIGHLY recommend reading up a bit on Python before you take the class because the learning curve is steep. This review will come from the perspective of someone with no former programming experience: Intro to Comp Sci for Eng/App Sci is still in its 3rd year of infancy, so Adam Cannon is still developing the curriculum for this class. Adam Cannon is a really nice guy who often makes the types of sardonic jokes that provoke a chuckle or two, verbally assumes that his class hates him, and gives riddles at the beginning of class to those students who already know the material and can afford to spend the duration of class pondering the riddle, life itself, or if they should attend the next class. Lectures consisted of him going through topics rather rapidly (for someone who knows nothing of Python) and explaining examples of programs posted in CourseWorks. For people with programming experience, the feeling of rushing may not have been the case, but some topics he introduced--especially for the homework--could be quite challenging. We did not have a textbook, which I think would have been helpful, but I believe he is getting one next semester. Often in class, Professor Cannon would ask if there were any questions and be greeted by silence and blank stares, to which he would respond, "If 1 of you doesn't understand something, that means 10 more of you don't understand it either," sigh, and move on, so ASK QUESTIONS if you don't understand something. Those afraid to ask questions will be extremely grateful that you did. Homework consists of bi-weekly projects that can be very tricky, so try not to procrastinate on these because Professor Cannon will answer questions about/go over the homework in class sometimes. That being said, he will not baby you and give you the answer, only try to lead you on a path to finding the right answer, both in class and in office hours. The TAs are all awesome and extremely nice (even if they are all really busy), and I highly recommend going to their office hours. Both the midterm and final are written and doable, but you should study for them, no matter what programming background you have. Overall, although this can be a challenging class, Adam Cannon is a satisfactory teacher, but it is up to you--the student--to ask him for help if you need it.