1 Computing Fundamentals
1.1 Algorithms and Data Structures
1.1.1 Basic Data Structures
1.1.2 Design of Algorithms
1.1.3 A nalysis of Algorithms
1.2 Computer Architecture
1.2.1 Digital Systems
1.2.2 Computer System Organization
1.2.3 A lternative Architectures
1.2.4 Communications and Networks
1.3 Mathematical Foundations
1.3.1 Mathematical Logic and Proof Systems
1.3.2 Discrete Mathematical Structures
1.3.3 Formal Systems
1.3.4 Combinatorics
1.3.5 P robability and Statistics
1.4 Operating Systems
1.4.1 Operating Systems Fundamentals
1.4.2 P rocess Management
1.4.3 Memory Management
1.4.4 Security and Protection
1.4.5 Distributed and Real-time Systems
1.5 Programming Languages
1.5.1 Theory of Programming Languages
1.5.2 P rogramming Paradigms
1.5.3 Language Design and Implementation
2 Software Product Engineering
2.1.1 Requirements Elicitation
2.1.2 Requirements Analysis
2.1.3 Requirements Specification
2.2 Software Design
2.2.1 A rchitectural Design
2.2.2 A bstract Specification
2.2.3 Interface Design
2.2.4 Data Structure Design
2.2.5 A lgorithm Design
2.3 Software Coding
2.3.1 Code Implementation
2.3.2 Code Reuse
2.3.3 Coding Standards and Documentation
2.4 Software Testing
2.4.1 Unit Testing
2.4.2 Integration Testing
2.4.3 System Testing
2.4.4 P erformance Testing
2.4.5 A cceptance Testing
2.4.6 Installation Testing
2.4.7 Test documentation
2.5 Software Operation and Maintenance
2.5.1 Software Installation and Operation
2.5.2 Software Maintenance Operations
2.5.3 Software Maintenance Process
2.5.4 Software Maintenance Management
2.5.5 Software Reengineering
3 Software Management
3.1 Software Project Management
3.1.1 P roject Planning
3.1.2 P roject Organization
3.1.3 P roject Forecasting
3.1.4 P roject Scheduling
3.1.5 P roject Control
3.2 Software Risk Management
3.2.1 Risk Analysis
3.2.2 Risk Management Planning
3.2.3 Risk Monitoring
3.3 Software Quality Management
3.3.1 Software Quality Assurance
3.3.2 Verification and Validation
3.3.3 Software Metrics
3.3.4 Dependable Systems
3.4 Software Configuration Management
3.4.1 Software Configuration Identification
3.4.2 Software Configuration Control
3.4.3 Software Configuration Audit
3.4.4 Software Configuration Status Accounting
3.5 Software Process Management
3.5.1 Quantitative Software Process Management
3.5.2 Software Process Improvement
3.5.3 Software Process Assessment
3.5.4 Software Process Automation
3.5.5 Software Process Engineering
3.6 Software Acquisition
3.6.1 P rocurement Process
3.6.2 A cquisition Planning
3.6.3 P erformance Management
4 Software Domains
4.1 Artificial Intelligence
4.2 Database Systems
4.3 Human-Computer Interaction
4.4 Numerical and Symbolic Computing
4.5 Computer Simulation
4.6 Real-Time Systems