Coursera: Interactive Programming with Python

Hi there! :) About two and a half months ago I found about the new trend in web education, the MOOCs. MOOC stands for Massive Open Online Course. Basically, there are a few sites where you can take lots of courses from top universities such as MIT, Stanford, Harvard, etc. The greatest thing is that it costs absolutely nothing to take the courses. They're FREE! :) I'm sure that these learning systems are starting a new era in higher education since now anyone with access to internet can have access to high quality courses.
So, after browsing through the lots of courses available and seeing which ones were about to begin, I decided to start with a course provided by Rice University on Coursera: Interactive Programming with Python. I already knew how to program in Python before the course but I knew there were still some details to master and some good practices to learn in applications with GUI and animations. Also, is there a better way to learn that than by making classic games like Pong or Asteroids? Guess not! :)
So, I'm going to make a short review on the course so that you can understand how it works and if you should take the course :)

(Click the photo for better resolution in Picasa Photostream)
The course has weekly lectures that you can watch online whenever you want and at your own pace.
Some new videos are added every week and you'll need approximately two hours to watch them. The professors Joe Warren, Scott Rixner and John Greiner teach everything in a very clear and friendly way and do their best to keep you motivated along the videos. If you think that watching video lectures is boring, forget that because you might end up laughing in front of the computer in some of them :).

The evaluation is made in two parts: Quizzes and Mini-projects. Every week you have two quizzes and one mini-project to complete. The quizzes are very well made and will test your knowledge and make you sort out some small details. The mini-project will allow you to see what you can do with the stuff that you've just learned during that week. During the course you'll end up making the following games: Rock-paper-scissors-lizard-Spock, Guess the number, Stopwatch: the Game, Pong, Memory, Blackjack and Asteroids. If you want you can try the games by clicking the Play buttons below: 

Stopwatch: the Game (the objective is to stop the timer when the last digit is 0): 
Pong (use keys S and W for the left pad and the up and down arrows for the right pad):
Asteroids (Use the arrows to control the ship and the spacebar to shoot missiles. If you quit the game and the soundtrack keeps playing, refresh your browser. I'm to lazy to fix that now :P):

NOTE: All the games are running from by Scott Rixner.

(Click the photo for better resolution in Picasa Photostream)
 If you have some programming experience, you'll spend about an hour for the quizzes and two hours for the mini-projects. You'll end up needing about 5/6 hours every week to complete the course. If you have some programming background you won't find it hard to ace at every single quiz and mini-project (in case you're wondering, yes, I aced every single quiz and mini-project :p ). However, if you're a beginner in programming and keep up with the lessons you'll be able to complete the course with no problems too. 
All the programming is done in a great, great tool developed by professor Scott Rixner: Codeskulptor. Basically Codeskulptor is a sort of a web-based Integrated Development Environment for Python + Python Interpreter with cloud storage. Just go to the link and you'll see it and see that it's amazingly easy to use. The evaluation of the mini-projects will be made by every student: after each mini-project, every student must evaluate at least 5 mini-projects from other students by checking if the projects meet the requirements from a well defined list.
Besides all the things I've described, there are also discussion forums where you can meet your colleagues and discuss any doubts that you might have with them. Professors occasionally respond to your questions too.
It was a great and different experience to take this course and I would like to congratulate all the responsible professors for the great work that they have done to prepare this course. Teaching: they're doing it right! If you're wondering if you should take the course, wonder no more. Just sign up for the next edition! I had previous programming experience and still learned a lot and even had some fun.
To finish, here are some links for the three MOOCs that I know: Coursera, edX and Udacity. In some of the courses provided by the first two you can even get a completion certificate :). Rice University doesn't provide certificates but, who cares? I learned a lot and that's what matters!
Take care! :)

Did you find this post helpful? Do you wish to contribute to other projects regarding computer science, electronics, robotics or mechatronics that will be posted in this blog? If you wish to do so, you can donate via paypal using the button below. Thanks! :)