Knowledge areas in the CS major

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