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.