One of the primary goals of CS Honors is to give students the opportunity to experience computer science research first-hand. This is why one of the requirements is CMSC 499, independent study. This page describes what this is, how to go about finding an advisor, and how CS Honors helps you achieve this.
If you have any questions or concerns, don't hesitate to write to the CS Honors Chair.
Up for the challenge? Don't wait: Apply Now
Research is, by definition, trying to do something no one else has done before. That feeling that you are forging new ground can be uniquely rewarding for many people. Moreover, careers in research provide a level of intellectual freedom that is often unparalleled in other lines of work. To find out if research is a good fit for you, the best thing to do is to simply try it out for yourself. CS Honors is designed to give its students the opportunity to try research. For some, this has led to getting PhDs and pursuing jobs in academia; for others, it gives them a great open-ended problem to talk about at job interviews!
First and foremost, what is CS research? Many beginning computer scientists believe that CS research is strictly "proving things about algorithms," but CS research is far broader! Today, CS research spans topics such as fighting online censorship, creating new computing devices to promote health, studying online social networks, and much, much more. Also, CS research has grown to become extremely interdisciplinary; many of UMD CS's professors work in areas that span economics, biology, music, language, sociology, cooking, and more.
Learn more about some of the different areas of CS research.
One of the requirements of CS Honors is CMSC 396H, a one-credit seminar course designed to teach CS Honors students what CS research is, what kind of research the UMD CS faculty do, and some basic skills that will be necessary to start performing research.
One of the greatest aspects of CS research — that it has a virtually all-encompassing scope — is also one of its most challenging to a young researcher; how do you pick from such a wide assortment of topics? People come across their areas of research in many different ways, but there are a few concrete steps that you can take:
As one of the premiere computer science research institutes, UMD CS hosts a slew of invited and internal speakers on a wide range of topics. Also, there are many weekly reading groups where researchers from various fields discuss papers, host guest speakers, and so on. These are both fantastic ways to learn about what's going on in CS, what areas of research you might be interested in, and whom to approach for research opportunities. The CS department maintains a site, talks.cs.umd.edu, with upcoming talks in CS, broken down by research group.
Once you have figured out the area, it's time to figure out whom you want to work with and approach them. This is a very organic process, and requires reaching out to professors to see what research opportunities they have. Here are a few useful steps:
The link below lists all of the UMD CS faculty and their primary areas of research. It also has links to their websites, which are usually reasonably up-to-date with their publications. (If their list of publications seems out of date, then you can always look them up by name on Google scholar.)
The vast majority of professors will not require undergraduates to come up with their own research problem. Coming up with a good research problem (especially one that has a decent chance of being published) can be very difficult and require extensive experience in a given area of research — experience that a fresh new researcher is not expected to have. Asking really good research questions is arguably the last thing a PhD student learns, not the first! That said, if you have a good research problem (or just something you're passionate about), don't be shy; tell a professor about it and get feedback (and hopefully a collaborator).
Rather than wait until you have a well-formed research problem in mind, approach the professor and see if they have some problems they already have in mind for an undergraduate research.
One of the requirements of the CS Honors program is taking graduate-level classes (600-, 700-, and some 800-level classes). In addition to learning about a given topic in greater depth than an undergraduate-level class — and getting more one-on-one interaction with research-active faculty — these classes often give experience in formulating research problems.
CMSC 499 (independent study) can be a remarkably rewarding experience. It is a one-on-one "class" in which an undergraduate student performs research with a faculty advisor (and sometimes other collaborators, as well). To take the class, you need permission from the professor you'll be working with (obviously), and the undergraduate office. Part of this process involves coming up with a research plan — think of it like a personalized syllabus of what it is you will be doing during the semester. Here's what it should contain, and why:
CS Honors has several meetups each semester, and a Slack group for discussing all matters. As a CS Honors student, get involved by sharing your research experiences, your findings, and tips to your fellow students about how to have an effective start to your research career. To get a sense of the kind of research that previous CS Honors students have done, take a look at their honors theses.