Search This Blog

Sunday, November 25, 2012

Python and Coursera

What do these things have in common?   I’ll start with Python which is an interpreted, interactive, object-oriented programming language.  Python is great for both shell and web scripting and is making it's way into every facet of computing from Google to video games.   A very popular application development platform called Django, is based on the Python programming language. is an incredible company which offers free on-line university courses to millions  of students around the world.  Is this the future of education? is part of a new movement referred to as MOOC’s (Massively Open Online Courses).    They have the potential of reaching and teaching hundreds of thousands of students per course.   Others in this space include edX and Udacity.  The courses are not offered for university credit but in most cases, by successfully passing the course you’re given a certificate from the university.

Back to Python…     So when I first heard about coursera and started perusing their course offerings, I was blown away at the variety and quantity of courses from major universities around the US (and Canada).   I wanted to take everything !   Courses range from Science, Psychology, Computing, Technology, History, Health, Music, etc, etc. from top universities.   I settled on a course called “Learn to Program: The Fundamentals”, from the University of Toronto,  which teaches Python.   The lectures are well produced streaming video (which can also be downloaded), with weekly homework assignments, programming assignments, quizzes and a final exam to complete the course.   It runs on a weekly basis (this course was 7 weeks) so the student is forced to keep up.   An interesting aspect is a discussion board where students from around the world can pose questions, comments, etc.   The end of course statistics showed 38,000 students took the first quiz and over 8000 passed the final exam and course.
In this case they used an automatic grader to help with the programming assignments.   They covered the essentials of Python including elementary data types (numeric types, strings, lists, dictionaries and files), control flow, functions, objects, methods, fields and mutability.  The three programming assignments included a time zone converter (UTC and local time), a DNA sequencing program and a board word game.    

So of course a second Python course was offered shortly after the first began called an “Introduction to Interactive Programming in Python”, by Rice University.    This course is focusing on event-driven programming for games, etc. and in fact the weekly programming assignments include building a Pong game, Memory game, Blackjack game, Spaceship game and more.    This course does not have an autograder and relies on peer review to grade the programming assignments (each student has to grade 5 other students submission to have theirs graded)…

And of course a third “Python” course started shortly after that which focuses on the applications used by hedge funds and is called “Computational Investing, Part 1” by a professor at Georgia Tech.   I most definitely do not recommend taking 3 courses simultaneously.   It’s too much for weekend work.  I had to fall behind in the second course to start the third and now that the first is over I can catch up with the second.  One or two courses is a sane way to go.    So the third course is again very different and it utilizes Python and Python modules for quantitative analysis software applications. I found I needed to dust off the old Unix command skills because configuring the environment to work with all the Python modules took some effort.    The software will be used to analyze historical performance of portfolios and equities and build a market simulator.  

So I’m not quite sure how MOOC’s will affect higher education, but it is obvious that it will in some way.   In the meantime, it is a fascinating phenomenon with appealing content.   See this article for more information :

On another note, I have tremendous admiration for each of the professors who volunteered their time to put together a quality MOOC experience.    I think the appeal was irresistible for them.

For more information on Coursera and potential business model's going forward, see this wiki:

For more on Python, look here:

Atlantic City : a week before Hurricane Sandy hit

Atlantic City : a week before Hurricane Sandy hit