This course is an introduction to using computation to solve real problems. The course is aimed at students with little or no prior programming experience who have a desire (or at least a need) to understand computational approaches to problem solving. Some of the people taking the course will use it as a stepping stone to more advanced computer science courses, but for many, it will be their first and last computer science course. Since the course will be the only formal computer science course many of the students take, we have chosen to focus on breadth rather than depth. The goal is to provide students with a brief introduction to many topics so they will have an idea of what is possible when they need to think about how to use computation to accomplish some goal later in their career. That said, it is not a “computation appreciation” course. It is a challenging and rigorous course in which the students spend a lot of time and effort learning to bend the computer to their will. No previous programming experience required. Those who earn a passing grade will get an honor code certificate.
Prior experience: 1 year of computer science education.
This was my first MOOC, and up to this point, the most rewarding one. The way it approaches CS is the best I've seen so far, giving real examples of usage of all the concepts, it's really motivating.
Regarding difficulty, it has the perfect balance: the challenges are demanding but not so hard that you feel frustrated or can't complete it.
I totally recommend this one, but I advise you that if your only goal is to learn Python, maybe it is not the best choice, as you will use a lot of time on others subjects rather then just programming.
Challenging and rewarding introductory CS course. Downloading the Python interpreter is practically mandatory. If you can't install software on the machine you use, this may not be the course for you. My only complaint is that when they show the code he's working on in the videos, it is too small and fuzzy to read.
This was probably the best introduction to computer programming I have ever seen. The professors are engaging and the lectures are short and to the point. Finger exercises between lectures really drive home the points that the professors were trying to make. The programming assignments were challenging enough to make you feel like you have accomplished something, but the specifications were generally enough to get you through it. The forums were invaluable to completing the assignments and were full of very bright students with excellent questions. The Midterms were very challenging, especially the first one. I liked how once the fundamentals of Python were covered, the focus moved to solving real world engineering problems, but I still feel that there is a lot more to learn about Python. I'd take another class from this MIT group in an instant.
Very disappointed: video lectures are useless, the only thing you see is professor's face, discussions are in the comments below the problem set , to find the answer to your question you need to unfold comments to all posts. Add this time up to 12 hours of weekly work. If you're late with the homework submission, you cannot even check the correctness of it - NO check button after the deadline. At this point you either need to skip to the active lesson or you're on your own.
This is am amazing class. One of the best so far MOOCs I've taken so far. I not only learned python, but also computational thinking that expands the power of programming. As a non-cs major heading into a master's CS program, the exposure to this class gave me tremendous confidence in moving into the next level. the psets, coupled with exercises between lectures fortified my understanding of the materials seamlessly. I highly recommend this class to anyone interested in learning python, and programming in general.
I thought this course was HARD. Devoted many more hours to it than I anticipated and barely got above the passing mark. That said, I learned a lot and found it to be of higher quality than several undergraduate courses I took as an enrolled student at a respected university. I am not a programming type and my brain does not naturally take to this kind of material. If you have a thick skin and are interested in the topic, this is the course you want. Many of the concepts helped me substantially in understanding how to use other programs like R effectively.
This is an excellent course that will teach you some Python, but more importantly will teach you algorithmic thinking and how to break down large problems into simpler ones. I came into it with some self-taught Python knowledge and found it challenging but manageable. Absolute beginners may want to first try Google's free Python course or some other quick introduction to the language.
The problem sets are very hard, but also the best part of the experience: they drive home the lecture concepts and completing them successfully makes you feel accomplished. Some examples: we had to write programs that could monitor news feeds over the internet, simulate the behavior of a Roomba vacuum, model the growth of viruses in a sick patient, and determine the best path between nodes on a graph. You always have two weeks to complete a problem set, which is enough to give you some flexibility yet still allows you to stay on a steady schedule.
There were some logistical difficulties with the course: the last problem set wasn't released on schedule, and so the concepts I learned towards the very end of the class felt a little rushed and untested. But I imagine that these wrinkles will be smoothed out in the future.
In short: it's a challenging class for CS beginners, but definitely recommended.
Excellent class. It is a very serious introduction to programming, beyond the usual college introductory level. It discusses some data structures and a good number of algorithms. Its programming assignments are challenging. The presentations are exemplary in their precision and rigor. There is not one minute wasted during the lectures.