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
22549 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
Francisco Goitia profile image
Francisco Goitia profile image
10/10 starsCompleted
  • 7 reviews
  • 6 completed
5 years, 2 months ago
Fantastic course. The videos and slides available are a wonderful resource, Eric Grimson explains everything very well. The problem sets are difficult, challenging and rewarding. It is not an easy course, it covers a lot of ground and it gets into more complex topics fairly quickly, so the dropout rate is quite important, but this course is amazing. It gives really gives you good foundations to keep building on.
Was this review helpful? Yes0
 Flag
student profile image
student profile image

student

8/10 starsCompleted
5 years, 2 months ago
This course is very well done. My advice to anyone doing this course is to focus on the problem sets, lectures and lecture exercises. I would warn anyone even though this is marked Introductory, it is not a course for those who have not done any CS work before.
Was this review helpful? Yes0
 Flag
student profile image
student profile image

student

10/10 starsCompleted
5 years, 2 months ago
Excellent course with a fantastic teacher- seriously helped me learn to think computationally and use these thoughts for any programming project. This course is a must before trying to really learn any modern programming language in depth.
Was this review helpful? Yes0
 Flag
Hakkera profile image
Hakkera profile image
10/10 starsCompleted
  • 1 review
  • 1 completed
5 years, 2 months ago
This was the best course on CS I have taken so far, and that includes in- person courses on my university. I left the course feeling I have the appropriate background to learn more about a lot of CS topics, which was exactly what I was looking for.
Was this review helpful? Yes0
 Flag
student profile image
student profile image

student

10/10 starsCompleted
5 years, 3 months ago
I was one of the first batch to take this course. I remember I spent the most of my time in a custodial closet watching videos and doing all assignments on my breaktime. Then I landed a job in a startup company later after the course. It made me jump-start to become a web developer. I am very grateful.
Was this review helpful? Yes0
 Flag
Pavel Klammert profile image
Pavel Klammert profile image
5/10 starsDropped
  • 12 reviews
  • 10 completed
5 years, 3 months ago
I've tried, i really did, but for someone, who has no prior programming skills and not a huge amount of time (and willpower!), its basically impossible to pass this course.
Was this review helpful? Yes0
 Flag
John Hopkins profile image
John Hopkins profile image
9/10 starsCompleted
  • 1 review
  • 1 completed
5 years, 5 months ago
I had a small amount of knowledge of computer programming before I took this course and wanted to consolidate the knowledge that I had whilst at the same time expanding my skills. Wow, I was blown away by what this course taught me. Admitted, at times it was tough going, but if you put in the work you will come out of the other end armed with some very useful knowledge. The course lectures are good, the notes are good and the homework and exams are well thought out and planned. This is all backed up with great online support. This is the first MOOC that I have completed and has set a very high standard for all others that will follow. If you are interested in learning computer programming and are prepared to put in the hours, then this is the course for you.
Was this review helpful? Yes4
 Flag
student profile image
student profile image

student

10/10 starsCompleted
5 years, 5 months ago
A great course for beginners in programming. Professor Eric Grimson nicely introduces the concept of computational thinking using Python as the programming language. I found this course very challenging and equally rewarding.
Was this review helpful? Yes3
 Flag
Shahzad Bhatti profile image
Shahzad Bhatti profile image
7/10 starsCompleted
  • 1 review
  • 1 completed
5 years, 6 months ago
I am working as a software developer in a software house and my objective to take this course is to refresh my knowledge and to learn a new programming language. i found that course very interesting and like it. the track is fine for me but i think that is not for beginner as its pace is a bit fast for beginners, but the lectures on debugging, efficiency and order of growth i like the most
Was this review helpful? Yes3
 Flag
Yalda Mohammadian profile image
Yalda Mohammadian profile image
9/10 starsCompleted
  • 6 reviews
  • 6 completed
5 years, 3 months ago
Took this course with very limited prior experience on programming but no experience with programming in Python. It's a fairly demanding course with a homework assignment every week which took me between 4 to 10 hours each. But it's the best way to learn to program, especially because you feel a sense of achievement after each homework assignment.
Was this review helpful? Yes2
 Flag
Dmitriy Alexeev profile image
Dmitriy Alexeev profile image
10/10 starsCompleted
  • 3 reviews
  • 3 completed
5 years, 5 months ago
It's a very good course. * It's real introduction to computer science. * You'll learn about computer, algorithms and programming languages in general. * You'll learn best base practices of programming (testing, debugging, documenting, creating pseudo code). And it's really helpful for beginning programmer. And also it is a real pleasure for rigorous mind. * You'll learn Python. * You'll learn great programming paradigm - OOP. * You'll begin to learn how to solve _computational_ problems. I've completed also Udacity's Intro to Computer Science. Udacity's course is more fun and more close to everyday life. MIT course is first of all about science, it looks deeper at some specific issues. Take both if you can. Udacity's first, since it's more detailed about the very first steps in Python.
Was this review helpful? Yes2
 Flag
student profile image
student profile image

student

10/10 starsCompleted
5 years, 5 months ago
Seriously amazing course.Each and every programming concept was explained in detail and in an understandable way.Just loved the course.
Was this review helpful? Yes1
 Flag
student profile image
student profile image

student

10/10 starsCompleted
5 years, 5 months ago
Incredibly fascinating material presenting in a logical, entertaining and easy to understand format. Additionally, the course book is written in relatable language and gives relevant examples.
Was this review helpful? Yes1
 Flag
Kaccie Li profile image
Kaccie Li profile image
6/10 starsCompleted
  • 4 reviews
  • 4 completed
5 years, 5 months ago
I've completed 6.00.1x with 95%. It wasn't all that difficult, but I gave a "hard" rating because I think this course would be extremely difficult for someone without real programming experience. I think this is accurate because the course description did not include any hard prerequisites. Let's just say that if this was the first course on the subject taken in undergrad, I would have failed for sure! 6.00.1x taught me many areas of computer science that I did not previously think about which I found quite nice. Some familiar topics to me, like state variables and graphs came up but was presented under a much more abstract context which was quite interesting. The problem sets were thorough, and the structure of presentation and evaluation made it so that I didn't slack off. Anyways, I have PhD from Berkeley where I have had to write a lot of "research-grade" code in environments like Matlab and LabView, and I've still found some of ... I've completed 6.00.1x with 95%. It wasn't all that difficult, but I gave a "hard" rating because I think this course would be extremely difficult for someone without real programming experience. I think this is accurate because the course description did not include any hard prerequisites. Let's just say that if this was the first course on the subject taken in undergrad, I would have failed for sure! 6.00.1x taught me many areas of computer science that I did not previously think about which I found quite nice. Some familiar topics to me, like state variables and graphs came up but was presented under a much more abstract context which was quite interesting. The problem sets were thorough, and the structure of presentation and evaluation made it so that I didn't slack off. Anyways, I have PhD from Berkeley where I have had to write a lot of "research-grade" code in environments like Matlab and LabView, and I've still found some of the concepts confusing and/or challenging. At times, I believe the confusion was simply due to a cursory explanation in the lectures and/or poor exercise design, but that was somewhat rare and I'm sure the course staff will iron that out as this course evolves!
Was this review helpful? Yes1
 Flag
student profile image
student profile image

student

10/10 starsCompleted
5 years, 3 months ago
This was my very first course on edx. It is well prepaired, and outstanding course! It gives you good basics of object oriented programming. If you wnt to learn OOP this is the best place to start. Moving to C++ or Java is then very easy.
Was this review helpful? Yes0
 Flag
kr strug profile image
kr strug profile image
10/10 starsCompleted
  • 9 reviews
  • 8 completed
3 years, 8 months ago
Some basics of programming. Ideas and problems not very original, but presented in interesting way with corresponding examples. I knew some of the material from my university, but still had fun with lectures. Made with care. Great exercices.
Was this review helpful? Yes0
 Flag
student profile image
student profile image

student

10/10 starsCompleted
5 years, 4 months ago
Fantastic introduction to programming and the world of computer science. One of the most rewarding courses I've ever taken.
Was this review helpful? Yes0
 Flag
student profile image
student profile image

student

10/10 starsCompleted
5 years, 4 months ago
I can only say that this course was completely amazing and I'd recommend it blindfoldedly to everyone. I have taken more than 15 online courses and this one was by far the best. Since I was only a beginner in programming, it required quite an effort from my side. But completing it, compensated 100% for my time. Many congratulations to Prof. Eric Grimson and all those who contributed to this course!
Was this review helpful? Yes0
 Flag
Student profile image
Student profile image

Student

8/10 starsDropped
5 years, 5 months ago
Great course, I'm actually a sys admin, not a developer but have some python scripting background. What I find is lacking is some god real-world examples of when and how you'd decide to use a class vs "just a function". However, thanks to the course I do get the idea of a class and why it is useful. I dropped the course though as I started way late and it was impossible to catch up and do all the tests in time. Waiting for a new 6.00.1x to start so I can repeat the class from the very beginning.
Was this review helpful? Yes0
 Flag
student profile image
student profile image

student

8/10 starsCompleted
5 years, 5 months ago
A very solid introductory CS class. Prof. Grimson is a great teacher. There are two reasons I'm only giving this four stars. Firstly, I'm a recent covert to the HtDP school of thought, so I consider the lack of coverage of fundamental design methods to be a drawback. Secondly, the coverage of algorithmic complexity theory does more harm than good. A more thorough expose is needed, or students will leave class with dangerous misconceptions about the method.
Was this review helpful? Yes0
 Flag
student profile image
student profile image

student

9/10 starsCompleted
5 years, 5 months ago
I always wanted to learn programming at a deeper level, and this course reached all expectations that I had. If you have a little or no experience in programming and are willing to put in the effort then this is the course to take you to the next level.
Was this review helpful? Yes0
 Flag
Miguel Vargas profile image
Miguel Vargas profile image
9/10 starsCompleted
  • 4 reviews
  • 4 completed
5 years, 5 months ago
In general, this is a good introductory course to programming. Although some material is not completely clear, it provides a good glimpse about what somebody is able to do with programming. I enjoyed this course specially problem sets that I consider are challenging and very useful. I undoubtedly recommend this course for someone who wants to improve his/her knowledge at programming because it uses a really easy to learn programming language, i.e. Python, and it covers topics that are essential but fundamental into computer science. However, it can result a little difficult for someone who has no previous experience at programming.
Was this review helpful? Yes0
 Flag
Mohamed Ashraf profile image
Mohamed Ashraf profile image
7/10 starsCompleted
  • 2 reviews
  • 1 completed
5 years, 5 months ago
I don't think it is for absolute beginners as it is a little bit advanced. It is full of information, but the lectures videos need to be more engaging,
Was this review helpful? Yes0
 Flag
Richard Kirkpatrick profile image
Richard Kirkpatrick profile image
9/10 starsCompleted
  • 6 reviews
  • 6 completed
5 years, 9 months ago
My background includes a BS in Aerospace Engineering with about 1 - 2 years of experience in various computer languages such as Python, Matlab, FORTRAN, C/C++ and Visual Basic. I never had any formal education or training in computer science before this course. My only training before this course was self-taught, and I only focused on programming language syntax instead of computer science and problem solving abilities. Overall, I was very pleased with this course. Fortunately for me, I had reviewed most of the course's content through MIT's OpenCourseWare class "Intro to Computer Science and Programming" (6.00SC). Most of the material on the MIT OpenCourseWare was very similar except for a few new topics such as trees. In my personal opinion, an introductory background in Python and computer science is recommended for this course but is not required. I easily spent 12+ hours per week on this course. Here are my thoughts about the PR... My background includes a BS in Aerospace Engineering with about 1 - 2 years of experience in various computer languages such as Python, Matlab, FORTRAN, C/C++ and Visual Basic. I never had any formal education or training in computer science before this course. My only training before this course was self-taught, and I only focused on programming language syntax instead of computer science and problem solving abilities. Overall, I was very pleased with this course. Fortunately for me, I had reviewed most of the course's content through MIT's OpenCourseWare class "Intro to Computer Science and Programming" (6.00SC). Most of the material on the MIT OpenCourseWare was very similar except for a few new topics such as trees. In my personal opinion, an introductory background in Python and computer science is recommended for this course but is not required. I easily spent 12+ hours per week on this course. Here are my thoughts about the PROS and CONS of this course: PROS: * The professor, Dr. Grimson, is a fantastic lecturer and professor. Everything is explained very well with visual representations, well-crafted notes and slides, and great examples. * The finger exercises (think of them as review questions) are a great way for the material to be reviewed. You have unlimited tries to get these correct and are useful for reviewing material. * Setup of the course in intuitive and easy to follow. * The homework assignments are both rigorous and fun. They covered a wide range of topics such as RSS, encryption and object-oriented programming. * Course was free. Future courses will still be free but will offer a ID verified certificate for a cost of $50. * Python is a great programming language for new computer programmers since its syntax is very easy to learn. Also, Python has become a very popular language. * All the programming assignments and quizzes are graded instantly so that you understand what you did right/wrong. * Grades are assigned as A (80 - 100), B (65 - 80), C (50 - 65). In my opinion, this lenient system was very useful for students because they focused less on their grades and more on learning the concepts. This was also useful since the course was very difficult. * Forums provided a useful mechanism for learning the material. * Teaching Assistants and Staff were great when it comes to addressing questions or issues on the forums. They were very courteous, even when people were frustrated and angry. * Book is inexpensive and serves as a very useful reference for this course. CONS; * MIT underestimated the amount of students that would take the course, and thus their grading servers crashed often. However, they are fully aware of it. I do not expect this to be a problem in future courses. * As mentioned before, the MIT OCW course is extremely similar to this course. This would not normally be a disadvantage, however almost all the homework assignments are the same. I had already completed most of the homework assignments prior to taking this course so I was not fully challenged on all homework assignments. This would be tempting for other students to cheat and use the online MIT OCW solutions. * Trees, a form of a data structure, were not covered adequately in this class as I would have liked. This was a new topic for this course and no homework assignments were given in this topic. A lot of students, including myself, were unprepared for this subject on the final exam. * Although I personally liked the pace of the class, the fast pace schedule is not ideal for a broad audience. Homework assignments and exams had tight schedules. There were many students who missed the deadline on the first assignment due to some confusion about the date and Universal Time Code (UTC). MIT should consider having the schedule more flexible to help people with busy lives. As mentioned previously, I really enjoyed this course. I would not recommend this course to people who are looking for an easy course. If you feel like this course may be too difficult for you, I would recommend getting prepared by taking a course on Udacity or getting an Intro to Python book. This course is meant to challenge you and is taught by one of the best universities in the world. Best of luck to all who take this!
Was this review helpful? Yes8
 Flag
Student profile image
Student profile image

Student

10/10 starsCompleted
5 years, 9 months ago
Took this course to gain an introduction to python programming. Specifically interested in how python can be applied to data cleaning, analysis, and visualization. I had already taken an introductory CS course (Java) and work a bit with programming in my current job. Overall, I would say - this is a great course. Challenging but well-paced. PROS \- I really liked the frequency and content of finger exercises, I thought they complemented the lectures really well. \- I found the problem sets challenging but not defeatingly hard. The instructions did a really good job of walking us through the programming steps in order to let us actually program interesting things (e.g. hangman, RSS feed parser). \- I liked the mix of CS theory and python examples. It felt applied while also giving a good intro to higher-level challenges in the subject. \- Buy the textbook, it's cheap, an excellent supplement, and literally a 1:1 match to the lectures.... Took this course to gain an introduction to python programming. Specifically interested in how python can be applied to data cleaning, analysis, and visualization. I had already taken an introductory CS course (Java) and work a bit with programming in my current job. Overall, I would say - this is a great course. Challenging but well-paced. PROS \- I really liked the frequency and content of finger exercises, I thought they complemented the lectures really well. \- I found the problem sets challenging but not defeatingly hard. The instructions did a really good job of walking us through the programming steps in order to let us actually program interesting things (e.g. hangman, RSS feed parser). \- I liked the mix of CS theory and python examples. It felt applied while also giving a good intro to higher-level challenges in the subject. \- Buy the textbook, it's cheap, an excellent supplement, and literally a 1:1 match to the lectures. I was very glad I had this to reinforce the lecture as I learn better reading than I do listening. \- Definitely a good class to take in a group. I enjoyed seeing how others' code and style differed from my own, and it was nice to have people with whom to ask questions/discuss. CONS \- Sometimes finger exercises asked questions which were not covered in the lecture, which was frustrating - the TAs seemed to correct this by adding notes to the assignments pretty quickly, so there was a slight advantage to waiting a few days after the assignments were released before completing them. \- It is not an easy course. It really did take a lot of work and I found the exam schedule slightly stressful (since I work full time, and the exams were timed anyway from the minute you started, it would have been nice if they could have given a larger/more flexible date range over which to take them). GOOD TO KNOW \- This is not a quick introduction to a wide range of python syntax and libraries in a way that you'll be up and running in 8 weeks. As the title notes, the course is an intro to CS using python as a vehicle, NOT an intro to python per se. Thus while intellectually interesting, if you have a concrete goal that you want to complete using python code I think you'd be better served by an online tutorial. I am looking forward to the second half of the course as I do think that will be more project-based and applied. \- The examples are very heavily grounded in math. For the most part you should be able to complete the code without knowing the mathematical concepts, but I was still glad I had a decent math background going in. Personally I would have been interested in seeing more programming challenges/problems with a social science twist, but I assume as an MIT class this course is designed to train engineers in the first place, so who am I to complain? Overall, highly recommended for those who are ready to make a serious commitment. You probably do want to have taken at least one or two college-level math or engineering classes at a US university (or the international equivalent) to be able to keep up with the pace and example content, though.
Was this review helpful? Yes1
 Flag
vaggelas profile image
vaggelas profile image
10/10 starsCompleted
  • 28 reviews
  • 26 completed
5 years, 9 months ago
A very nice introductory course in programming and particular in python. I must say that i was very familiar with programming before taking this course,so perhaps i am not the best to judge it as an introductory course. But anyway here is my two cents. This is not the easiest introductory course i have seen.This is an MIT introductory course.This mean you have to try hard to complete it.I was familiar with python and it took me 3-4 hours at least per week to complete the homeworks.I suppose that guys with no prior knowledge would need even a full day every week. Begins frot start and ends up with the most part of python explained. If you want to try hard and challenge yourself,definately take this course. If you are not familiar with programming and you don't have a lot of time every week,then maybe there are other programming courses more suitable for you than this. Day of Completion : End of December of 2013 Pros \- Almost no prere... A very nice introductory course in programming and particular in python. I must say that i was very familiar with programming before taking this course,so perhaps i am not the best to judge it as an introductory course. But anyway here is my two cents. This is not the easiest introductory course i have seen.This is an MIT introductory course.This mean you have to try hard to complete it.I was familiar with python and it took me 3-4 hours at least per week to complete the homeworks.I suppose that guys with no prior knowledge would need even a full day every week. Begins frot start and ends up with the most part of python explained. If you want to try hard and challenge yourself,definately take this course. If you are not familiar with programming and you don't have a lot of time every week,then maybe there are other programming courses more suitable for you than this. Day of Completion : End of December of 2013 Pros \- Almost no prereqs(some basic math). \- MIT Course from great professors. \- Challenging Course. \- Short period,only 6 weeks. \- You can get verified Certificate with 50$ donation or more for this course. Cons \- Not easy and needs a lot of time every week. \- Not slow pace for beginners. \- Some video lectures are old and not best quality.
Was this review helpful? Yes1
 Flag
Ilya Rudyak profile image
Ilya Rudyak profile image
9/10 starsCompleted
  • 6 reviews
  • 5 completed
5 years, 9 months ago
This course will teach you some fundamentals of programming like OOP and recursion and some more sophisticated things like generators. But it's only first part of the course. The second part is about applications to engineering - Monte-Carlo etc. and data-structures like trees. You'll get carefully crafted projects for some real-life problems for example in genetics and robotics. There is a good book bu John Guttag. I also recommend to watch his lectures on YouTube. It's rather difficult course and I'd say MIT quintessential.
Was this review helpful? Yes1
 Flag
Steven Frank profile image
Steven Frank profile image
9/10 starsCompleted
  • 59 reviews
  • 57 completed
5 years, 9 months ago
MITx has now split its introduction to computer science and programming into two consecutive seven-week courses. This first installment teaches basic programming skills and algorithmic thinking using the popular Python language, taking students through the rudiments of program design, Python semantics, and debugging. More advanced topics treated toward the end of this course segment include tree structures and a serious introduction to object-oriented programming. The course is extraordinarily well designed, beginning with the textbook – John Guttag’s “Introduction to Computation and Programming Using Python” is well-written, eminently understandable, and filled with sample code sequences that make the rubber meet the road. Prof. Grimson’s lectures are clear and well-organized, although they sometimes recapitulate rather than supplement or clarify the textbook’s presentation. The video segments are broken up by progressive “finger ex... MITx has now split its introduction to computer science and programming into two consecutive seven-week courses. This first installment teaches basic programming skills and algorithmic thinking using the popular Python language, taking students through the rudiments of program design, Python semantics, and debugging. More advanced topics treated toward the end of this course segment include tree structures and a serious introduction to object-oriented programming. The course is extraordinarily well designed, beginning with the textbook – John Guttag’s “Introduction to Computation and Programming Using Python” is well-written, eminently understandable, and filled with sample code sequences that make the rubber meet the road. Prof. Grimson’s lectures are clear and well-organized, although they sometimes recapitulate rather than supplement or clarify the textbook’s presentation. The video segments are broken up by progressive “finger exercises” that have you turn what you’ve read and heard into working knowledge. Each week also includes a problem set, which is usually a programming task that creates something entertaining – a game or, most challengingly, a web “scraper” that retrieves news stories based on combinations of keyword triggers. The programming assignments are also progressively organized so that you’re writing code modules that perform specific tasks within a template, not an entire program from scratch. The autograders are excellent, providing feedback that helps you find the bugs. The introductory nature of the course notwithstanding, it isn’t easy, nor is everything you need always in the materials provided; you may sometimes find yourself searching the web for techniques or resources (of which there are plenty out there). I didn’t spend much time on the discussion boards, but from what I saw, staff support seemed disappointingly minimal. Overall, though, the positives far outweighed any negatives in this superb entry-level course.
Was this review helpful? Yes2
 Flag
David Graham profile image
David Graham profile image
9/10 starsCompleted
  • 1 review
  • 1 completed
5 years, 9 months ago
I thought the class would be easy because it has no prerequisites, is an "introduction to", and because I have a lifelong background in technology, with some (very ancient) college programming classes. Turned out to be harder than I thought...by a lot. I spent the 12 hours per week on average, and spent a lot of time on the problem sets and quiz. While I definitely enjoyed the challenge and successfully completed the course, somewhere in the sign up materials there should probably be an admonition of the general type that was expressed by the TAs in the discussion forums: '...this is an MIT-level course...'. The theme, when one of the largest discussion topics was about how hard the course was, seemed to be 'take a look at the SATs, GPAs, and other 'average' credentials of an MIT undergraduate; that's the level of student this course is aimed at'. I rate the course and the concept of 'MIT-level- courses' high; my only suggestion is a... I thought the class would be easy because it has no prerequisites, is an "introduction to", and because I have a lifelong background in technology, with some (very ancient) college programming classes. Turned out to be harder than I thought...by a lot. I spent the 12 hours per week on average, and spent a lot of time on the problem sets and quiz. While I definitely enjoyed the challenge and successfully completed the course, somewhere in the sign up materials there should probably be an admonition of the general type that was expressed by the TAs in the discussion forums: '...this is an MIT-level course...'. The theme, when one of the largest discussion topics was about how hard the course was, seemed to be 'take a look at the SATs, GPAs, and other 'average' credentials of an MIT undergraduate; that's the level of student this course is aimed at'. I rate the course and the concept of 'MIT-level- courses' high; my only suggestion is a more explicit explanation of that level of expectation in the course description.
Was this review helpful? Yes1
 Flag
Den Iskandarov profile image
Den Iskandarov profile image
8/10 starsCompleted
  • 5 reviews
  • 5 completed
5 years, 10 months ago
Finished this course with 88%. Hardest course I have ever taken. This course need good concentration and well developed logic. It really teaches how to solve hard problems like real computer scientist. Disassembling problems into smaller problems. Build good test suits think about almost every possible best or worst cases of problem. It was real challenge!
Was this review helpful? Yes1
 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.