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)
- PF. Programming Fundamentals (38 recommended minimum hours)
- 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
