Wednesday, December 18, 2013

Learn to be a game programmer-- for FREE, in 8 weeks. From home.

This blog entry is really a shout out to the nice folks at Coursera and Rice University who have provided the MOOC (massive open online course) titled "An Introduction to Interactive Programming in Python".  I recently took this free course, and it was FANTASTIC.

This was my first MOOC, so I wasn't quite sure what to expect.  First, I went through the sign-up process through Coursera.  I don't remember much about that, except I'm pretty sure about three things:
- It must not have been very hard.
- It was free, I was not about to pay for something without trying it.
- It required an email address.

I had already browsed Coursera's catalogue, and decided to try the Python course based on the class description.  It promised we'd do some game development, which interested me.

I've been a programmer for quite some time and was somewhat familiar with Python.  I use it once in a while for general-purpose file munging duties.  But I have never been a game programmer, and that's what got me interested in this course.

The course turned out to be an 8 week cycle, where each week was composed of:
- About 4 or 5 10 minute video lectures.  The professors were very clear and had good teaching skills.
- A mid-week quiz that covered some of the concepts discussed this week.
- A 'mini project' where the instructors would provide a template for a Python program that gave you a head start.  You also got explicit suggestions on how to implement the game we were working on that week.

Programs are graded by peers.  Each week you would assess 5 fellow student's programs, and then have a look at your own.

By the way, if you want your efforts to be recognized for college credit, you can pay a fee for this within the first couple of weeks of class.  I wasn't interested in that, I just wanted the gaming knowledge.  So I paid nothing, but got all the knowledge for free!

To minimize environmental issues, the course instructors have provided a browser-based IDE called 'CodeSkulptor'.  A truly brilliant idea, this UI works very well.

That's it!  So for 8 weeks we wrote games like 'Pong', 'Memory', 'High/Low', 'BlackJack' and finally 'Asteroids'.  We started out slowly, and then added all the stuff I knew I had to grasp but never did before-- Sprites, collisions, making stuff move around the screen, bouncing things off walls, etc. 

I would never have guessed in a million years that someone could teach the fundamentals of this stuff through 10 minute video lectures.  But they did, and today I am happily working on games of my own invention using these necessary techniques.

If you haven't picked up on this yet, I found this class absolutely fantastic.  I intend to take another class soon, and hope the catalogue of programming classes keeps expanding.

By the way, MOOCs are offered from some very prestigious schools.  This is top-notch stuff.

So please give MOOCs a try.  If you're like me and have an interest in game programming, catch the next iteration of the Python Interactive Programming class.  I hope you find it as fun as I did.

Happy learning!

No comments: