Ask questions periodically while watching instructional videos as a class to keep students focused and engaged.
Ask students to identify useless or unnecessary lines of code to assess their understanding of functions.
Write code in class in real time. This way you’ll be forced to pace yourself, so students can better see and understand the process you’re going through.
Build rapport with your class to create a comfortable learning environment. Remind students that overwhelming tasks, like undergoing code reviews, are stressful even for skilled programmers.
Remember that many misconceptions regarding linked lists also occur when dealing with binary search trees so that you are prepared to identify and correct them.
Have students pay special attention to “off by one” bugs to help them avoid common mistakes in their code.
Reiterate key concepts, such as the base case/recursive case pattern, every time you go through a recursion problem to solidify them in students’ memories.
Dedicate yourself to undergraduate students’ success from start to finish; be prepared to respond to students’ fears, tears, and triumphs.
Ask students to consider what happens behind the screen to encourage experienced students to explore and discover new things.
Draw a parallel between window shopping and viewing resources online to help students understand the logistics of digital copyright.
Distinguish between learning a lab science and learning CS to motivate those students who do not typically identify with science.
Use the analogy of carrying weights to teach students about how the amount of memory being used affects runtime.
Use physical representations of zoom levels to help students understand why image quality changes when zooming in and out.