UW-Madison CS 252: Introduction to Computer Engineering
CS 252 (cross-listed COMP SCI/E C E 252) introduces how computers work from the bottom up: transistors and gates, combinational and sequential logic, basic computer organization, and machine and assembly programming on the LC-3. It's the first systems course in the CS and computer engineering tracks.
Fennie is independent and not affiliated with University of Wisconsin-Madison. This is an unofficial study guide.
What makes it hard
The material spans transistors to assembly in one semester, and each layer assumes the previous one; letting Boolean algebra or state machines go cold makes the later units feel arbitrary. LC-3 assembly is the famous unit: programming with loads, stores, and branches demands precision that high-level languages never required, and exam problems trace machine state instruction by instruction.
What you'll cover
- • Transistors and logic gates
- • Boolean algebra
- • Combinational logic design
- • Sequential logic and state machines
- • Basic computer organization
- • LC-3 machine and assembly programming
The CS 252 study guide
How to study for UW-Madison CS 252, step by step.
- 1
Get gates and Boolean algebra automatic early
Everything in CS 252 compiles down to the first weeks. Simplifying expressions and reading circuit diagrams must be reflex before sequential logic arrives, because the course never re-teaches them.
- 2
Design circuits from specifications, on paper
Truth table to gates, state diagram to flip-flops: exams test producing designs, not recognizing them. Weekly from-scratch design practice is the preparation that matches the test.
- 3
Hand-trace LC-3 programs instruction by instruction
Write down registers and memory, step through each instruction, predict the state. The assembly unit's exam questions are exactly this exercise, and it's trainable mechanical skill.
- 4
Write small assembly programs beyond the assignments
Loops, conditionals, and memory access in LC-3: production fluency comes from writing, not reading. Small extra exercises make the instruction set a language instead of a reference card.
Today
Today's CS 252 plan
What a Fennie Daily Plan looks like for CS 252. Yours is built from your own syllabus and adapts every day to your deadlines and progress.
First plan free, no card required. Fennie is independent and unaffiliated with your school.
FAQ
Is CS 252 at UW-Madison hard?
It's detail-dense rather than conceptually brutal: each layer from gates to assembly is manageable, but they stack, and cramming a semester of stacked abstractions fails reliably. Students who review cumulatively and practice LC-3 tracing find it predictable.
What is LC-3 in CS 252?
A simple teaching computer architecture used for the machine and assembly programming units. You write programs with basic instructions (loads, stores, branches) to learn how computation actually happens at the machine level before CS 354 puts you in C on real hardware.
Do I take CS 252 before CS 354?
Yes. 252 is the prerequisite and 354 builds directly on it, moving from LC-3 to C and real machine organization. The gates-to-assembly mental model you build here is assumed working knowledge there.
More UW-Madison courses
CS 200: Programming I
CS 200 (officially COMP SCI 200) is UW-Madison's first programming course, taught in Java. It covers variables, control flow, methods, arrays, and an introduction to objects, serving intended CS majors, data science students, and a large population just adding programming skills. It assumes no prior experience.
CS 300: Programming II
CS 300 (officially COMP SCI 300) is UW-Madison's object-oriented programming course in Java, covering classes, inheritance, interfaces, exceptions, recursion, and intro data structures like array lists and linked lists. It's one of the largest courses on campus, since it gates the CS major and serves data science, engineering, and statistics students besides.
CS 400: Programming III
CS 400 (officially COMP SCI 400) completes UW-Madison's programming sequence: data structures and their implementations (balanced search trees, hash tables, graphs) plus software development practices like version control, testing, and team projects, all in Java.
CS 240: Introduction to Discrete Mathematics
CS 240 (officially COMP SCI 240) is UW-Madison's discrete math course for the CS major: logic, proofs, induction, sets, functions, counting, recurrences, and graphs. It's the mathematical foundation that CS 577 and the theory electives build on.