# Computer engineering compendium

This is a list of the individual topics in Electronics, Mathematics, and Integrated Circuits that together make up the Computer Engineering field. The organization is by topic to create an effective Study Guide for this field. The contents match the full body of topics and detail information expected of a person identifying themselves as a Computer Engineering expert as laid out by the National Council of Examiners for Engineering and Surveying. It is a comprehensive list and superset of the computer engineering topics generally dealt with at any one time.

## Part 1 - Basics
### Character Encoding

    Character (computing)
    Universal Character Set
    IEEE 1394
    ASCII

### Math

    Bitwise operation
    Signed number representations
    IEEE floating point
    Operators in C and C++
    De Morgan's laws
    Booth's multiplication algorithm
    Binary multiplier
    Wallace tree
    Dadda multiplier
    Multiply–accumulate operation
    Big O notation
    Euler's identity

### Basic Electronics

    Series and parallel circuits
    RLC circuit
    Transistor
    Operational amplifier applications

### Signal Processing

    Signal processing
    Digital filter
    Fast Fourier transform
    Cooley–Tukey FFT algorithm
    Modified discrete cosine transform
    Digital signal processing
    Analog-to-digital converter

### Error Detection/Correction

    Parity bit
    Error detection and correction
    Cyclic redundancy check
    Hamming code
    Hamming(7,4)
    Convolutional code
    Forward error correction
    Noisy-channel coding theorem
    Modulation
    Signal-to-noise ratio
    Linear code
    Noise (electronics)

## Part 2 - Hardware
### Hardware

    Logic family
    Multi-level cell
    Flip-flop (electronics)
    Race condition
    Binary decision diagram
    Circuit minimization for Boolean functions
    Karnaugh map
    Quine–McCluskey algorithm
    Integrated circuit design

### Programmable Logic

    Standard cell
    Programmable logic device
    Field-programmable gate array
    Complex programmable logic device
    Application-specific integrated circuit
    Logic optimization
    Register-transfer level
    Floorplan (microelectronics)
    Hardware description language
    VHDL
    Verilog
    Electronic design automation
    Espresso heuristic logic minimizer
    Routing (electronic design automation)
    Static timing analysis
    Placement (EDA)
    Power optimization (EDA)
    Timing closure
    Design flow (EDA)
    Design closure
    Rent's rule

### Assembly/Test

    Design rule checking
    SystemVerilog
    In-circuit test
    Joint Test Action Group
    Boundary scan
    Boundary scan description language
    Test bench
    Ball grid array
    Head in pillow (metallurgy)
    Pad cratering
    Land grid array

### Processors

    Computer architecture
    Harvard architecture
    Processor design
    Central processing unit
    Microcode
    Arithmetic logic unit
    CPU cache
    Instruction set
    Orthogonal instruction set
    Classic RISC pipeline
    Reduced instruction set computing
    Instruction-level parallelism
    Instruction pipeline
    Hazard (computer architecture)
    Bubble (computing)
    Superscalar
    Parallel computing
    Dynamic priority scheduling
    Amdahl's law
    Benchmark (computing)
    Moore's law
    Computer performance
    Supercomputer
    SIMD
    Multi-core processor
    Explicitly parallel instruction computing
    Simultaneous multithreading

### Redundancy & Reliability

    Dependability
    Active redundancy
    Dual modular redundancy
    Triple modular redundancy
    High-availability Seamless Redundancy
    N-version programming
    RAID
    Fault tolerance
    Fault-tolerant computer system
    Watchdog timer
    Redundant array of independent memory

### Memory

    Computer data storage
    Memory controller
    Memory management unit
    Static random-access memory
    Dynamic random-access memory
    Synchronous dynamic random-access memory
    DDR2 SDRAM
    Flash memory
    Memory scrubbing
    Data striping
    Hard disk drive performance characteristics
    Disk sector

## Part 3 - OS, Software, Testing, AI
### Operating Systems

    Operating system
    Multiprocessing
    Concurrent computing
    Computer cluster
    Distributed computing
    Trusted computing base
    Embedded system
    In-circuit emulator
    Real-time operating system
    Comparison of real-time operating systems
    Rate-monotonic scheduling
    Earliest deadline first scheduling
    Least slack time scheduling
    Deadline-monotonic scheduling
    Round-robin scheduling
    O(1) scheduler
    Thread (computing)
    Concurrency control
    Synchronization (computer science)
    Mutual exclusion
    Device driver

### Software Development

    Software development process
    Software requirements specification
    Spiral model
    Agile software development
    Behavior-driven development
    Cowboy coding
    Lean software development
    Extreme programming
    Structured systems analysis and design method
    List of software development philosophies
    Programming language generations
    Comparison of programming languages
    Printf format string
    Programming paradigm
    Object-oriented design
    Software documentation
    Software design document
    Object-oriented programming
    Concurrent Versions System
    Software maintenance
    Revision control
    Software configuration management
    Software release life cycle
    MIL-STD-498
    Software assurance
    Systems development life cycle
    Software quality
    Software quality management
    Relational database
    ACID
    List of data structures
    Semipredicate problem
    Application Interface Specification
    Homoiconicity
    Domain-specific modeling
    Unified Modeling Language

### Test/Integration

    Software testing
    Test-driven development
    Acceptance test-driven development
    Integration testing
    Software walkthrough
    Code review
    Software inspection
    Software verification
    Functional testing
    Software testing
    White-box testing
    Black-box testing
    Gray box testing
    Verification and validation (software)
    Correctness (computer science)

### AI & Robotics

    Speech processing
    Image processing
    Computer vision
    Robotics
    Speech recognition

## Part 4 - Information Theory, Encryption, Networking, and Security
### Information Theory

    Information theory
    Channel capacity
    Shannon–Hartley theorem
    Nyquist–Shannon sampling theorem
    Shannon's source coding theorem
    Zero-order hold
    Data compression
    Modulation order
    Phase-shift keying

### Encryption

    Hash function
    List of hash functions
    String searching algorithm
    Avalanche effect
    Rabin–Karp algorithm
    Burst error-correcting code
    Cryptography
    Cryptographic hash function
    Public-key cryptography
    Viterbi algorithm

### Networking

    Computer network
    List of network buses
    Wide area network
    Local area network
    Network science
    Non-return-to-zero
    Manchester code
    Ethernet
    Internet
    OSI model
    Transmission Control Protocol
    Point-to-Point Protocol
    Exposed node problem
    Circuit switching
    Fiber-optic communication
    Capacity management
    Bandwidth management
    Bandwidth (computing)
    Throughput
    Networking hardware
    Wireless network
    IEEE 802.11
    Complementary code keying
    Session Initiation Protocol
    Message authentication code
    Port Control Protocol
    Network monitoring
    Simple Network Management Protocol
    Measuring network throughput
    Reliability (computer networking)
    Channel access method
    Time division multiple access

### Security

    Computer security
    Separation of protection and security
    Information security
    Information security management system
    Internet security
    Hacker (computer security)
    DMZ (computing)
    Firewall (computing)
    Stateful firewall
    Intrusion detection system
    Denial-of-service attack
    IP address spoofing

## Part 5 - Misc

    Multiple-criteria decision analysis