Unit 10: Post-AP Exam Projects (4–5 weeks)


The TEALS Program has designed these curriculum materials for the use of teachers and volunteer tech professionals in high school classrooms. Any teacher with prior programming experience (or access to a computer science professional) can use this curriculum to teach the AP Computer Science A course.

This curriculum is based on and aligned with Professor Stuart Reges' course at the University of Washington, CSE 142. The course uses the textbook:

Building Java Programs: A Back to Basics Approach by Stuart Reges and Marty Stepp. Publisher: Pearson; 5 edition (March 28, 2019) ISBN-10: 013547194X ISBN-13: 978-0135471944

The course is aligned with the AP Computer Science A standards. TEALS has received AP Audit certification for previous versions of the course and syllabus.

The TEALS AP curriculum was approved by the CollegeBoard so partner schools may use the “claim identical” function of the AP Audit website to obviate the need for their own curriculum audit. Specific instructions are available in the AP CS A Course Audit Instructions.

This curriculum uses principles of universal design for learning (UDL). The curriculum was written for and tested in classrooms with diverse learners; students with individualized education plans, English language learners, students who have received sub-optimal math or language instruction in the past, students who are gifted/talented, students who are otherwise “outside the average.” See Additional Resources for more information on universal design for learning.

Accessing the Curriculum

The AP Computer Science A Curriculum GitBook is located at https://www.gitbook.com/book/tealsk12/ap-computer-science-a/details.

For contributions to the curriculum, the AP Computer Science A GitHub repository is located at https://github.com/TEALSK12/apcsa.

Using the curriculum

Each classroom has different physical, cultural, academic, and scheduling needs. Therefore, we have tried to create a collection of lessons and materials that are adaptable to most situations. TEALS volunteers and classroom teachers will find different aspects of the curriculum useful; you should expect to skip over certain notes to focus on the information that is most useful to you.

We have provided classroom management tips and engagement tips for TEALS volunteers, who are new to the classroom setting. Experienced teachers and volunteers will likely choose to skip such details and focus on the step-by-step lecture notes.

You may browse the Curriculum Map for an overview of the pacing, objectives, and assessments.

Year Round Pacing

The table-of-contents (included with Introduction materials) contains coarse-grained time estimates on the scale of weeks and days so teachers can plan accordingly. Units 6 and 8 include extra days in the time-estimate so teachers can re-adjust their unit plans if they have shifted due to unexpected class cancellations or drift.

Daily Structure

Every classroom is different, and we expect that instructors will adapt the daily structure of the class to suit their students' needs. That said, we've designed most of the lessons using the following daily structure:

Hook & Instruction

  • Each lesson plan begins with one or several options for short (from seconds to 5 minutes) engaging or mystifying activities that introduce students to the topics to be introduced later in the lesson.

  • Lecture notes, student prompts, and quick-assessments (with answers) are outlined in subsection “Introduction.” If you are teaching in a flipped classroom, this section can be pre-recorded for students to view at home. For additional resources on flipping your classroom, please refer to “Additional Resources” below.

Student Practice

  • Student practice/activities are outlined with step-by-step instructions including pacing

    suggestions and alternative stopping points. Any special materials or preparation needed for the

    hook, lecture, or activity are listed in the Materials & Prep section.

Warmup / DoNow / Boardwork/Ticket-to-leave

  • Since each classroom progresses at different rates, we have not included warm-up and cool-down

    questions (though time has been scheduled in the Pacing Guide for one or both of these

    activities). You should choose your questions based on the topics you felt were most challenging

    or confusing for your students. A good source for short-answer and multiple choice questions is

    the Barron's AP Computer Science A review book, which TEALS ships to each AP CS A volunteer.


The Glossary of Education Reform defines scaffolding as:

A variety of instructional techniques used to move students progressively toward stronger understanding and, ultimately, greater independence in the learning process.

Instructors provide successive levels of temporary support that help students reach higher levels of comprehension than they would have been able to achieve without assistance. Support is gradually removed as students move towards mastery, which occurs when students demonstrate skills and knowledge without any outside assistance.

The University of Washington course CSE 142 and associated textbook do not contain much scaffolding. This curriculum attempts to wrap the content of the UW course with scaffolding appropriate for high school classes. Some classes may not require scaffolding, and other classes may need even more scaffolding than those steps suggested within the lesson plan.


Most lecture notes and classroom examples are slightly modified versions of the examples outlined in the textbook. When the class needs additional examples, or re-teaching, instructors can refer directly to the textbook for a fresh set of similar examples and explanations. The "additional resources" section of this document lists some other sources for examples and labs.

References to the textbook

Some classrooms are using earlier editions of the Building Java Programs textbook. To avoid confusion, we have written all reading and practice assignments by chapter and section rather than page number. In cases where practice problems or assignments differ between editions, we have copied those assignments (with reference) into printable documents.

Homework Assignments

As written, the homework assignments contain material to be assigned, but are not phrased in terms of learning goals. Teachers should choose specific learning goals for the evening's work depending on student progress and timing within the week and school year, then phrase the assignment in terms of learning goals, not output.

For example, rather than "read section 3.1" assign the reading by saying "for tomorrow, be prepared to pass data into methods using parameters. Section 3.1 in the textbook will show you how."


Throughout the course, this curriculum includes lab assignments using the Pokémon universe as a subject-matter domain (often replacing textbook assignments on less salient topics like compound interest). The Pokémon storyline and game rules are familiar to male and female students from all socioeconomic backgrounds, available across the digital divide as both a card game and a video game, and are available in 10 different languages (English, Spanish, Portuguese, Dutch, French, German, Italian, Korean, Chinese, and Japanese).

Because the game relies on statistics, modulo operators, and the underlying 32-bit integer that characterizes any given Pokémon, we will be using this theme to introduce students to much of the AP CS A curriculum. Students will be entering the AP CS A course with varying degrees of math literacy, and framing mathematical challenges in this familiar framework is helpful for avoiding stereotype threat and math anxiety.

To learn more about the Pokémon storyline, game rules, underlying formulae, and characters, visit http://bulbapedia.bulbagarden.net/. For a more general introduction to the Pokémon franchise, visit http://www.pokemon.com/.

AP Test Preparation

The curriculum is designed with AP Test Prep in mind. All of the Unit tests are in the AP exam format. In classes where many students will take the exam, instructors should gradually adjust the testing environment to mimic that of the exam:

  • Always provide/allow the AP Java Quick Reference

  • Move from open-note (see “Tricky Code Cheat Sheet”) to closed-note

  • The AP exam has 40 multiple choice questions in 75 minutes (≈2 minutes per question). On the earlier tests, start at a slower pace (perhaps 4 minutes per question). As the course progresses, work to a pace even faster than the actual test (90 seconds per question).


A comprehensive vocabulary list for each unit is provided for teachers to generate word walls in their classroom. Some classrooms will be able to omit certain vocabulary words; as offered, the lists offered include words that English language learners and students with previous sub-optimal instruction may find challenging.

Error-Checking Lessons

One class period in each unit has been devoted to student correction and resubmission of work. While it may be tempting to “win back” class time by skipping these sessions, we strongly encourage teachers to leave these sessions in.

When students have the opportunity to fix their work and earn back full or partial credit, it gives students agency over their grade and teaches students to examine and reflect upon their own learning. On a practical note, when error-checking lessons are included, teachers need only grade answers as correct/incorrect, since students will be challenged with finding and fixing the errors on their own later. Finally, students that have answered all or most of their work correctly receive a day off to do silent work/play on their own, which positively reinforces students to put in the initial effort to win a day off.

Video Tutorials

  • Timing and Pacing — Adjusting lessons and the curriculum map for the speed of your learners

  • Projects and Labs — Choosing whether your class completes the AP labs or the projects


  • Supporting Visual-Spatial Learners — Using the physical space in your classroom to enhance


  • Parson's Problems — Assessing high-level programming skills quickly with Parson's Problems

  • Grudgeball — Reviewing material by playing a class game of Grudgeball

Digital Tools Associated with This Curriculum

Integrated Design Environment (IDE) — Eclipse

Coding in Java requires the Java Development Kit and a text editor or IDE. There are many Java IDEs available. Currently most of the TEALS classrooms use Eclipse. Unit 1 includes directions for installing Eclipse.


Professors Marty Stepp and Jessica Miller created the Practice-It online tool that allows students to complete Java exercises from the BJP textbook and get immediate feedback on their results. Detailed instructions for teacher and student registration on the site are included in Unit 1 lessons.

AP CS A TEALS volunteers have been provided the documentation (on Canvas) for access to the Practice-It dashboard. As an alternative, other instructors can use one of the following methods:

  1. Students take screen shots of their total correct problems (a table is available on their home dashboard), and submit the screenshots by email or form submission on your chosen learning management system.

  2. Implement the Practice-It Grade Retrieval Tool created by Mauricio Del Carpio (of Bishop Blanchet High School). Step-by-step instructions for installation are included in the Practice It Grade Retrieval document included with the other Introduction materials.

Detecting Cheating with MOSS

Although the curriculum does not specifically outline an approach for monitoring cheating, many teachers have found it easier, faster, and less stressful to use a free plagiarism-detection program offered by Stanford at http://theory.stanford.edu/~aiken/moss/. Teachers will still need to manually inspect code flagged by MOSS, but the program does catch common tactics including renaming variables and reordering methods.

Occasionally, teachers have difficulty registering for an account. If this occurs, you are encouraged to email the program's creator Alex Aiken directly, at aiken@cs.stanford.edu.

Additional Resources

  • The free web-based game Code Hunt (http://www.codehunt.com) offers opportunities for students to find and fix errors by “discovering the missing code segments.” Assignments/Levels are automatically graded, and students can compete against each other to hone their programming skills.

  • Similar to PracticeIt, CodingBat (http://www.codingbat.com) offers Java practice problems with instant feedback for students. The problems in CodingBat are distinct from those in the Building Java Programs textbook. CodingBat has a teacher dashboard, and a system of badges to motivate learners. Instructors can also upload their own sets of java problems for their classes to complete.

  • If you are interested in learning more about principles of universal design for learning, please visit http://www.udlcenter.org/aboutudl/udlguidelines.

  • Emerging EdTech has collected a sample of 20 digital tools to increase collaboration in the classroom. One of them might be perfect for your classroom:

  • See 20 Fun Free Tools for Interactive Classroom Collaboration. Other tools for collaboration that have been successfully used in TEALS classrooms include Twiddla, Vyew, Skype, and Google Hangouts.

  • If your classroom does not already have a digital grade management system, previous TEALS teaching teams have used Moodle, Canvas, Schoology, Excel Online, and Google Forms.

  • To create digital, self-grading, and responsive quizzes, Google Forms and Socrative offer free tools and tutorials to use their systems.

  • If you are stationed in a high-performing school, or in a school where many students have already mastered other programming languages, you may want to consider flipping (or inverting) your classroom. To learn more about the theory and practice of teaching in a flipped classroom, Vanderbilt University offers a comprehensive introduction and links to practical resources/examples here: http://cft.vanderbilt.edu/guides-sub-pages/flipping-the-classroom.

    You should still be able to use most of the resources offered in this curriculum, but you will have to shuffle how you use the lesson plans. Some quick recommendations:

    1. Use the lecture notes as given, but record the lecture for student viewing.

    2. Where lecture activities have been suggested (e.g. think-pair-shares), consider embedding questions into your lesson plans.

    3. Save class competitions for in-class, and leave reading and easy Practice-it, self check, and worksheet exercises for home review.

  • As you read through the lesson plans, you will find several classroom teaching activities and strategies appear repeatedly. Brief video tutorials modeling these activities can be found within the TEALS repository. Keep an eye out for specific adjustments to the lesson plans for error-checking and test review. While these lesson plans look identical at first glance, small adjustments have been made for content, timing, and AP test prep.

Printing GitBook

The AP CS A GitBook can be printed by navigating to https://pdf.gitbook.cloud/preview?url=https://tealsk12.gitbook.io/apcsa/#. However, the "Download" button does not work. There is workaround depending on the browser:

  • click on the document to enable the pdf menu to show and clicking the down arrow or "Save as Copy"

  • right click on the .pdf document and select "Save As"

Giving feedback on the curriculum

TEALS intends for this curriculum to be a starting point; it's our first attempt at a complete AP CS A curriculum. We'll continue evolving and adapting the curriculum and associated materials as we learn more about teaching AP CS A. To participate in this process, we invite TEALS team members and independent teachers using this curriculum to submit edits and suggestions via the discussion forum on the TEALS dashboard or in this Github repository issues page.