Use a classroom debate as a way to encourage students to engage in discussions about ethics in computer science.
Show students what code looks like with and without new programming constructs (e.g., methods, Objects, inheritance, loops, switch statements) to motivate the reasons for using new concepts.
Help students get their development environment up and running during the first class to avoid technological problems as the class progresses.
Draw concept maps in class, in groups, or individually on the last day of each unit to ensure all students have developed a correct and helpful model of the material covered.
Set aside class time to check in with students when they’re working on large (2-3+ weeks) group projects in order to catch them before they get derailed and create a project that doesn’t demonstrate assignment requirements.
Arrange the computers in your classroom in a layout that allows you to easily view what all the students are working on.
Ask a question that is tangential to the course content at the beginning of the course to teach students how to have a class discussion in low-stakes context so that students create a classroom environment that is safe for engaging in debates.
Use Productive Talk Moves to enhance class discussions in order have high quality discussions that engage everyone and further student understanding of the material.
Ask an open-ended question and encourage constant student participation, rather than responding to the class after each student makes a point, to lead engaging discussions and debates.
Create an anticipation guide to elicit prior knowledge, identify misconceptions, and prepare students for a lesson.
Line students up according to their familiarity with a concept, then pair nearby students so that students can work together in pairs more comfortably because of similar content competency.
Encourage girls to get involved in CS by emphasizing the importance of diverse perspectives in the industry and by informing them of the vast opportunities in the computer science industry.
Create a list of questions pertaining to the daily lab material that focus on the concepts of lab exercises to ask students, individually or in groups, to gauge student’s understanding of the material.
Create project videos to give students clear, verbal and visual explanations of what to do for a particular assignment.
Have students create a 2-3 minute videos of their project to demonstrate what it does and to synthesize the work they did for the project.
Challenge students to rethink their notions of computing and computers when discussing the social implications of computing.
Connect difficult programming constructs to concepts discussed in students’ concurrent coursework to help them anchor the information they’re learning and discover interdisciplinary connections.
Fold paper to demonstrate the effects of different complexities, (i.e., O(n)) using a physical analog to help students strengthen their understanding of this abstract topics.
Misconception: Students incorrectly believe that variables passed into a block in Snap! will get modified; however, a copy of the passed-in variable is what the block receives and modifies.
Use sounds in Scratch to make it clear when particular lines of code are being executed because it can be really hard for students to figure out the order of execution.