Student Misconceptions of Dynamic Programming

Dynamic Programming (DP) is considered to be one of the most difficult topics for students to understand in theoretical CS. Prior work suggests that misconceptions arise even when students have completed a course in which there is considerable focus on learning how to solve DP problems. We conducted think-aloud interviews with students who have completed the DP portion of the Algorithms course at a top North American research university. We report on three themes and their misconceptions discovered through this process. The first theme delves into students' struggles defining the notion of a subproblem and identifying particular subproblems. The second theme focuses on the understanding and usage of DP solution techniques compared to other algorithmic approaches. The third theme is composed of misconceptions related to defining and using recurrences. Analysis of each misconception provides insight into student thinking and offers ideas for improving the education of DP to university students.

[1]  Yana Kortsarts,et al.  Dynamic programming across the CS curriculum (abstract only) , 2012, SIGCSE '12.

[2]  K. A. Ericsson,et al.  Protocol Analysis: Verbal Reports as Data , 1984 .

[3]  Michael C. Loui,et al.  Creating the digital logic concept inventory , 2010, SIGCSE.

[4]  Jan Vahrenhold,et al.  Detecting and understanding students' misconceptions related to algorithms and data structures , 2012, SIGCSE '12.

[5]  Sue Fitzgerald,et al.  Teaching and learning recursive programming: a review of the research literature , 2015, Comput. Sci. Educ..

[6]  Lauri Malmi,et al.  Observations on student misconceptions—A case study of the Build – Heap Algorithm , 2006, Comput. Sci. Educ..

[7]  Viggo Kann,et al.  Iteratively Intervening with the “Most Difficult” Topics of an Algorithms and Complexity Course , 2017, ACM Trans. Comput. Educ..

[8]  Ronald L. Rivest,et al.  Introduction to Algorithms, third edition , 2009 .

[9]  Jan Vahrenhold,et al.  Hunting high and low: instruments to detect misconceptions related to algorithms and data structures , 2013, SIGCSE '13.

[10]  Steven A. Wolfman,et al.  Misconceptions and concept inventory questions for binary search trees and hash tables , 2014, SIGCSE.

[11]  Geoffrey L. Herman,et al.  Identifying student misconceptions of programming , 2010, SIGCSE.

[12]  Frederick W. B. Li,et al.  Failure rates in introductory programming revisited , 2014, ITiCSE '14.

[13]  Janet Rountree,et al.  Learning and Teaching Programming: A Review and Discussion , 2003, Comput. Sci. Educ..