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.[1] It is a comprehensive list and superset of the computer engineering topics generally dealt with at any one time.
Part 1 - Basics
Character Encoding
Math
Basic Electronics
Signal Processing
Part 2 - Hardware
Hardware
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
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
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
Encryption
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
Part 5 - Misc
Other
- Uses of this list
This list can provide anyone interested in Computer Engineering with a complete list of topics which should be studied and understood to at least some degree in order to be reasonably proficient in the field. One who had attained a solid working knowledge of all these topics and how they integrate to create the Computer Systems widely in use today, would also have attained the body of knowledge needed to pass the National Council of Examiners for Engineering and Surveying (NCEES) Computer Engineering Principles and Practice of Engineering Examination (PE) Exam. This list is a good Study Guide for such comprehensive examinations in this field.
- Additional Materials
TBD -- links to information on effective use of VHDL and Karnaugh Maps should be addded for completeness.
References
- "NCEES PE Electrical and Computer Exam Specifications(note: requires updating every 6 months)" (PDF). National Council of Examiners for Engineering and Surveying.