Most introductory computer science courses focus on developing programming skills. Breadth-first courses include material on programming, but de-emphasize it in favor of brief treatments of many topics. The breadth-first approach assumes that a programming-only introduction provides far too narrow an impression of our field. This project supports this claim, but the intellectual incoherence introduced by unnecessarily broad spectrum of topics has been a major factor in the failure of breadth-first courses. It is not the differences between the parts of computer science that should be emphasized, but the common elements that connect all the parts of computer science.
This project is creating an introductory computer science course that focuses on one area of specialization within computer science and is using this specialty as a vehicle to present a broad overview of the techniques and principles underlying all work in the field. The course is "depth-first" in examining a single subfield within computer science, yet in another sense, the course will be "breadth-first" in choosing material from the selected subfield that illustrate techniques and principles of broad applicability within the field. Such a course is referred to as a depth/breadth-first introductory course. The project is developing a set of readings and projects to go with this course approach that will be shared with the computer science community through a program of presentations and workshops.
Intellectual Merit. This project includes widespread support for the principles underlying the breadth-first approach, still encouraged by the Computing Curriculum 2001 report. The novel contribution in this project is in applying the adjective "breadth" to the set of fundamental techniques and concepts explored rather than the set of distinct subfields covered.
Broader Impact. The shift of attention from programming to other topics and the integration of programming with the discussion of a practical application area address issues identified as factors in the gender imbalance in computer science. It is expected that the proposed approach will attract and retain more female students.