A Humorous & Technical Investigation into Engineering's Eternal Rivalry
The debate between Electrical Engineering (EE) and Computer Science (CS) represents one of academia and industry's most enduring cultural divides. On one side, electrical engineers view themselves as guardians of physical reality, wrestling with electromagnetism and semiconductor quantum mechanics. On the other side, computer scientists command virtual realms of pure abstraction, orchestrating algorithms that power modern civilization.
When TempleOS creator Terry A. Davis famously quipped that EE sits higher in the "pecking order" due to "real math," he was tapping into a long-standing banter. But is EE math genuinely more "real," or do the two disciplines simply explore fundamental reality through fundamentally different mathematical lenses?
Electrical engineering is directly bound to physical laws. Electrons, electromagnetic fields, thermal noise, and signal degradation exist in the physical universe and obey dynamic, continuous rules.
In electrical engineering, calculating voltage across a real-world circuit isn't static—it depends simultaneously on three physical phenomena happening at once:
If an engineer miscalculates these dynamic physical forces, the physical circuit doesn't gracefully print an error message—it overheats, distorts signals, or burns out components.
Dismissing Computer Science math as "fake" fundamentally misunderstands the field. Computer science does not model physical matter; it models computation, logic, and information structure.
Imagine you have a database containing 1,000,000 items and you need to find something inside it. The way you design your algorithm can make a huge difference in how long the search takes.
Big-O notation is a way for computer scientists to describe how an algorithm's workload grows as the amount of data increases.
The important idea is scaling. An algorithm that seems perfectly fine with 100 items might become unusable with 1,000,000. Big-O notation helps programmers predict this growth and choose algorithms that will continue to perform well as their data gets larger.
In other words, Big-O isn't about counting the exact number of seconds an algorithm will take. It's about understanding how its workload grows as the input gets bigger.
The divide between EE and CS is bridged by Computer Engineering (CpE) and Embedded Systems. This field lives precisely where physical electronics transform into logical execution.
EE Role: LiDAR sensors, radar pulse reflection processing, power steering actuators.
CS Role: Computer vision algorithms, pathfinding logic, object classification AI.
EE Role: Ultra-low power circuit design, heartbeat pulse voltage delivery.
CS Role: Real-time OS fault tolerance, arrhythmia detection algorithms.
EE Role: Nanometer transistor layout, heat dissipation, 5G RF antenna design.
CS Role: Cache management, graphics pipelines, process scheduling algorithms.
EE Role: Analog-to-digital sensor conversion, battery management circuits.
CS Role: Wireless protocol stacks (Wi-Fi/Bluetooth), OTA software updates.
| Dimension | Electrical Engineering (EE) | Computer Science (CS) |
|---|---|---|
| Core Paradigm | Physical energy & signal transformation | Information processing & computational abstraction |
| Math Domain | Continuous (Calculus, Differential Eqs, Linear Algebra) | Discrete (Logic, Graph Theory, Combinatorics, Number Theory) |
| Primary Abstraction | Voltage, Current, Impedance, Waves | Data Structures, Algorithms, Functions, Classes |
| Diagnostic Tools | Oscilloscopes, Multimeters, Spectrum Analyzers | Debuggers, Profilers, Static Code Analyzers |
| Failure State | Component burnout, signal noise, thermal failure | Memory leaks, deadlocks, infinite loops, crash logs |
| Pioneering Figures | James Clerk Maxwell, Nikola Tesla, William Shockley | Alan Turing, Alonzo Church, Claude Shannon, Donald Knuth |
Terry Davis's perspective was rooted in a radical bottom-up understanding of computing. Building TempleOS completely from scratch—writing his own kernel, compiler, graphics library, and 64-bit operating system—required intimate knowledge of how software interacts directly with hardware registers and CPU interrupts.
From this low-level worldview, modern software development often appears buried under endless layers of bloated abstractions, frameworks, and external dependencies. The philosophy posits:
Is Electrical Engineering "higher" in the pecking order? Not objectively.
EE holds supremacy in modeling the physical mechanics of universe hardware. CS holds supremacy in modeling the logical limits of information and problem-solving.
The modern technological landscape depends entirely on both disciplines functioning in total synchronization. The ultimate engineer is not the one who claims hierarchy over another, but the one who can navigate seamlessly across the entire spectrum:
Electrons ➔ Semiconductors ➔ Logic Gates ➔ Architecture ➔ Operating Systems ➔ Algorithms ➔ Software