Participation

Lectures. Participation in lectures constitutes 2.5% of the grade. You will be recorded as participating in a lecture when you answer at least one of the iClicker poll questions. Your solutions to the iClicker questions are not evaluated and are not part of the grade.

The first five absences from lectures are automatically waived. This is intended to account for illnesses, religious observances, and varsity athletic competitions, along with technical issues with your iClicker app. Please do not request a waiver unless you will be exceeding this limit. To request a lecture attendance waiver, please post in Ed using the Accommodations category and the Lectures subcategory and explain the situation.

Precepts. Participation in precepts constitutes 2.5% of the grade. The first two absences from precepts are automatically waived. This is intended to account for illnesses, religious observances, and varsity athletic competitions. Please do not request a waiver unless you will be exceeding this limit. To request a precept attendance waiver, please post in Ed using the Accommodations category and the Precepts subcategory and explain the situation.

Assignments

Submit your solutions electronically via the TigerFile submission system, using your Princeton NetID and password for authentication. You may resubmit files without penalty up until the submission deadline.

Submitting with a partner.  On assignments that permit working with a partner, you must register your partnership in TigerFile. Either partner may submit files. Both partners receive the same score.

Check all submitted files.  Clicking the Check All Submitted Files button checks the header, compiles your files, runs a battery of unit tests, and reports the results. You may click this button at most 10 times per assignment; if you are working with a partner, this limit applies to the group.

Acknowledgments file. All assignments must include a file named acknowledgments.txt, which includes your acknowledgement of original work (as specified in Rights, Rules, Responsibilities), any citations, along with the names and dates of those who provided help. Submitting the acknowledgments.txt file indicates that you have stopped working on your assignment and your submitted work is ready to be graded. Your assignment will not be graded unless you submit the acknowledgments.txt file.

Late submissions. Assignments are due at 11:59pm ET on Monday evenings. If any part of an assignment is submitted late, the entire assignment will be marked late. We consider your assignment submitted as soon as you submit the acknowledgments.txt file.

Penalties for late submissions. Late assignments incur a penalty of 10% of the total points per day (or partial day) late. Penalties for the first four late days are automatically waived. Please manage your time carefully to ensure that travel, religious holidays, conflicting deadlines, or other factors do not result in late submissions exceeding those. Please do not request an assignment extension unless you will be exceeding this limit.

Additional extensions are only considered with recommendation from a Dean and granted under special circumstances. Requests made at the last minute are less likely to be approved, and extensions for the final assignment are particularly rare due to grading constraints. For such a request, please have your Dean or Assistant Dean for Studies email Professor Marcel Dall'Agnol with the following information:

  1. Number of additional late days requested.
  2. Justification for the extension, including why the four automatic late days were insufficient.

If you are working with a partner, any late penalties apply to the group. The number of free late days a group can use is the minimum of the number of free late days each member has remaining.

Regrades. If you believe that a mistake was made in the grading of your work, please use the regrade request features in codePost. Regrade requests must be submitted within a week of your work being returned.

Penalties for submission mistakes. If you make a submission mistake, you can request a regrade with a penalty of 10%. Examples of submission mistakes include: submitting an incorrect version of a file forgetting to submit the readme.txt file, and forgetting to submit the acknowledgments.txt file.

Extra credit.  Some assignments have (optional) parts designated as extra credit. The policies for submission and collaboration are the same as for the required parts of the assignment.

Classwide competitions.  On some assignments, you may (optionally) submit your code to a classwide competition. We will time your programs and display the results in a public leaderboard. To enter the competition, submit your code along with a file nickname.txt. Whatever you put in nickname.txt will be used as your alias in the leaderboard. There is no official reward for doing well in the competition.

Coursera policy.  You are not permitted to use the Coursera autograders from Algorithms, Part I or II.

Grading policy.  Your code will be graded for correctness, efficiency, clarity, and style. It is your responsibility to describe how you have completed the assignment, not ours to glean this information from your code. Partial credit is available for a partially complete assignment (provided that the code compiles); just explain the situation in your readme.txt file. Graded work will be returned electronically through codePost.

Collaboration policy.  This course permits and encourages many forms of collaboration, including from course staff, classmates, and lab TAs. However, you must be careful to collaborate only as authorized below. Here is an executive summary.

activity your partner course staff 226 alums AI chatbots class-mates other people
discuss concepts with ...
acknowledge
collaboration with ...
expose solutions to ... no no
view solutions from ... no no no no no
plagiarize code from ... no no no no no no

Your solutions.  You must individually compose all of your solutions. The term solutions refers to any of the products created when completing a programming assignment, such as source code (including comments) and the readme.txt file. It includes both finished and unfinished products, regardless of correctness or completeness.

These rules continue to apply even after the semester is over.

Collaboration with course staff.  You are welcome to discuss your solutions with course staff members (instructor and preceptors) in office hours or via a private post in the course discussion forum. Do not post or email us your code; instead, submit it via TigerFile.

Collaboration with classmates.  We encourage you to discuss common concerns with classmates either privately via personal interactions or publicly in the course discussion forum. These discussions must be kept at a general level, without exposing your solutions.
For example, you may discuss: But, you may not:
  • How to use a feature in IntelliJ or bash. For example, “How do I increase the memory available to Java?”
  • The definition of a piece of Java syntax. For example, “How do I implement the Iterable interface?”
  • Clarifications for the lectures, textbook, old exam questions, or assignment specifications.
  • Look at another classmate’s solutions.
  • Show another classmate your solutions.
  • Lead a classmate step-by-step through any part of the assignment
  • Allow a classmate to lead you step-by-step through any part of the assignment.

Collaboration with COS 226 graduates (including lab TAs and peer tutors).  You are permitted to show your solutions to anyone who has successfully completed COS 226. So, for example, you may receive help from lab TAs in debugging your code. Of course, you must still individually compose your solutions. So, for example, you may not allow another individual to write, type, or dictate code; lead you step-by-step through any part of the assignment; or communicate solutions (including their solutions from a previous offering). Other individuals may help you under these same conditions, provided they are not taking COS 226 now and never will in the future.

Collaboration with an AI chatbot.  You may not use AI composition software (such as ChatGPT or GitHub Copilot) to create or debug code.

Collaboration with a partner.  On those programming assignments designated as partner, the collaboration policy is relaxed to permit working with a classmate, subject to the following rules:

Both partners are responsible for understanding all parts of the submitted assignment and receive the same grade. You should discuss with your partner early on whether you expect to use late days (or attempt the extra credit).

Collaboration with yourself.  If you took COS 226 (or Algorithms, Part I or II from Coursera) during a previous offering, you may refer to your old programming assignment only if you wrote all of the code on your own in the previous offering (and you are not working with a partner in this offering). Though, in our experience, students who re-do all of the assignments from scratch are much more likely to succeed in the course, so this is what we strongly recommend.

Collaboration acknowledgement.  You must acknowledge all collaboration in the acknowledgments.txt file for that week’s assignment.

Outside sources and citations.  Copying or adapting code that is not yours is permitted only if it comes from the course materials (i.e., the course textbook, companion booksite, programming assignment specifications, checklists, lecture slides, lecture videos, and precepts). You must cite any code that you copy or adapt; the only exception to this rule is for code that appears in the assignment specification or checklist, which you may use without citation.

Plagiarism.  Programming is a creative work and the academic regulations that apply to plagiarizing prose also apply to plagiarizing code. Rights, Rules, and Responsibilities defines plagiarism as “the use of any outside source without proper acknowledgment.” It ranges from “verbatim copying” (e.g., cutting-and-pasting code) to “thorough paraphrasing” (e.g., changing variable names or rearranging code). We use sophisticated tools to flag similar programs and our teaching staff takes the issue very seriously.

Regret clause.  If you neglect to cite a source on a programming assignment in this course, you may resubmit your acknowledgments.txt file, adding proper acknowledgments, at any time before Dean's Date. You must also notify the course instructor. If the source is unauthorized, you will likely receive a zero (0) on the assignment (for violating course policies). However, with proper acknowledgments, this would not be plagiarism, so we would not initiate a Committee on Discipline (CoD) case. Once a case has been submitted to the CoD, the matter is outside of our control and and the regret clause cannot be invoked.

Penalties.  We refer alleged academic violations (including plagiarism and abetting plagiarism) to the Faculty–Student Committee on Discipline. If found responsible, the typical penalty is no credit for the work in question plus whatever penalty that the CoD imposes. (The typical CoD penalty for plagiarism is suspension from the University for one year.) Violators of course policies that are not adjudicated by the CoD will receive penalties based on the severity of the violation, ranging from a warning (for violations that are both unintentional and innocuous) to an F in the course (for violations that are both willful and serious).

Quizzes

Late submissions. Late quizzes are not accepted without an extension. To request an extension, post in Ed using the Accommodations category and Quizzes subcategory and explain the situation.

Grading policy. You may attempt each question in each quiz as many times as you like, but cannot submit immediately after an attempt (the exact period depends on the question, but is usually 2 or 15 minutes). We will record your best score for each question. On each attempt, you will receive a randomly assigned variant of the same question. After each attempt, you will receive the correct answer and an explanation. We drop your 6 lowest questions to compute your final quiz grade.

Collaboration policy. You must complete each question variant (that is randomly assigned to you) entirely on your own, with no outside help (other than the course materials). However, you are permitted to discuss a question variant after you have submitted it (and you are permitted to attempt a new question variant). If you wish discuss a question variant on Ed Discussion, post the entire question, answer, and explanation, including the question and variant IDs (the numbers after instance_question/ and variant_id= in your browser's address bar), which the course staff can use to uniquely identify it.