top of page

A programming class without a classroom



When I started working with Blackbird Code two years ago I had just left a teaching position at a high school that I held for 8 years. In that time I grew intimately familiar with the ebb and flow of students in and out of a physical classroom space. Much of my planning time was spent considering the arrangement of desks, the grouping of students, and considering how students would move around during class time. Although I’m outside of the classroom now, I find myself considering what teaching looks like in this moment teachers find themselves in at the start of a new school year.


What does class look like without a classroom?


In these last two years I have been developing an online teaching tool for classrooms. Our mission at Blackbird Code is to empower teachers and schools to broaden access to computer programming, a critical skill in today’s economy. In order to achieve this mission we need to work where access is limited -- in public schools. Teachers need to:

  • Engage students in meaningful learning experiences.

  • Monitor student understanding and respond to needs.

  • Quickly and effectively communicate with students.

  • Encourage students to share and learn with each other.

  • Create a safe learning environment where mistakes are celebrated.

But how do we address these needs when school no longer takes place in a classroom? If I woke up tomorrow and found myself teaching a programming class at a distance, here is how I’d address the needs of a classroom with Blackbird Code:


Engage students in meaningful learning experiences.

  • Blackbird Code has a project-oriented curriculum that engages students in the creation of computer programs - starting simple and growing in complexity. The lessons are heavily scaffolded and include documentation, hints, and correct code when the student needs it. I would be trying to move students from this type of work into more open-ended programming in a sandbox environment - which Blackbird Code does with Guided Projects. These projects allow for more flexibility and creativity. I would also create my own projects for students to complete (called Warmups on Blackbird Code). Students can work on these asynchronously, so I would ask that they spend a couple hours a week on these learning experiences.


Monitor student understanding and respond to needs.

  • So how could I tell if my students had spent a couple of hours working each week? I would use the Educator Dashboard on Blackbird Code to check. This page displays the time spent on the platform, how many lessons and projects a student has completed, even the number of errors a student has seen on a particular lesson. I can also check out the code students are programming in the Workshop -- the sandbox environment in Blackbird Code. I can run student programs and make comments on their work. I might find a bug in their code, suggest they add a feature, or simply give encouragement on a project. Students also have the ability to flag a project for me to take a look at when I have time; and they are notified once I have reviewed their code.


Quickly and effectively communicate with my students.

  • There are a countless number of platforms that help students and teachers communicate, and I’d probably be asked by my school or district to use a certain platform for grades and official communications with families. Those are helpful tools - but how would I communicate with my students about their learning in my class? Not just the grade they’ve earned, but the learning they’re doing every day. This is arguably the most important aspect of a classroom space. Students and teachers have immediate access to one another and confusions are clarified in the moment. This is more difficult at a distance but can certainly be done.

  • Blackbird Code has a built-in messaging system that I can use to message students, and more importantly, students can use to message me. I would use this system as a type of formative assessment. I’d ask my students to write me a short note at the end of each session on Blackbird Code answering the following two questions:

    • What did you accomplish during your time on Blackbird Code today?

    • What programming concepts did you learn or practice?

  • I could make a class announcement using the Educator Dashboard that would alert students to the prompts and serve as a reminder each time they log in. Students would be able to send me notes whenever they need help or have a question.


Encourage students to share and learn with each other.

  • In the classroom students share with each other all the time. All. The. Time. Sometimes it’s even about the work they’re doing and the things they’re learning! This is the joy of teaching and learning and the reason so many people are lamenting learning at a distance. I would encourage my students to share their work with one another in several ways. First, I would suggest that students Friend as many of their classmates as they feel comfortable. Friends on Blackbird Code are able to see, run, and make copies of each other's work. Second, I would use live class time to show off projects that my students have created and ask them to describe their process. Third, I’d ask students to use the sharing feature on Blackbird Code to share their work with friends and family outside of the class.


Create a safe learning environment where mistakes are celebrated.

  • Learning is hard work. Unfortunately many students don’t feel comfortable making mistakes since they are typically tied to a grade or assessment of some sort. I always struggled in my paper and pencil high school class to assure my students that mistakes were a positive part of the process. There is something about committing an idea to paper that comes with a sense of permanence. This is not the case with the backspace key! Blackbird Code is built around the idea of making mistakes. It is a critical part of any learning process, and especially programming. When a student makes a mistake in a paper-and-pencil lesson they won’t know about it until the teacher takes a look at their work. In Blackbird Code the feedback is immediate: helpful error messages direct students to the source of the problem and documentation helps students uncover problems for themselves. In lessons, the correct code is supplied if they really get stuck.

Teaching and learning at a distance is certainly not the same as learning in a classroom, but I think the key components of a classroom can be replicated with the use of a few tools and meaningful learning materials like those on Blackbird Code. I look forward to helping teachers and students find paths to success while we’re at home this school year!


bottom of page