Use plagiarism detection tools such as AntiCutAndPaste and/or MOSS (Measure Of Software Similarity) to easily discover if any of your students are cheating off of one another.
Stretch your students to help them improve their skills by asking them what they are most struggling with and making them do that regularly.
Have students complete a weekly log about what they accomplished this week, what they hope to accomplish next week, and what might hold them back from accomplishing these things.
Make all students say “I don’t understand” out loud, in front of the class to show them that nothing bad will happen to help them feel more comfortable saying something when they don’t understand something in the future.
Use an auto-grading tool to provide students with instant feedback on their programs and allow them to resubmit multiple times before the deadline so they can learn to find problems with and debug their code.
Create online multiple choice questions for students so they receive immediate feedback and you receive insight into their understanding of the material.
Ask students what they found confusing at the end of each week to identify problems so you can tailor future instruction to students needs.
At the end of each class, have students write themselves a summary of the big ideas they learned so they get practice sifting through lots of information to find its most important ideas.
Incorporate student presentations into your class as a form of assessment so that students develop their public speaking skills.
Moderate a group discussion with teams that have trouble working together to resolve disagreements and encourage collaboration in a constructive way.
Adjust all assignments to be a certain length in order to create and maintain consistent deadlines (e.g., weekly) so students remember when their homework is due.
Use the w3schools.com online HTML, CSS, and JavaScript tutorials to teach students web development through concrete examples rather than abstract definitions.
Model the software engineering process by having students design games or other projects for an audience. This helps students gain valuable, hands-on experience and make connections to real world applications.
Focus your grading on student understanding rather than creating a curve to help each student learn as much of the content as they can.
Ask students to reflect on what could have done differently when a class or project doesn’t go well in order to work together to improve future coursework.
Be explicit when you’re making suggestions to student work, rather than corrections, so your students understand the difference and that it is okay to disagree with your suggestions.
Ensure a meaningful introductory CS learning experience for each student by creating differentiated expansions for assignments while providing the same starting points.
Create hands-on, meaningful, and relevant projects where students produce artifacts that require rigorous CS content-knowledge and software engineering skills.