Our initial implementation
We started with nine students aged 13. They had all studied computer science throughout their elementary education, but had no room in their school day to continue their computing studies. The students signed up for the course and their parents all gave permission. The students had also shown in other classes that they could be responsible when doing work outside the classroom.
We worked with an organisation called OYOclass (oyoclass.com) to help us supplement learning. OYO has a platform that’s part learning management system and part integrated development environment (IDE). This means that learners can write code and turn it in on the same platform. OYO also sets coding challenges that are checked by the platform’s mentor community. This was extremely helpful when getting started, because we could save time on both the creation of the resources and the grading.
OYO worked with us to create an entire pathway for their Intro to Python course, adapting some of the curriculum and instruction to meet our needs. In addition to the course materials and challenges, learners had access to mentors so that they could ask questions. The challenges are set up to allow unlimited submissions. This lets students ‘fail forward’ and continue to iterate until they understand the material. Learners could access the entire pathway straight away, and they were instructed to complete the course at their own pace, with a few check-ins throughout the semester.
Making changes
Even the most studious learners can struggle when given complete autonomy over their time management. We found students were prioritising work from their other classes, and this led to a lot of computer science work being left until the end of the year. When I probed deeper, I found that students would get stuck on a problem, and instead of asking for help, would procrastinate for another day. At the end of the semester, many students were then stressed, and I could see their love for computer science draining away. This is something that I wanted to change.
In our second year, we offered Enterprise Python asynchronously, and eight of the nine original students returned. We offered Intro to Python to another 22 students aged 13–17. We continued to partner with OYO, but we made a big change by meeting with students weekly, rather than just a few times a semester. This can be difficult, as the whole point of asynchronous learning is that you are not meeting regularly. These meetings were optional; I would pull learners out of one class a week, rotating the periods, and there was about 90 percent participation each week.
During this time, we restored focus on the material, to stop learners from ignoring the class for weeks at a time. We built relationships and worked together. Students collaborated and could ask me or their peers questions. As a teacher, I could see more effectively what was and wasn’t working with instruction and assessment, and make changes that positively affected students.
Looking to the future
Now, in our third year of asynchronous teaching, we have added a Web Development course and advertised the courses to more students. In addition, 14 previously asynchronous learners are currently enrolled in synchronous courses, and we have 54 students enrolled in asynchronous courses this school year. We have revised the asynchronous courses to add more explanatory material, as well as to streamline some of the assessments that best show mastery of the material. We have also added suggested due dates for students, to support them with staying on track, and learners will continue to check in with me weekly.
In the beginning, my mindset about asynchronous courses was that learners would miss the support a teacher can provide. In my implementation, I have found that the key to a successful asynchronous program is to have an active facilitator who spends time creating relationships with learners, grading assignments, coordinating meetings, and periodically reviewing the curriculum. My administration counted my asynchronous courses like a synchronous course in determining my workload, which has really helped to make the programme more successful. Overall, I couldn’t be more pleased with the result of adding asynchronous courses to our offerings, and I’m happy to have been proven wrong!
Tips for asynchronous teaching
Meet semi-regularly: focus on the course, build relationships, and ask questions
Assign suggested deadlines: keep learners accountable and on track
Start small, and don’t stop iterating: look for feedback on how to improve the instruction and assessment each year
Use an online or easy-to-use IDE: make set-up as easy as possible, particularly as learners may be on different devices at home