Skip to main content
UCLA
Computer Science
4 credits

UCLA CS 180: Introduction to Algorithms and Complexity

CS 180 is UCLA's algorithms course: graph algorithms, greedy methods, divide and conquer, dynamic programming, network flow, and NP-completeness. It's the theory core of the upper division and the course most directly mirrored in technical interviews.

Fennie is independent and not affiliated with UCLA. This is an unofficial study guide.

Build my CS 180 study plan

What makes it hard

180 demands algorithm design plus correctness proofs and runtime analysis — partial understanding produces zero-credit attempts, and the dynamic-programming and reduction questions are the classic separators. The ten-week pace compresses notoriously hard material, so the gap between following lecture and inventing solutions on an exam closes fast.

What you'll cover

  • Graph algorithms and traversals
  • Greedy algorithms
  • Divide and conquer and recurrences
  • Dynamic programming
  • Network flow
  • NP-completeness and reductions

The CS 180 study guide

How to study for UCLA CS 180, step by step.

  1. 1

    Refresh proof and graph basics before week one

    180 assumes you can write induction and exchange arguments and reason about graphs immediately. On a ten-week quarter there's no warm-up period — arrive ready or spend midterm one catching up.

  2. 2

    Attempt every problem solo before collaborating

    The learning is in the struggle before the discussion. Give each homework problem a real solo attempt first; students who skip straight to group solutions consistently underperform on exams.

  3. 3

    Treat dynamic programming as state, recurrence, base case

    DP decides CS 180 grades. For every problem, write the subproblem definition explicitly before the recurrence — naming the state precisely is the hard part, and exams reward it.

  4. 4

    Rehearse the standard NP reductions

    Internalize the direction of a reduction and drill the canonical ones from lecture. Exam reductions are variations on patterns you can train deliberately rather than invent cold.

  5. 5

    Build solving-under-pressure with Fennie

    Upload the CS 180 syllabus and Fennie's Daily Plans schedule steady problem and proof practice paced to the quarter's midterms, generating fresh DP and reduction problems from your actual course materials when the sets run out. Free to start.

    Start my CS 180 plan free

How Fennie helps with CS 180

Daily Plans pace CS 180 with steady problem volume across the ten-week quarter, because algorithm design is a trained skill and cramming theory fails. Use Fennie's chat to pressure-test your proofs — explain why your greedy argument holds and let the gaps surface — and generate fresh DP and reduction practice when the problem sets run dry.

FAQ

Is CS 180 hard at UCLA?

It's one of the harder required CS courses because it fuses proof-writing with algorithm invention on a compressed quarter timeline. Students solid in discrete math and graphs adapt within weeks; rusty proof skills make the fast start rough.

What's the hardest part of CS 180?

Most students point to dynamic programming and NP-completeness reductions. Both are trainable: DP rewards defining the subproblem explicitly before anything else, and reductions follow patterns that practice makes recognizable.

How do I prepare for CS 180?

Be honest about your proof fluency and graph-algorithm recall before the quarter — 180 leans on both from problem one. Working a few induction and graph proofs beforehand removes most of the early shock on the ten-week schedule.

Pass CS 180 with a plan, not a cram

Upload your CS 180 materials and Fennie generates a Daily Plan paced to your deadline — plus chat, flashcards, and quizzes built from the actual course content.

Get started free

More UCLA courses