New Designs for School
New Designs for School

We’ve all had the experience of truly purposeful, authentic learning and know how valuable it is. Educators are taking the best of what we know about learning, student support, effective instruction, and interpersonal skill-building to completely reimagine schools so that students experience that kind of purposeful learning all day, every day.

Learn More

With a self-paced, mastery-based instructional design for a high school coding unit, students took initiative, developed high-quality computer programs, and taught others how to code.

I’ll never forget the first computer science class I took—although I wish I could! We were learning to make programs using a coding language called Visual Basic and a lot of what we learned came right from a textbook, a rather large textbook—one that cost me a lot of money. We learned by typing in lines of code from the book and making some pretty ‘basic’ programs. When I was asked to design a computer programming course this year for students in grades 9 and 10, I wanted to make sure their first experience with computer programming was more eventful than mine.

I wanted to make sure that my course followed a low floor and high ceiling model. That is, something that was easily accessible for all but provided a lot of opportunities for students to dig deeper into the content and get stuck. I also wanted to make sure they were able to learn at their own pace, so I could be more available to help them troubleshoot. I really didn’t want to be at the board explaining code line-by-line and dealing with the inevitable “Sir, mine isn’t working.” And finally, I wanted to make sure students were required to show off their skills at the end of this course and leave with the feeling of success.

I decided on using the Modern Classrooms Project model combined with a HyperDocs template I found to help me design a unit of study for this course (See Figure 1 and this Google doc).

student lesson guide

Figure 1: Part of my HyperDoc student guide with the list of lessons, resources, and video links. (Courtesy of Tom Cosgrove)

We used the programming language Processing since it is Java based and very user friendly (and connects well with visual art). I started by deciding on some main topics I wanted students to study and I recorded my own tutorial videos using Screencastify to show the steps needed to create these programs (See Figure 2 and this YouTube video for example).

EdPuzzle screenshot

Figure 2: One of my tutorial videos as it would look in Edpuzzle using YouTube and Screencastify. (Courtesy of Tom Cosgrove)

Students were able to work at their own pace, watching and rewatching videos as they needed, and I could check in on their progress easily using analytics in Edpuzzle. I also embedded questions into the videos so I could check for understanding. Students were required to display their progress on a whiteboard so they could see if they were on track with the rest of the class and so I could monitor their progress easily (See Figure 3).

daily progress tracker

Figure 3: The daily progress tracker with the current lesson each student is working on. (Courtesy of Tom Cosgrove)

Some lessons were required (must-do) and some were optional (aspire-to-do). I wanted all students to complete an introduction to Processing, develop their first program, and learn about lines, coordinates, colors, and interactivity (Figure 1). As things came up in class I was able to create and share a tutorial video to provide more information to those that were interested or adjust my upcoming lessons to suit their needs. At one point some students were asking me how to use the ‘random’ command in Processing. After explaining it to them I thought it would be interesting for the others in the class so I made a bonus tutorial video. This is “just-in-time” learning at its best: I was teaching students things that they actually wanted to learn!

One moment in this process really sticks out for me and it was just one of many that showed me that this model is so powerful. I was at home planning one evening and I looked at the HyperDoc for our coding class. I noticed a student was on the document and I could see they were actively looking at it. I then went to Edpuzzle and sure enough this student was there watching a video lesson. I didn't set homework in this class, nor did I tell this student they needed to watch the lesson video; they took initiative and did it on their own! It was such a great moment that I emailed their parents to congratulate them on taking initiative and how impressed I was. I spoke to the class about initiative the following day and explained how important this skill is and that this was a perfect example. The Modern Classroom model allowed for this to happen and more learning came from this situation than would have happened in a more traditional classroom setting. Both the students and the teacher are empowered to take control of the learning that goes on in the class and students are able to develop self-awareness of their learning, an invaluable skill for young people.

As we neared the end of the video lessons I asked students to meet with me to show me what they learned. We had a conference, discussed their progress, and talked about what they needed to do next. Students were then asked to make their own program in Processing based on what they had learned and any resources they could find. Some students learned to make a snake game, some created geometrical animations, and another student learned to turn a photo into dot art. The final programs they created were exceptional and the students were really motivated by applying what they had just learned to something they found interesting. It was much better than anything I ever created in Visual Basic… and I was in university at the time!

As each student completed their project we were nearing the end of the semester. I thought it would be fitting to invite other classes to come and learn more about coding with my students as their teachers. It fit well with the Hour of Code event so I used this as an opportunity to promote coding within my school and encourage people to try to code for an hour. I hosted a variety of classes from middle school students to adults and, with each group we invited in, I started to notice my students embracing this challenge. In the days leading up to the event students began practicing their explanations and reviewing material from past lessons (without being asked to!). Some students even prepared programs for their future students to learn while others began asking questions and making notes about specific lines of code and looking for deeper explanations as to what the code was doing. My students were acting as if they were getting ready for an exam, but all I did was invite some students and teachers to learn about coding with them. The learning became authentic and they really embraced the challenge.

This way of learning is vastly different to the way I learned to code. By using the Modern Classrooms model I was able to create a self-paced, project-based unit for my students and I could monitor their progress easily while being there to help whenever they were stuck. Students were motivated to learn on their own and some even took initiative with their own learning, which was something I had not seen very often in my other lessons. Students had fun learning something new and they were able to share their knowledge with others in an authentic way by presenting their knowledge to their peers. The material was easily accessible but had limitless potential for those that had a desire to learn more. By utilizing the Modern Classrooms model I was able to bring my computer programming class into the 21st century and hopefully I’ve been able to inspire my students to continue learning about coding beyond this course.


Photo at top courtesy of Leysin American School.

Tom Cosgrove Headshot

Tom Cosgrove

Design and Technology Teacher, Leysin American School

Tom Cosgrove is a LAS edge design and technology teacher for Leysin American School in Switzerland.