Computer engineering compendium
From Wikipedia, the free encyclopedia
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.[1] It is a comprehensive list and superset of the computer engineering topics generally dealt with at any one time.
Character Encoding
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
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
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
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)