UW 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.
Fennie is independent and not affiliated with University of Washington. This is an unofficial study guide.
Build my CSE 121 study planWhat makes it hard
The material is genuinely introductory, but UW's quarter system gives you only ten weeks, and students with zero programming background can fall behind by week three if they treat it like a reading course. The resubmission-based grading rewards consistent weekly effort over cramming, which trips up students used to last-minute pushes.
What you'll cover
- • Java syntax and program structure
- • Variables, expressions, and data types
- • Conditionals and loops
- • Methods and parameters
- • Arrays
- • Basic debugging and code quality
The CSE 121 study guide
How to study for UW CSE 121, step by step.
- 1
Start every assignment the day it opens
CSE 121's ten-week quarter has no slack — students who fall behind by week three rarely recover. Opening the assignment early surfaces confusion while there's still time to ask about it.
- 2
Use the resubmission cycle on purpose
Submit a working-but-imperfect version early, read the grader feedback carefully, and resubmit. The grading system rewards iteration, so treat feedback as part of the assignment, not a verdict.
- 3
Show up to quiz section with questions written down
Quiz sections are where TAs work problems at exam difficulty. Arrive with the two or three things from lecture that didn't click, and leave with them resolved.
- 4
Trace code by hand before every assessment
Write out what a loop or method call does on paper, line by line, without running it. Assessments test whether you can predict behavior, not just produce it.
- 5
Put the quarter on rails with Fennie
Upload your CSE 121 syllabus and assignment schedule to Fennie and it builds a Daily Plan paced to each deadline, with flashcards and quizzes generated from your actual course materials. Free to start.
Start my CSE 121 plan free
How Fennie helps with CSE 121
Upload the CSE 121 syllabus and Fennie's Daily Plans turn the quarter into a day-by-day schedule, so each programming assignment gets started early instead of the night before. Chat through concepts like loop logic or parameter passing when lecture moves too fast, and quiz yourself on Java fundamentals before each assessment.
FAQ
Is CSE 121 hard?
Not if you keep pace. It's built for students with no programming experience, but the ten-week quarter punishes procrastination — students who start assignments early and resubmit for feedback do well.
What happened to CSE 142 at UW?
UW retired CSE 142 and 143 in 2022 and replaced them with CSE 121, 122, and 123. CSE 121 covers roughly the first part of the old CSE 142; students with prior experience often start at CSE 122.
Should I take CSE 121 or CSE 122?
Take CSE 121 if you've never programmed. If you have AP CS A credit or solid prior experience, UW's self-placement guidance generally points you to CSE 122.
Pass CSE 121 with a plan, not a cram
Upload your CSE 121 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 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 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.
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.