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.

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. The overall grade will be determined as follows.

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

For your reference, you may download here examples of previously completed deliverables. This includes the project topic (notably, the software outline is missing), annotated bibliographies, first drafts, final presentation, and final paper. Many thanks to the students of previous CS 200 classes for allowing their good work to be showcased here.

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.

Example: See previously submitted project topics. Notably, the software outline is missing from most of these as they were separate attachments.

Grading: It will be evaluated according to the following rubric.

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.

Example: See previously submitted annotated bibliographies.

Grading: It will be evaluated according to the following rubric.

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.

Example: See previously submitted first drafts.

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 and demo 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. You will have a list of features remaining to be complete & a plan for which features will be implemented by the next intermediate code deadline.

Final Presentation, Research Paper, and Software

You will submit

Your presentation will contain:

Grading: Final deliverables will be evaluated according to the following rubric. Note that there is a hard time limit on your presentation (time TBA - depends on the number of students).

Example: See previously submitted final papers and powerpoint presentations.

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.

There is another excellent resources for LaTeX info here.

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}.

Library Resources

Library Resources can be found here.