{'fraction_non_alphanumeric': 0.018772563176895306, 'fraction_numerical': 0.0, 'mean_word_length': 5.507042253521127, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Student misconceptions of dynamic programming: a replication study

ABSTRACT Background and Context We replicated and expanded on previous work about how well students learn dynamic programming, a difficult topic for students in algorithms class. Their study interviewed a number of students at one university in a single term. We recruited a larger sample size of students, over several terms, in both large public and private universities as well as liberal arts colleges. Objective Our aim was to investigate whether the results of the previous work generalized to other universities and also to larger groups of students. Method We interviewed students who completed the relevant portions of their algorithms class, asking them to solve problems. We observed the students' problem solving process to glean insight into how students tackle these problems. Findings We found that students generally struggle in three ways, “technique selection,” ”recurrence building,” and “inefficient implementations.” We then explored these themes and specific misconceptions qualitatively. We observed that the misconceptions found by the previous work generalized to the larger sample of students. Implications Our findings demonstrate areas in which students struggle, paving way for better algorithms education by means of identifying areas of common weakness to draw the focus of instructors.