UMD Computer Science Four-Year Plan: The Complete Course Roadmap

Computer Science at UMD is one of the most competitive and most carefully sequenced majors on campus. Prerequisites chain tightly from CMSC 131 all the way to CMSC 412, upper-division seats fill within hours of registration opening, and a single deferred prerequisite can cascade into a semester-long delay on courses you need. Students who arrive with a clear four-year roadmap consistently navigate this better than students who plan one semester at a time. Here is the sequence that works, with the specific bottlenecks flagged so you can plan around them.

CMSC degree requirements at a glance

Requirements below match Orbit's degree audit data. Confirm every rule with your advisor and the official catalog. Confirm every requirement with your advisor and the official UMD catalog page.

Required Lower Level Courses (Unless Exempt)

A "C-" or better must be earned in all major requirements.

  • MATH 140
  • MATH 141
  • CMSC 131
  • CMSC 132
  • CMSC 216
  • CMSC 250

Additional Required Courses

STAT4XX and MATH/AMSC/STAT XXX must have prerequisite of MATH141 or higher; cannot be cross-listed with CMSC.

  • CMSC 330
  • CMSC 351
  • STAT4XX
  • MATHAMSCSTATXXX

Upper Level Concentration Requirement

Select at least 12 credits of 300-400 level courses from one discipline outside of CMSC.

Students must choose four courses from:

Choose 4 of 6 courses.

  • CMSC 411
  • CMSC 412
  • CMSC 417
  • CMSC 430
  • CMSC 433
  • CMSC 451

Upper Level Elective Course

Upper Level Elective Courses: three credits from CMSC3XX or CMSC4XX excluding CMSC330 and CMSC351

Cybersecurity Specialization

Option to complete one of the specializations.

  • CMSC 414
  • CMSC 456

Select one of the following:

Choose 1 of 7 courses.

  • CMSC 420
  • CMSC 421
  • CMSC 423
  • CMSC 425
  • CMSC 426
  • CMSC 427

Select two of the following:

Choose 1 of 8 courses.

  • CMSC 411
  • CMSC 412
  • CMSC 414
  • CMSC 417
  • CMSC 430
  • CMSC 433

Year 1: Build the foundation (~30 credits)

Your first fall should include CMSC 131 (Introduction to Object-Oriented Programming I), MATH 140 (Calculus I), and ENGL 101 to satisfy the FSAW writing requirement. CMSC 131 is the entry point for the entire CS sequence. Some students arrive with AP Computer Science credit and attempt to place directly into CMSC 132. Unless your AP background is strong in Java and object-oriented design, starting with 131 is the safer call. You can petition to skip it with advisor approval; 132 moves faster than you expect, and 131 is where the foundational habits form.

In the spring, take CMSC 132 (Introduction to Object-Oriented Programming II), MATH 141 (Calculus II), and a Gen Ed course. CMSC 132 is where the workload jumps. The projects are longer and more complex, and students who skated through 131 without fully understanding object-oriented design hit a wall here. Take it seriously even if 131 felt easy. MATH 141 is the prerequisite for MATH 240 (Linear Algebra), which you need in Year 2, so do not defer it. A good Year 1 Gen Ed pairing is PSYC 100 (FSOC) or HIST 156/157 (DSHS), both of which have high availability and satisfy categories you would otherwise need to find later.

Year 2: The prerequisite gauntlet (~31 credits)

Fall of Year 2 is where the CS sequence gets serious. You need CMSC 216 (Introduction to Computer Systems), CMSC 250 (Discrete Structures), and MATH 240 (Linear Algebra). CMSC 216 covers C programming, memory management, and systems-level concepts. CMSC 250 is discrete mathematics (logic, proofs, graph theory, combinatorics) and it is the gateway to almost every course you want to take in Year 3. Both 216 and 250 must be complete before CMSC 330 and 351. Do not defer them hoping for a lighter fall. The sooner they are done, the more upper-division options you have.

Spring of Year 2: take CMSC 330 (Organization of Programming Languages). This is the course where you study functional programming, type systems, interpreters, and language design. It requires 250 and 216. Pair it with either MATH 241 (Calculus III) or STAT 400 (Applied Probability and Statistics I). If you are interested in machine learning, data science, or any quantitative area of CS, take STAT 400. It is more directly applicable than Calc III for most software engineering career paths. Add one additional Gen Ed in spring to stay on track for finishing your 12 categories by senior year.

Year 3: Core upper-division (~31 credits)

Fall of Year 3 centers on CMSC 351 (Algorithms). This is the most failed upper-division course in the CMSC program. It covers dynamic programming, graph algorithms, NP-completeness, and formal algorithm analysis. Students who take it alongside CMSC 411 (Computer Architecture) in the same semester regularly report that the combined workload was a mistake. If you can, take 351 with one lighter course and one moderate-weight elective rather than two demanding CMSC courses simultaneously. CMSC 411 covers processor design, pipelining, and memory hierarchies. Genuinely interesting material, though dense. Splitting heavy courses across semesters is the single most effective adjustment you can make to your Year 3 plan.

Spring of Year 3: CMSC 412 (Operating Systems) is required and demanding. It covers process management, synchronization, file systems, and virtual memory in a project-heavy format. Pair it with CMSC 420 (Data Structures) or CMSC 417 (Networks), depending on your concentration interest. CMSC 420 involves advanced tree structures and spatial data; CMSC 417 covers networking protocols and distributed systems. Both count toward restricted elective requirements. Year 3 is also when competitive internship recruiting peaks. Keep your semester credit load at 15 rather than 17 in fall if you are in active interview season, the opportunity cost of an A over a B+ in two courses is less than a missed internship offer.

Year 4: Restricted electives and capstone (~29 credits)

Your final year is about completing restricted electives from the approved 400-level CMSC list and finishing your capstone requirement. CMSC 435 (Software Engineering) is the most common capstone choice; it is a project-based course that simulates professional software development with a team. Register for it in the spring of Year 3 if possible; seats fill early. Alternative capstone paths include CMSC 436 (Programming Handheld Systems) or research-based senior projects through CMSC 498.

Use Year 4 to finish any Gen Ed categories you have not completed. At this point you should have FSAW, FSAR, DSNL, and several Distributive Studies categories done through your major. The remaining categories (DVCC, DVUP, or SCIS) can fill two elective slots in fall of senior year without disrupting your technical load. Before your final semester, verify your Orbit degree audit against uAchieve. Discrepancies happen, especially around courses that satisfy multiple requirements or transfer credits that were not articulated cleanly. Finding a gap in October of senior year is fixable. Finding it in March is not.

The prerequisite chain you must not break

CMSC 131 → CMSC 132 → (CMSC 216 + CMSC 250) → CMSC 330 → CMSC 351 → CMSC 412. This chain is strict. Every course in it requires the prior one. If you delay CMSC 216 or CMSC 250 by a single semester, CMSC 330 moves to spring of Year 3 instead of spring of Year 2, and the entire upper-division sequence shifts one semester later. That is how a four-year degree becomes a four-and-a-half-year degree. The CMSC department does not offer exceptions to prerequisite requirements except in extraordinary circumstances. Plan the chain first, then fill in everything else around it.

Degree audit preview

Every requirement block for this major, shown as if you're starting fresh with zero credits. Sign in to see your real progress.

Required Lower Level Courses (Unless Exempt)

All required
0 / 6
Complete all 6 of the following:
MATH140
MATH140
Not in plan
-
MATH141
MATH141
Not in plan
-
CMSC131
CMSC131
Not in plan
-
CMSC132
CMSC132
Not in plan
-
CMSC216
CMSC216
Not in plan
-
CMSC250
CMSC250
Not in plan
-
A "C-" or better must be earned in all major requirements.
Much of the knowledge at the early stage of the degree program is cumulative. To ensure that transfer students start with the appropriate courses, the department offers exemption exams for CMSC131, CMSC132, CMSC216 and CMSC250. Students who have had CS courses prior to starting at Maryland are encouraged to schedule and take exemption exams.

Additional Required Courses

All required
0 / 4
Complete all 4 of the following:
CMSC330
CMSC330
Not in plan
-
CMSC351
CMSC351
Not in plan
-
STAT4XX
STAT4XX
Not in plan
-
MATH/AMSC/STATXXX
MATH/AMSC/STATXXX
Not in plan
-
STAT4XX and MATH/AMSC/STAT XXX must have prerequisite of MATH141 or higher; cannot be cross-listed with CMSC.

Upper Level Concentration Requirement

12 cr · 3XX or 4XX · not CMSC

Select at least 12 credits of 300-400 level courses from one discipline outside of CMSC.

0 / 12 cr
0 / 12 credits required
not CMSC3XXor4XX
Need 12 more credits matching these filters
No qualifying courses yet. Courses matching: not CMSC · 3XX · 4XX.

Specializations

Choose 1 of 5 paths

Option to complete one of the specializations.

0 / 7
Complete any one of the paths below.
CMSC414
CMSC414
Not in plan
-
CMSC456
CMSC456
Not in plan
-

Students must choose four courses from:

Choose 4
0 / 4
CMSC411
CMSC411
Not in plan
-
CMSC412
CMSC412
Not in plan
-
CMSC417
CMSC417
Not in plan
-
CMSC430
CMSC430
Not in plan
-
CMSC433
CMSC433
Not in plan
-
CMSC451
CMSC451
Not in plan
-
0 of 4 completed, 0 covered - need 4 more from this list

Upper Level Elective Course

6 cr · 3XX or 4XX · CMSC

Upper Level Elective Courses: three credits from CMSC3XX or CMSC4XX excluding CMSC330 and CMSC351

0 / 6 cr
0 / 6 credits required
CMSC3XXor4XX
Need 6 more credits matching these filters
No qualifying courses yet. Courses matching: CMSC · 3XX · 4XX.

Orbit degree audit

Want to see YOUR degree audit?

Sign in with your UMD email to upload your transcript and see exactly which requirements you've already satisfied.

Sign in to see your degree audit →

Student-built · Not affiliated with any university · Contact