NP-completeness for all computer science undergraduates: a novel project-based curriculum

  • Authors:
  • Andrea F. Lobo;Ganesh R. Baliga

  • Affiliations:
  • Rowan University, Glassboro, NJ;Rowan University, Glassboro, NJ

  • Venue:
  • Journal of Computing Sciences in Colleges
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

It is widely recognized that there are some aspects of intractability and computational complexity that every CS professional should understand and be able to apply. NP-completeness is one of these fundamental concepts. This paper describes a novel project-based curriculum for teaching NP-completeness, classic algorithm design techniques, and techniques for solving intractable problems. The proposed set of projects aims to help all Computer Science undergraduate students learn more about basic computability and NP-completeness, apply the scientific method, apply classic algorithm design techniques, implement algorithms for intractable problems using more advanced techniques, gain exposure to state of the art research, implement sophisticated algorithms and data structures, and apply algorithm design techniques that they have understood to a new domain. The curriculum also seeks to motivate a few undergraduates to pursue research. The set of projects is based on the well-known, NP-complete 3-Satisfiability problem (3SAT). We have used these projects in three offerings of our undergraduate Algorithm Design and Analysis course, while continuing to address the traditional course content. The informal assessment conducted during these course offerings indicates that typical undergraduate students achieve the targeted learning outcomes after completing the proposed curriculum.