Course Level
Knowledge Unit
Fundamental Programming Concepts
Collection Item Type

In this lab students work either individually or in pairs to create a game of their choosing using the VPython library. To start, students are given a basic program that shows a simple alien with limited control from the user. Students are required to make incremental changes to this program, adding more complex graphics and controls to make a more interesting game. This lab reviews classes and graphics, as well as requiring students to think about the control flow for their game. It is particularly useful for students who are new to classes and need additional practice designing classes, as well as writing methods and debugging code.

The authors of this material were awarded a 2015 NCWIT Engagement Excellence Award for this assignment. Learn more on NCWIT's awards page.


Consider interspersing anecdotes and asides throughout your lecture about the collaborative nature of building a medium- to large-scale program on a diverse development team to increase Student-Faculty Interactions. Additionally, consider using pair programming or another collaborative learning strategy for this assignment. To see how pair programming could be implemented here, see the work policy link below.

Engagement Highlights

Gives students significant creative freedom as a way of Incorporating Student Choice. Explores different game functionalities as a way of providing Meaningful and Relevant Content. This material allows students to work together to facilitate concept understanding and exploration.

Computer Science Details

Programming Language

Material Format and Licensing Information

Creative Commons License