September 4, 2015
Essential Ingredients for Teaching Tech: Teach One Thing at a Time
I think a lot about teaching. Which means that I think even more about how people learn. It may seem obvious that if one understands how people learn, then one can be a better teacher, but it seems that many teachers focus little on the human learning process, and just make sure that they’re delivering content. But this is a drastic mistake. One key to understanding how the human brain learns new things is to realize that the learning process varies from person to person. One individual may be an auditory learner, while another may grasp things more easily with content presented in a visual format. That being said, there are numerous traits of learning that apply to most people. And this is where a teacher can get the most bang for his or her buck, because a teacher usually is placed in a situation where there are a number of students, and it would be difficult to teach content in a way that appeals equally to everybody. But if a teacher is cognizant of the common denominators of how people learn, then he or she is already way ahead of the game. This is the first in a series of articles that describe the essential techniques that a teacher should use to most effectively teach according to the way that people learn. While I focus primarily on teaching technical subjects (like programming), I assume that many of these ideas can be applied to teaching in general. One essential ingredient in an effective teaching approach is to teach one concept at a time. Sure, the human brain is amazing. It processes hundreds of pieces of information simultaneously and controls all bodily functions without a person even thinking about them. But I think everyone would agree that it’s easier to learn just one thing at a time. Therefore, one should teach just one thing at a time. While this may seem obvious, there are many times when people think they’re teaching one thing at a time, but are actually presenting the student with multiple new concepts that the student needs to sift through and process unnecessarily just to get at the core concept being taught. Why is it, for example, that a book teaching the syntax of a function in a particular language, should use as its example a function for calculating the velocity of gravity on Earth? Why should the student have to grapple with a physics formula while learning a programming concept? The students sees this example: fall_velocity= fn (distance) -> :math.sqrt(2 * 9.8 * distance) end The student needs to mentally whittle away the formula just to see what the basic building blocks of a function are. Really, all the student needs to learn is that a function includes the basic syntax elements of fn, the paramter, the function body, and the end keyword. And that would be much clearer if we used a much simpler function, say, one that doubles a given number: double= fn (number) -> number * 2 end In the velocity example, besides teaching the formula for the gravity’s velocity, the example is also teaching how that language performs square root functions, which is handy and all that, but should not be mixed into an example introducing the syntax for a function. When teaching a new concept, simplify all extraneous details to their simplest possible form so the student can focus on what’s really important. On the flip side, as a student, if presented with a complex example, do what you can to ignore the unnecessary information, and try to simplify things in your own mind. However, this is easier said than done, which is why I consider the onus of doing this really to be upon the teacher.