Since I’ve been teaching small and large coding classes, I have noticed a variety of common patterns that occur from a class to class basis. So here are some of the useful tactics I have distilled for teaching coding and CS education.
Stay updated on the student’s understanding and perspective:
Initially, when I first started teaching, I just gave students projects and tasks that I thought would grow their coding knowledge.
With something like coding, this is a great place to start.
However, without staying up to date with the student’s understanding of what their building, learning opportunities are lost along the way. Sometimes a student may be working on a project or task but not truly understand the concepts.
This becomes apparent later on when they need to complete a similar task or project.
It is also important to understand the student’s perspective and mindset. Sometimes a student may find certain problems daunting or frustrating. By understanding the root of their perspective, one can help guide the student towards alternative ways of approaching a problem.
So always check the student’s understanding and perspective so they are not just following along, but learning along the way!
Delegate time teaching depending on student ability (Tier Structure):
When teaching large classes, it is near impossible to spend equal time helping each and every student in the class. Often times you don’t need to.
With each lesson/class taught there will be students who fall into different levels of understanding for the topic. This can be viewed as multiple tiers of understanding.
Each lesson can be split into 3 tiers of understanding. The lowest tier comprises students who have the most difficulty grasping the subject being taught while the highest tier is students have little difficulty learning the subject and integrate their new understanding with older concepts.
Ideally, you want to spend more time helping students in the lowest tier while spending less time helping those in the highest tier of student understanding.
In addition to the tier structure for student understanding, there are also tier “pyramids” in problem-solving, communication, etc.
The main benefit of tiers is identifying areas of growth to help graduate students into higher tiers in understanding and other skills.
The secondary benefit is that higher tier students can help students in the lower tiers. Concepts can be better understood when they are explained by a classmate.
Experiment with different teaching techniques:
Every student may have a different way of understanding a topic. While one student may need the topic to be verbally explained, another may learn through the use of challenges, examples, whiteboard diagrams, or other ways of explanation.
If one method fails to convey the concept to the student, try a different one. There can be times when the best method is actually a combination of more than one.
This is explained by the next teaching tactic.
Model examples and lessons around topics familiar to students
What I have found to be the best way to help students learn is by keeping it relevant to the student’s interests.
For example, if a student really enjoys playing Legend of Zelda (Video Game), a project can be designed for the student to complete with elements taken from said video game.
This provides a higher level of motivation for the student to not only complete the project but learn the concepts that allow the project to work.
This also provides a way to trigger recollection of specific concepts later on as they have been tied to something that they are quite fond/knowledgable in.
These have been some of the techniques that I have utilized when teaching students in coding and other subjects. I’ll update this article as I learn of new techniques.
If you have a teaching practice that has been effective, I’d appreciate it if you could share them with me and others.
Michael Navazhylau (a.k.a Mechasparrow) is an engineer that loves building stuff, philosophy, and other creative endeavors. You can check out my website at Mechasparrow.