Course Level
CS1
Knowledge Unit
Fundamental Data Structures
Collection Item Type
Project
Synopsis

In this project, a student (or a pair of students) completes a Java implementation of the Domineering board game. Advice is provided on breaking this program down into methods and testing those methods. Learning objectives include using multidimensional arrays, developing a simple GUI and manually testing individual methods.

Recommendations

Prior exposure to static methods and multidimensional arrays is recommended. Additional recommendations include: To quickly examine this activity, see the PDF posted below. This is the instruction sheet that the students will work through.

To look more deeply or modify the assignment for your own use, get the latest version of the PDF, Java code, and any other files here:

https://github.com/PeterDrake/ljing2-skeletons/tree/master/Domineering

To quickly install and run this activity, as well as all of the other Learn Java in N Games activities, follow the instructions here: http://ljing.org/ .

Engagement Highlights

This project employs relevant and meaningful content by using a board game called “Domineering”. It is also relevant in that a number of students hope to go into the computer game industry (which is bigger than the film industry). Finally, games are a valuable stepping-stone from "toy" problems to "real-world" problems: the rules are nontrivial and can have subtle consequences, but everything is still well-defined. While it could be completed by an individual student, it is well-suited for pair programming, a collaborative learning experience that has significant benefits for engagement and inclusion.

Engagement Practices Employed

Materials and Links

Computer Science Details

Programming Language
Java

Material Format and Licensing Information

Creative Commons License
CC BY-NC