Introduction to Computer Science and Programming Using Python

Provided by:
9/10 stars
based on  246 reviews
Provided by:
Cost FREE , Add a Verified Certificate for $49
Start Date In Session
Introduction to Computer Science and Programming Using Python

Key Concepts

lightbulb
We've created a summary of key topics covered in this course to help you decide if it's the right one for you. Click individual badges to see more courses on the same topic.

Course Details

Cost

FREE,
Add a Verified Certificate for $49

Upcoming Schedule

  • In Session

Course Provider

edX online courses
Harvard University, the Massachusetts Institute of Technology, and the University of California, Berkeley, are just some of the schools that you have at your fingertips with edX. Through massive open online courses (MOOCs) from the world's best universities, you can develop your knowledge in literature, math, history, food and nutrition, and more. These online classes are taught by highly-regarded experts in the field. If you take a class on computer science through Harvard, you may be tau...
Harvard University, the Massachusetts Institute of Technology, and the University of California, Berkeley, are just some of the schools that you have at your fingertips with edX. Through massive open online courses (MOOCs) from the world's best universities, you can develop your knowledge in literature, math, history, food and nutrition, and more. These online classes are taught by highly-regarded experts in the field. If you take a class on computer science through Harvard, you may be taught by David J. Malan, a senior lecturer on computer science at Harvard University for the School of Engineering and Applied Sciences. But there's not just one professor - you have access to the entire teaching staff, allowing you to receive feedback on assignments straight from the experts. Pursue a Verified Certificate to document your achievements and use your coursework for job and school applications, promotions, and more. EdX also works with top universities to conduct research, allowing them to learn more about learning. Using their findings, edX is able to provide students with the best and most effective courses, constantly enhancing the student experience.

Provider Subject Specialization
Sciences & Technology
Business & Management
22552 reviews

Course Description

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 updated lecture videos, lecture exercises, and problem sets to use the new version of Python 3.5. Even if you 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...

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 updated lecture videos, lecture exercises, and problem sets to use the new version of Python 3.5. Even if you 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 appreciation" courses. They are challenging and rigorous courses in which the students spend a lot of time and effort learning to bend the computer to their will.

Reviews 9/10 stars
246 Reviews for Introduction to Computer Science and Programming Using Python

Ratings details

  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars

Rankings are based on a provider's overall CourseTalk score, which takes into account both average rating and number of ratings. Stars round to the nearest half.

Sort By
Rahul Belwal profile image
Rahul Belwal profile image

Rahul Belwal

10/10 starsCompleted
2 years, 2 months ago
This is one of the best programs to learn compute programming. I would like to request you to please restart the course as I was unable to pay for the certificate in time, and I would like to take the certificate the very next time. Thank you in anticipation
Was this review helpful? Yes0
 Flag
student profile image
student profile image

student

10/10 starsCompleted
2 years, 2 months ago
A really use course for someone with absolutely no Computer Science or Programming background, who's looking to get start somewhere.
Was this review helpful? Yes0
 Flag
Lee Francis profile image
Lee Francis profile image

Lee Francis

10/10 starsCompleted
2 years, 2 months ago
Brilliant course. Complete beginner from the UK who wanted to learn some coding after having finished a physics degree with only experience of writing very basic for loops in TCL. Definitely recommend, even if you are a beginner just spend loads of time getting used to it and reading things online.
Was this review helpful? Yes0
 Flag
Lizhi Yang profile image
Lizhi Yang profile image

Lizhi Yang

10/10 starsCompleted
2 years, 2 months ago
This course showed me a new perspective of computer science and a new way of thinking! My gratitude to the staff@MITx, especially to Prof. Eric Grimson, who is very patient and to the point in his lectures! Also offering my thanks to fellow students who could not wait to help each other! You are great, guys!
Was this review helpful? Yes0
 Flag
Nick H profile image
Nick H profile image

Nick H

10/10 starsCompleted
2 years, 2 months ago
Excellent course! Concise presentation, clear explanations, good examples, thoughtful problems - everything was perfect. Professor Eric Grimson was fantastic, I hope he will teach more edX courses in the future!
Was this review helpful? Yes0
 Flag
Ikseon Kang profile image
Ikseon Kang profile image

Ikseon Kang

10/10 starsCompleted
2 years, 2 months ago
Absolutely, all 5 stars! It's such a great opportunity to understand the basics in Python language as well as computational theory. MIT is MIT, no more words necessary to explain. Prof. Eric Grimpson and other TAs and materials are great! It's sometimes painstaking to catch up the lecture, but you deserve it. I really appreciate MIT's lecture and materials. Thanks!
Was this review helpful? Yes0
 Flag
Joao Correia profile image
Joao Correia profile image

Joao Correia

10/10 starsCompleted
2 years, 2 months ago
I loved it, content is very useful,instructor 5 stars, platform without problems and intuitive. All the lessons and exercices were well explained and useful
Was this review helpful? Yes0
 Flag
Rotimi Akanni profile image
Rotimi Akanni profile image

Rotimi Akanni

9/10 starsTaking Now
2 years, 2 months ago
Course content is fabulous, instructor is awesome and MIT rocks. This course enlightened me and developed my love for python...it's been fun all through
Was this review helpful? Yes0
 Flag
Marty Chung profile image
Marty Chung profile image

Marty Chung

10/10 starsTaking Now
2 years, 2 months ago
I highly recommend this course to anyone who has little or no knowledge of python nor computer science. Me myself has self-taught python with no prior computer science background from different online courses for just about few months before I found this course and this is one single course covers a lot more valuable knowledge than most courses I have learnt from combined. Most other python courses I have learnt assume that you have coded before and I found sometimes it's hard to understand why that has to be done in certain ways without computational thinking to back that up. This course covers not only the solid basic of python the language itself but also some computer science which I found super useful and open up my mind about the whole coding picture. Absolutely love this course. I give 10 stars out of 5. Highly recommended.
Was this review helpful? Yes0
 Flag
student profile image
student profile image

student

8/10 starsCompleted
2 years, 3 months ago
This course is amazing. It has a blend of everything. As adage says, teacher will always leave you puzzling to learn more and Prof. has done it. I am looking forward for further to this course. Thanks Prof.
Was this review helpful? Yes0
 Flag
student profile image
student profile image

student

10/10 starsTaking Now
2 years, 3 months ago
Best course EVER (and Prof Grimson was amazing)!!!there's nothig else to say; don't be scared by the assignments: the fact that can be tough (to me the diffculty was just right) will make you more proud when you'll pass them
Was this review helpful? Yes0
 Flag
Dewaldt de Klerk profile image
Dewaldt de Klerk profile image

Dewaldt de Klerk

8/10 starsDropped
2 years, 4 months ago
If you have never coded, do not take this course, this is NOT a beginners course. They say the textbook is optional, but it is not, the textbook is crucial as not all the material in the quizzes are covered in the lessons. $45 may seem cheap, but it a fair chunk of change when your local currency is worth 1/14 of a dollar.
Was this review helpful? Yes0
 Flag
Jaison Tiger profile image
Jaison Tiger profile image

Jaison Tiger

10/10 starsCompleted
2 years, 4 months ago
I took this course last year and I cant thank the lecturers and MIT enough for what they are giving back to the community with such endeavors. I'm planning to do it again this term to challenge myself further. I have also secured a job as a programmer from my introduction to this course. Keep up the good work and god bless :)
Was this review helpful? Yes0
 Flag
Atharv C profile image
Atharv C profile image

Atharv C

9/10 starsTaking Now
2 years, 4 months ago
The course was amazing and the content was extremely relevant and up to date. I had to work a bit harder than most would as I had no programming skills when I first took this course. But this course has changed my views about Computer Science altogether. Highly Recommended. A bit on the more difficult side but fun none the less.
Was this review helpful? Yes0
 Flag
Stuart Page profile image
Stuart Page profile image
10/10 starsCompleted
  • 0 reviews
  • 0 completed
2 years, 5 months ago
The content is hard. The concepts are difficult. As a complete beginner, I had to put a huge amount of effort into this course. However...it's all worth it. The feeling achieved when something you have constructed actually works, first in abstract and then in code, is incomparably satisfying. The lectures are well paced, and the content is relevant to the problems encountered. While at times this course can be so, so, so frustrating in places, it just makes it all the more worth it when finished. Completing this course inspired me to continue learning other languages and CS concepts. I would recommend it to everybody. On a side note, I'm terrible at maths, and this only hampered me in one or two instances. Don't worry!
Was this review helpful? Yes0
 Flag
Jonathan YOUNG profile image
Jonathan YOUNG profile image

Jonathan YOUNG

10/10 starsCompleted
2 years, 5 months ago
Very good course. I just wish there were no multiple choice questions and only programming exercices especially for mid-term and finals because i prefer solving problems.
Was this review helpful? Yes0
 Flag
Yousef X profile image
Yousef X profile image

Yousef X

10/10 starsCompleted
2 years, 6 months ago
A great course, trains your mind to solve problem you never faced before. Gave me a huge push to be more confident in myself, and be able to take other high quality courses. I think it is very recommended that you take the following course before 6.001, it is also a great MIT course: 6-189: A gentle introduction to programming using python I just could not complete it in time, because I didn't study for it for 4 weeks, because of school, but in total I finished it in 8-9 weeks.
Was this review helpful? Yes0
 Flag
student profile image
student profile image

student

4/10 starsDropped
2 years, 8 months ago
Frankly, I thought this course kinda sucked. Is the material relevant? Well, of course. MIT is teaching it. Is the material DO-ABLE? - THAT should be what is reviewed. The answer to that depends on three things: 1) if you have had any exposure to programming prior to taking this course, 2) the amount of time you have to put in, and 2) how resourceful you are. To elaborate, in general, I found the lectures insufficient in terms of the level of knowledge provided by the profs. I followed the lectures just fine. But when faced with the practice problems, that's when it became clear that there was a HUGE leap from what was presented in the lectures and the level of knowledge required to complete the problems. I found I needed to supplement the lectures often with outside sources (background - I've never programmed in my life - this was my very first exposure to it, so I was a complete beginner. That said, I am good at math - I tutor... Frankly, I thought this course kinda sucked. Is the material relevant? Well, of course. MIT is teaching it. Is the material DO-ABLE? - THAT should be what is reviewed. The answer to that depends on three things: 1) if you have had any exposure to programming prior to taking this course, 2) the amount of time you have to put in, and 2) how resourceful you are. To elaborate, in general, I found the lectures insufficient in terms of the level of knowledge provided by the profs. I followed the lectures just fine. But when faced with the practice problems, that's when it became clear that there was a HUGE leap from what was presented in the lectures and the level of knowledge required to complete the problems. I found I needed to supplement the lectures often with outside sources (background - I've never programmed in my life - this was my very first exposure to it, so I was a complete beginner. That said, I am good at math - I tutor HS math - so it's not as though I was trying to grasp something out of my league). While that was doable, it was annoying (call me old school, but I prefer having at least something at my fingers that I can learn what I need from - eg. a good text book, a good online source, whatever) and VERY time consuming. In relation to the former, what I found was that there really isn't a good place to go - anywhere - for truly introductory information about CS. I was able to find information online, but no one source was the "Bible" I was looking for. I got increasingly frustrated as the course went on, because the subject matter got more complex, but the lectures never increased content amount - you got the same one or two examples for increasingly complex subject matter (that, therefore, had a much wider range of applications and confusion points). So you became even less able to handle the practice sets and had to spend even more time teaching yourself with outside materials. If you're up for that, then by all means, go for it. I'm a working individual, so I just couldn't spend that kind of time on this class. I'm not saying this class can't be done or don't try it - I'm just giving a warning to people - especially those "absolute beginners" - that being successful at this class will require a LOT more time and effort than that prescribed by MITx (and since you have to supplement the material so much, I'd argue that MITx isn't really teaching you the class - they're more a resource you're using - along with a bunch of other resources - to learn something. As for EDx the platform, that's fine, but I think they should do more to provide supplemental materials that will help more people be successful - the forums are too inefficient to do that unless you enjoy reading reams of pointless chatter to find your needle in the haystack).
Was this review helpful? Yes2
 Flag
Engineering Student profile image
Engineering Student profile image

Engineering Student

10/10 starsCompleted
2 years, 6 months ago
The professor "Eric Grimson" is just awesome. I like the course's pace. He explains everything so clear and step by step that at the end of the course you have a concrete understanding of object oriented programming. I want to thank Eric and the edX team for this great course.
Was this review helpful? Yes0
 Flag
Paula Cavalcanti profile image
Paula Cavalcanti profile image

Paula Cavalcanti

10/10 starsCompleted
2 years, 6 months ago
really good class - This class is for beginners who are willing to work hard or whoever wants to test their skill - the videos are very good and cover a great deal of material. Prof Grisson does a really job explaining the material and if you have any question make sure to post it on the discussion board
Was this review helpful? Yes0
 Flag
student profile image
student profile image

student

10/10 starsCompleted
2 years, 7 months ago
I loved this course and highly recommended it to people with some experience with programming and also for novices. I have a decent amount of programming experience and tend to be quite hard-working ... so I really enjoyed this course. If you are not willing to commit the time and intense attention required by the course, you may find the course challenging. I loved the finger exercises (short quiz style questions) which encourage one to think about the subtle issues. The problem sets are incredibly satisfying ... you have this huge sense of satisfaction when you solve some of the more challenging problems. The programs we write in the course are really interesting. The TA's are incredibly responsive and respond within hours of a question being raised. In terms of improvements, I did not like the fact that we had to wait around for the materials to be released each week. So I wish that for future sessions they will release all of ... I loved this course and highly recommended it to people with some experience with programming and also for novices. I have a decent amount of programming experience and tend to be quite hard-working ... so I really enjoyed this course. If you are not willing to commit the time and intense attention required by the course, you may find the course challenging. I loved the finger exercises (short quiz style questions) which encourage one to think about the subtle issues. The problem sets are incredibly satisfying ... you have this huge sense of satisfaction when you solve some of the more challenging problems. The programs we write in the course are really interesting. The TA's are incredibly responsive and respond within hours of a question being raised. In terms of improvements, I did not like the fact that we had to wait around for the materials to be released each week. So I wish that for future sessions they will release all of the materials for the students so that those who wish to work ahead and finish up the course a little earlier may do so. The textbook which is optional is a fantastic resource. It's easy to read and quite entertaining.
Was this review helpful? Yes0
 Flag
Student profile image
Student profile image

Student

10/10 starsCompleted
2 years, 7 months ago
I started programming on my own decades ago but never had any formal grounding in CS beyond my own reading and experience. My career took me in a different direction but my passion for programming never died, so I enrolled in this course with the goals of getting a more formal grounding in computer science and also refreshing and improving my programming skills with a modern language in a modern programming environment. Looking at some of the other reviews here, I believe they are correct in noting that to succeed at this course, you will probably have to put in a lot more time than you anticipate. It's not an easy course. For me, I knew the basics of programming so the learning curve on writing basic code in Python was not steep. If you have no background in programming at all, you should expect to have to put in a lot of extra time and effort beyond the estimated completion times listed for each segment or exercise. You will also h... I started programming on my own decades ago but never had any formal grounding in CS beyond my own reading and experience. My career took me in a different direction but my passion for programming never died, so I enrolled in this course with the goals of getting a more formal grounding in computer science and also refreshing and improving my programming skills with a modern language in a modern programming environment. Looking at some of the other reviews here, I believe they are correct in noting that to succeed at this course, you will probably have to put in a lot more time than you anticipate. It's not an easy course. For me, I knew the basics of programming so the learning curve on writing basic code in Python was not steep. If you have no background in programming at all, you should expect to have to put in a lot of extra time and effort beyond the estimated completion times listed for each segment or exercise. You will also have to do a lot of independent reading to skill up on Python syntax (read the official documentation on python.org) and programming technique (stackoverflow.com is your friend). I don't think that should be a criticism of this course, however. It's first and foremost an introduction to computer science. You learn computational thinking and how to approach computational problems. Python is merely the tool through which we do that, but the fundamental skills can be applied to the use of any programming language. If you, as one reviewer put it, "thought this course kinda sucked" because you had to work at it, then learning computer science through MIT probably isn't for you. You only get out of something what you put into it. I work full-time, have a family to look after, and do other courses on the side, as well, but I still managed to get through this one. If you apply yourself, you can, too. And as I'll note below, you'll have plenty of help. Regarding the content and structure of the course, I think it was well organized and covered a lot of useful material in an order that made sense. The lectures were well presented and helpful, and the finger exercises, problem sets, and exams reinforced the material in a progressive way. Not everything was of uniform difficulty, so the course definitely does differentiate people who really know the material from people whose understanding is less thorough or complete. But that said, there is an active community of students taking the course with you, excellent TAs helping to administer the course, and the course works really well on the EdX platform. There are discussion threads for everything that easy to participate in, as well as to search and follow. As you might expect for an MIT course on computer science, they make great use of technology. In addition to learning new things and sharpening old skills, I also met a lot of really great people and it was an excellent motivator to help push me through the course. I do recommend getting the optional textbook. It reinforces the material well and you can continue to use it for the next course if you follow on to that. To offer a few tips for success, if you're having trouble getting your head around a particular lecture or concept, go through it once, take a break, then come back to it a second time. Work through the examples, play with the code, and ask questions of the TA and community where you need to. Do learn how to ask programming questions properly. You will get better responses when you ask your questions in the right way. Stack Overflow or the community guidelines for the Python groups on Reddit are good places to get a sense of how to do this.
Was this review helpful? Yes0
 Flag
Thomas Jacob profile image
Thomas Jacob profile image

Thomas Jacob

10/10 starsCompleted
2 years, 7 months ago
A really great course. All the concepts are explained in a very clear and concise way. The instructor makes the course all the more fun and exciting! Having had no prior experience in programming, this course provided me a wonderful first exposure to it. Thank you edX and MIT for making this possible!
Was this review helpful? Yes0
 Flag
Beato Bongco profile image
Beato Bongco profile image

Beato Bongco

10/10 starsCompleted
2 years, 7 months ago
Excellent course. As my MIS undergraduate was more on the business side of tech, this really helped me fill in the gaps in my knowledge of computer science. This course will be difficult for true beginners but is doable if you augment your learning with other resources. Once you finish it though, you will have a nice knowledge base to lean on when going off to explore other parts of the field.
Was this review helpful? Yes0
 Flag
student profile image
student profile image

student

10/10 starsTaking Now
2 years, 7 months ago
Look no further. edX & MIT knows a thing or two about teaching and it shows. This is the most professional, effective and demanding online education I've experienced so far. The presentation is clear and precise, the courseware top functional and the interactions/tasks are very sophisticated. This is as close at it gets to quality live education. However, you will need a standard workstation (not mobile), time (well rested) and patience. Thank you for providing education at this quality for free!
Was this review helpful? Yes0
 Flag
Student profile image
Student profile image

Student

8/10 starsTaking Now
2 years, 7 months ago
I found the course is challenging, but not beyond my abilities. I'd had almost no Python experience, but had experience in other languages (This might be harder for someone with no coding experience). The one significant negative: the website's "grader" (the place where you submit Python code for evaluation), crashed on several occasions, sometimes for nearly a day, making it difficult, sometimes to get assignments in by the due date.
Was this review helpful? Yes0
 Flag
Maicol Piani profile image
Maicol Piani profile image

Maicol Piani

10/10 starsTaking Now
2 years, 7 months ago
This course is incredibile. So much well thought. If all MOOCs were like this we wouldn't need traditional education anymore.
Was this review helpful? Yes0
 Flag
Valentin Iclozan profile image
Valentin Iclozan profile image

Valentin Iclozan

9/10 starsCompleted
2 years, 7 months ago
The course is tough, and this shouldn't be a surprise, since the students have been warned about it. But is it a course for beginners? Frankly, I don't know what to say. I feel tempted to say no. Although I'm not quite a beginner, it has taken me a lot of time to follow the lectures and some problem sets have even given me headaches, but, on the other hand, I cannot exclude the scenario in which a gifted beginner could make their way through the course, gaining high scores. At the end of the day, here is what I can say about the MIT 6.00.1x: 1) The course is feasible if you can afford to spend AT LEAST the amount of time specified by the MIT staff, i.e. about 15 or more hours per week on it. It's anything but a 'fast forward' course! 2) The book of Professor Guttag helps, but it is not indispensable. All problem sets from 1 through 5 can be solved with the knowledge acquired in the lectures and with the online documentation fro... The course is tough, and this shouldn't be a surprise, since the students have been warned about it. But is it a course for beginners? Frankly, I don't know what to say. I feel tempted to say no. Although I'm not quite a beginner, it has taken me a lot of time to follow the lectures and some problem sets have even given me headaches, but, on the other hand, I cannot exclude the scenario in which a gifted beginner could make their way through the course, gaining high scores. At the end of the day, here is what I can say about the MIT 6.00.1x: 1) The course is feasible if you can afford to spend AT LEAST the amount of time specified by the MIT staff, i.e. about 15 or more hours per week on it. It's anything but a 'fast forward' course! 2) The book of Professor Guttag helps, but it is not indispensable. All problem sets from 1 through 5 can be solved with the knowledge acquired in the lectures and with the online documentation from python.org. But for those interested in using Python in their daily job, a book primarily dedicated to the language itself becomes a must at some point. 3) Previous programming experience helps, of course, but, as you get your way through Week 6, it would be even more helpful if you were acquainted with concepts of advanced mathematics, such as continuity and limits. The Why behind the prevalence of the dominant term when trying to determine the order of growth for an algorithm requires, at least, familiarity with functions behavior when the argument approaches infinity. So, in my humble opinion, this part of the course requires more than "high school algebra and a reasonable aptitude for mathematics", as staff indicated. 4) Last, but not least, one should pay attention to the following quote from the "About section": '...For many people, this course (and the subsequent one, my note) will be their first and last computer science courses'. Damn true. Learning Computer Science and learning a specific programming language or a certain technology may differ in many ways. In this case, the computational thinking is the rock star, not the Python programming language. Although it touches on the basics of Python, this course could have been taught using any other modern programming language, Python being probably the language of choice due to its simpler syntax and to other aspects that make it suitable for beginners. You should consider this if you are more interested in learning practical programming than Computer Science. All in all, an interesting (and demanding) experience. Not to mention that Professor Grimson is a very good lecturer. Good luck with the next sessions!
Was this review helpful? Yes0
 Flag
Gabriel Trabulsi profile image
Gabriel Trabulsi profile image

Gabriel Trabulsi

10/10 starsTaking Now
2 years, 7 months ago
Awesome, never thought I would learn this much online, always hated programming, but the learning mothods really made me change my mind. Thanks MIT and edX for the support
Was this review helpful? Yes0
 Flag
student profile image
student profile image

student

10/10 starsTaking Now
2 years, 8 months ago
Taking the course right now, and it's the best course on edX! It's extremely challenging. Be prepared to spend a lot of time on it. You will love it though! The professors spent a lot of time organizing the material. It's worth every minute!
Was this review helpful? Yes0
 Flag

Rating Details


  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars

Rankings are based on a provider's overall CourseTalk score, which takes into account both average rating and number of ratings. Stars round to the nearest half.