Comp 11 Syllabus

Course Policies and Administration

Table of Contents


The COMP11 Axioms

  1. Start early. Unlike, say, a set of individual math problems, a program has to function as a whole. The more you build, the more carefully you must think about how the various components fit together. If you're rushing, it's far more likely that you'll break something than build something functional.
  2. Think before you code. A program is just a faster and more reliable version of a procedure that can be done with a pencil and paper. If you do not have a clear idea of how you would solve the problem with a pencil and paper, then you are not ready to write code for it.
  3. Write a little, test a little. Finding a bug in 5 lines of code is far easier than finding a bug in 500 lines of code. A good program is written in small, testable increments. You should not write the next section of your program unless you have a clear plan for how to test it.

Contacting Course Staff

Instructor: Mark Sheldon
Email: msheldon@cs.tufts.edu
Zoom: https://tufts.zoom.us/my/mark.sheldon
Office hours: TBA
Instructor: Noah Mendelsohn
Email: noah@cs.tufts.edu
Zoom:
Office hours: TBA

Our teaching fellows are Keisha Mukasa, Rachel Ginsberg, Sook-Hee Evans, Isabella Urdahl, and Sam Berman. We also have an army of undergraduate teaching assistants who will hold remote office hours. Schedules for the undergraduate assistants are posted on the office hours reference page and will be regularly updated on a pinned post on Piazza.

The preferred means of contacting the course staff is via Piazza. General questions about the homework, course policies, C++, or Linux should be posted publicly so that your classmates can benefit from the answers and any resulting discussion. Before posting a question, please check to see whether your question has already been asked! Questions that are personal in nature, or that pertain to specific pieces of code that you have written can be posted privately to the course staff.

TA office hours and Zoom links will be posted in an updated, pinned post on Piazza.

The Piazza course link is available on the course calendar.

Check the forum at least once a day: Important information and announcements will be sent there, including assignment clarifications and schedule changes.

Inclusivity, accessibility, extra help

This course is inclusive of all participants, regardless of previous programming experience or personal identity (gender, race, sexual orientation, etc.). In the classroom and our discussion forums, everyone is expected to treat everyone else with dignity and respect. If you feel unwelcome or mistreated for any reason, please let a member of the teaching staff know so we can work to make things better.

Accommodations for students with disabilities

Tufts University values the diversity of our students, staff, and faculty; recognizing the important contribution each student makes to our unique community. Tufts is committed to providing equal access and support to all qualified students through the provision of reasonable accommodations so that each student may fully participate in the Tufts experience. If you have a disability that requires reasonable accommodations, please contact the StAAR Center (formerly Student Accessibility Services) at StaarCenter@tufts.edu or 617-627-4539 to make an appointment with an accessibility representative to determine appropriate accommodations. Please be aware that accommodations cannot be enacted retroactively; all accomodation notes must be provided to the instructor within one week of the note being written to guarantee consideration.

Academic support at the StAAR Center

The StAAR Center (formerly the Academic Resource Center and Student Accessibility Services) offers a variety of resources to all students (both undergraduate and graduate) in the Schools of Arts and Science, Engineering, the SMFA and Fletcher; services are free to all enrolled students. Students may make an appointment to work on any writing-related project or assignment, attend subject tutoring in a variety of disciplines, or meet with an academic coach to hone fundamental academic skills like time management or overcoming procrastination. Students can make an appointment for any of these services by visiting tutorfinder.studentservices.tufts.edu or by visiting the StAAR Center web site.

Course techware

This course relies on a small number of critical programs and scripts that support the basic routine of completing and submitting labs and homeworks. It is crucial that students arrive at a basic understanding of these technologies in order to complete their work without issues. The technogies used in this course are decribed and explained here in our course technical guide.

Grade breakdown

The final grade in this course will be computed according to the following breakdown:
40% Homework/projects
5% Labs
10% Exam 1
20% Exam 2
25% Exam 3

We do not expect to curve any portion of this grade. We may change the grading formula depending on how the on-line modality is working. We will announce any change before the drop date.

Letter grades: We use the following categories for assigning letter grades:
  * B+ 87–89% C+ 77–79% D+ 67–69%
A  > 93% B  83–86% C  73–76% D  63–66%
A- 90–92% B- 80–82% C- 70–72% D- 60–62%

*Grades of A+ may be awarded based on the overall final grade statistics.

Homework and exam grades will be available via Gradescope. We will sign you up for the course using your Tufts email.

Homework

All homework assignments will go out and are due as described on the course calendar. You will submit your assignments using the submit11 command.

Homework will have written and programming components. Written components will be submitted as plain text or other (as specified by the assignments) files along with your program files.

Programs will be evaluated for functional correctness and for style and organization. Functional correctness will count for anywhere in the range 60–80% of an individual homework score.

Functional correctness will be determined by an automated system that will run your program on various test inputs. Your program must compile on the department servers to receive any functional credit! We may give sample test inputs and outputs and/or a reference implementation for assignments to help you test. The best way to be sure you will receive credit is to use diff testing, which you will learn in lab. The tests we give you are generally representative of the tests we will use for grading, but they are not intended to be comprehensive. Students are expected to do their own testing, too.

Style and organization will be graded by humans, who will look to see that you follow the course style guide.

Final homework grading: All homework assigments are normalized to 100 points. Homework assignments consist of weekly assignments and one or more projects. A project runs for two weeks and counts as two weekly homework assignments. A project will have 2 or three phases. For two phases, the first phase is worth 10% of the project score and with the remaining phase worth 90%. If there are three phases, the weights are 5%, 10%, and 85%. The lowest homework score may have its weight reduced, e. g., it may count only half as much as other assignments.

Late Homework

Homework is expected to be submitted on time. However, we recognize that the exigencies of college life occasionally thwart a deadline. In such circumstances, there are two types of extension:

  1. Late tokens: A late token grants you a 24-hour extension on an assignment. Each of you has 5 of them to use over the course of the semester. A maximum of two tokens can be used on any single assignment. Using a late token requires no action on your part. Our grading scripts will automatically check the date of your submission and deduct the appropriate number of tokens. However, there are two things that you can do to ensure that your late tokens get accounted for properly:
    • If you intend to use a late token:
    • Each student receives a bank of 5 (virtual) tokens. Each token grants you a 1-day (24 hours) extension, no questions asked. You don't have to do anything to use a token. We'll check when your work comes in and deduct the appropriate tokens from your bank.
    • No more than two tokens may be used for a single assignment: Homework more than two days late is not accepted and earns a 0.
    • When you are out of tokens, we will no longer accept any late work from you.
    • Ordinary illess (e.g., a cold, headache, migraine) is included in your token budget: That's what tokens are for!
    Dean-supported extensions are for cases of serious illness, family emergencies, or other unforeseeable severe difficulties. In these special circumstances, extensions are granted after we receive a request from your associate dean. No extensions are granted merely on the basis of a student request. Incapacitation due to illness and deaths in the family are examples of valid reasons. “I'm really busy,” “my assignment isn't done yet,” and “I could do better if I had more time” are examples of non-valid reasons.

    To try to give you faster feedback, we need to be able to start grading as soon as possible. So, we will feel free to start grading right after the published deadline if we can. But this means, if you intend to use tokens, you must not submit until you are ready for your code to be graded. We are free to grade any submission we find after the deadline. We will grade the most recent submission as of the time we grade your assignment. But, if you submit something before the deadline as a hedge, we may grade that. If you submit again a day later, for example, intending to use a token, we will not grade the new assignment.

    Labs

    Attendance in weekly labs is mandatory. Labs provide supervised, hands-on practice and prepare students for the homework. You cannot get credit for a lab without attending.

    If you are in a time zone that prevents you from participating in your assigned lab section, please contact an instructor to discuss accommodations.

    You should submit your lab work at the end of the lab. However, if you would like to polish your work, labs submissions are ultimately due by the end of the Friday of the week they are released.

    Labs are graded based on attendance and a good faith effort at the lab. If you attend the lab, do your best, and submit your work, you will get full credit.

    We assume that things come up, people get sick. So, for grading purposes, we credit you with full attendance even if you miss 1 or 2 labs. Labs are important, however, so you should avoid missing them, and you shoud review the material of any lab you miss.

    If you need to attend a different lab in a given week, please contact the instructor of the lab you would like to attend (via Piazza) to make sure there is space.

    Exams

    There will be two midterm exams and a final exam during the regular final exam period.

    All exams will be administered online. Students will be given a reasonable period (e. g., a 24 hour period) to take the exam. Once they start the exam, they will have the regular 75 minutes (for midterms) or 120 minutes (for the final) to complete the exam. Further instructions will be posted on the course forum in advance of the exams.

    Unless specifically stated otherwise in advance, exams are closed book, closed notes, and no electronic devices are permitted (that includes computers, calculators, cell phones, etc.). For each exam, each student may bring in one U.S. standard-sized sheet (8½ × 11 inches) of paper with their own handwritten notes (on the front and back if desired) to use as a reference. The reference sheets will be collected. Photocopied notes are not permitted. (If you write notes yourself, then this can be a study aid, so we want you to do that.)

    You may miss the first or second midterm for any reason, but there are no make-up exams. The usual reason for missing an exam is illness, but the same policy (described below) applies whatever the reason. We do not require notification or justification. However, we strongly recommend that you do take these exams as they provide you and us with valuable feedback about how you're doing, and they get you used to taking computing exams in preparation for the required third exam.

    If you miss exam 1 and/or exam 2 your grade will be based on your other exam score(s). For example, missing the first exam, will mean your second exam will be worth 25% and the final exam will be worth 30% If you miss the second midterm, the final will be worth 45%. If you miss both the first and second midterms, the final exam is worth 55% of your grade (not recommended!).

    The third exam is a requirement: you must take this exam. If you miss it, then, if you have a note from your dean giving an appropriate reason (e.g., illness, family emergency), then you can get an incomplete and take the exam by the incomplete deadline of the following semester. Missing the third exam without your dean's approval will result in a 0 for that exam score.

    A final note about illness and exams: Students who are somewhat ill, for example, sometimes suggest that they would like to take the exam and “see how it goes.” The implication being that, if their illness or other issue is a problem, they'll not count it. At first, this seems reasonable, but the dean's office generally does not approve of this strategy, because once you've seen the exam, it's impossible to tell whether the desire to not count it is based on valid medical (or other) issues or on the content of the exam. So, you must decide (consulting with medical professionals or counselors of your choice) whether to take the exam before seeing the exam.

    Regrade requests

    All regrade requests (whether for exams or homework) must be submitted via Gradescope within one week of the assignment grades being released. In cases where it is not immediately obvious how to submit a regrade request for a particular component of an assignment, it is always fine to submit the request on the first problem of the assignment.

    A regrade request may or may not result in a new grade being assigned. The new grade may be higher or lower than the original grade. You are always welcome to ask for an explanation of the grade you received.

    Collaboration and Academic Integrity

    All of us should read the Tufts handbook on academic conduct located on the publication website of the student affairs office: http://uss.tufts.edu/studentaffairs/publicationsandwebsites/AcademicIntegrity.pdf.

    For exams, no collaboration and no use of the internet is permitted unless expressly allowed in the exam instructions.

    As described above, homeworks will be comprised of two components, a written component and a programming component. For each of them, we have slightly different policies about which forms of outside help and collaboration are acceptable:

    Written questions

    The goal of our written problems is to give students practice at finding pieces of information that they have not expressly been given in class and lab. This skill allows you to eventually function independently as a programmer, and is critical for all computer scientists to master.

    As such, students are expected to find the answers to written problems themselves. They may not confer with their classmates, and may only minimally query the TA staff. From there, however, any means of finding an answer is fair game. Students may search the internet, consult their textbook, write test programs — anything, as long as sources are cited in the write-up.

    Programming

    Both your classmates and the internet at large can be invaluable resources, so long as they are used according to the following three policies:

    1. You may search the internet and talk to other students about general programing concepts and C++ syntax, but not about assignment-specific code or strategies. For example, it is fine to ask “How do you structure a while loop in C++?”, but it is not fine to ask “How do you write the function for HW 3 in C++?” Assignment-specific questions should only be posed to the course staff.
    2. Use English. Use whiteboards. However, you should never be looking at another student's code and no one outside of our course staff should be looking at your code. If a TA sees you doing this, it will be reported.
    3. Only submit code you can explain. We reserve the right at any time to ask you to explain a piece of code that you submitted. If you cannot explain the code, then we will have no choice but to assume that it is not your work.
    4. Do not plagiarize code! You must not submit code that others wrote or that you wrote for a previous class (or previous iteration of Comp 11).

    Suspected academic integrity violations are forwarded directly to the Office of Student Affairs. Their sanctions range from horrible to inconceivably horrible. It's not worth it.

    Policy on sharing materials

    This course is designed for everyone to feel comfortable participating in discussion, asking questions, learning, and facilitating the learning of others. In order for that atmosphere to be maintained, the recordings of our conversations will only be shared with the enrolled students in the class (not posted publicly), and it is prohibited for any of us who have access to the video to share it outside the course. It is against Tufts policy for anyone to share any content made available in this course including course syllabi, assignments, videos, and exams with anyone outside of the course without the express permission of the instructor. This especially includes any posting or sharing of videos or other recordings on publicly accessible websites or forums. Any such sharing or posting could violate copyright law or law that protects the privacy of student educational records.

Mark A. Sheldon (msheldon@cs.tufts.edu)
Last Modified 2021-Feb-01