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.
This paper describes an attempt to introduce computer lab exercises on NP-completeness proofs in a class already containing computer lab exercises on algorithms and data structures. In the article we are interested in the answer of the following question: Can the students feel that their understanding of theoretical computer science is improved by performing a computer lab exercise on the subject?The class is mandatory for students in a computer science program, and is taken by about 130 students each year. Theory of NP-completeness proofs with reductions has previous years been examined on an individual assignment with written solutions handed in and later explained orally by the student to a teacher. The new assignment is performed as a computer lab exercise where students are working in small groups of two. This exercise is placed before the individual assignment, and is examined first by running automated test cases and later by an oral presentation in lab to a teacher.An improvement can be observed of the students' average results since the new assignment was introduced. This is not enough to prove the benefit of using the new assignment. However, the responses to questionnaires at course evaluations show that almost all students think that the assignment really gave them better understanding of polynomial reductions in NP completeness proofs. The students' result on the new assignment corresponds closely to their results on the following individual assignment. Seemingly, the new assignment predicts accurately who is going to pass the following assignment.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.