Reflecting on my practice as an Instructor

As a software developer of twenty-plus years, changing my career focus to teaching software development has been a radical change. While I have lots of experience in software development, I only have limited teaching experience. This was previously gained on the job mentoring junior developers in the workplace. Of course, being relatively new to teaching, there is much room for personal improvement, especially on the learning theory side. But even though this time frame has been short, my teaching practices have constantly evolved through trial and error. Improved from advice from the rest of the teaching team and, most recently, from taking the DCTL course.

The institute (Developers Institute) I work at has some critical points of difference in how we teach compared to most tertiary education providers. First, the entire school is remote only, learners and teaching teams alike. This heavily impacts our teaching process in all manner of study, teaching and assessment for our learners. We have to lean into digital learning every day. We follow the Community of Inquiry teaching model developed by Garrison, Anderson & Archer1 to facilitate this. So that engaged learning occurs, we must have interaction through the three core elements:

There are a lot of benefits to a digital and collaborative online class environment. One of the biggest for the Developers Institute is equity and accessibility. All our students can access tertiary education no matter where they are located in the country. We provide them with a computer for the entirety of the course. The only other things they need to have are a good internet connection and a quiet place to study. If they have whānau they care for outside of a large centre, they are not disadvantaged. If they have young children to care for, they are not disadvantaged. They interact with learners and a teaching team located all over Aotearoa (New Zealand) with a wide diverse range of learners from all stages of life and cultures.

The most challenging aspect of a digital remote online class environment is ensuring students actively engage in learning and get the required help. While remote, it may seem more challenging to keep an eye on how learners are engaging and progressing in their studies, but in fact, it's quite the opposite these days with the number of available tools we employ. For starters, we can track each learner's progress through their online classroom material in iQualify, and see those needing encouragement or help. View the progress of their exercise via GitHub Classroom, and offer relevant feedback specific to the context of their work. Keep in contact regularly via Slack and Google Meet. We also have a team that can answer their questions via a ticketing system and quickly get the learners the help they need. These tools are necessary to offer the level of support we do.

To further the learning experience, I follow contemporary pedagogies in my teaching process. For example, I have used constructionism in my classes by running "mob programming" lessons where I get the learners to develop a web form using an online integrated development environment or IDE for short. This tool, called Replit allows the learners to collaborate on the same codebase in real time together. It will enable multiple people to work on the same code file simultaneously. In conjunction with a video call, I can facilitate the class and let the learners take turns, discuss and suggest to one another what steps should be taken to build the web form. What I find in my classes in this scenario as learners help one another and discuss the merits of what they have built. The Learners who aren't always vocal engage more in the comfortable, collaborative scenario. The tool works well in an online situation and would also be good in an in-person computer lab situation.

In our final paper, the capstone course, we create a learning environment internal to the Developers Institute and with other partners where we get the learners to work on a project over eight weeks. We use constructivism in this project in the case of the Developers Institute, where it's a collaboration effort with our engineering team and a small group of students. The engineer from the Developers Institute will outline a project brief of more than half the elements the learners already know what to do. But the learners must research and learn about specific portions of the project to complete it. The engineer will be on hand to work with the group to give them the guidance they need when appropriate, but they are free to use new concepts and ideas to achieve the goal of completing the project brief. This uses the idea of Vygotsky’s zone of proximal development2, where the learner can do with the guidance of a knowledgeable other, in this case, the engineer from the Developers Institute.

We combine the capstone course with the use of experiential learning theory as well. The learners are asked to complete the project and present their progress and findings with a fortnightly demonstration to staff and stakeholders at the Developers Institute. This is in conjunction with a portfolio assessment where they are asked to reflect on their learning and experience building out the project over the eight weeks.

Both experiential learning and constructivism have some disadvantages, hence why we don't use them until the last project of a capstone, where we are focused on getting the learners to focus on how they can learn new concepts or technologies they haven't used before and how to apply them in context of a software solution. Using them too early in the course would require too much core knowledge and would be totally reliant on the engineer (knowledgeable other) to help build the project. At the end of the course, they have covered all the core knowledge over previous terms and can quite easily make a small web app with authorisation and implement an API with database write and read functionality. Because the groups are relatively small, we can be more confident that all the students will have meaningful experiences concerning experiential learning. Also, with the learning experience happening outside of a traditional classroom setting, we negate constructionism's limitations where the learners can focus on the learning by doing.

Finally, sustainability is something that we want to impart to our learners at Developer Institute. Sustainability can cover many things regarding education, but the two areas I'd like to highlight in my teaching practice are sustainable learning and the sustainability of the environment.

Regarding education, we wish to make learning sustainable for our learners to succeed in their work lives in the fast-changing world of software development. What was once the current framework of choice this year could be out of favour the next. As our learners will experience many changes throughout their careers, finding relevant information on upcoming technologies is fundamental to being ready for this. This is a challenging task; unfortunately, we suggest recommended sources such as the W3C, the Mozilla developers network and how to find relevant information on programming languages. On top of those resources, it pays to form networking groups of your peers in both school alumni and other thought leaders in their fields, whether by social media, forums, or simply following trending libraries and frameworks on GitHub.

The other aspect of sustainability we wish to encourage in our learners is the sustainability of the environment. One significant part of that is fundamental in how Developers Institute operates as a remote-only school. A high number of our learners, after graduating, look for remote-only jobs as that is how they feel most comfortable working after spending one or two years learning remotely. EECA attest3, "Over 50% of New Zealand's energy-related emissions come from transport. Burning fossil fuels like petrol and diesel produces harmful emissions contributing to climate change". If more people worked from home, they would not need to drive to an office, reducing emissions.

Teaching software development remotely has been a challenging yet fulfilling experience for me. The use of digital tools and contemporary pedagogies such as constructionism, experiential learning, and constructivism have helped to engage learners and facilitate their learning process. The Developers Institute's focus on equity and accessibility has allowed learners from all stages of life and cultures to access tertiary education anywhere in New Zealand. The institute's emphasis on sustainability in learning and the environment is essential for our learners to succeed in their future careers and contribute to a better world. Teaching software development remotely has been a radical change, but I have found it to be an effective and flexible way of providing education to learners. I wish to learn more additional tools and pedagogies and incorporate them into my teaching practice.


  1. Garrison, D. R., Anderson, T., & Archer, W. (1999). Critical inquiry in a text-based environment: Computer conferencing in higher education. The internet and higher education, 2(2-3), 87-105. ↩︎

  2. Liu, C. H. & Matthews, R. (2005). Vygotsky’s Philosophy: Constructivism and Its Criticisms Examined. International Education Journal, 6(3), 386-399. ↩︎

  3. Energy Efficiency & Conservation Authority (EECA), Efficient and low emissions transport ↩︎