The Free Python Book

Setting Up
Library Reference - V2



Source Code Zip
Welcome 1 video
Welcome 2 video
Welcome 3 video
Welcome 4 video
Welcome Finished video

Basic Movement

Source Code Zip
Basic Movement 1 video
Basic Movement 2 video
Basic Movement 3 video
Basic Movement 4 video
Basic Movement Finished video

UFO Abduction

Source Code Zip
UFO Abduction Finished - Intro video
UFO Abduction 1 video
UFO Abduction 2 video
UFO Abduction 3 video
UFO Abduction Finished video

Tools 1

Source Code Zip
Keeping Time video
Modulus Operator video
Increasing Speed video
Random Integers video
Move with Mouse video

Meteor Dodge

Source Code Zip
Meteor Dodge Finished - Intro video
Meteor Dodge 1 video
Meteor Dodge 2 video
Meteor Dodge 3 video
Meteor Dodge Finished video

Tools 2

Source Code Zip
Bounce Count video
Random True or False video
Key Pressed Demo video
Two Player Control
Strange Collision Behavior video


Source Code Zip
Pong Finished - Intro video
Pong 1 video
Pong 2 video
Pong 3 video
Pong Finished video

Tools 3

Source Code Zip
Four at Once video
Four at Once Fancy video
Dealing with None video

Meteor Defender

Source Code Zip
Meteor Defender Finished - Intro video
Meteor Defender 1 video
Meteor Defender 2 video
Meteor Defender 3 video
Meteor Defender Finished video

Tools 4

Source Code Zip

Meteor Dodge with Functions

Source Code Zip

Tools 5

Source Code Zip

Brick Breaker

Source Code Zip


Ch. 1 A Running Start
Ch. 1 Assignments
Ch. 1 Source code
Ch. 2 Diving In
Ch. 2 Assignments
Ch. 2 Source code
Ch. 3 Telling Stories
Ch. 3 Assignments
Ch. 3 Source code
Ch. 4 Game Fundamentals 1
Ch. 4 Assignments
Ch. 4 Source code
Ch. 5 Game Fundamentals 2
Ch. 5 Assignments
Ch. 5 Source code
Ch. 6 Data Galore
Ch. 6 Assignments
Ch. 6 Source code

Dr. Daniel L. Schuster

What are the Goals for this Book?

Basically I think programming arcade games is just about the best way to start programming. This is my attempt to write a book based on the idea.

  • Have fun! Programming is problem solving, and problem solving should be fun.
  • Learn about beginning programming. Software design and development is a great career - lots of jobs and it pays very well.
  • Ease the transition to CS 1. A high school or college CS 1 course can be really difficult. This introductory course should help.

What About the Book?

  • The FPB is under development now. Right now everything is in the form of rough notes.
  • I'll have a much more polished version by the end of the summer. If you want to see what a polished book from me looks like, visit the Free Java Book website.
  • Check back frequently as I'll update the website, the chapters and the source code.

What Do You Need?

  • Python and pygame - both of which are free downloads.
  • An editor - I use Wing and there's a free download version.
  • The cs0 library - a free download.
  • A computer.
    • Windows: doesn't have to be new or particularly fast, almost anything will do. I've successfully set up a 1GB RAM Netbook (very slow) and it works ok.
    • Macs: running Windows via Bootcamp or VMWare will work of course. Apparently a Mac OS X can work without Windows, though making it work is difficult. I'm working on that now.
  • A little computer knowledge - how to make a folder, save a file, stuff like that.

It's important to know that this is absolutely an introductory, beginner book. No programming experience is required. All you need is some basic computer literacy, and not much of that.

Using the Free Python Book

The FPB is available at no cost for educational use. You may print, copy and distribute it, in whole or in part, at a cost not to exceed 5 cents per page to faculty, staff and students of any educational institution. You may link to this home page or directly to any page that is part of this website. You may not copy any of these documents and place them on any other server or computer for distribution purposes. All copyright notices must remain in place.

Contact me with questions.