Algorithm design is a vital skill developed in most undergraduate Computer Science (CS) programs, but few research studies focus on pedagogy related to algorithms coursework. To understand the work that has been done in the area, we present a systematic survey and literature review of CS Education studies. We search for research that is both related to algorithm design and evaluated on undergraduate-level students. Across all papers in the ACM Digital Library prior to August 2023, we only find 94 such papers. We first classify these papers by topic, evaluation metric, evaluation methods, and intervention target. Through our classification, we find a broad sparsity of papers which indicates that many open questions remain about teaching algorithm design, with each algorithm topic only being discussed in between 0 and 10 papers. We also note the need for papers using rigorous research methods, as only 38 out of 88 papers presenting quantitative data use statistical tests, and only 15 out of 45 papers presenting qualitative data use a coding scheme. Only 17 papers report controlled trials. We then synthesize the results of the existing literature to give insights into what the corpus reveals about how we should teach algorithms. Much of the literature explores implementing well-established practices, such as active learning or automated assessment, in the algorithms classroom. However, there are algorithms-specific results as well: a number of papers find that students may under-utilize certain algorithmic design techniques, and studies describe a variety of ways to select algorithms problems that increase student engagement and learning. The results we present, along with the publicly available set of papers collected, provide a detailed representation of the current corpus of CS Education work related to algorithm design and can orient further research in the area.
翻译:算法设计是多数计算机科学本科教育中培养的关键技能,然而聚焦算法课程教学法的研究却寥寥可数。为系统梳理该领域已有成果,我们开展了一项计算机教育研究的系统性调查与文献综述。研究筛选标准同时满足:与算法设计相关且以本科生为评估对象。截至2023年8月,我们在ACM数字图书馆中仅检索到94篇符合条件论文。首先按主题、评估指标、评估方法和干预对象对论文进行分类,发现领域内存在显著的文献稀疏性——每个算法主题相关论文仅分布在0至10篇之间,这表明算法设计教学仍存在大量悬而未决的问题。同时,我们发现采用严格研究方法的论文亟待增加:在88篇呈现定量数据的论文中,仅38篇使用了统计检验;45篇呈现定性数据的论文中,仅15篇采用编码方案;仅17篇报告了对照试验。继而综合现有文献成果,揭示这些文献对算法教学方法的启示。多数研究探索将成熟教学实践(如主动学习、自动化评估)应用于算法课堂,但亦取得算法特有的发现:多项研究表明学生可能未充分运用特定算法设计技术,而相关研究描述了多种提升学生参与度与学习成效的算法问题选择策略。本研究结果与公开的论文集合,共同构建了当前计算机教育领域算法设计研究的完整图景,可为后续研究提供方向指引。