Departmental Honors Requirements


Graduating with honors requires a CS GPA ≥ 3.5, and an overall GPA ≥ 3.25. However, we encourage you to apply for honors if you have taken (or are currently taking) CMSC 216 and 250, and have a CS GPA ≥ 3.3 and an overall GPA ≥ 3.2. Additionally, we encourage all Banneker/Key scholars to apply at any time.

Your CS GPA is computed of only major courses (e.g., 131, 132, 216, 250), not special or non-major CMSC courses (100, 106, 198, 298).

You may remain in the honors program with satisfactory progress towards the honors program milestones below and maintenance of this GPA. Satisfactory progress involves at least one honors-relevant activity in a calendar year.


Students in the honors program are strongly encouraged to take 396H and are required to take a graduate course (or, barring that, a 300- or 400-level H-version or honors option course). These requirements are described below:

  • 396H: This is an overview of research in computer science with small projects, paper readings, and guest lectures by faculty, graduate students, and honors students. We strongly recommend this course, as it will help introduce you to what research is, how to do it, and what kinds of research is being done in our department. (Typically offered every semester.)
  • One of the following:
    • (Preferred Option) A graduate "PhD. Qualifying" course, typically numbered 6xx or 7xx, but some 8xx courses count. Qualifying courses are typically more challenging and structured graduate courses. 800-level qualifying courses are listed in the graduate list of special topics courses. Graduate courses may have undergraduate prerequisites; contact the instructor before registering to confirm your preparation.
    • Honors option versions of 400-level courses. Honors option courses are an extension to an existing course, in which a student may work with the professor to augment the course content in a one-on-one setting. There is a procedure, consisting of a proposal that must be approved by the honors college, submitted by the tenth day of class.
    • Junior-level 330H or 351H courses in programming languages or algorithms. These are rarely offered. For departmental honors by university policy, 100- and 200-level honors courses do not count.
    • Senior-level 4xxH courses in specific areas. The department may offer "H-versions" of popular 400-level courses. Features of a 400-level H-version. Eligibility for an H-version is based on participation in the honors program, however, any student with a 3.5 CS major GPA and 3.5 overall GPA may also enroll.


The bulk of the CS Honors requirement is performing independent research. This can take place in multiple ways, including paid summer internships and for research credit (CMSC 499). Earning credit to perform research is especially beneficial to students who have otherwise packed schedules and cannot perform research in addition to a full courseload. To this end, the department offers CMSC 499, an independent research course with your faculty mentor during which you will complete your honors thesis. That said, CMSC 499 credit is not strictly required.

Honors Thesis

Your honors thesis is a document culminating your research. Although there can certainly be collaborative aspects to the work (little research is performed totally independently nowadays), it should largely reflect your individual contributions. It should be formatted using the ACM SIG style, and should fit in 5 to 12 pages.

The honors thesis should include:

  • A statement of the problem being solved and its importance.
  • A description of the faults of prior approaches.
  • A description of the insight that solves the problem in a new way or shows that the problem can be solved.
  • Sufficient technical contribution to warrant an honors thesis.
  • A conclusion section that restates the main contributions of the thesis and presents future work.
  • At least five academic references.

Individual Effort

A student's honors thesis must be the student's own work, not a collaborative group project with other students. Only collaborators who act in an advisory capacity (providing edits, feedback, direction, suggestions, etc.) may be listed as coauthors.

The key ideas in the honors thesis should be largely the student's own. The problem may be specified by an advisor, and the methods to try may be chosen by others. However, the bulk of the intellectual work to evaluate the ideas should be the student's own.

Group project reports may not serve as honors theses. (Gemstone, QUEST, DCC, and other University programs create group projects.) However, a student may write up an individual contribution to a larger project, if that component is advised by CS faculty.

Group project documents, e.g., multi-author conference papers, are not allowed. Students participating in such a project may write up their contributions as a separate, complete thesis document.

Incomplete documents will be rejected, whether caught by advisors or by the honors chair. For example, clear TODO items such as "TBA", "XXX", "TODO" will be returned.


These requirements represent the path through the honors program that we expect most students to take. It is possible to substitute similar experiences for the explicit milestones described here.

High Honors

High Honors are rarely given; the advisor’s recommendation is necessary but not sufficient, and the honors chairs make the final decision. High honors students have had exemplary grades and have typically done two projects or have had one published in a refereed conference or journal.


Look at previous projects elsewhere on this site, apply, browse the faq.