Table of Contents

This page contains course information pertaining to:

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.

Inclusivity, Accessibility, and Additional 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 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, or by visiting the StAAR Center website:

Contacting the Course Staff

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.

Sign Up: COMP11 Fall 2020 Piazza Forum

COMP11 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: COMP11 Tech Guide

Final Grade Breakdown

The final grade in this course is computed according to the following breakdown:

Homework 60%
Labs 10%
Midterm 10%
Final 20%

We do not expect to apply a curve to any portion of this grade.

Letter Grades: COMP 11 uses the following breakdown of letter grades and percentages:

98–100%    A+ 87–89%    B+ 77–79%    C+ 67–69%    D+
93–97%    A 83–86%    B 73–76%    C 63–66%    D
90–92%    A– 80–82%    B– 70–72%    C– 60–62%    D–


In general, homworks will go out every Wednesday and be due at midnight EDT the following Tuesday (there will be a longer project towards the end of the term). Each homework will be comprised of three components worth a total of 100 points:
  1. A written component that will be submitted via Gradescope (10 points)
  2. A programming component that will be submitted via our submit11 system (80 points)
  3. A style component that evaluates how well your code conforms to our style guide (10 points)
Homework grades will be posted to Gradescope for students to review. At the end of the course, we average all these grades together, weighting the final assignment (a longer project) by 150% and the lowest assignment by 50% (your final assignment is not considered for this lower weight). The result serves as the homework portion of your final course grade.


The written component of your homework must be submitted as a .pdf via Gradescope. Failing to submit your written component or submitting a non-pdf document will result in a loss of credit for this component. It is your responsibility to double-check your submission and make sure it's a viewable pdf!


The programming component of each assignment must be submitted via our submit11 system. First and foremost, the programing component of your homework must compile on Halligan in order to receive any credit. Once your submission has compiled, it is evaluated by comparing its output to the output that our solution code produces.

With the exception of HW0, programming submissions will be graded by an automated system that uses the program, diff, to compare a submission's output to our ground truth. Students will learn to use diff during their second lab sesssion and are expected to use it for testing before submitting all of their susequent homeworks. It is not reasonable to assume that a program is working properly if it is not passing the diff tests.

For the majority of the homework assignments, we will be providing one or more sample input files that students may use for testing. While these tests are designed to be generally representative of the tests we will be using for grading, they are not intended to be comprehensive. Students are expected to create their own input scenarios and test them using diff.

The triplicate of compile-diff-submit should become the cornerstone of every student's submission process.


The COMP11 style guide can be found here: COMP11 Style Guide

Late Homework

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

  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:
    1. If you intend to use a late token: Do not submit your written component until you are ready to submit your final code. This will prevent a partial submission from being graded.
    2. If you do NOT intend to use a late token: Do not submit anything after the due date. We grade your most recently submitted work. If that work came in after the due date, it will be counted as late.
    When you do use a late token(s), it will be reported along with your homework and lab grades when they are posted. Once you have used all four of your late tokens, late work will no longer receive credit. It is your responsibility to keep track of your late token usage.

    Late tokens are designed to accommodate short-term setbacks like catching a cold or an ill-timed deadline in another class. Again, there is no need for any e-mails or explanations. Just turn in the assignment when you get it done, and the late token accounting will happen automatically.

  2. Dean-approved extensions: Extenuating circumstances occasionally exceed the conveniences of the late token system. In these cases, students must proactively reach out to their dean to request an extension (we rarely grant extensions that are requested on or past the due date). Your dean will then work with the course staff to make appropriate arrangements.

Regrade Requests

All regrade requests 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.


Attendance in weekly virtual labs is mandatory, as they are designed expressly to prepare students for the current homework. Students will work with a partner to complete a small problem or activity in the allotted time. If you are in a time zone that prevents you from participating in your assigned lab section, please contact an instructor to discuss accommodations.

Labs are due by the Friday of the week they are released; each will be graded according to whether or not they were completed to a sufficent degree. Lab grades will be posted to Gradescope as a component of the weekly homework grade and adhere to the same regrade deadlines described above.

Collaboration and Academic Integrity

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:


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.


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 a Caesar Cipher decryptor 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 that 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.