Introduction to Computer Science and Programming Using Python
This course is the first of a two–course sequence: Introduction to Computer Science and Programming Using Python, and Introduction to Computational Thinking and Data Science. Together, they are designed to help people with no prior exposure to computer science or programming learn to think computationally and write programs to tackle useful problems. Some of the people taking the two courses will use them as a stepping stone to more advanced computer science courses, but for many it will be their first and last computer science courses. This run features lecture videos, lecture exercises, and problem sets using Python 3.5. Even if you previously took the course with Python 2.7, you will be able to easily transition to Python 3.5 in future courses, or enroll now to refresh your learning. Since these courses may be the only formal computer science courses 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, they are not “computation …
Courses : 2
Specification: Introduction to Computer Science and Programming Using Python
40 reviews for Introduction to Computer Science and Programming Using Python
Add a review Cancel reply
This site uses Akismet to reduce spam. Learn how your comment data is processed.
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.
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.
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.
Gabriel Candal –
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.
This is a very good class, I’m currently taking it and maybe the pace of the course is kind of fast, but it’s a very good course.
Ostap Komaryanskyy –
Finished this course with 98%. Very interesting and useful, even though, I’ve done it on my fourth year studying CS at the university.
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.
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.
Tony Seng Min Paek –
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.
This course has been my best online ‘tutorial’. Instructor approaches teaching from ‘first principle’ and for me that is the way to go. I was able to grasp the fundamentals of programming on the fly. I entered the course with the aim of getting first hand education on python programming to enable me write scripts for digital design as an architect but I chanced upon a requisite knowledge I never earlier imagined. Each lesson was modest in design, well defined in specific objective, and understandable information. It covered a wide range of lessons needed for computer programming and would recommend it for anybody who wants to learn computer science.
Brian Khor Jia Jiunn –
For beginners, make sure to do extra reading and assignments outside of the course (but recommended by the course) in order to get the most out of it.
Robert Grutza –
This is an excellent introduction into Computer Science using Python. The instructor is very clear in his explanations and the assignments are challenging, while also good learning experiences. This is a top level MOOC – excellent.
Daniel K O’leary –
Video and audio quality (thus far) is a little poor by 2015 standards but the course content is deep, engaging and applicable. Both easy and challenging problems are interspersed at just the right intervals to keep you attentive and learning.
Prose Simian –
This is a well–crafted, fast–paced introduction to Computer Science, though a little dry at times. I think it’s based on the introductory ‘CS for non CS majors’ course at MIT.
The pace, relative complexity of some of the subject matter* and difficulty of a few of the exercises – I’m not a gifted programmer and I found a couple fairly challenging despite some background – might make it better suited as a second (or third) course for some, despite using Python (perhaps the easiest programming language to pick up). Rice’s IIP or Udacity’s CS101 – which I’d both done earlier – would both be good preparation (or fallback options, if you try this and find it too hard).
I just completed the final exam, which is untimed (you get a long weekend to complete it) & accounts for 25% of the grade). I seemed to test a pretty representative selection of the material, at a level comparable in difficulty to the homeworks.
*It includes introductory material on object orientation (including inheritance), recursion, data structures (trees) and algorithms (including big O notation, tree search).
Sillas Teixeira Gonzaga –
I think this is best introductory programming course for those who want to dive into Data Science. The lectures are well designed and the exercises are quite challenging.
Ilya Rudyak –
This course is hard like other MIT courses. Be prepared to work a lot to perform well. A good news that it’s not that hard like previous course in functional programming. The second part is about scientific applications of python that is not very common for such courses but natural for MIT. Personally I was highly interested in Monte–Carlo simulations.
Maxime Zabiego –
Very useful course, with plenty of practice exercises. Covers programming methods beyond just the python language. A very good introduction, that goes fairly deep into the concepts. I hesitated rating it intermediate, rather than beginner, for this reason: it’s a more demanding course than that proposed by University of Michigan (Dr Chuck), for instance.
I don’t consider this an introduction to Python. They expect you to solve some of the problems without giving you the information in the lectures.
Okay, so for someone who has never coded, and wants to learn to program, you can safely assume this is the best course, yet the hardest out their. Even for someone who has programmed for a year or so, this course can be tough. So, if you are merely starting, don’t feel belittled. This is a magnificent course, and even if you just complete it, without scoring good, trust me, you will take many things out of it for future. Will normally take around 12–15 hours a week, but if you are new might take long.
Doris Smith –
An excellent introduction to thinking computationally. I liked the instructor, and the exercises and problems sets largely struck a nice balance, being challenging but not discouraging. The midterm and final, though, I found very difficult.
The pacing of the class is also a little uneven: we lingered over the easier topics early on, but then sped through more demanding topics, such as object–oriented programming, toward the end of the course.
This is very good course,
but I don’t believe is suitable for absolute beginners
This is not a learning Python course,
this is an introduction CS using Python,as the title of course says.
Thong Buu Tran –
In summer last year, I took this course as my first course to learn CS and I was satisfied with the quality and rigor of this course. I learned many CS concepts and did practice with tons of programming exercises. The professor’s high quality lectures and active discussion forum were really helpful. I think the high quality of edX platform itself also contributed to my success in this course.
Bhuvan N –
Topics are covered rigorously, the exercises & quizzes are helpful in learning, the weekly coding assignments are very challenging. Overall a great learning experience.
Nicole Debonet –
I just finished this class. It was much harder and moved much quicker than any other MOOC I have taken. I learned a lot, but it was a lot more work than I had really anticipated. I am a complete novice with no programming experience, so perhaps that was my fault.
I did finish (just this second) and did get a good grade, but I put far more time and effort into the class than I had expected. Be prepared!
As an example the first 3 ‘week’ projects are due 4 days apart (Thurs, Tue, Fri due dates) so the ‘week’ concept was a bit misleading. Again, I really enjoyed and learned a ton, but I hope others know their expectations.
Also a lot of the work is self taught. You need to go out and find the answer far more than expect the answer to be in the videos or exercises.
I really enjoyed this course. Prof. Grimson’s lectures were a pleasure to watch. I had very little programming experience (just Python for Informatics on Coursera), so I found this course to be difficult, but very rewarding. I took it concurrently with the Rice python course on Coursera, and I found that the two courses complemented each other very well, though it was hard to find time to complete all the assignments for both courses.
Vicky Pang –
The many practice quizzes are very useful and I could follow the first half of the course but when I encountered a problem with an exercise around the middle of the course I couldn’t solve it and since I was too busy to find other help (e.g. books/resource persons), I was stuck and gone off track with the course schedule. So I had to drop this course. I’d recommend this course if you have someone around who already knows programming because as with other computer stuffs, sometimes a small thing can get you stuck and you can look at it a million times and still can’t see where the problem lies.
Dubravko Gacina –
Excellent introduction class for anyone wanted to learn Python either you are a beginner/student or a professional experienced engineer wanted to learn something new. The class is somewhat medium–to–hard to follow and requires quite an attention and regularity of attendance (it’s an esteemed MIT after all) but presenters and authors MIT’s Professors John V. Guttag, Eric Grimson and Ana Bell did an extraordinary job of making a learning curve as gentle and pleasant as humanly possible. Personally, to me it’s the very Eric Grimson’s teaching style which kept me going.
Great course! But you have to work a lot, not get frustrated and be ready to think out of the box and get out of the comfort zone to solve the problems.
One of the things to take away from this course for me was that coding of complex programs is not done alone. Brainstorm with some one else if the approach you are taking to solve the problem is on the right track. Pseudocodes are important.
Another thing I learnt in this course is that they make you work hard on the Problem sets so that you are well prepared for the Finals. You may have difficulty winning the battle but you will win the war because you are well prepared for it.
At the end of it, it’s real power when you tell the computer what you want it to do and it does that!
Giovanni Volante –
No bell and whistles, a classical approach and a wonderful professor, Eric Grimson.
One advice, especially for student whose English isn’t mother tongue: if you find yourself in troubles with tests, go back to the video lessons. They are dense. When I found myself in troubles, I often taught that something has not been explained, but I had always had to admit that it was my fault, since I lowered my attention during the view.
The course moves very quickly and has required 20+ additional hours of work weekly beyond the instruction. The lectures are very contained in their scope, but the scope of the problems jumps far beyond the lecture and requires much unsupported research (really guessing, in many cases!). This problem could be easily rectified with a more gradual evolution of problems. (Bridging problems between the current short end–of–lesson questions and complex weekly problems.) On–screen the graphics are difficult to follow with a very small font making it hard to see key characters. The execution screen is full of past work and so that with the phrase “Let’s see what this does!” it is unclear (and obscured) what was typed in and what resulted since you visually have to jump from the code screen to the execution screen in the midst of lines of text (and again, a very small font). And while this may not be the typical “requirement” of a college course, the examples of where and in what context a given code might be utilized is much better provided in other online courses. The course content on the whole is solid but half–baked in execution with poor visuals, pacing, and contextual application to the real world.
Paul Palmer –
I came to this course to see what Python is and why I should want to invest my time going down the Python path rather than Ruby, Perl, Java, C++ or a thousand other programming tools that I could find. Unfortunately, I found no description of Python or description of its real world usage or comparison to anything else. So I will just keep looking. I did watch the short intro video but found no guidance there either.
Shiraz Suleman –
Course is really good, maybe a little easy. I think it would be more difficult for a beginner which is the audience it is targeting.
Really excellent one. Even without any prior exposure to the programming one can grasp all the fundamental ideas, presented in course, pretty easily. The other important characteristic is very active discussion forum, where it is possible to find support or get answers for a variety of questions. And, third, despite frequent claims to the contrary, automatic grader gets the job done – with a proper implementation throughout all the course I haven’t managed to get any errors or incorrect behaviour from it.
Elvina Valieva –
This course covers a lot of ground, so it may be demanding for a beginner. However, if you have some programming experience and just want to get all you knowledge into a system and learn some python it can be pretty manageable. Problems sets can be challenging, but not if you’ve solved similar problems in another language. So I recommend it to someone who has done at least a CodeAcademy course, so you wouldn’t feel thrown into a deep end right away. Otherwise it’s a great course. I personally enjoyed the instructor’s sense of humour and barely contained enthusiasm for the subject.
Estefania Cass. –
There are no words to explain the amazing quality of MITx courses. When you take an MITx course you are guaranteed to have an MIT–level education.
If you are looking for a CS course that provides a rigorous, challenging and very rewarding MIT–level introduction to this field, you are in the right place. This course will be worth your time and effort.
This course teaches the fundamentals of programming and algorithms in a very rigorous, fun and exciting way. There are weekly problems sets and practices problems.
You will learn skills that you can apply to other programming languages and the foundation to take more advanced courses.
The forums are always a great way to ask for help if you need to ask your classmates or Community TAs any question.
I love the community around this course. You truly feel supported through the experience.
Don’t think twice if you would like to learn CS! This is the right course for you!
I’m taking this class as a refresher and as a way to dig into some sorting algorithms that I haven’t used in awhile but if I was new to coding/python, I would find this class to be very confusing. The lectures aren’t presented very clearly. The slides are disorganized, often times with the professor making random, nonsensical scribbles that are more distracting than helpful. When you do see the code example screen, there’s old code, unused code, and sometimes superfluous code that would be extremely confusing to a beginner. Topics in the first few weeks don’t seem to build on one another in a very logical manner. The exercises seem to be very pedantic in nature. The tests that run against your solutions to the exercises require the solution to be entered in an exact format. So for example, if you enter in “1,2,3,4” your solution will be rejected since the tests is looking for “1, 2, 3, 4”. There’s a bit of irony in that a class on programming doesn’t have a test capable of parsing out the solution you input. Maybe I’m not paying as much attention as I should, but I swear there are exercises that ask you to use concepts you wouldn’t know about from just having watched the lectures. In addition to these issues, there are some community TA’s that seem to be almost combative in the class discussion forums. I’m really hoping that this class improves the deeper in you get. I’d imagine that a lot of people take this class purely based on the prestige associated with the MIT name but if you’re new to coding you’d do yourself a favor by either taking Harvard’s CS50 or grabbing the topics in the course and finding one of the hundreds of bootcamp blog posts that cover these same topics.
Salvador Pio Alonday –
daslk klsd fklasjdf lkajsflk jaslk c iajwoie xcn xio oq o o no ja qp p dpj aoidn ff xaalkd j oq p di faoif q pq nj diof jalk nlkjfk
The lectures and text book for this course are nearly worthless. The first couple of weeks are easy, because I knew some python coming in. But when the material gets difficult, you are essentially on your own. The exercises and the problem sets bear very little relationship to the lectures. The teacher seems sometimes more interested in showing tertiary level details than in explaining the main concepts. Not recommended.
Worst course for beginners. I found freecodecamp much more helpful if you are jist beginning to code. If you already have some coding experience and knowledge tgen it is quite useful. However since I was a beginner when I started this course on edX, I didn’t find it helpful and my ratings are for beginners.
Ruilin Yang –
A life–changing MOOC. I take this MOOC aside from my work as a government clerk in China in 2016, which is very unsatisfactory. At that time, I was 24, graduated from an Econ & Business university, beaten by the humiliating experience of working in a rigorous hierarchy, and most relevant, never touched programming.
This MOOC helped me to recognize my potential in the field of computer science. It is demanding, even might cause you scratchingly uncomfortable. But it is definitely a worth try. As the saying goes, “good things take time”.
I finished the course a bit more than 2 years ago, and guess what? From a speck of humble dust in the giant bureaucratic machine, to a first–year Bachelor student of Computer Science at a recognizable university at the age of 26!
My life trajectory is running on a new track, and in the determination of this amazing transition (it is especially hard if you are from the developing world where the society is not so tolerant), I’d say this MOOC plays a fundamental role.
Thanks to edx, thanks to MITx!