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. 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. Since these materials are new in 2015–2016, TEALS will apply to have the new syllabus approved. Once the CollegeBoard approves the new syllabus, partner schools may use the “claim identical” function of the AP Audit website to obviate the need for their own curriculum audit.
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.
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
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.
The table-of-contents (included with Introduction materials) contains course-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.
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:
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.
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.
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.
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/.
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.
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.
Coding in Java requires the Java Development Kit and a text editor or IDE. There are many Java IDEs available; at present time, most of the TEALS classrooms use Eclipse. Unit 1 includes directions for installing Eclipse. TEALS volunteer Gil Lund has prepared a video with a Hello World and walkthrough of some Eclipse: https://mix.office.com/watch/pje5izaj92jz/.
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.
As of the 2015–2016 school year, TEALS classes do not have access to the Practice-It dashboard for tracking student progress on the exercises. Instead, instructors can use one of the following methods:
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.
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.
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 [email protected].
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, Vanterbilt Univerisity 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:
Use the lecture notes as given, but record the lecture for student viewing.
Where lecture activities have been suggested (e.g. think-pair-shares), consider embedding questions into your lesson plans.
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.
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 to [email protected].