UMaine COS 301: Programming Languages

Project/Homework Policies

General policies

  • Due dates: Due dates for all homework assignments and project parts will be listed on the assignments. Due dates for edits/reviews will be announced. All assignments are due at midnight on the due date. Assignments will be turned in using Blackboard.
  • Late policy: Late work will be penalized 10%/day late, including weekend days and holidays. After a week, acceptance will be at my discretion.
  • Plagiarism: The minimum penalty for plagiarism will be a 0 for the assignment. Other penalties, including failing the course or referral to a disciplinary body may be imposed at my discretion.


Answers to questions should be clearly labeled with the question number and must appear in order Make sure that your work is clearly labeled as to which assignment it is, your name, and the date it is submitted, and that if the work is hand-written, it is legible.

Allowable document formats

  • For homework assignments, you may use either PDF or, if no formatting of figures are needed, plain text. No Word, etc., files — convert them to PDF prior to turning them in. If code is part of the assignment, follow the guidelines for code below.
  • Project papers must be submitted in PDF format only. If code is included, follow the guidelines for code.
  • Edited versions of the papers must be in PDF format
  • Code:
    • Comment! (Spelling and grammar are important in comments, too.)
    • Code should be submitted in plain text (i.e., submit the source file(s))
    • Lines should be no longer than 80 characters in whatever you submit
    • If you are turning in multiple source files, submit them as tar or zip archive

Project format

The project consists of several papers about and programming assignments in the language you choose. The format for papers will be discussed in more detail in class and on the Project page. All of the papers will ultimately be sections of a complete project document. The general format of this overall document will be that of research papers in computer science, with the addition of a cover page. Please see the project format checklist for information about what should be included in your papers.

NOTE: You must prepare your papers using LaTeX document preparation system in order to gain familiarity with this important tool for creating scientific papers and other kinds of writing. If you have never used LaTeX before, you will need to install it on your computer; versions are readily available for all three of the major operating systems (Windows, MacOS, and Linux). Although LaTeX is a markup language for documents, there are several free WYSIWYG LaTeX editors available as well, which can be useful for novices. See the LaTeX page for more information.

Specific formatting information:

  • Cover page: Each paper must have a cover page, showing the project part number, date submitted, the paper’s title, your name, and whether the paper is first or second draft.
  • The first page of the overall paper should have the title, the author’s name, and an abstract of 100-200 words. We will discuss the abstract’s contents in class.
  • An annotated bibliography should appear at the end of each paper. An annotated bibliography provides both the standard bibliography reference and a short description of why this reference is useful. You will add to the bibliography for each paper. The bibliography for the final paper will thus be the bibliography for the entire project.
  • The bibliography’s style must be either the IEEE citation style, the American Psychological Association (APA) style, or the natural science style (as defined, e.g., by the BibTeX program’s “natbib” style). A description of the IEEE citation style can be found in the IEEE Citation Reference, and some examples can be found at Monash University and the Accessible Computer Science Research Guide (Dalhousie University Libraries). Documentation of the APA style can be found online, for example, at the APA’s website. Citations will follow the same style as the bibliography.
  • Programs and output written as part of the assignment should be attached as an appendix to the paper; in addition, the source files must be submitted (see the submission guidelines).
  • The papers must have 1″ margins, be written in a Times New Roman (or equivalent) 11 point font, and be 1.5 spaced to allow for comments.
  • Any page counts required do not include the cover page or the bibliography. If a page count is given for a part, your papers should not exceed the page count by more than 1/3 of the upper page limit.


  • We will use peer reviewing for the first draft of your papers, so expect to edit others’ papers during the semester. I or the TA will assign editors for you, and you will likely have different editors for different parts of your project. Your project grade will include a portion for your editing efforts. Two people will edit your papers; thus, expect to edit two others’ papers each time a project part is due.
  • You must be very careful when editing not to inadvertently use something you read later in your own papers! If you find something that you feel is important to use (either directly via a quotation or indirectly as an idea), you may do so, but you must give credit to the original author via a citation.
  • When you receive email with your editing assignment, you should unpack the project part using zip or gunzip+tar (assuming that the paper + program is in an archive). Both programs are available for free on the web for a variety of operating systems.
  • There’s kind of a “Golden Rule” for editing: Edit others’ papers as you would want them to edit yours. Be specific in your criticisms, always be constructive, and do not be insulting — even unintentionally. There are several things you should be looking for in others’ papers:
    • Is the overall organization clear and logical? If not, let the author know why you think that and, ideally, offer suggestions for how to improve it. Does the paper accomplish the goals required of it by the assignment?
    • Does the paper flow well? Are the paragraphs in a good order and with clear transitions between them, either implicitly (i.e., in the structure of the paragraphs themselves) or explicitly (i.e., using transitional words or phrases)? Are there paragraphs out of order? Are there paragraphs that do not contribute to the points the author is trying to make? Are there places where additional paragraphs would help the reader?
    • Are the paragraphs themselves structured well? Is it clear what the topic sentence is? Does every sentence support the topic in some way? Is there a need for additional sentences? Is the flow of ideas within the paragraph clear?
    • Are the sentences well-structured and grammatical? Are there problems such as the ones we went over in class (tense changes, use of second person, dangling modifiers, etc.)? Is every sentence truly a sentence (i.e., no fragments, no run-on “sentences”, etc.)? Are the sentences too informal?
    • Are there spelling errors? Are there word selection errors (e.g., then/than, their/there/they’re, etc.)? Are there word choices ones that are reasonable? if not, can you suggest alternative choices? Are the words too colloquial? Are there too many buzzwords, acronyms, etc.?
  • Review/edit the files electronically. To edit PDFs, you can use tools built in to the Adobe Reader, Apple’s Preview, or a variety of other PDF readers (e.g., Good Reader or Notability on the iPad, etc.).
  • Submit the edited papers using the online portal I will create on Blackboard; we will then email them to the authors (as well as grading your editing job).