Taking a memory test not only assesses what one knows, but also enhances later retention, a phenomenon known as the testing effect. We studied this effect with educationally relevant materials and investigated whether testing facilitates learning only because tests offer an opportunity to restudy material. In two experiments, students studied prose passages and took one or three immediate free-recall tests, without feedback, or restudied the material the same number of times as the students who received tests. Students then took a final retention test 5 min, 2 days, or 1 week later. When the final test was given after 5 min, repeated studying improved recall relative to repeated testing. However, on the delayed tests, prior testing produced substantially greater retention than studying, even though repeated studying increased students’ confidence in their ability to remember the material.Testing is a powerful means of improving learning, not just assessing it.In other words, if S stands for study, and T stands for testing, a final recall test after the sequence STTT results in much higher retention than SSST or SSSS. In computer science, most of the learning requires reasoning rather than memory recall, although a good repository of learned concepts is definitely an asset to being a good programmer. However, from a number of interviews with students enrolled in a first year programming course, when asked how they prepared for exams, 90% of the students would say reading from lecture notes, textbooks, and only about 10% would mention about doing some coding and testing. The learning-by-experimentation concept seems to be foreign to many students.
It won't be surprising that the result from Roediger and Karpicke applies just as well to reasoning skills as memory recall. What will be interesting for CS is to identify the set of core skills and concepts that expert programmers need to have and apply this strategy of studying and testing (mostly) throughout a program of study rather than just a course, and conduct longitudinal study of their retention and programming skills beyond graduation. Also, how can repeat testing be made "fun" for learners? Is there an "optimal" study and test sequence for CS courses?
Roediger III, H., Karpicke, J. (2006). Test-Enhanced Learning. Psychological Science. 17(3), pp 249 - 255.
Karpicke, J., Roediger III, H. (2008). The Critical Importance of Retrieval for Learning. Science. Vol 319, pp 966 - 968. Link.