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