Computer Science Body of Knowledge
- DS. Discrete Structures (43 core hours)
MFC
- 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 core hours)
CS1, CSA
- 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 core hours)
ADS, CSA, MFC, TC
- AL1. Basic algorithmic analysis (4)
ADS
- AL2. Algorithmic strategies (6)
ADS
- AL3. Fundamental computing algorithms (12)
ADS
- AL4. Distributed algorithms (3)
CSA
- AL5. Basic computability (6)
MFC, TC
- AL6. The complexity classes P and NP
- AL7. Automata theory
- AL8. Advanced algorithmic analysis
- AL9. Cryptographic algorithms
- AL10. Geometric algorithms
- AL11. Parallel algorithms
- AR. Architecture and Organization (36 core hours)
HD
- 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
- AR8. Performance enhancements
- AR9. Architecture for networks and distributed systems
- OS. Operating Systems (18 core hours)
OS, CSA, SD
- OS1. Overview of operating systems (2)
OS
- OS2. Operating system principles (2)
OS
- OS3. Concurrency (6)
OS, CSA
- OS4. Scheduling and dispatch (3)
OS, CSA
- OS5. Memory management (5)
OS, SD
- OS6. Device management
- OS7. Security and protection
- OS8. File systems
- OS9. Real-time and embedded systems
- OS10. Fault tolerance
- OS11. System performance evaluation
- OS12. Scripting
- NC. Net-Centric Computing (15 core hours)
CSA
- 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
- NC6. Network management
- NC7. Compression and decompression
- NC8. Multimedia data technologies
- NC9. Wireless and mobile computing
- PL. Programming Languages (21 core hours)
PL, SD, HD
- PL1. Overview of programming languages (2)
PL
- PL2. Virtual machines (1)
HD
- PL3. Introduction to language translation (2)
PL
- PL4. Declarations and types (3)
PL
- PL5. Abstraction mechanisms (3)
PL
- PL6. Object-oriented programming (10)
SD
- PL7. Functional programming
- PL8. Language translation systems
- PL9. Type systems
- PL10. Programming language semantics
- PL11. Programming language design
- HC. Human-Computer Interaction (8 core hours)
ESI, CSA
- HC1. Foundations of human-computer interaction (6)
ESI
- HC2. Building a simple graphical user interface (2)
CSA
- HC3. Human-centered software evaluation
- HC4. Human-centered software development
- HC5. Graphical user-interface design
- HC6. Graphical user-interface programming
- HC7. HCI aspects of multimedia systems
- HC8. HCI aspects of collaboration and communication
- GV. Graphics and Visual Computing (3 core hours)
CSA
- GV1. Fundamental techniques in graphics (2)
CSA
- GV2. Graphic systems (1)
CSA
- GV3. Graphic communication
- GV4. Geometric modeling
- GV5. Basic rendering
- GV6. Advanced rendering
- GV7. Advanced techniques
- GV8. Computer animation
- GV9. Visualization
- GV10. Virtual reality
- GV11. Computer vision
- IS. Intelligent Systems (10 core hours)
LP
- 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
- IS5. Advanced knowledge representation and reasoning
- IS6. Agents
- IS7. Natural language processing
- IS8. Machine learning and neural networks
- IS9. AI planning systems
- IS10. Robotics
- IM. Information Management (10 core hours)
CSA
- IM1. Information models and systems (3)
CSA
- IM2. Database systems (3)
CSA
- IM3. Data modeling (4)
CSA
- IM4. Relational databases
- IM5. Database query languages
- IM6. Relational database design
- IM7. Transaction processing
- IM8. Distributed databases
- IM9. Physical database design
- IM10. Data mining
- IM11. Information storage and retrieval
- IM12. Hypertext and hypermedia
- IM13. Multimedia information and systems
- IM14. Digital libraries
- SP. Social and Professional Issues (16 core hours)
ESI
- SP1. History of computing (1)
ESI
- SP2. Social context of computing (3)
ESI
- SP3. Methods and tools of analysis (2)
ESI
- SP4. Professional and ethical responsibilities (3)
ESI
- SP5. Risks and liabilities of computer-based systems (2)
ESI
- SP6. Intellectual property (3)
ESI
- SP7. Privacy and civil liberties (2)
ESI
- SP8. Computer crime
- SP9. Economic issues in computing
- SP10. Philosophical frameworks
- SE. Software Engineering (31 core hours)
SD, CSA
- SE1. Software design (8)
SD
- SE2. Using APIs (5)
CSA
- 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
- SE10. Formal methods
- SE11. Software reliability
- SE12. Specialized systems development
- CN. Computational Science and Numerical Methods (no core hours)
- CN1. Numerical analysis
- CN2. Operations research
- CN3. Modeling and simulation
- CN4. High-performance computing
rab@stolaf.edu,
May 18, 2002