Curriculum Workshop: Elements of the 2004 Model Curriculum
From CSWiki
Goals and standards
The 2004 Model Curriculum defines computer science, as a discipline, as "the study of algorithms and data structures with respect to their formal properties, linguistic realizations, hardware realizations, and applications."
It observes that computer science programs at liberal-arts colleges are generally characterized by an emphasis on "multiple perspectives of problem solving (from computer science and other disciplines), theoretical results and their applications, breadth of study, and skills in communication," and by their ambitious goals:
- To enable understanding the capabilities, limitations, and ramifications (technical, ethical, and social) of computing, the state of the art, and current research and development in computer science and related areas;
- To develop an ability to understand and analyze client needs, master the techniques of creating and applying algorithms and data structures, and analyze their viability, correctness, and efficiency utilizing analytical methods and appropriate theoretical results;
- To become effective at working individually and in teams, building on the work of others, and be able to communicate technical information to both experts and non-experts;
- To prepare for adapting to changes in hardware and /or software technologies, and new and changing application areas through an appreciation of the need for life-long learning; and
- To enable an appreciation of both the demands and range of opportunities of the computing profession and provide for and encourage creative contribution to the art.
As criteria of success, the 2004 Model Curriculum suggests that graduates of a liberal-arts college with degrees in computer science should
- Understand multiple views of problem solving (e.g., 2 or 3 of imperative, object-oriented, functional, declarative);
- Have experience applying theoretical results to solving practical problems;
- Be able to apply critical thinking and problem solving skills across disciplines;
- Have experience with at least one large, team-based project or research project;
- Understand non-scientific perspectives and have sufficient background to be able to communicate effectively with people with those perspectives; and
- Recognize the importance of social and ethical issues in computing.
Curricular structure
The 2004 Model Curriculum distinguishes two approaches (the traditional approach and the multi-paradigm approach) to the first year of the major in computer science. We use the multi-paradigm approach, so only that variant will be considered here.
The model curriculum consists of two introductory courses (CS1 and CS2), two mathematics-related courses (CS/MA A and CS/MA B), four core courses (Software Development, Computer Organization, Programming Languages, and Algorithms), three electives, and a "capstone experience" (typically, a research project). Although it includes some suggestions about the electives and the capstone experience, the 2004 Model Curriculum does not include any detailed recommendations about their contents, as it does for the other eight courses.

