A Guide to Reviving the AP CSA Elevens Lab
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.
To assign the updated Lab to your students, try the following:
- For teachers guide and solution files, log in to the AP Classroom to download the original lab.
- 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.
Activity 6 is introduced first. Have your students play the game here.
|1||Design and development of a Card class||Objects and classes, ints and Strings||Card.java|
|2||Initial design and implementation of a Deck class||Arrays, Lists / ArrayLists,conditionals and loops||Deck.java|
|4||Implementing the Deck shuffle method||Math.random||Deck.java|
|5 (optional)||Testing with Java assert statements||buggyDecks, modified Deck.java|
|7||Design of the ElevensBoard class||Classes||ElevensBoard.java without inheritance|
|8||Using a||Inheritance||Board.java ElevensBoard.java|
|9||Implementation of the ElevensBoard class||Inheritance||ElevensBoard.java|
|10 (optional)||Variations on Elevens||Inheritance||ThirteensBoard.java ThirteensGUIRunner.java|
|11 (optional)||Simulation of theElevens game||Classes||Elevens.java ElevensSimulation.java ThirteensBoard.java ThirteensSimulation.java|