Programming lesson
Bridging the Gap: From Binary to Arduino in ELEC1601
Learn how ELEC1601 teaches you to understand computers from the ground up—from binary and logic gates to programming an Arduino. This tutorial covers key concepts with timely examples.
Introduction to Computer Systems: Why ELEC1601 Matters
In ELEC1601 Introduction to Computer Systems, you'll explore how computers work at every level—from the physical circuits that process 0s and 1s to the high-level programs you write. As of May 22, 2026, with AI and embedded systems transforming everything from smartphones to autonomous vehicles, understanding the fundamentals of computer architecture is more relevant than ever. This tutorial will help you bridge the gap between abstract concepts and practical skills, using examples from current trends like AI chips and the latest gaming consoles.
What Is a Computer System?
A computer system is more than just a box with a screen. It's a collection of digital logic that executes machine instructions. Think of it like the engine in a high-performance electric car: the driver (you) presses the accelerator (software), but the motor (hardware) does the real work. In ELEC1601, you'll learn to see through the abstraction and understand the hardware-software interface.
Key Components
- Processor (CPU): The brain that executes instructions.
- Memory: Stores data and programs (RAM, ROM).
- I/O Devices: Connect to the outside world (keyboard, screen, sensors).
- Bus: The communication highway between components.
From High-Level Code to Machine Language
When you write int x = 5; in C++, the compiler translates it into assembly language, which then becomes binary machine code. Assembly language is human-readable but maps directly to the processor's instruction set. For example, the ARM processor in your phone uses instructions like MOV R0, #5 to load the value 5 into a register.
Example: Adding Two Numbers
; Assembly (ARM) to add r0 and r1, store in r2
ADD r2, r0, r1This single instruction might be encoded as 0xE0802001 in binary. Understanding this mapping is crucial for optimizing performance—something game developers and AI engineers rely on daily.
Why Arduino? The Practical Side of ELEC1601
The lab component of ELEC1601 uses an Arduino microcontroller, a small but powerful chip that you can program to control LEDs, sensors, and motors. It's like the brain of a smart home device or a drone. In May 2026, Arduino-based projects are popular in maker spaces and even in space missions (CubeSats).
Lab 1: Blinking an LED
Your first lab might be to blink an LED. The code is simple:
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}But behind this, the Arduino's processor (an ATmega328P) executes machine instructions to toggle a pin. You'll learn to read the datasheet, understand registers, and even write assembly to blink the LED faster.
Number Encoding: Binary, Hexadecimal, and Two's Complement
Computers store everything as binary numbers. But how do we represent negative numbers? The answer is two's complement. For example, in 8-bit: 00000101 is +5, and 11111011 is -5. This encoding allows the same hardware to perform addition and subtraction.
Trend Connection: AI and Low-Precision Arithmetic
Modern AI accelerators like Google's TPU use low-precision number formats (e.g., bfloat16) to speed up neural network computations. Understanding binary encoding helps you appreciate these trade-offs between accuracy and speed.
Learning Strategies for Success in ELEC1601
The course emphasizes active learning. Instead of passively listening, you should:
- Prepare before lectures: Skim slides on Canvas.
- Participate in tutorials: Ask questions, make mistakes.
- Build your lab team: Teach each other—you'll be tested randomly.
- Use distributed practice: Study a little each day, not just before exams.
"Learning is not a spectator sport. You learn by doing, by making mistakes, and by reflecting on them." – David Boland, ELEC1601 Lecturer
Conclusion: From Bits to Systems
ELEC1601 gives you the foundation to understand any computer system, from a smartwatch to a supercomputer. By the end, you'll be able to design simple circuits, program in assembly, and appreciate the elegance of digital logic. Whether you're aiming for a career in AI, gaming, or embedded systems, this knowledge is your first step.
Ready to dive deeper? Check out the course modules on Canvas and start your journey today.