Answers.Body: <p>This is also called <em>Spiral</em> education. There is a pattern devoted to it in <a href="https://rads.stackoverflow.com/amzn/click/1479171824" rel="noreferrer">Pedagogical Patterns: Advice for Educators</a>. 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. </p>
  
  <p>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. </p>
  
  <p>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. </p>
  
  <p>The final work of the students, perhaps a project, can bring all of the ideas together in a fusion. </p>
  
  <p>However, repetition itself, independent of the Spiral <em>deepening</em> 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. </p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-08-31T14:41:25.013Z
Answers.LastActivityDate: 2018-08-31T14:41:25.013Z
Answers.UserDisplayName: Buffy
Body: <p>Lately I've been seeing quite a bit on the importance of <a href="https://en.wikipedia.org/wiki/Spaced_repetition" rel="noreferrer">spaced repetition</a> 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.</p>
  
  <p>I've got some ideas--in no particular order:</p>
  
  <p>1.) Periodic reinforcement via syntax flashcards</p>
  
  <p>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).</p>
  
  <p>3.) Using <a href="https://exercism.io/" rel="noreferrer">Exercism.io</a> and other such online academies to reinforce as well.</p>
  
  <p>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? </p>
  
  <p>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. </p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-08-31T20:15:22.320Z
Comments.Text: 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.
Comments.UserDisplayName: RonJohn
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-09-04T14:12:55.653Z
Comments.Text: @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.
Comments.UserDisplayName: Onorio Catenacci
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-09-04T14:24:51.020Z
Comments.Text: Well, C# (and C++ and Java) is hell spawn, so you're right, drilling syntax is probably useful...  #sadface
Comments.UserDisplayName: RonJohn
Tags: <curriculum-design>
Title: How Can I Apply Spaced Repetition To Teaching CS?
ThreadText: # How Can I Apply Spaced Repetition To Teaching CS?
  
  (Asked by: username_0 on 2018-08-31)
  
  Lately I've been seeing quite a bit on the importance of [spaced repetition](https://en.wikipedia.org/wiki/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](https://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.
  
  **Tags:** curriculum-design
  
  > **Comments:**
  > **username_1**: 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.  
  > **username_0**: @username_1 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.  
  > **username_1**: Well, C# (and C++ and Java) is hell spawn, so you're right, drilling syntax is probably useful...  #sadface  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_2 on 2018-08-31. Score: 6 | Accepted answer
  
  This is also called *Spiral* education. There is a pattern devoted to it in [Pedagogical Patterns: Advice for Educators](https://rads.stackoverflow.com/amzn/click/1479171824). 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.
  
  
  ---
  
  