So you’re about to enter the magical world of teaching computer science, combining the creativity of lesson planning with the satisfying problem-solving of coding. From curriculum to classroom culture, there’s a lot to think about as you dive into teaching a subject for the first time.

1. Don’t start from scratch.

If you have more than two new preps, activities in the pre-made classes can also be a fallback when life gets crazy (as it inevitably will for first-year teachers).

Some great free resources to start looking at include the Scratch Curriculum Guide (K-8), (K–12), and CodeHS (6–12).

For AP classes, using a standard curriculum can also help ensure that you cover all the material at the appropriate speed. Although options for AP Computer Science A are more limited and expensive, there are many free options for AP Computer Science Principles, such as the Beauty & Joy of Computing and Mobile CSP for less experienced students and Harvard’s CS50 for more experienced students.

Over time, you might design entire classes from scratch. But when you’re just starting out, it’s more efficient to stand on the shoulders of giants and build on what’s been done before. And you can still personalize the curriculum and make it your own!

2. Stay at least a step ahead of your students.

You may also have to learn new languages or computer programs. Even if you have a degree in Computer Science, it may not have covered Scratch, App Inventor, or p5.js! It’s best to familiarize yourself with new technology as much as possible so that you are better able to answer student questions.

3. Create a classroom culture of inquiry and mistake-making.

Encourage students to follow a personal empowerment protocol to figure things out when they have a question. Similar to “ask three, then me,” this protocol encourages students to…

  • Ask a peer
  • Google it
  • Ask the teacher

This protocol both helps students become independent problem-solvers, and also helps ensure the teacher isn’t bombarded with questions.

Finally, normalize errors and mistake-making. Assure students that errors are part of a programmer’s daily life, and model dealing with errors yourself during code-alongs. Consider starting an “Error Tally” in your classroom where you tally all the errors that occur and celebrate them as a representation of all the things the class has learned today.

4. Establish clear expectations for computer use.

Depending on the age group of the students, consider establishing routines for computer use as well. Will students be allowed to open their computers before class students, or will they need to wait for permission from you?

Students also generally will have difficulty listening to you if their computers are open, absorbing their attention. Have them put their computers at 45 degrees (halfway closed) or even fully closed whenever you need their attention. Model what this behavior looks like: should they be slouched in their chair to still see their tilted screen, fingers still moving on the keyboard? (No.) Tell them they can close their computers fully if they anticipate that the computer will still be a distraction at 45 degrees.

These are all expectations and routines that you can establish and practice in the first week of school!

5. Establish clear expectations for academic honesty.

Harvard’s CS50 course has a great set of academic honesty guidelines that can be adapted to a high school setting. Consider putting some version of these guidelines in your syllabus:

Academic Honesty Guidelines

  • You may discuss the problems with peers.
  • When asking for help, you may show a peer your code, use and cite online resources, and ask the teacher for help.
  • When giving help, you may not show a peer your code. You may critique a peer’s code and ask guiding questions to help a peer see the solution.

Discuss the guidelines on day one, and even give the students a few hypothetical situations that they can judge as violations of academic honesty or not!

6. Use pair programming.

Computers can isolate students, but they don’t have to if you use pair programming and have students complete certain labs and problems in pairs!

By working together, students help solidify each other’s programming knowledge and keep each other on task. They enjoy the class more and become less intimidated by computer science.

Pair programming is a great intermediate step between learning a new concept and solving a problem individually. Make it a routine in your class, and then give students a chance to demonstrate mastery on their own.

If you’re interested in some pair programming techniques, check out our last blog post on promoting collaboration in a computer science classroom.

7. Have a lot of back-up activities.

Extra challenges in the daily assignments can help differentiate your class and give students an opportunity to build their coding skills. Resources for extra practice, like CodingBat for Java and Python, are another great option for early finishers.

It also helps to have ongoing projects or problem sets that students can work on whenever they finish their daily assignments.

Beyond the curriculum, you can invite students to pursue any track on Codecademy or SoloLearn that interests them, and even reward them with a prize (e.g. programming-related stickers or keychains) if they finish a whole track.

You can also allow them to free create in whatever programming language you are currently using. While some students thrive on this option, others need more structure, so an array of options is helpful.

8. Connect with other computer science teachers.

It’s great to meet people in person, so attend professional development events in your local area. Make a Twitter account if you don’t have one, and stay in touch with educators you meet on there (Twitter is pretty popular among teachers).

Once you’re on Twitter, search out other K-12 CS teachers. Participate in Twitter chats like #ethicalCS and #csk8 to meet other teachers and share knowledge.

If you’re on Facebook, join the Computer Science Educators group and, if you teach APs, the AP Computer Science A Teachers and AP Computer Science Principles Teachers groups.

Here’s the crucial part: ask for advice! Research shows that asking for advice makes you look more competent, so there’s nothing to be afraid of. The computer science teacher community is generous, and you will likely receive an outpouring of responses.

9. Have a growth mindset.

Sometimes your intricately-planned lessons will flop. Whenever this happens, note it and write down the changes you’ll make next time you teach it. If you have time, you can even revamp your lesson plan and materials right then and there! See, already you’re becoming a better teacher.

10. Have a non-computing hobby.

Establish some ground rules to maintain some kind of work/life balance. A few good starter ones are not working after 8pm on school nights and picking one weekend day when you won’t do any school work (or when you’ll just work in the morning).

To help yourself stay away from work, have activities and people in your life totally unrelated to teaching or computers. Sign up for a workout class, learn Spanish, get really into cooking, go to a beach volleyball meetup… anything you enjoy that will help you recharge after teaching!



This article is written by Kelly Lougheed, who is a Software developer & educator and can be followed on Medium or here:

Recommended Posts