Game Programming for Introductory Computer Science

Here’s a link to the PDF version of the presentation I gave Saturday at the Microsoft Academic Days on Game Development for Computer Science Education conference:

Game Programming for Introductory Computer Science

If Microsoft makes the video available, I will blog a link to it – much context is missing even from the expanded PDF. Here’s an outline of the talk:

Kid’s Programming Language (07/2005)
Phrogram (10/2006)

Pedagogical Goals
Fun: learning is best when learning is fun
Accessible: easy to get started
Engaging: games, graphics, sounds
Simple: resist CS tendency toward increasing complexity
Rewarding: see quick, fun results from one’s work
Highly leveraged: maximum function, minimum code
Progressive: lots of concepts to learn, step by step
Preparatory: easy ‘graduation’ to professional IDEs
Modern: consistent with current software design standards
Publishable: as open source or executables
State of the art: extensible use of current technology
International: IDE language versions available

First Contact = Red Herring
First contact languages are not enough.
There must be a comfortable path for students to progress into mainstream languages and IDEs

Programming is Hard
We respectfully disagree.
We think this assumption prevents the thinking that will make it easier.
If you can read and you can type, you can program.

Demo: Phrogram version of Hello World!

Demo: Phrogram’s Logo-style sprite movement

Demo: User-defined Class example

Demo: Interactive debugging’s pedagogical value

Demo: Pong – absolute beginners can do this!

Demo: Pinball simulator

Demo: Missile Command – still cool after all these years!

Demo: Program Explorer UI, for large programs

Demo: Storytelling and other programs interesting to girls as well as boys

Demo: Conway’s Game of Life
Phrogram is simpy the easiest way to create educational software on any topic

Demo: Sierpinski Triangles, and bitwise AND operator implemented in Phrogram

Demo: 3D programming – Phrogram runs atop XNA and the XBox 360!

Things I didn’t demo:
XNA compatibility: beta next month!
Extensible class libraries:
Peer-to-peer Internet-based data exchange, for multiplayer games, chat and other multi-user apps
Extended file I/O library
Advanced math library (128 bit precision)
Weatherbug library for processing and visualization of weather data from live Internet feeds
XML-based IDE translation: Spanish, Portuguese, French, Italian, German, Czechoslovakian so far

Ohio State University feedback

PUC-Rio University feedback

Lakeside School, Seattle – academically acclaimed independent school
Using Phrogram in 6th and 7th grades, and Java in 8th+

Available Phrogram materials
150-page User Guide and 30-page Beginner’s Tutorial
110-page Addison-Wesley eBook, Learn to Program with Phrogram!
Active online community:
Ohio State: full CS0 course curriculum
Lakeside: curriculum published end of term
3 more book proposals in progress, one of them a textbook by a published CS teacher/author


Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: