Organize an activity where students make phone calls to their classmates with the goal of summing the numbers 1 through 6 in order to demonstrate recursion.
Use PEZ ® dispensers to demonstrate the push, pop, and peek methods for stacks to provide a clear and accessible illustration of these methods.
Remind students to spend lots of time carefully reading the free-response questions on the AP CS A exam to prepare them for this portion of the exam.
Provide students with an algorithm which is written in everyday language and have students write pseudocode in order to help them practice the process of translating the ideas in their heads into code.
Encourage students to replace variables with values when tracing through code to reduce the necessary cognitive load.
Discuss and explore the difference between additive (sequential) and multiplicative (nested) loop structures to give students practice reasoning about loops.
Have students pay close attention to loop bounds when tracing through code to help them identify and avoid off-by-one errors caused this way.
Have students practice looping through an array in as many ways as possible, such as forwards and backwards, to increase their comfort with array looping.
Teach students how to find built-in Java methods in the Javadocs documentation so they can are prepared to use this skill on the AP CS exam.
Compare objects in Java to cloud-hosted documents, such as Google Docs, for a relatable analogy to explain object references with.
Misconception: When students trace through recursive code, they have trouble figuring out if operations are done before or after the recursive call.
Have students label a string’s index values to help them understand how to use Java’s substring method.
Choose an appropriate IDE that fits course goals. For AP CS, use an IDE that doesn’t autofill to give students more practice writing code on their own
Highlight key differences between math, CS, and engineering to give students context for why CS is a distinct field in itself. Let students know that you don’t necessarily have to excel in one field to excel in the others.
Take extra time to encourage beginner students to learn more about CS, by (1) promoting AP CS and (2) using a final project for students already taking AP CS
When advertising your course, make it clear that any students “willing to do the work” are “wanted in the course,” and use titles like “Be a software engineer” or “Be an innovator” for your course or course modules.
Team up with teachers of lower grades to ensure that your students are sufficiently prepared for the rigor of more advanced classes.
Introduce a new concept by having students modify existing, well-defined programs before writing programs from scratch.