Affiliation:
1. KTH Royal Institute of Technology, Sweden
Abstract
When compared to earlier programming and data structure experiences that our students might have, the perspective changes on computers and programming when introducing theoretical computer science into the picture. Underlying computational models need to be addressed, and mathematical tools employed, to understand the quality criteria of theoretical computer science. Focus shifts from doing to proving. Over several years, we have tried to make this perspective transition smoother for the students of a third-year mandatory algorithms, data structures, and computational complexity course. The concepts receiving extra attention in this work are NP-completeness, one of the most central concepts in computer science, and dynamic programming, an algorithm construction method that is powerful but somewhat unintuitive for some students.
The major difficulties that we attribute to NP-completeness are that the tasks look similar but have a different purpose than in algorithm construction exercises. Students do not immediately see the usefulness of the concept, and hence motivation could be one issue. One line of attacking NP-completeness has been to emphasize its algorithmic aspects using typical tools for teaching algorithms.
Some potential difficulties associated with dynamic programming are that the method is based on a known difficult concept—recursion—and that there are many ingredients in a dynamic programming solution to a problem.
For both dynamic programming and NP-completeness, we have invented several new activities and structured the teaching differently, forcing students to think and adopt a standpoint, and practice the concepts in programming assignments. Student surveys show that these activities are appreciated by the students, and our evaluations indicate that they have positive effects on learning. We believe that these activities could be useful in any similar course.
The approach to improving the course is action research, and the evaluation has been done using course surveys, self-efficacy surveys, rubrics-like grading protocols, and grades. We have also interviewed teaching assistants about their experiences.
Funder
Communication in Engineering Science
GRU at the KTH School of Computer Science and Communication
CPU
RCN at the KTH School of Education
Publisher
Association for Computing Machinery (ACM)
Subject
Education,General Computer Science
Reference49 articles.
1. Computer Science Curricula 2013: Curriculum Guidelines for Undergraduate Degree Programs in Computer Science
2. Reductive thinking in a quantitative perspective
3. Reductive thinking in undergraduate CS courses
4. An investigation of factors related to self-efficacy for Java programming among engineering students;Askar Petek;Turkish Online Journal of Educational Technology,2009
5. Aspects of proof in pupils’ practice of school mathematics;Balacheff Nicolas;Mathematics, Teachers and Children,1988
Cited by
9 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Regulation, Self-Efficacy, and Participation in CS1 Group Work;Proceedings of the 2024 ACM Conference on International Computing Education Research - Volume 1;2024-08-12
2. Augmented reality with algorithm animation and their effect on students’ emotions;Multimedia Tools and Applications;2022-09-07
3. Student misconceptions of dynamic programming: a replication study;Computer Science Education;2022-06-19
4. Can we do better? a classification of algorithm run-time-complexity improvement using the SOLO taxonomy;Education and Information Technologies;2021-05-05
5. AlgoBOWL;Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education;2019-07-02