Chapter8
Computing Curricula 2001
Computer Science Volume
Chapter 8
Intermediate Courses
The intermediate courses in the curriculum are designed to provide a solid foundation that serves as a base for more advanced study of particular topics. At the same time, it is important to keep in mind that the introductory courses of Chapter 7 and the intermediate courses described here together do not constitute a complete curriculum. All undergraduate programs will include a significant amount of additional elective material of the type described in Chapter 9. In this chapter, we propose four implementations for the intermediate level of the curriculum, as follows:
- A traditional approach in which each course addresses a single topic
- A compressed approach that organises courses around broader themes
- An intensive systems-based approach
- A web-based approach that uses networking as its organizing principle
8.1 Issues in the design of the intermediate courses
As with the introductory courses, individual faculty and institutions have crafted many different approaches to the intermediate level courses. This level of variety and the pedagogical experimentation that makes it possible are healthy signs attesting to the vitality of education in our discipline. The members of the CC2001 Task Force, however, are concerned that most of the existing models focus on relatively compartmentalized topics, with only a few seeking to build a curriculum around more abstract themes that cut across the discipline. In a 1992 article entitled "We can teach software better" [Shaw92], Mary Shaw expressed this point as follows:
Let's organize our courses around ideas rather than around artifacts. This helps make the objectives of the course clear to both students and faculty. Engineering schools don't teach boiler design -- they teach thermodynamics. Yet two of the mainstay software courses -- "compiler construction" and "operating systems" -- are system-artifact dinosaurs.
We believe that this advice remains both applicable and insightful. In existing computer science curricula, many of the courses continue to be focused around artifacts. We believe it is important for both curriculum designers and individual instructors to break away from this legacy and experiment with alternative models.
Several past reports have sought to focus on broad themes that unify the practice of computer science. Computing Curricula 1991, for example, identified three broad processes and twelve recurring concepts that permeate the study of computer science, as shown in Figure 8-1. Similarly, the ACM model curriculum for a liberal arts degree in computer science [Gibbs86, Walker96] organized its intermediate-level courses on four central themes of computer science -- hardware, software, algorithms, and theory -- leading to a course in each area.
Figure 8-1. Processes and themes from Computing Curricula 1991
|
|
At the very least, we believe it is important to recognize that even the artifact-based approaches need to remain sensitive to the technologies of the time. As Mary Shaw observed, the traditional curriculum includes courses about operating systems and compilers, which are no longer as central to the discipline as they once were. In today's world, networks and component-based systems are far more important to the practice of the field. In a rapidly changing field like computer science, focusing too narrowly on specific applications, vendors, or implementations leaves students vulnerable to the problem of obsolescence.
8.2 Sample approaches for the intermediate level
The subsections that follow describe the four intermediate tracks -- topic-based, compressed, systems-based, and web-based -- that are articulated in this report, along with an additional section describing hybrid approaches. To make it easier to see which 200-level courses go together, the descriptions in these sections use the subscripts T, C, S, and W to identify a course with its model. For example, the discussion of the topic-based approach uses the designation CS220T to refer to the intermediate course in architecture. The description of the compressed approach refers to CS220C. In fact, these two courses are the same. At the 200-level, the course number uniquely identifies the material, and the subscripts are used only to identify which track or tracks include that course. In the actual course description in Appendix B, the header line identifies all the tracks that use the approach. In this case, the header line is
-
CS220{C,S,T}. Computer Architecture
8.2.1 A traditional topic-based approach
The most common approach to the intermediate courses is simply to apportion the material into units based on the traditional divisions of the field. Thus, in this approach, students take separate courses in each of the core areas: a course in architecture, a course in operating systems, a course in algorithms, and so on. It is not necessary, however, to require separate courses in every area covered by the body of knowlege. Some areas with relatively few core units, such as graphics, can be integrated into the introductory curriculum; others, such as human-computer interaction, can be incorporated into advanced courses that explore the nature of professional practice in the discipline.
As a sample implementation of this model, we propose the following set of courses:
-
CS210T. Algorithm Design and Analysis
CS220T. Computer Architecture
CS225T. Operating Systems
CS230T. Net-centric Computing
CS260T. Artificial Intelligence
CS270T. Databases
CS280T. Social and Professional Issues
CS290T. Software Development
CS490. Capstone Project
This model is close to what many departments and programs currently do, so it has the advantage of being well tested. The classes will generally be familiar to most faculty, and instructional resources -- such as syllabi, texts, and problem sets -- are readily available.
At the same time, this model is highly susceptible to the problem of "artifact-based courses" described in section 8.1. In addition, some institutions may have problems with the size of this model. Students must complete nine intermediate courses, along with one of the introductory sequences described in Chapter 7. For large schools, offering nine intermediate courses may not be a problem. However, for schools with limited space in their major, nine intermediate courses may be beyond what their program can support. The compressed approach described in the following section offers one approach to reducing the size of the curriculum, as do the hybrid approaches in section 8.3.
8.2.2 A compressed approach
For the most part, the topic-based approach devotes a full course to each of the major areas in the body of knowledge. Most of these areas, however, do not include 40 hours of core material, which means that the intermediate courses in the topic-based approach cover additional topics beyond what is required for the core. For institutions that need to reduce the number of intermediate courses, the most straightforward approach is to combine individual topics into thematic courses that integrate material from related areas of computer science. In addition to making the core smaller, this strategy also begins to address the problem of classes that focus too narrowly on "software artifacts."
As an example, it is certainly possible to combine the material on artificial intelligence from CS260T with the material on databases from CS270T to create an integrated course that looks at these ideas together. Similarly, it is possible to merge the core topics in software engineering with those in the social and professional area. Our compressed model represents a particularly aggressive approach to combining topics that reduces the nine courses proposed in the traditional model to the following set of five courses:
-
CS210C. Algorithm Design and Analysis
CS220C. Computer Architecture
CS226C. Operating Systems and Networking
CS262C. Information and Knowledge Management
CS292C. Software Development and Professional Practice
This implementation covers the required core units but saves four courses over the topic-based approach. As a result, this approach may prove useful in environments where it is important to keep the number of intermediate courses to a minimum. Such pressures may exist in small colleges with few faculty members or in any institution that has been unable to recruit sufficient faculty to teach a larger curriculum.
It is not necessary, of course, to go quite so far in terms of reducing the number of intermediate courses as the compressed model does. Section 8.3 outlines a number of hybrid approaches that adopt some of the strategies from the compressed model to create intermediate course sequences that are intermediate in size between the five-course compressed model and the nine-course traditional model. At the same time, it is important to avoid being too aggressive in seeking to reduce the number of courses. We strongly recommend against trying to pack the required units into the theoretical minimum of seven courses implied by the fact that the core contains 280 hours of material. Overpacking the curriculum creates courses that lack coherent themes and leaves too little time for individual instructors to adapt and enhance the material.
8.2.3 A systems-based approach
Ultimately, the theories and practices of computer science find expression in the development of high-quality computer systems. This section defines a computer science curriculum that uses systems development as a unifying theme. It includes more technical and professional material than the other models, while retaining a reasonable level of coverage of the theoretical topics. Computer science theory remains essential, both as a foundation for understanding practice and to provide students with a lasting base of knowledge that remains valid despite changes in technology.
A minimal implementation of the systems-based approach consists of the following courses beyond the introductory sequence:
-
CS120. Introduction to Computer Organization
CS210S. Algorithm Design and Analysis
CS220S. Computer Architecture
CS226S. Operating Systems and Networking
CS240S. Programming Language Translation
CS255S. Computer Graphics
CS260S. Artificial Intelligence
CS271S. Information Management
CS291S. Software Development and Systems Programming
CS490. Capstone Project
8.2.4 A web-based approach
This model has grown out of a grass-roots demand for curricular structures that focus more attention on the Internet and the World-Wide Web, using these domains to serve as a common foundation for the curriculum as a whole. The following courses represent one attempt to develop such a model:
-
CS130. Introduction to the World-Wide Web
CS210W. Algorithm Design and Analysis
CS221W. Architecture and Operating Systems
CS222W. Architectures for Networking and Communication
CS230W. Net-centric Computing
CS250W. Human-Computer Interaction
CS255W. Computer Graphics
CS261W. AI and Information
CS292W. Software Development and Professional Practice
8.3 Hybrid approaches
As noted in the introduction to this chapter, the four intermediate approaches outlined in this report -- the traditional approach, the compressed approach, the systems-based approach, and the web-based approach -- should be viewed as representative models that represent only a few of the possibilities available. In many cases, it is possible to combine elements of two or more approaches to create a new hybrid curriculum that may meet more effectively the needs of a particular institution. In creating such a hybrid, however, it is important to ensure that the resulting curriculum in fact covers the required core topics.
Figure 8-2 outlines three hybrid approaches that meet the condition of covering the full set of core topics when used in conjunction with any of the introductory sequences described in Chapter 7. Other combinations are possible as well.
An eight-course hybrid that adds one cross-cutting course to a traditional model:
CS220T. Computer Architecture CS226C. Operating Systems and Networking CS260T. Artificial Intelligence CS270T. Databases CS280T. Social and Professional Issues CS290C. Software Development CS490. Capstone Project A seven-course hybrid that mixes the web-based and the compressed approach:
CS210W. Algorithm Design and Analysis CS221W. Architecture and Operating Systems CS222W. Operating Systems CS230W. Net-centric Computing CS262C. Information and Knowledge Management CS292C. Software Development and Professional Practice A six-course hybrid that mixes the traditional and the compressed approach: |
All of the approaches described in this chapter -- the four specific models and the various hybrids -- all have a common goal: to present the fundamental ideas and enduring concepts of computer science that every student must learn to work successfully in the field. In doing so, these intermediate courses lay the foundation for more advanced work in computer science.
![]() |
CC2001 Report
December 15, 2001 |
![]() |



