The following list is adapted from Table 5.1 (p.17) of CC2001 (Computing Curriculum 2001 , the joint curricular recommendations of the Computer Science professional societies (ACM-IEEE/CS Task Force on the Curriculum).
- The boldface headings are titles of knowledge areas that frequently appear in CS at the undergraduate level.
- The bulleted list items are “knowledge units” of topics for undergraduate study.
- The parenthesized recommended minimum hours (described as “core hours” in CC2001) represent the number of class hours per each knowledge unit that the committee recommends for an undergraduate major.
- Annotations of the form “– CS1” means that the indicated course(s) in St. Olaf’s CS major include(s) some or all of the material listed for a particular “knowledge unit” in the list.
-
- DS. Discrete Structures (43 recommended minimum hours)
- DS1. Functions, relations, and sets (6) — MFC
- DS2. Basic logic (10) — MFC
- DS3. Proof techniques (12) — MFC
- DS4. Basics of counting (5) — MFC
- DS5. Graphs and trees (4) — MFC
- DS6. Discrete probability (6) — MFC
PF. Programming Fundamentals (38 recommended minimum hours)
- PF1. Fundamental programming constructs (9) — CS1
- PF2. Algorithms and problem-solving (6) — CS1
- PF3. Fundamental data structures (14) — CS1
- PF4. Recursion (5) — CS1
- PF5. Event-driven programming (4) — CSA
AL. Algorithms and Complexity (31 recommended minimum hours)
- AL1. Basic algorithmic analysis (4) — ADS
- AL2. Algorithmic strategies (6) — ADS
- AL3. Fundamental computing algorithms (12) — ADS
- AL4. Distributed algorithms (3) — CSA , PCS
- AL5. Basic computability (6) — MFC , TC
- AL6. The complexity classes P and NP (0) — TC
- AL7. Automata theory (0) — TC
- AL8. Advanced algorithmic analysis (0) — ADS
- AL9. Cryptographic algorithms (0) — TC
- AL10. Geometric algorithms (0)
- AL11. Parallel algorithms (0) , PCS
AR. Architecture and Organization (36 recommended minimum hours)
- AR1. Digital logic and digital systems (6) — HD
- AR2. Machine level representation of data (3) — HD
- AR3. Assembly level machine organization (9) — HD
- AR4. Memory system organization and architecture (5) — HD
- AR5. Interfacing and communication (3) — HD
- AR6. Functional organization (7) — HD
- AR7. Multiprocessing and alternative architectures (3) — HD , PCS
- AR8. Performance enhancements (0) — HD
- AR9. Architecture for networks and distributed systems (0) — HD
OS. Operating Systems (18 recommended minimum hours)
- OS1. Overview of operating systems (2) — OS
- OS2. Operating system principles (2) — OS
- OS3. Concurrency (6) — OS , CSA , PCS
- OS4. Scheduling and dispatch (3) — OS , CSA , PCS
- OS5. Memory management (5) — OS , SD
- OS6. Device management (0) — OS
- OS7. Security and protection (0) — OS
- OS8. File systems (0) — OS , PCS
- OS9. Real-time and embedded systems (0)
- OS10. Fault tolerance (0) , PCS
- OS11. System performance evaluation (0)
- OS12. Scripting (0) — OS , PCS
NC. Net-Centric Computing (15 recommended minimum hours)
- NC1. Introduction to net-centric computing (2) — CSA
- NC2. Communication and networking (7) — CSA
- NC3. Network security (3) — CSA
- NC4. The web as an example of client-server computing (3) — CSA
- NC5. Building web applications (0) — ATP
- NC6. Network management (0) — NET , PCS
- NC7. Compression and decompression (0) — ADS
- NC8. Multimedia data technologies (0)
- NC9. Wireless and mobile computing (0)
PL. Programming Languages (21 recommended minimum hours)
- PL1. Overview of programming languages (2) — PL
- PL2. Virtual machines (1) — HD , PCS
- PL3. Introduction to language translation (2) — PL
- PL4. Declarations and types (3) — PL
- PL5. Abstraction mechanisms (3) — PL
- PL6. Object-oriented programming (10) — SD , PCS
- PL7. Functional programming (0) — CS1
- PL8. Language translation systems (0) — PL
- PL9. Type systems (0) — PL
- PL10. Programming language semantics (0) — PL
- PL11. Programming language design (0) — PL
HC. Human-Computer Interaction (8 recommended minimum hours)
- HC1. Foundations of human-computer interaction (6) — ESD , CSA
- HC2. Building a simple graphical user interface (2) — CSA
- HC3. Human-centered software evaluation (0)
- HC4. Human-centered software development (0)
- HC5. Graphical user-interface design (0)
- HC6. Graphical user-interface programming (0) — ATP
- HC7. HCI aspects of multimedia systems (0)
- HC8. HCI aspects of collaboration and communication (0)
GV. Graphics and Visual Computing (3 recommended minimum hours)
- GV1. Fundamental techniques in graphics (2) — CSA
- GV2. Graphic systems (1) — CSA
- GV3. Graphic communication (0)
- GV4. Geometric modeling (0) — CG
- GV5. Basic rendering (0) — CG
- GV6. Advanced rendering (0) — CG
- GV7. Advanced techniques (0) — CG
- GV8. Computer animation (0)
- GV9. Visualization (0)
- GV10. Virtual reality (0)
- GV11. Computer vision (0)
IS. Intelligent Systems (10 recommended minimum hours)
- IS1. Fundamental issues in intelligent systems (1) — LP
- IS2. Search and constraint satisfaction (5) — LP
- IS3. Knowledge representation and reasoning (4) — LP
- IS4. Advanced search (0) — LP
- IS5. Advanced knowledge representation and reasoning (0) — LP
- IS6. Agents (0)
- IS7. Natural language processing (0)
- IS8. Machine learning and neural networks (0)
- IS9. AI planning systems (0)
- IS10. Robotics (0)
IM. Information Management (10 recommended minimum hours)
- IM1. Information models and systems (3) — CSA
- IM2. Database systems (3) — CSA
- IM3. Data modeling (4) — CSA
- IM4. Relational databases (0) — DB
- IM5. Database query languages (0) — DB
- IM6. Relational database design (0) — DB
- IM7. Transaction processing (0) — DB
- IM8. Distributed databases (0)
- IM9. Physical database design (0) — DB
- IM10. Data mining (0)
- IM11. Information storage and retrieval (0)
- IM12. Hypertext and hypermedia (0) — CSA
- IM13. Multimedia information and systems (0)
- IM14. Digital libraries (0)
SP. Social and Professional Issues (16 recommended minimum hours)
- SP1. History of computing (1) — ESD
- SP2. Social context of computing (3) — ESD
- SP3. Methods and tools of analysis (2) — SD , ESD
- SP4. Professional and ethical responsibilities (3) — ESD
- SP5. Risks and liabilities of computer-based systems (2) — ESD
- SP6. Intellectual property (3) — ESD
- SP7. Privacy and civil liberties (2) — ESD
- SP8. Computer crime (0) — ESD
- SP9. Economic issues in computing (0) — ESD
- SP10. Philosophical frameworks (0)
SE. Software Engineering (31 recommended minimum hours)
- SE1. Software design (8) — SD , PCS
- SE2. Using APIs (5) — CSA , PCS
- SE3. Software tools and environments (3) — SD
- SE4. Software processes (2) — SD
- SE5. Software requirements and specifications (4) — SD
- SE6. Software validation (3) — CSA
- SE7. Software evolution (3) — SD
- SE8. Software project management (3) — SD
- SE9. Component-based computing (0)
- SE10. Formal methods (0) — CS1 , SD
- SE11. Software reliability (0) , PCS
- SE12. Specialized systems development (0) , PCS
CN. Computational Science and Numerical Methods (0 recommended minimum hours)
- CN1. Numerical analysis (0)
- CN2. Operations research (0)
- CN3. Modeling and simulation (0)
- CN4. High-performance computing (0) , PCS
- DS. Discrete Structures (43 recommended minimum hours)