CMSC 330: Research Assignment
You are to write a paper and give a short presentation on a topic related to programming languages. Below are some suggested areas, but you may propose your own. The paper and presentation will be separately graded.
Regardless of topic, ensure you include code and discuss it.
Possible Topics
a programming language (e.g., C++, Haskell, Rust, Lisp, COBOL, D, Fortran)
a programming language family (e.g., imperative, functional, logic, meta)
a tool leveraged by a language or language family (e.g., cargo, CMake, pip, opam)
a language feature (e.g., objects, pattern matching, metaprogramming)
Paper
You will write a technical paper of between five (5) and eight (8) pages (NOT counting code samples or the bibliography), double spaced, Times (or Times Roman, Times New Roman) 12-point font, and 1-inch margins. It will have a cover page (not counted as one of the pages) containing a title, your name, the date, CMSC 330, and the semester (e.g. Fall 2025), centered on the page.
You should have at least five (5) technical references, at least three of which should be available from the ACM Digital Library (choose Millersville as your institution and use your MU login credentials). You should use the ACM Bibliography format and in-text citations of the form [1], [2, 3], and so forth.
Your paper should include details from the papers as well as an analysis and commentary on those papers. Part of your analysis could include a discussion of the social, legal, and ethical issues that your topic raises. This should be done as a research paper with proper organization and transitions between topics, NOT as a series of sections with one section per paper. (E.g., “The first paper I read…” or “In the first paper…” is NOT acceptable and will result in MAJOR deductions.)
If your topic is a programming language, or a group of programming languages, your paper should include a critical evaluation according to the language evaluation criteria. Additionally, your paper MUST include several code segments along with explanations.
You will be graded on the technical content of your paper as well as on its mechanical details (such as spelling, grammar, organization, use of appropriate headings, clarity, etc.). See the rubric we will use for grading.
Take special care to heed all of the points below, which will be heavily weighted.
Write a paper, NOT an essay. A paper is more formal and focused on facts.
ORGANIZE your paper into numbered sections (e.g., Introduction, Language Features, Evaluation, or Conclusion).
Use figures for code samples of three or more lines. Ensure each figure has a label and brief description (e.g., “Figure 1: Factorial function.”). Reference all figures in your text (e.g., “Figure 1 shows a factorial function written in Rust.”), and include the figure near the reference.
Cite ALL of your references (if you aren’t citing one, it should NOT be a reference).
Cite references in the sentences they are used, NOT always at the end of a parapraph.
Include a DOI link and clearly mention the ACM for every ACM reference.
Avoid excessive use of first-person pronouns (e.g., I, we, my).
Presentation
Your presentation should be approximately nine minutes in length — significantly short or long presentations will result in grade deductions. It should be appropriately supported by the use of presentation media (you MUST use PowerPoint). Your presentation will be graded on its content and effectiveness, including presentation skills. See the rubric we will use for grading.
Deliverables and Timeline
(15 pts) Monday 11/17 (Beginning Week 13): Proposal with Bibliography. You must propose a topic and present a bibliography for your paper and presentation. Your proposal will be a one or two paragraph abstract and your bibliography should be in ACM bibliographic format (see link above). Submit this to the D2L Paper Proposal and Bibliography assignment as a PDF.
(35 pts) Sunday 11/30 (Before Week 15): Presentations. Submit a PowerPoint slide deck (with a “.pptx” extension) to D2L.
(150 pts) Friday 12/05 (End Week 15): Paper. Submit this to D2L as a PDF.