Have students act out packet routing to learn about how information moves through the Internet in a way that is easy for them to understand and visualize.
Use slide puzzles to help students understand how packets get reassembled when they reach their destination because students need help creating a mental model and are often are amazed and confused by this process.
Have student video tape their Arduino circuits to make it easier for you to grade because you don’t have to collect the Arduinos or set aside class time to observe the circuits in action.
Illustrate the steps a user-action travels through in the Ruby on Rails framework, from making a request at the browser to returning a response, to help students learn create a meaningful mental model.
Highlight the basic syntax and semantics of Ruby on Rails without referencing complex external concepts like closures and blocks to enhance beginning students learning to code them quickly.
Get students' thinking aligned with the Ruby on Rails community values by introducing them to community resources like Github, forums, and screencasts, for example http://railscasts.com/.
Remind students that each problem relies on a specific set of knowledge; not understanding a particular problem doesn't mean they’re stupid, it’s an opportunity to work hard and learn more.
Set expectations during workshops for a focused classroom by redirecting off-task behavior and showing students how to take their work to the next level.
Teach students that if they need to explain their code for someone else to understand it, they should think about how to change the code to make it readable.
Ground the teaching of style and code clarity through the experience of reading unfamiliar code to provide meaningful motivation for students.
Use technical vocabulary consistently and define terms repeatedly to help students gain competency and fluency speaking in technical terms.
Create a list of the vocabulary terms that come up in error messages for the specific programming language you’re teaching so that students are prepared to understand and interpret the error messages they come across.
Introduce terms like declaration, initialization, and operand that often appear in C++ error messages so that students are prepared to understand and interpret the error messages they come across using C++.
Misconception: Students transitioning from Scratch to AppInventor are often surprised to not have a wait block.
Suggest students study an hour a night Monday through Friday as opposed to five hours in a row over the weekends, to help your students create good study strategies and prepare them for success in your course.
Use 7-day 4-doses-a-day pill-organizers to introduce students to 2D arrays because these create an interactive, 7-by-4 two-dimensional array that helps students visualize this abstract concept.
Connect how extracting important information from word problems or logic puzzles relates to the process of working with software clients.
Explain that when you ask an object to do something the proper syntax in Java is to say object [dot] method, sometimes there is additional information required.