A Guide to Reviving the AP CSA Elevens Lab

1 min read


Popfizz added a modified version of AP CSA Elevens Lab to the course. Why did we bring back the old lab? It’s a culminating lab that requires students to put all their AP CSA knowledge together including array/arraylist manipulation, random, loops, inheritance and polymorphism.

Since the AP CSA CED updates, this lab got removed from many classrooms due to its use of ‘abstract’. We made some changes to bring back our favorite lab. We updated the project so that it no longer uses abstract but still maintains the superclass-subclass structure.

The Elevens Game

The Elevens Game is a culminating activity that requires students to use all skills covered in the AP CSA course. This is a modified Elevens Lab designed to meet the updated AP CSA requirements. For the original Lab, click here to download the student guide. 

Getting Started

To assign the updated Lab to your students, try the following:

  1. For teachers guide and solution files, log in to the AP Classroom to download the original lab.
  2. Replace the two solution files for Board.java, and ElevensBoard.java in Activity 9 with the files in this link.

or, if you have access to the AP CSA course, visit 14.Lab 5 – The Elevens Game. The Lab is padded with 65 supporting tasks to help students complete the project with plenty of scaffolding.


  • The player removes each pair of cards (A, 2, … , 10) that total 11, e.g., an 8 and a 3, or a 10 and an A. An ace is worth 1, and suits are ignored when determining cards to remove.
  • Any triplet consisting of a J, a Q, and a K is also removed by the player. Suits are also ignored when determining which cards to remove.

Play the game here: https://popfizz.io/try-it-out

Select ElevensGUIRunner.java as the run file.

Lab Sequence

Activity 6 is introduced first. Have your students play the game here.

Activity#DescriptionPrerequisitesJava files
6Playing ElevensElevens.java
1Design and development of a Card classObjects and classes, ints and StringsCard.java
2Initial design and implementation of a Deck classArrays, Lists / ArrayLists,conditionals and loopsDeck.java
4Implementing the Deck shuffle methodMath.randomDeck.java
5 (optional)Testing with Java assert statementsbuggyDecks, modified Deck.java
7Design of the ElevensBoard classClassesElevensBoard.java without inheritance
8Using an abstract Board classInheritanceBoard.java ElevensBoard.java
9Implementation of the ElevensBoard classInheritanceElevensBoard.java
10 (optional)Variations on ElevensInheritance ThirteensBoard.java ThirteensGUIRunner.java
11 (optional)Simulation of theElevens gameClassesElevens.java ElevensSimulation.java ThirteensBoard.java ThirteensSimulation.java

Related Links

Leave a Reply

Get updates from Popfizz Computer Science in your inbox.