Have students create their own free & open-source software as a project to increase motivation and meet learning objectives.
Encourage students to modify and break provided code as a way to better understand the code and its underlying concepts.
Ask each student to bring in their favorite YouTube video that explains a certain computer science topic to give the class a variety of different explanations for the same concept.
Use visual depictions of programmatic concepts, such as recursion, to improve students’ understanding of the concept and reinforce students’ intuition about the concept.
Stand or sit among your students in small group settings to encourage more student-driven discussions.
Encourage your students to utilize online resources to further their understanding and interest in the course 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.
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 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 a classroom debate as a way to encourage students to engage in discussions about ethics in computer science.