Innovative Rice software makes popular computer programming class possible
It’s the rare scientist who experiments on himself in front of his own family and 54,000 strangers. No wonder Joe Warren is nervous.
“I feel like an astronaut on top of a rocket that’s about to blast off,” the Rice computer scientist said about the massive open online course (MOOC) that he and three co-instructors are preparing to teach Oct. 15 on the education website Coursera. The class, An Introduction to Interactive Programming in Python, is Rice’s first on Coursera. Enrollment topped 54,000 Oct. 5, with hundreds of students signing up each day.
“I’m excited and confident this is going to work,” said Warren, chair of Rice’s Computer Science Department. Warren is also feeling the pressure that can only come from knowing that his father-in-law, 18-year-old son and dozens of Rice faculty and friends are signed up for the course. “In the back of my mind, no matter how much you prepare, it’s just like that rocket: There’s always a chance that something can go wrong.”
It’s not the material or the teaching that concerns Warren; he’s taught at Rice for 25 years, and the course involves Python — an easy-to-learn computer language. It also involves fun lessons — creating games like “Pong,” “Blackjack” and “Asteroids.” The concern is about the MOOC format and the new technology that Warren and his co-instructors have created to teach programming in a MOOC environment.
Coursera, which launched in April, is the first education platform to host MOOC content from multiple world-renowned universities on one website. Rice and 11 other prestigious schools joined July 17, and Warren and his co-instructors, associate professor Scott Rixner and lecturers Stephen Wong and John Greiner, were among the first at Rice to volunteer.
Their eight-week course includes more than 70 video lectures, each just a few minutes long. There are also weekly quizzes and assignments called “mini projects,” which involve writing about 100-200 lines of code. If the code is written correctly, the students can play the game they’ve created and even email a link to let friends and family play too.
The course’s key piece of new technology is CodeSkulptor, an ingenious piece of software that Rixner created over a six-week period this summer. CodeSkulptor allows students to write and run Python programs that use simple 2-D game graphics without ever leaving their Web browser. It does that by converting the Python instructions into another language, JavaScript, that the browser can understand. No other web-based Python environment comes close to CodeSkulptor’s speed.
“It runs at least 100 times faster than anything else out there, and that’s what makes it possible to teach this class with games,” Warren said. “No one else can support graphics like this in a real-time Web-based Python environment.”
Rixner said, “There is no magic. CodeSkulptor delivers the performance needed to run 2-D games because it only implements the subset of Python that we need for the class.”
Magic or not, at least one company has already asked to license CodeSkulptor to teach Python programming to its technical staff.
Another key part of Warren and Rixner’s MOOC formula is cloud storage. When students log in to the course Web page to work on their assignments, they are free to save their work at any time. Those files are saved to a Google storage server, and Warren said the Rice students who worked in CodeSkulptor this fall saved about 20 files per assignment.
“When you scale that up for the online course, we’re looking at a million files or more each week going into our account,” Warren said. “I think Google can handle that, but it’s one of the things about this class that we really can’t test in advance.”
By using CodeSkulptor, cloud storage and other techniques, Warren, Rixner, Wong and Greiner hope to make it simple for students to log in each week and do their classwork. But don’t confuse simple with easy.
“This class covers the same material we just covered in the first half of the fall semester at Rice,” Warren said. “This is not a hard class by Rice standards, but it is a Rice class. The Coursera students are going to need to devote at least seven to nine hours each week to these assignments. One question I have is whether the people signing up for Coursera have that level of commitment.”
The class isn’t taught for credit. It’s free and Warren hopes it will be fun, but in Rixner’s words, “People who finish this course won’t be professional programmers, but they will know just enough Python programming to have fun and be dangerous.”
To register for the course, go to https://www.coursera.org/course/interactivepython.
This is a really great course for beginners and I think they should start thinking about a followup course on high level gaming.