Computing Curricula 2001
Computer Science Volume


Appendix A
CS Body of Knowledge

This appendix to the Computing Curricula 2001 report defines the knowledge domain that is likely to be taught in an undergraduate curriculum in computer science. The underlying rationale for this categorization scheme and additional details about its history, structure, and application are included in the full task force report. Because we expect the appendices to have wider circulation than the full report, the task force feels it is important to include in each appendix a summary of the fundamental concepts that are necessary to understand the recommendations. The most important concepts are outlined in the sections that follow.

Structure of the body of knowledge

The CS body of knowledge is organized hierarchically into three levels. The highest level of the hierarchy is the area, which represents a particular disciplinary subfield. Each area is identified by a two-letter abbreviation, such as OS for operating systems or PL for programming languages. The areas are broken down into smaller divisions called units, which represent individual thematic modules within an area. Each unit is identified by adding a numeric suffix to the area name; as an example, OS3 is a unit on concurrency. Each unit is further subdivided into a set of topics, which are the lowest level of the hierarchy.

Core and elective units

In updating the body of knowledge from the framework established in Computing Curricula 1991, the CC2001 Task Force has to take account of the fact that the computing discipline has expanded to such an extent that it is impossible for undergraduates to learn every topic that has at one time been considered fundamental to the discipline. The task force has therefore sought to define a minimal core consisting of that material that essentially everyone teaching computer science agrees is essential to anyone obtaining an undergraduate degree in this field. Material offered as part of an undergraduate program that falls outside the core is considered to be elective. By insisting on a broad consensus in the definition of the core, the task force hopes to keep the core as small as possible, giving institutions the freedom to tailor the elective components of the curriculum in ways that meet their individual needs.

In discussing the CC2001 recommendations during their development, we have found that it helps to emphasize the following points: