What 4XX Should I Take?!

Wondering what to take in Spring 2025? The CS Advising Team has put together some pointers and resources to help you pick your CMSC courses.

4xx Course Information

Frequently Asked Questions

Which degree track/specialization am I following?

Some CS major specializations have more strict requirements than others. For example, Data Science will require CMSC320, whereas CMSC320 will be an elective for General track or a Cybersecurity specialization. The degree requirements for each specialization are listed here. Check with your advisor if you’re unsure which upper level courses your specialization requires.

What about prerequisites?

Pay close attention to course descriptions on Testudo for prerequisities, the upper level courses that are required for some upper level CMSC courses. For example, if you want to take CMSC422 Introduction to Machine Learning, be sure that your 4 year plan includes CMSC320 before the semester you plan to take CMSC422.

Which courses will help me meet my “big picture” or long term goals?

You’ll want to choose courses that will challenge you and allow you to explore your specific interests as well as potentially open opportunities when interviewing for internships and jobs.

This is a great conversation to have with your advisor! Let them know what your interests are and what you want to explore. They can help you find courses that would help prepare you.

https://www.cs.umd.edu/researcharea is a good place to take a look at different areas of study in the department, and to see which faculty members are focused on which research areas.

I’m not sure what specific area of CS I like yet.

That’s ok! Think back to what CMSC lower level courses you liked. If you liked CMSC216, you might like CMSC41x area courses, for example. Love CMSC330? Try CMSC43x courses. Do you like the theory side of things, like CMSC250 / CMSC351? Try CMSC45x theory area courses. The reality is that other factors, such as your schedule, your registration date, prereqs., and course availability will impact what courses you take, too. Run your ideas by your advisor if you get stuck.

Which courses will help strengthen areas I may not be very strong in?

It’s important to choose upper level courses where you are most interested and where you feel you can be successful. Also keep in mind some courses that may help close the gaps. For example, you may feel confident in your resume and technical skills, but how about the soft skills involved in interviewing? Consider CMSC389O: The Coding Interview.

Which faculty best match my learning style?

Try to choose your section based not only on time the class is offered, but also by instructor. Think about how you learn best and try to choose faculty that will be a good fit for you. If you’re unfamiliar with the professor, refer to the Class Webpages to see syllabi and instructor contact information.

How do I make sure my workload isn’t too heavy?

The main thing to do is balance Theory with Programming courses. Be careful not to overload yourself with all heavy programming courses or all intensive theory/math course work. Aim for as balanced a schedule as possible. Your advisor can help you determine which 4XX courses are group-work heavy, have one semester-long project, are the most rigorous, theoretical, etc.

How much should I rely on classmates’ opinions and advice about classes?

Definitely consult your classmates and ask your upperclassmen peers about their experiences but ideally that won’t be your only source of information! Classmates may be willing to share vital information straight from the student perspective. The CS Piazza page is one place you can connect.

And of course, connect with your advisor!

We are an important resource for you as you pick classes. Don’t hesitate to reach out via email with any questions.

Resources

BS/MS Program: https://undergrad.cs.umd.edu/combined-bsms-program

CMSC499A Information (Undergrad Research for Academic Credit): https://undergrad.cs.umd.edu/research-professorial-faculty-cmsc499a

CS Research Areas and Faculty: https://www.cs.umd.edu/research

CS Class Websites: http://www.cs.umd.edu/class/