Carnegie Mellon University

Term Paper Requirement

Students in the MSE Online program are required to demonstrate an aptitude for reflective practice. By completing a research thesis or term paper, you will demonstrate your depth of knowledge in one of six key practice areas. To complete the requirement, students have two options: (A) complete the full semester course 17-679 Thesis Writing for Industrial Software Research; or (B) work with an advisor to identify a research topic, conduct supervised research, and write a thesis. Students who complete Option A will write their term paper document within the structure of the course. Students who complete Option B will typically enroll in one or more full semester independent study courses (e.g., 17-697 Directed Study). Ideally, students should complete all core degree requirements before declaring either option. Please consult with the Graduate Student Advisor to determine the best time to complete your thesis requirement.  

Overview of Thesis Milestones

Deadline Student Action
Before or after submitting the proposal Declare one’s intent to complete Option A or Option B. If choosing Option B, document the commitment of a thesis advisor to supervise the research by filling out an independent study proposal and collecting signatures.
Within the final two full academic semesters

Enroll in 17-679 Thesis Writing for Software Leaders (Option A) or 17-697 Directed Study (Option B)

10 days prior to final semester grading deadline * Submit the final thesis document. For students choosing Option B, submit their thesis advisor signature page.

* Students who fail to meet the above deadlines risk delaying their graduation by an additional semester. The final term paper document and signature page must be received 10 days prior to the final semester grading deadline.

Option A: Research Writing Course

Students who choose Option A will enroll in 17-679 Thesis Writing for Industrial Software Research within the last two full academic semesters of their program. The writing course provides students with a structured, discussion-oriented learning environment across a rigorous 14-week period. The course combines faculty guidance and peer-grading with writing deadlines that advance the student toward completing the thesis or term paper document. In this course, the document typically consists of a survey of a technical area, such as a process, practices or tools. Past examples include: a survey of CoPilot and the underlying technology enabling code generation with large language models; a survey of machine learning to predict project estimation; and a survey of challenges and opportunities to adopting blockchain in public voting and healthcare systems.

Option B: Supervised Research

Students who choose Option B are encouraged to begin thinking early on about topics of interest and to identify a faculty advisor whose interests overlap with these topics. Faculty advisors for the supervised research option may be full time tenure-track or teaching-track CMU faculty, Special Faculty, Systems Scientists, or technical staff members at the Software Engineering Institute. Supervised research generally requires more than one full academic semester and up to three semesters to complete. Working with their supervisor, students will conduct a literature review, collect and analyze data, and reach conclusions that follow directly from their analysis. Once completed, the result may be publishable in a peer-reviewed scientific conference proceeding or journal. 

Supervised research can cover a range of research methods and the faculty advisor will work with the student to choose the most appropriate method. Example methods include:

  • Case Study — a situated description of an industrial or field setting. Students reflect on an industry or field setting. Students reflect on an industry experience motivated by their coursework and by the software engineering literature. This could be a past or ongoing experience.
  • Experiment — the study of an activity in a controlled setting with falsifiable hypotheses and statistics to test these hypotheses. This includes human subject experiments and computer experiments, including computer simulations. 
  • Survey — a planned data collection using survey questions. This includes surveys of human subjects, or surveys of programs or processes. The data is frequently analyzed using statistics and situated and interpreted in the context of the software engineering literature.
  • Technical Solution — a new algorithm, architecture, or process that is designed to address a well-documented, well-motivated problem. 

Thesis Document

The thesis document or term paper should generally include the following sections. Whether students choose Option A or Option B, the faculty advisor will work with the student to scope the document so that the work is manageable within the timeline provided.

  • Problem Statement —  a concise description of the problem and motivation for why the problem is important
  • Background — a detailed technical description of the history and state of the art in software engineering related to the problem and approach. The background section is typically the result of a preliminary literature review.
  • Approach — a draft description of the proposed research approach or study design.
  • Evaluation and Results — a description of the observed outcomes, including the evaluation
  • Discussion — the interpretation of the outcomes, situated in the author’s viewpoint
  • Conclusion — a summary of the term paper work, and any future work


Students should decide if they want their thesis document to be published. The paper may be published free-of-charge by the program on the program website; published free-of-charge on KiltHub, a comprehensive institutional repository maintained by CMU Libraries; and/or indexed by a publishing service for a fee (e.g., ProQuest via CMU Libraries).  

There is no requirement to publish the term paper. However, publication enables students to cite the paper in other public documents, and to share public links to the term paper document. In addition, they may consider submitting their paper to a software engineering conference for external peer review and subsequent publication (e.g., by the ACM or IEEE). Students who are considering publication in any format and who are using corporate information in their paper should review their corporate policies and seek necessary approvals prior to dissemination of that information.