Encourage student groups to proceed through the phases of problem solving in order, rather than completely testing only one problem solution at a time, to make them more productive.
Reward code solutions that have the correct thinking and steps behind them, as this can often be reassuring for students.
Keep these three ideas in mind when teaching students how to politely disagree and evaluate one another’s ideas, to encourage productive group work.
Encourage students to justify their answers and ideas during conversations in group work to improve group dynamics.
Judge students’ participation along multiple dimensions, rather than prioritizing one dimension like accurate execution of procedures, to make assignments more accessible and encourage well-rounded engagement.
Raise the status of students who are less respected within a group by bringing their praiseworthy work to the group’s attention to even out respect in group dynamics.
Grade group discussions or randomly select one group member’s work to determine the whole group’s grade to hold each student accountable during group work.
Require groups to review answers together if one student in the group cannot independently answer your questions completely to emphasize collective responsibility and ensure all students know the material.
Have students imagine that logical operators are people making decisions to help them think about how the operators work.
Analogize stacks and interrupts using a story in which a person is frequently interrupted in the course of performing everyday tasks.
Compare recursion to painting the layers of a Russian nesting doll to help students understand the concept.
Call on all students equally to emphasize student equality and avoid creating a competitive environment. This prevents expert students from dominating during class since you’re not validating interruptive, show-offy behavior.
Have students sort large signs their classmates hold to better visualize different sorting algorithms. However, be mindful of unsuitable factors to sort by, such as height and weight.
Give students a caesar cipher to reveal a picture or message in order to teach how characters can be treated as numbers and to reinforce string manipulation.
Give students a cheat-sheet for how to accomplish particular tasks in Java so that they can create interesting programming from the beginning of a course to keep them engaged.
Bring in real stories about software, specifically games, sometimes going wrong! It is important for students to learn that development usually takes more than just a day and there is no ultimately correct solution.
Balance students’ interest in immediate gratification (writing code) with preparation for the AP CS exam by having students work on and off the computer during every meeting.
Use www.polleverywhere.com as an alternative to iClickers for small groups. It provides a number corresponding to an multiple-choice answer for students to text in using their cellphones.
Encourage students to write clear, well-commented code by having students switch partners in the middle of a project.
Have students learn to make themselves a profile page with pop-ups using JavaScript for an exciting and relatively fast way to get students engaged and programming.