- ES Español

- EN English

2. Body of knowledge of Computer Science
The 17 knowledge areas in Computer Science are:
2.1 Artificial Intelligence (AI)
- 2.1.1 Introduction to AI: Concepts and Intelligent Behavior
- 2.1.2 Problem Characteristics and Agent Nature
- 2.1.3 State and Uninformed Search
- 2.1.4 Heuristic Search and CSP
- 2.1.5 Adversarial Search and Stochastic Optimization
- 2.1.6 Knowledge Representation and Probabilistic Reasoning Foundations
- 2.1.7 Independence, Markov Models and Decision Making
- 2.1.8 Machine Learning Fundamentals
- 2.1.9 Machine Learning Data, Representations and Evaluation
- 2.1.10 Neural Networks and Ethics
- 2.1.11 Machine Learning Formulation and Evaluation
- 2.1.12 Deep Learning, RL and Ethics
- 2.1.13 AI Applications and Societal Impact
- 2.1.14 Additional AI Applications and Societal Impact
- 2.1.15 Logical Representation and Reasoning
- 2.1.16 Probabilistic Representation and Reasoning
- 2.1.17 Planning
- 2.1.18 Agents and Cognitive Systems
- 2.1.19 Natural Language Processing
- 2.1.20 Robotics
- 2.1.21 Perception and Computer Vision
- 2.2.1 Foundational Data Structures
- 2.2.2 Foundational Algorithms
- 2.2.3 Advanced Algorithms
- 2.2.4 Algorithmic Strategies
- 2.2.5 Complexity Analysis Framework
- 2.2.6 Asymptotic Notation and Complexity Classes
- 2.2.7 Complexity Analysis: Recursion, Amortization, and Tight Bounds
- 2.2.8 Computational Complexity Theory
- 2.2.9 Formal Languages and Automata
- 2.2.10 Computability and Decidability
- 2.2.11 Society, Ethics, and the Profession
- 2.3.1 Digital Logic and Digital Systems
- 2.3.2 Machine-Level Data Representation
- 2.3.3 Assembly Level Machine Organization
- 2.3.4 Memory Hierarchy
- 2.3.5 Interfacing and Communication
- 2.3.6 Functional Organization
- 2.3.7 Performance and Energy Efficiency
- 2.3.8 Heterogeneous Architectures
- 2.3.9 Secure Processor Architectures
- 2.3.10 Quantum Architectures
- 2.3.11 Sustainability Issues
- 2.4.1 The Role of Data and the Data Life Cycle
- 2.4.2 Core Database System Concepts
- 2.4.3 Data Modeling
- 2.4.4 Relational Databases
- 2.4.5 Query Construction
- 2.4.6 Query Processing
- 2.4.7 DBMS Internals
- 2.4.8 NoSQL Systems
- 2.4.9 Data Security and Privacy
- 2.4.10 Data Analytics
- 2.4.11 Distributed Databases/Cloud Computing
- 2.4.12 Semi-structured and Unstructured Databases
- 2.4.13 Society, Ethics, and the Profession
- 2.5.1 Object-Oriented Programming Fundamentals
- 2.5.2 Object-Oriented Programming: Encapsulation, Subtyping, and Reflection
- 2.5.3 Functional Programming
- 2.5.4 Logic Programming
- 2.5.5 Shell Scripting
- 2.5.6 Event-Driven and Reactive Programming
- 2.5.7 Parallel and Distributed Computing
- 2.5.8 Aspect-Oriented Programming
- 2.5.9 Type Systems Fundamentals
- 2.5.10 Type Systems: Polymorphism and Complementary Typing
- 2.5.11 Advanced Type Theory
- 2.5.12 Systems Execution and Memory Model
- 2.5.13 Memory Management
- 2.5.14 Language Translation and Execution
- 2.5.15 Program Abstraction and Representation
- 2.5.16 Syntax Analysis
- 2.5.17 Compiler Semantic Analysis
- 2.5.18 Program Analysis and Analyzers
- 2.5.19 Code Generation
- 2.5.20 Run-time Behavior and Systems
- 2.5.21 Advanced Programming Constructs
- 2.5.22 Language Pragmatics
- 2.5.23 Formal Semantics
- 2.5.24 Formal Development Methodologies
- 2.5.25 Design Principles of Programming Languages
- 2.5.26 Society, Ethics, and the Profession
- 2.6.1 Fundamental Concepts of Graphics and Interactive Techniques
- 2.6.2 Visualization
- 2.6.3 Applied Rendering and Techniques
- 2.6.4 Geometric Modeling
- 2.6.5 Shading and Advanced Rendering
- 2.6.6 Computer Animation
- 2.6.7 Simulation
- 2.6.8 Immersion
- 2.6.9 Interaction
- 2.6.10 Image Processing
- 2.6.11 Tangible/Physical Computing
- 2.6.12 Society, Ethics, and the Profession
- 2.7.1 Understanding the User: Individual goals and interactions with others
- 2.7.2 Accountability and Responsibility in Design
- 2.7.3 Accessibility and Inclusive Design
- 2.7.4 Evaluating the Design
- 2.7.5 System Design
- 2.7.6 Society, Ethics, and the Profession
- 2.8.1 Discrete Mathematics
- 2.8.2 Advanced Discrete Mathematics
- 2.8.3 Probability
- 2.8.4 Statistics
- 2.8.5 Linear Algebra
- 2.8.6 Calculus
- 2.9.1 Fundamentals of Networks and Communications
- 2.9.2 Networked Applications
- 2.9.3 Reliability Support
- 2.9.4 Routing and Forwarding
- 2.9.5 Single Hop Communication
- 2.9.6 Network Security
- 2.9.7 Mobility Support
- 2.9.8 Emerging Topics
- 2.10.1 Role and Purpose of Operating Systems
- 2.10.2 Principles of Operating System
- 2.10.3 Concurrency
- 2.10.4 Protection and Safety
- 2.10.5 Scheduling
- 2.10.6 Process Model
- 2.10.7 Memory Management
- 2.10.8 Device management
- 2.10.9 File Systems API and Implementation
- 2.10.10 Advanced File systems
- 2.10.11 Virtualization
- 2.10.12 Real-time and Embedded Systems
- 2.10.13 Fault tolerance
- 2.10.14 Society, Ethics, and the Profession
- 2.11.1 Programs: Declarative Parallelism
- 2.11.2 Programs: Starting Activities
- 2.11.3 Programs: Execution Properties
- 2.11.4 Programs: Distribution
- 2.11.5 Programs: Implementation Mappings
- 2.11.6 GPU Programming
- 2.11.7 Communication
- 2.11.8 Communication: Properties and Extensions
- 2.11.9 Memory and Consistency
- 2.11.10 Coordination
- 2.11.11 Coordination: Synchronization and Atomicity
- 2.11.12 Coordination: Advanced Properties
- 2.11.13 Evaluation
- 2.11.14 Evaluation: Formal Methods
- 2.11.15 Evaluation: Testing and Measurement
- 2.11.16 Algorithms
- 2.11.17 Algorithms: Application Domains Survey
- 2.11.18 Algorithms: Algorithmic Domains
- 2.12.1 Basic Programming Concepts and Constructs
- 2.12.2 Programming Practices: Testing, Debugging, and Documentation
- 2.12.3 Fundamental Data Structures
- 2.12.4 Algorithms
- 2.12.5 Software Development Practices
- 2.12.6 Society, Ethics, and the Profession
- 2.13.1 Team Collaboration and Dynamics
- 2.13.2 Diversity, Stakeholders and Distributed Teams
- 2.13.3 Version Control and CI/CD
- 2.13.4 Development Environment and IDE
- 2.13.5 Requirements Engineering
- 2.13.6 Requirements Evolution and Estimation
- 2.13.7 Principles and Software Architecture
- 2.13.8 API Design and Modeling
- 2.13.9 Software Design Quality and Evaluation
- 2.13.10 Coding Practices
- 2.13.11 Large-Scale Construction and Process
- 2.13.12 Verification and validation Concepts
- 2.13.13 Test Planning and Types
- 2.13.14 Advanced Testing Practices
- 2.13.15 Testing Tools and Analysis
- 2.13.16 Performance Testing and Benchmarking
- 2.13.17 API Compatibility and Versioning
- 2.13.18 Refactoring Techniques
- 2.13.19 Reliability Concepts
- 2.13.20 Reliability Engineering
- 2.13.21 Formal Methods
- 2.14.1 Security Mindset and Principles
- 2.14.2 Access Control and Applications
- 2.14.3 AI and Hardware Security
- 2.14.4 Security Ethics, Law and Society
- 2.14.5 Privacy and Security by Design
- 2.14.6 Injection and Input Validation
- 2.14.7 Memory Safety and Types
- 2.14.8 Information Flow and Non-Interference
- 2.14.9 Malware Analysis and Advanced Security
- 2.14.10 Cryptography Fundamentals
- 2.14.11 Cryptographic Algorithms
- 2.14.12 Protocols, Applications and Advanced Cryptography
- 2.14.13 Threat Analysis and Security Engineering
- 2.14.14 Security Design and Controls Engineering
- 2.14.15 Trusted Computing and Privacy Engineering
- 2.14.16 Digital Forensics Techniques
- 2.14.17 Legal Aspects and Incident Handling
- 2.14.18 Security Governance, Management and Policy
- 2.14.19 Risk and Data Management
- 2.15.1 Social Impact and AI
- 2.15.2 Digital Equity and Accessibility
- 2.15.3 Ethical Foundations and Frameworks
- 2.15.4 Ethical Analysis Methods and Tools
- 2.15.5 Professional Values, Nature and Continuing Development
- 2.15.6 Ethics Codes and Legal Accountability
- 2.15.7 Professional Responsibility and Public Policy
- 2.15.8 Ethical Dissent and Cultural Context
- 2.15.9 Workplace Ethics
- 2.15.10 Intellectual Property Foundations
- 2.15.11 Licensing, Plagiarism and Authorship
- 2.15.12 Digital IP Rights and Copyright
- 2.15.13 Open Source, Piracy and DRM
- 2.15.14 Data, Surveillance and Privacy Technology
- 2.15.15 Privacy Philosophical Foundations and Legislation
- 2.15.16 Civil Liberties and Expression
- 2.15.17 Technical and Professional Communication
- 2.15.18 Team Communication and Culture
- 2.15.19 Environmental Footprint of Computing Systems
- 2.15.20 Systemic Effects and Social Context
- 2.15.21 Sustainable Design and Pervasive Computing
- 2.15.22 Foundations and Early History of Computing
- 2.15.23 Modern History: PC, Internet and AI
- 2.15.24 Economic Models and Strategies
- 2.15.25 Automation, AI and Economic Ethics
- 2.15.26 Computer Crimes and Attacks
- 2.15.27 Security Laws, Policies and Responsibility
- 2.15.28 Identity and Diversity in Computing
- 2.15.29 DEIA Historical and Cross-Cultural Context
- 2.15.30 Inclusion and Computing Practices
- 2.15.31 Accessible Design
- 2.16.1 Hardware Components and Logic
- 2.16.2 Layers, Abstractions and Scalability
- 2.16.3 Digital Systems and Logic
- 2.16.4 State Machines
- 2.16.5 Sequential and Parallel Processing
- 2.16.6 Resource Management
- 2.16.7 Latency, Cache and Memory Hierarchy
- 2.16.8 Virtualization and Isolation
- 2.16.9 Performance Metrics and Benchmarks
- 2.16.10 Analytical Performance Models
- 2.16.11 Events, Tools and Experimentation
- 2.16.12 System Reliability
- 2.16.13 System Security
- 2.16.14 System Design
- 2.16.15 Society, Ethics, and the Profession
- 2.17.1 Common Aspects: Platforms, APIs and Constraints
- 2.17.2 Common Aspects: Platform Languages and Web Programming Patterns
- 2.17.3 Frontend, Frameworks and Web Standards
- 2.17.4 Cloud Architecture and Data Management
- 2.17.5 Mobile Platforms: Development Fundamentals
- 2.17.6 Mobile Platforms: Architecture and Constraints
- 2.17.7 Mobile Platforms: Capabilities and Asynchronous Computing
- 2.17.8 Robot Platforms
- 2.17.9 Embedded Characteristics and Architectures
- 2.17.10 Systems, Programming and Sensors
- 2.17.11 Real-Time, Memory and Verification
- 2.17.12 Platform History, Types and Characteristics
- 2.17.13 Sensors, Controllers and eSports Ecosystems
- 2.17.14 Architectures and Rendering
- 2.17.15 Algorithms, Media and Virtual Worlds
- 2.17.16 Languages, APIs and Development Tools
- 2.17.17 Game Engines
- 2.17.18 Game Design Foundations
- 2.17.19 Genres, Audiences and Social Reach
- 2.17.20 Interactive Data and Analytics Platforms
- 2.17.21 AI Programming and Quantum Platforms
- 2.17.22 SPD-SEP/Mobile
- 2.17.23 SPD-SEP/Web
- 2.17.24 Intellectual Property in Games
- 2.17.25 Game Interface and Accessibility
- 2.17.26 Health, Safety and Sustainability
- 2.17.27 Representation, Inclusion and Equality
- 2.17.28 SPD-SEP/Robotics
- 2.17.29 SPD-SEP/Interactive