Ask students “What were you trying to do?” when they ask for help to help answer their own questions because they may already have the skills to debug their own Scratch programs.
Have students give you instructions on how to get from the door to chair on the other side of the room to teach them to be precise when giving instructions to a computer.
Tell students to experiment and break things so they maximize their learning opportunities and exposure to different aspects of Scratch to gain experience and build competency.
Talk to students about appropriate social behavior in the Scratch community because there is a large number of people on scratch.mit.edu who connect over their projects, which provides a safe and narrow space for learning about online etiquette.
Allocate the last 15 minutes of class for students to share their work with each other in beginning Scratch classes because students enjoy seeing each others projects and demonstrating their progress.
Use scoreboards to motivate the use of variables because young students have developed strong mental models for scoreboards through previous exposure allowing them to quickly understand what variables are.
Foreshadow arrays right after teaching for loops by showing students how to create a 1x6 grid using the rectangle object in the Java objectdraw library because visualizations built off of recently introduced material provide a useful transition.
Play musical chairs to explain while loops so students develop physical experience navigating through the structure of a loop to better understand while loops.
Create more time for active exercises by flipping the classroom; have students watch videos that cover basic information so you can focus on tasks that require student-teacher interaction.
Use active exercises in your classroom to develop a supportive culture and create a more engaged classroom that helps more students in your class develop deep content knowledge.
Step through an accumulator pattern on board to make clear how variables change within a while loop to help students understand this confusing topic.
Require students to refactor their code while keeping the output of their program exactly the same in order to challenge them to solve problems using a variety of strategies.
Have students code boundary condition test to handle removing adjacent duplicates to help them better understand data structures and become familiar with common bugs through practice.
Give students a fully functional program on Day 1 that they will incrementally add features to as you cover content throughout the semester to engage them by satisfying their desire for creating working code.
Create boolean variables to use as the condition when introducing if statement to highlight for students that the condition is any expression that evaluates to true or false.
Use group discussion to help students figure out boundary cases for removing duplicate adjacent elements on their own so that they get to discuss a variety of test cases in depth before focusing on the code.
Explain the “discards qualifiers” error in C++ using the metaphor of a contractor who has signed a contract not to change instance variables, but then attempts to use subcontractor who hasn’t agreed to the same terms or signed the appropriate forms.
Keep the Scratch scripting area organized using the clean up button to ensure that there aren’t dangling scripts and to make debugging and understanding scripts easier.