Course Level
CS1
Knowledge Unit
Fundamental Programming Concepts
Collection Item Type
Assignment
Project
Synopsis

The purpose of this assignment is to let students experiment with conditional “if” statements while building features of an actual game in Java.  The features explored in this assignment include collision detection, sprite manipulation, mouse and keyboard controls, as well as advanced game mechanics such as power-ups and multi-balls.  Students will practice branching and gain proficiency with Selection Control Structures (“if” and “switch” statements) while producing a customized version of their very own block-breaking real time simulation. 

Recommendations

For instructors, check out the instructor's resource page (index.html in the top-level directory). It offers links to the assignment, requirements, and additional resources.

This assignment has been offered in multiple CS1 sections, and they all seem to follow a similar outline:

(1) Read the assignment website.
(2) Set up the SpaceSmasher files, with help from the instructor if needed.
(3) Try TODO 0 together with your students.

The above list is merely a suggestion, and the instructor should feel free to edit/remix/cut/add content to their liking and to support the desired educational outcomes.  Finally, please email the GTCS team with any and all questions at rynn@uw.edu. We hope you like our work and would consider using it to supplement your existing materials that target conditional execution and branching.

Engagement Highlights

We have observed that providing students with an engaging digital sandbox can be a fun and motivating experience in which one can learn while exploring and playing.  So, we build fun real time simulations and then dissect them for use as an assignment, while focusing on the following engagement practices:

(1) Use Meaningful and Relevant Content. Rather than simple, contrived, or toy puzzles, we place the student in command of a fully functional game, to extend as they see fit.  We guide them via TODOs through interesting problems to solve involving graphics, sound, UI and UX content wrapped up in the context of an engaging realtime simulation.  We explore the use of games as a meaningful and relevant vehicle for students to learn via experimentation and play.

(2) Make Interdisciplinary Connections to CS: This assignment was built by student-lead teams of artists, musicians, designers, testers and engineers.  The students who use these assignments have a sandbox in which they can choose to focus on art assets such as sound or images in the game or the real time physics simulation, while simultaneously practicing CS skills that tie these elements together into an engaging, multi-sensory experience.  We regularly encourage our students to cross-collaborate with our other departments, including artists, mathematicians, musicians and physicists, in order to build a better simulation.

More information regarding the future engagement practices under consideration can be found at the bottom of the Instructors Resources landing page.

Materials and Links

Computer Science Details

Programming Language
Java

Material Format and Licensing Information

Creative Commons License
CC BY