Frank Stajano, of AT&T and the University of Cambridge Computer Laboratory, was talking about the use of Python as a teaching language. This theme ran through a number of presentations at the conference.
Frank's point was that there are a number of efforts underway to use the power and accessibility of Open Source Software to extend computer education to younger students, students who have been ignored up to now.
Frank doesn't subscribe to the "programming-to-work" model of computer education. This isn't another jobs program, with classes in keyboarding and Excel. His goal is to emphasize the expressive nature of programming and to teach students another way, like mathematics and philosophy, to think about and organize the world.
Python is ideally suited for this task, Frank believes, because it is clean and simple; the syntax doesn't get in the way of the programming logic. Also, much to its credit, Python is also a practical language that students can use to accomplish real tasks.
Python creator Guido van Rossum discussed progress on his education program entitled "Computer Programming for Everyone" (CP4E). He is working on several improvements, including a better development environment, to make Python more accessible to novice users. He is working with at least one high school to begin teaching Python to high school and middle school students.
Read Frank Willison's October '99 interview with Guido Van Rossum, in which Guido discusses CP4E.
At the end of his talk, Guido called a Birds-of-a-Feather meeting for 6:00 this evening. About forty of the attendees came to the BoF. We discussed a wide range of issues, but decided to discuss them further through a mailing list and newsgroup. Most people at the BoF seemed to be interested in the technical nature of the material to be taught, or the teaching methods; but the thorny issues seem to be funding, teacher training, and the murky politics of school boards. Most importantly, the attendees supported adding an education track to the next Python conference. Al Vezza, director of the conference, was there and took the suggestion under advisement. (If you're interested in this project, watch for information about it on www.python.org.)
The most promising presentation following this theme came from Jeffrey Ellker, a computer science teacher from Yorktown High School in Arlington, VA. Until this year, Jeffrey had been teaching C++ to both first- and second-year computing students at the high school because the AP tests currently require C++. He found C++ difficult to teach to first-year students, however, because so much of the syntax and machine-specific code was visible from the start. He felt that he had to begin the first year with instruction in binary arithmetic, not his choice for a gentle beginning.
This year, he switched the first-year class to Python. It has been, to him, a great improvement. He is able to talk about the logic of programming, and the clean syntax of Python supports his lessons. Binary arithmetic has been moved to the Spring, as part of an introduction to C++. Of course, he won't know the outcome of this curricular change until the Spring of 2001, when this year's first-year class will take the AP tests; but he feels more in command of his teaching, and his first-year students are more engaged.
Randy Pausch was the afternoon keynote speaker. A professor at Carnegie-Mellon University, Pausch discussed and demonstrated Alice, his interactive Virtual Reality system. (Alice uses lots of Python; hence, Randy's presence at this conference.) Pausch is an engineer, but his interests are in user design and testing. He had lots of advice to the programmers in attendance, much of it applicable to the aims of the various Python education projects. He aims Alice for the novice, the non-programmer, and he uses extensive interviews and testing with them to make his decisions. He doesn't rely on his instincts or those of other engineers. "You're not like the users," he said, "so don't make decisions for them."
The Alice demonstrations were very impressive; Alice gives considerable power to the creator of virtual worlds while hiding all the complexity. The worlds his CMU students have created are funny, imaginative, and detailed. For more information about Alice, see www.alice.org. Pausch's overall design principle is one that will help the CP4E project and should inform more software development: Make all tradeoffs in favor of the novice.
Let me end this section with another remark from the eminently quotable Frank Stajano:
Create a program; write the documentation.
Change the world; then educate people.
His logic, in retrospect, was clear. Digital Creations intended to make most of its money as a services and customization company; Zope was their tool for doing that work profitably. They were willing to let customers have the software for free, but they saw no reason to make it available to potential competitors. Pedhazur's one question startled them: "Is this the only good idea you'll ever have?" "No," they replied. "Then give it away and move on to the next one," he said.
He felt that Digital Creations, with a number of larger and better-known competitors, needed some way to get people to consider their services. By making their software freely available, they differentiated themselves from their competitors and they drew in customers by giving them a taste of the environment.
A year of Open Source business for Zope has proven Pedhazur right. And other folks at the conference are following Digital Creation's model. All of a sudden, working in an Open Source environment with Python is a virtue, a selling point to newly converted venture capitalists. Andy Robinson, noted O'Reilly author, announced the formation of his company, Report Lab. Andy's company specializes in the formatting and conversion of any data format into PDF. (Their open-source tool is called PDFgen.) Andy's company is looking for clients that pull together data on the fly; Report Lab will gather that data and display it cleanly, informatively, and automatically in PDF.
Greg's choice of Python was somewhat arbitrary--you could use any number of programming and scripting languages to create the tools--but the superior readability of Python code made the choice. It has already been a point of controversy across the Internet that he specified any scripting language, and Greg has been savaged for this choice by advocates of other programming and scripting languages. So far, he's stuck by his choice.
What Greg has done is lay down the gauntlet for Python programmers. This is their opportunity to demonstrate the ability of their language to prototype tools rapidly, and to show the advantages of clean syntax and high-level program abstraction. If they rise to the task, it could move Python to the forefront of VHLLs. If they don't, well, it won't look good.
Read about Day One and Day Three--Developer's Day.
Return to: Frankly Speaking