How Can I Apply Spaced Repetition To Teaching CS?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
6
down vote

favorite
1












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.










share|improve this question

















  • 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.
    – RonJohn
    Aug 31 at 20:15










  • @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.
    – Onorio Catenacci
    Sep 4 at 14:12










  • Well, C# (and C++ and Java) is hell spawn, so you're right, drilling syntax is probably useful... #sadface
    – RonJohn
    Sep 4 at 14:24














up vote
6
down vote

favorite
1












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.










share|improve this question

















  • 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.
    – RonJohn
    Aug 31 at 20:15










  • @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.
    – Onorio Catenacci
    Sep 4 at 14:12










  • Well, C# (and C++ and Java) is hell spawn, so you're right, drilling syntax is probably useful... #sadface
    – RonJohn
    Sep 4 at 14:24












up vote
6
down vote

favorite
1









up vote
6
down vote

favorite
1






1





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.










share|improve this question













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.







curriculum-design






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Aug 31 at 14:17









Onorio Catenacci

2547




2547







  • 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.
    – RonJohn
    Aug 31 at 20:15










  • @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.
    – Onorio Catenacci
    Sep 4 at 14:12










  • Well, C# (and C++ and Java) is hell spawn, so you're right, drilling syntax is probably useful... #sadface
    – RonJohn
    Sep 4 at 14:24












  • 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.
    – RonJohn
    Aug 31 at 20:15










  • @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.
    – Onorio Catenacci
    Sep 4 at 14:12










  • Well, C# (and C++ and Java) is hell spawn, so you're right, drilling syntax is probably useful... #sadface
    – RonJohn
    Sep 4 at 14:24







1




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.
– RonJohn
Aug 31 at 20:15




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.
– RonJohn
Aug 31 at 20:15












@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.
– Onorio Catenacci
Sep 4 at 14:12




@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.
– Onorio Catenacci
Sep 4 at 14:12












Well, C# (and C++ and Java) is hell spawn, so you're right, drilling syntax is probably useful... #sadface
– RonJohn
Sep 4 at 14:24




Well, C# (and C++ and Java) is hell spawn, so you're right, drilling syntax is probably useful... #sadface
– RonJohn
Sep 4 at 14:24










1 Answer
1






active

oldest

votes

















up vote
5
down vote



accepted










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.






share|improve this answer




















    Your Answer




    StackExchange.ifUsing("editor", function ()
    return StackExchange.using("mathjaxEditing", function ()
    StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
    StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
    );
    );
    , "mathjax-editing");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "678"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    convertImagesToLinks: false,
    noModals: false,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













     

    draft saved


    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcseducators.stackexchange.com%2fquestions%2f5017%2fhow-can-i-apply-spaced-repetition-to-teaching-cs%23new-answer', 'question_page');

    );

    Post as a guest






























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    5
    down vote



    accepted










    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.






    share|improve this answer
























      up vote
      5
      down vote



      accepted










      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.






      share|improve this answer






















        up vote
        5
        down vote



        accepted







        up vote
        5
        down vote



        accepted






        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.






        share|improve this answer












        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.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Aug 31 at 14:41









        Buffy

        19.7k83779




        19.7k83779



























             

            draft saved


            draft discarded















































             


            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcseducators.stackexchange.com%2fquestions%2f5017%2fhow-can-i-apply-spaced-repetition-to-teaching-cs%23new-answer', 'question_page');

            );

            Post as a guest













































































            Popular posts from this blog

            How to check contact read email or not when send email to Individual?

            Displaying single band from multi-band raster using QGIS

            How many registers does an x86_64 CPU actually have?