Research project

This project is a major component of this course. It is divided into a number of deliverables throughout the semester. Ultimately, you will produce a written paper in LaTeX, software, and a final presentation to be given at the end of the semester. The minimum length for the final paper is 3750 words, which is 15 pages at 250 words per page. This count does not include references. You will be evaluated using the same rubric which is used for your senior independent study: click here for rubric.

Deliverables & Grading

See course website for due date of deliverables. The checkpoint assignments are designed to keep you on track to successfully complete your final project, and allows the opportunity to check-in on your progress and offer guidance. Each of these will be graded and you will receive full credit for each provided that you meet the deadline and your submission is of reasonable quality. The overall grade will be determined as follows.

Deliverable Percentage
Project Topic and Software Outline 5%
Annotated Bibliography 5%
First Draft 5%
Peer Review 5%
Intermediate Code 5%
Draft of Presentation 5%
Final Presentation, Research Paper, & Software 70%

FAQ

Project Topic and Software Outline

You will submit an abstract of one full page describing your project topic, focusing on the significance of work that has already been done in that area, and the goals of your work (including the software that you will create). It must include at least 3 references (journal papers, conference papers, textbooks, etc.) that you will use as a starting point. A good topic is specific enough that you do not get lost in possibilities as you are working, but broad enough that you have room for experimentation. Talking with me and/or the TAs about your topic will help you find a topic of the appropriate scope.

The software outline is a hand-drawn prototype of your software. It includes 1-2 pieces of paper which illustrate what your software will look like when it is finished. Be specific about how the user interface will appear and behave (buttons, screen, functionality, etc.). Refer to this document in your abstract to describe the functionality/behavior. What is the input? What is the output? If there is no user interface, then provide a logic diagram indicating the high-level steps of how your software will function and how a user can interact with it. The expectation is that you will use this outline to illustrate the high-level details of how your software will appear and function.

You must discuss your project topic and software outline with at least one of the TAs during office hours before submitting. Your abstract will be created using LaTeX, using the following provided template which already has pre-set the expected format (12 pt font; Times New Roman; single spacing; 1 inch margins; references). Print it as a PDF. Staple behind it your 1-2 pages of hand-drawn software prototype.

Annotated Bibliography

Your paper must use academic sources, and so you will need to conduct some library research. You will submit an annotated bibliography with at least 5 references which includes a 1-2 paragraph summary of each reference. These references must be peer reviewed academic publications that are highly relevant to your topic and will inform your writing.

LaTeX provides a way to nicely format citations using what is called BibTeX. To use BibTeX you must place your sources in a file with the extension .bib using the BibTeX format. Many places where you find academic sources will provide the BibTeX for you. For example, in Google Scholar if you click on the quotation marks icon to the left of the “Cited by X” text in the search results, there will be a BibTeX link in the window that pops up.

You will use the provided template for your annotated bibliography. You will want to edit the files annotated_bibiography.tex (which comes from here and bibliography.bib. The file plain-annote.bst is a style file that provides support for an “annote” field in your BibTeX entries where you can write your annotations. See the comments in annotated_bibliography.tex for more information.

Submit your annotated bibliography, constructed using the following provided template files, via Moodle.

First Draft

You will submit a first draft of your paper.

It will contain an outline of the major sections of your paper. Your final paper does not need to follow the exact structure of this outline, but this will give you a framework to begin your writing. To create the outline, you can simply make a document with sections and subsections, and write very brief descriptions of what will be written in the sections. You can have LaTeX produce a table of contents to easily see the whole outline.

In your first draft, you should have some sections completed. In total, it will contain at least 1750 words (7 pages at 250 words per page).

In addition to the other LaTeX examples, here is another document with additional examaples that you might find useful. This document has a citation that is an online reference, monospace font to represent code, and a figure: more_latex_examples.zip

See this writing guide for more about writing in CS, as well as this list of common writing errors.

Submit your first draft, constructed using the following provided template files, via Moodle.

Peer Review

You will perform a peer review of other students’ first draft. The purpose of this review is to give everyone some additional helpful feedback, and also to give you something to which you can compare your own paper.

Each student will be automatically assigned to review ~2 papers via Moodle. A good review includes thoughtful and specific feedback. It is not simply “good job!”. It is a disservice to your peers if you don’t specifically state what is good/clear about the paper and what needs improvement.

Intermediate Code

You will submit a preliminary version of your software. The software does not need to be fully complete, but it should be at a point where it runs in some form.

Draft of Presentation

You will submit a first draft of your presentation, which will contain:

Presentation Video

Your presentation will be 7-8 minutes long and includes a summary of your written paper and a demo of your project. Record your presentation (you can use Teams, for example).

Submit your video via this one drive link. Name your video in the format firstName_lastName.mp4 (or other extension).

Final Presentation, Research Paper, and Software

You will submit

You will be evaluated using the same rubric which is used for your senior independent study: click here for rubric.

Your software will be evaluated using the following rubric: click here for software rubric.

FAQ

How do I come up with an idea?

Below I am including several resources that you might find helpful as you investigate project ideas.

LaTeX

Most computer science academic writing is produced using the LaTeX typesetting system, and using LaTeX is required for this project. The computer science senior IS also requires using LaTeX, so this is good preparation for your IS. There are a number of ways to install LaTeX. The most popular distributions are MiKTeX on Windows, MacTeX on macOS, and TeX Live on Linux (which is very likely installable through the package manager of your Linux distribution). There are a huge number of tutorials on how to use LaTeX, such as those on Overleaf. Overleaf is a (sometimes paid) online LaTeX compiler which does not have as many free capabilities as the LaTeX installations.

How do I cite things?

Most databases will have an option to ‘export citation to bibtex’ or ‘export to .bib’. To provide an example, see the button which says “Export Citation” on the following link from the ACM Digital Library where the algorithms book can be found. The entire text appears as follows:

@book{10.5555/1614191,
author = {Cormen, Thomas H. and Leiserson, Charles E. and Rivest, Ronald L. and Stein, Clifford},
title = {Introduction to Algorithms, Third Edition},
year = {2009},
isbn = {0262033844},
publisher = {The MIT Press},
edition = {3rd},
abstract = {If you had to buy just one text on algorithms, Introduction to Algorithms is a magnificent choice. The book begins by considering the mathematical foundations of the analysis of algorithms and maintains this mathematical rigor throughout the work. The tools developed in these opening sections are then applied to sorting, data structures, graphs, and a variety of selected algorithms including computational geometry, string algorithms, parallel models of computation, fast Fourier transforms (FFTs), and more. This book's strength lies in its encyclopedic range, clear exposition, and powerful analysis. Pseudo-code explanation of the algorithms coupled with proof of their accuracy makes this book is a great resource on the basic tools used to analyze the performance of algorithms.}
}

This entire text is copied into your .bib file. It labels the citation as a book with the correct author, title, year, publisher, etc. Note that the first item which is automatically generated for you (in this case, based on a unique identifier known as a DOI) is the text 10.5555/1614191. You can make this part anything you want – it is strictly used as a variable name so that you can refer to it in your LaTeX document. You can cite this source in your .tex file with the following LaTeX code:

Here is a sentence~\cite{10.5555/1614191}.