Generic Scrolling Game

Dave Feinberg
Carnegie Mellon University
fberg@cs.cmu.edu
This assignment proves that a programming project can be very structured without imposing a particular theme/story, allowing students to draw on their creativity to personalize their work.

It's perfect for the CS1 teacher who wants to give students an open-ended final project, but lacks the manpower to support students facing a variety of coding challenges. Although each student develops a personalized arcade game with their own theme, story, objectives, twists, etc., all students ultimately completed the same methods with essentially similar code, making it easy for the course staff to support and grade.

And the students loved it.

Summary Generic Scrolling Game -- fill in a few methods (headers provided) and end up with a very personalized and fun arcade game
Topics using objects, in the context of a 2-dimensional grid (similar to APCS's GridWorld)
Audience most appropriate for late CS1 or early CS2
Difficulty This is a 1-week assignment of intermediate difficulty.
Strengths The great strength of this assignment is that it appears to students as an open-ended creative project, but each student is completing the same methods with essentially similar code, which makes it very easy for the course staff to support and grade.
Weaknesses Not aimed at introducing any particular topic. Best used for reinforcing object use and other CS1 topics.
Dependencies In its current implementation, it requires understanding of basic object-oriented concepts in Java, but very little else. (Send email if you would definitely use this assignment if it were in Python.)
Variants
Students discovered countless variations, including title and instruction screens, levels, increasing speed/difficulty, animation, etc. I also varied the assignment by requiring students to save and display the top 10 scores. The assignment could also be easily adapted to use the APCS GridWorld classes. (Send email if you would definitely use this assignment if it used GridWorld.)

What students made

Below are examples of the range of projects that students created. Other games were based on Pac-Man, The Simpsons, Space Invaders, etc. (Personally, I'd make a car-racing game, but I haven't had a student do that yet.)


Avoid distractions and collect caffeinated beverages until you're wired enough to read books and write a paper.


Avoid settling for cheap pillows, and level-up by accumulating only the fanciest embroidered ones.


A sophisticated game, based on the classic game of Zelda.


The Assignment, as given to students


Extra info about this assignment: