Lately I've been seeing quite a bit on the importance of spaced repetition in retention of skills. My job is to level up a group of C# developers and I'm trying to figure out how to apply the idea of spaced repetition to what they do.

I've got some ideas--in no particular order:

1.) Periodic reinforcement via syntax flashcards

2.) Weekly/monthly coding contests of some sort (possibly vary this with minimum information puzzles as well since problem solving is such an essential skill in software development).

3.) Using Exercism.io and other such online academies to reinforce as well.

I would love to hear the thoughts of other educators on this subject. I'm specifically looking for these answers: does one or any of those strategies seem better than others in terms of teaching software development? Are there articles on the application of spaced repetition to teaching software development?

I'm sorry--I know this is a fairly broad question so if others can suggest ways for me to narrow the question please do. I just can't think of another way to ask this.

  • 1
    $\begingroup$ Most programming concepts don't have short definitions; I don't see where flashcards would be useful. Since -- like it or not -- programming is a lot like math, and math builds upon itself, biweekly exercises which either adds to or refactor the last excercise's code using the techniques you've recently used is an excellent idea. $\endgroup$ – RonJohn Aug 31 '18 at 20:15
  • $\begingroup$ @RonJohn agreed on programming concepts--but syntax is usually something that can be drilled. I want my students to be able to recognize the import of certain syntax in the way a math teacher would want his/her students to recognize the significance of the sigma symbol for a summation function. $\endgroup$ – Onorio Catenacci Sep 4 '18 at 14:12
  • $\begingroup$ Well, C# (and C++ and Java) is hell spawn, so you're right, drilling syntax is probably useful... #sadface $\endgroup$ – RonJohn Sep 4 '18 at 14:24

This is also called Spiral education. There is a pattern devoted to it in Pedagogical Patterns: Advice for Educators. But it is more than just repetition. The basic idea is that one introduces an idea early in the course, but in a basic way. Possibly nothing more than its name if the idea is applied early. There can be a lot of such ideas in any given course.

Then, the instructor returns to the idea repeatedly, each time with a deeper explanation requiring deeper understanding. Both the lectures and the student work need to reinforce this.

Students are unlikely to learn much the first time they see an idea, especially if it has deep implications for which they don't already have the background. Ideas are interrelated, not stand-alone. So, on each loop around the spiral the whole set of ideas gets a deeper understanding. Some curricula actually recognize this. Advanced Calculus in some mathematics programs covers the same material as basic Calculus, but in a deeper way. But you can apply the same concept at a smaller level with short iterations.

The final work of the students, perhaps a project, can bring all of the ideas together in a fusion.

However, repetition itself, independent of the Spiral deepening idea is also needed, even for simple things. This is a result of the way the brain works. To move something into deep, long term, memory and especially to make it available for use, the brain needs to re-wire itself, making new synapse connections. This requires repetition.


Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.