To build intuition about searching and sorting algorithms, have students engage in a kinesthetic activity where they unwittingly reproduce or create binary search and sorting algorithms.
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.
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.
Get at eye-level when working with students who are working in their seats, rather than standing above them to reduce intimidation so you develop good student teacher relationships.
Use an Arduino and three LEDs to make an electronic, binary die to teach students about data representation, programming basics, and Arduino in an engaging introductory activity.
Use popular, repetitive music to teach loops in a beginning course because this motivates the purpose and application of loops while keeping students engaged by referencing popular culture.
Replace classroom lecture with co-teaching to keep students accountable during course time and ensure student engagement.
Reinforce introductory drawing in Processing by having students draw a simple logo students are familiar because using a recognized cultural icon students helps keep students motivated.
Create an environment where students know how to stay focused by making it easier to identify off-task behavior
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.