Using unstructured practice plus reflection to develop programming/problem-solving fluency
Cruz Izu, Brad Alexander · 2018
This paper describes a problem-solving course for second-year undergraduate students, designed to foster programming fluency, and explores the factors associated with the acquisition of that fluency. The course introduces algorithmic techniques such as brute force, recursion, dynamic programming and graph algorithms. The course structure revolves around repeated practice: students are required to apply programming skills using many small but challenging coding problems, combined with reflection reports and journal writing to document their thoughts and guide their design.