UW CSE 123: Introduction to Computer Programming III
CSE 123 completes UW's intro programming sequence, shifting from using data structures to building them. Students implement linked lists and binary trees, write recursive algorithms, and design class hierarchies with inheritance and interfaces — the material that used to be the back half of CSE 143.
Fennie is independent and not affiliated with University of Washington. This is an unofficial study guide.
Build my CSE 123 study planWhat makes it hard
Recursion and linked-node manipulation are the two walls almost everyone hits. Drawing pictures of references and tracing recursive calls by hand is non-negotiable; students who try to pattern-match code without understanding the call stack tend to fall apart on tree problems.
What you'll cover
- • Recursion and recursive backtracking
- • Linked lists and node manipulation
- • Binary trees and binary search trees
- • Inheritance and interfaces
- • Object-oriented design
- • Comparable and sorting
The CSE 123 study guide
How to study for UW CSE 123, step by step.
- 1
Draw every linked-node problem before coding it
Boxes and arrows on paper, every time. CSE 123 students who skip the picture and pattern-match code are the ones who lose nodes and corrupt lists on exams.
- 2
Trace recursion with explicit call-stack diagrams
Write out each call, its parameters, and what it returns, stacked vertically. Do this for ten small problems and the 'leap of faith' stops being scary — you'll see exactly why base cases and recursive cases compose.
- 3
Redo quiz section problems from a blank page
A few days after each section, rework the problems without notes. The gap between following a TA's solution and producing your own is exactly the gap exams expose.
- 4
Make tree traversals automatic before the final
Pre-order, in-order, post-order, and BST operations should cost you zero thought by week eight. Short daily reps free your working memory for the genuinely hard exam problems.
- 5
Have Fennie spread the practice across the quarter
Upload your CSE 123 materials and Fennie schedules recursion and tree practice week by week in a Daily Plan paced to your exam dates, generating quizzes from the actual course content. Free to start.
Start my CSE 123 plan free
How Fennie helps with CSE 123
Daily Plans spread CSE 123's recursion and tree units across the quarter so you're practicing node problems weekly, not discovering them at the final. Use chat to trace a recursive call or debug your mental model of references, and drill flashcards on inheritance rules and tree traversals.
FAQ
Is CSE 123 hard?
It's the hardest of the 12X sequence — recursion and linked structures are a real conceptual jump. Students who practice tracing code by hand handle it much better than those who only read solutions.
Is CSE 123 the same as the old CSE 143?
Roughly the second half of it. CSE 122 and 123 together cover what CSE 143 did, with 123 focused on recursion, linked structures, trees, and object-oriented design.
Do I need CSE 123 to apply to the UW CS major?
The 12X sequence (or equivalent placement) is the standard pathway toward CSE 311 and 332 and the major requirements. Check the Allen School's current admission requirements, as they evolve.
Pass CSE 123 with a plan, not a cram
Upload your CSE 123 materials and Fennie generates a Daily Plan paced to your deadline — plus chat, flashcards, and quizzes built from the actual course content.
Get started freeMore UW courses
CSE 121 — Introduction to Computer Programming I
CSE 121 is UW's no-experience-required intro to programming in Java, the first course in the CSE 12X sequence that replaced the old CSE 142/143 in 2022. It's designed for students who have never written code, covering variables, control flow, methods, and arrays through weekly programming assignments.
CSE 122 — Introduction to Computer Programming II
CSE 122 is the second course in UW's intro programming sequence, and the usual starting point for students with AP CS A credit or prior coding experience. It covers data structures from the client perspective — lists, sets, maps, stacks, queues — plus file processing and reasoning about code complexity.
CSE 311 — Foundations of Computing I
CSE 311 is UW's discrete math and theory course — propositional logic, proofs, set theory, induction, regular expressions, and finite automata. It's the first course in the major where the work is writing proofs instead of writing programs, and it underpins everything from CSE 312 to algorithms.
CSE 332 — Data Structures and Parallelism
CSE 332 is the Allen School's core data structures and algorithms course: asymptotic analysis, balanced trees, hashing, sorting, graph algorithms, and — distinctively — parallelism and concurrency with the ForkJoin framework. It's a gateway to most upper-division CSE courses.