An Introduction to Interactive Programming in Python

This two-part certification course is designed to help students with very little or no computing background learn the basics of building simple interactive applications. Part 1 of this class will culminate in building a version of the classic arcade game "Pong".

Created by: John Greiner

Produced in 2013

What you will learn

  • Statements, expressions and variables.
  • Functions, logic and conditionals.
  • Event-driven programming.
  • Canvas, drawing and timers.
  • Lists, inputs and the basics of modeling motion.

Quality Score

Content Quality
Video Quality
Qualified Instructor
Course Pace
Course Depth & Coverage

Overall Score : 98 / 100

Live Chat with CourseDuck's Co-Founder for Help

Need help deciding on a python course? Or looking for more detail on John Greiner's An Introduction to Interactive Programming in Python? Feel free to chat below.
Join CourseDuck's Online Learning Discord Community

Course Description

This two-part course is designed to help students with very little or no computing background learn the basics of building simple interactive applications. Our language of choice, Python, is an easy-to learn, high-level computer language that is used in many of the computational courses offered on Coursera. To make learning Python easy, we have developed a new browser-based programming environment that makes developing interactive applications in Python simple. These applications will involve windows whose contents are graphical and respond to buttons, the keyboard and the mouse.



    • Two-part split makes it much easier for beginners to break into Python programming.
    • A total of 30 hours of course material creates a comprehensive learning experience.
    • By focusing on building a game from the ground up, application of the course feels more intuitive and enjoyable than more theoretical teaching methods.
    • Course focuses on peer grading, which can be inconsistent.
    • Part 1 focuses more on programming in general than the deeper aspects of using Python specifically.
    • Project-focused learning will not suit students who excel in theoretical environments.

Instructor Details

John Greiner

John Greiner has been teaching Computer Science at Rice University since 1997. While focusing on introductory computer science, he has also taught many algorithms, theory, and systems courses. He is active in curricular development and policy as well as outreach to high school students. John earned a Ph.D. from Carnegie Mellon University and a B.A. from Rice University.



139 total reviews

5 star 4 star 3 star 2 star 1 star
% Complete
% Complete
% Complete
% Complete
% Complete

By VPC on 3-May-16

I wouldn't give a star for this course; materials are prosaic (wordy); professors have not designed a truly high-tech course with automated grading; they want peers to grade each other - I don't like this euphemism, which is equivalent to the blind leading the blind; I do not want to spend my energy correcting other peoples' programming assignments; I want to spend the time thinking about programming and working on my own programs - the concept of collaboration is false - everyone wants to develop their own stuff not share with others so the premise of the course is inaccurate; also, the course has many long-winded texts of little use to the student; this is a course more about indoctrination in a legacy system than it is a course to liberate the mind through computers; while the content is interesting I am completely turned off by the amount of time I have to devote to commenting on other peoples' stuff - I am not a teacher - that is the teacher's job not my job - also, I do not like the condescension and clownishness of the profs in this course - I do not need to be entertained and all the talk about Monty Python, one of the corniest programs on TV trivializes the material - a no-nonsense, MIT type course is preferable - this is a course that I would avoid from the logistical perspective, although I will follow the material side of the course because it has substantial content and that includes the specialization - hello teachers in the course - automate the grading and remove all of the peer evaluations and start offering authentic instruction, not lazy instruction of students teaching students - the approach is typical of all legacy-oriented courses - the same goes for the Severance course at the University of Michigan - if the Rice course is supposed to instill interest in Rice University, this offering turns me away from Rice because one realizes that Rice is too legacy-oriented in its approach, same old, same old.

By Humberto C on 29-Jul-17

I wish we didn't have to rely so much on codeskulptor. What happens when I want to move away from codeskulptor and program on my own? How will I know what to do?

By Ian B on 12-Jun-17

It's not bad, but not amazing. I would recommend University of Michigan's Programming for Everybody (Python) over this course. While the game-oriented approach is fun, I don't like the excessive focus upon the simplegui module which was created by the instructors specifically for this course. You will learn some basic python concepts, but you'll spend way too much time learning how to use this module which you will likely never use again, and this is at the expense of learning how to use some of the more commonly used standard modules (eg datetime, sys, etc). I also found glitches in the materials, and many of the questions and grading rubrics are unclear or ambiguous. Very frustrating. Edit: If you stick it out and move into their subsequent courses, things get a lot better. So despite this course's shortcomings, it's worth doing as a prelude to their later courses.

By Daya_Jin on 30-Nov-18

By Ells M J T on 4-Feb-17

Proprietary. To me is unacceptable. But the professors really do have a charm to them so I will give them an extra star for that.

By Chitrank D on 13-Jul-17

It was nice beginner course for the new programming to learn programming and practice the concepts with most intuitive way, the way is to build a game and that interests anyone who takes this course.

By Michael G on 30-Sep-18

Although this is a class that can be taken by (smart and determined) people who have never programmed before, the programming projects are much more advanced and interesting than what you would expect from a "beginner" class. This is possible because the course provides the architecture and a step-by-step guide for the student. It's sort of like programming by the numbers. The student does have to figure out little bits and pieces on his/her own and the challenges are substantial, but a smart and determined person can do it. As the course and subsequent courses progress, the student has to do more on his/her own. This course (and the whole specialization) has been perfect for me because I know the basics of programming pretty well and I mainly need interesting projects to practice on.

By Avnish on 7-Sep-18

Following are different sections of review:Overall: Just enroll, you will love the conceptsExtended: The content is awesome. Here, practical approach based learning is focussed. You will not only learn the concepts or fundamentals and also learn how they are used in real world applications which is the best thing about this course.The Instructors are awesome, everything is taught in perfect manner. Although, you might say that it focuses on Python 2 and it's an older version but believe me, there is not much difference in Python 3 and Python 2. One more thing, Your thinking about a problem will not be same after this course. You will start to think the right way required for solving a problem.Just Go for it

By Jeremy L on 9-Dec-17

I can't recommend this course enough. I came to it with little Python experience (just Coursera/U Michigan's Python for Everybody). The professors were excellent and do a good job of keeping things fun. The interactive model for learning programming - making small games - was excellent. Each mini-project gave me a chance to practice the skills and put into use the knowledge I learned from that week's lectures. The profs have also designed the course to maximize chances for success. Each mini-project incorporates a video and textual explanation (with tips) for completing it, a separate set of solutions to common problems, discussion forum, and a last-resort email address when all of the above fails to let you produce a working program. I'm definitely going to take the second part of the course as soon as the next session begins on Coursera. This is an excellent course.

By Muratcan A on 18-Feb-18

I had completed the Python for Everybody course on Coursera, from Michigan Uni. and this 2-part IIPP course was a great follow-up to that. I enjoyed the assignments very much and the instructors were really enjoying themselves which made the class very fun to follow. This is a great course which will teach you the basics of Pyhton and also how to implement GUIs and how to code simple games. Now I'm continuing with the rest of the specialization...

By Phil S on 10-May-18

This is a great course with interesting and engaged presenters. I found that I got much more insight into good programming techniques and when to use them from this than previous reading through books. You do all your programming in a browser rather than actually using Python itself. Initially I wasn't sure about this (as I already had Python installed) but it works really well and means that, unlike some courses, you don't have to spend the first hour or so trying to install software. The documentation is really easy to use (you use this a lot!) and the ability to step through your program and see exactly what's going on at each step has been really helpful as well. I've almost finished Part 2 of this course but already I've got the skills to start building some programs that I thought would be well beyond me. As usual, the different ways of accessing Coursera (PC, iPad etc.) don't seem to line up very well but that's not the fault of this course. Overall, highly recommended.

By Ryan M on 17-Jun-16

Fantastic! Joe Warren and Scott Rixner hit one out of the ballpark with this course. They really make programming accessible to anyone with the way that they teach, and they make the content really fun. Yes, the material can be challenging at some times, but with all the lectures, homework and support, I truly think anyone can finish this course. I'm enrolled in the full specialization and a note to others. Enroll in all the courses at once and then in your enrollments page you can adjust the sessions that you want to take by hitting the three dots button. I made the mistake of waiting till I finished part one to enroll in the next course and it caused me to skip a session so I had to sit around waiting for two weeks until the next session started. Programming is a language so it helps the learning process to work on it every day, don't make the same mistake I made!