Comp 11 Syllabus

Course Policies and Administration

Table of Contents

Course web site: is the course web site. I try to run a relatively paperless course, so almost everything you need is on-line. The course calendar is updated throughout the term, and it will have links to all assignments, course notes, and dates for assignments and exams.

Course Staff

There is a large staff here to help you: your instructor, graduate TAs, and a legion of able and helpful undergraduate TAs. Please come see us!

For questions of a general or technical nature, you're first resource will be the course Piazza forum. Generally, you'll get much faster turnaround there.

I am available during for scheduled office hours, and you may also email for an appointment at some other time. You are welcome to drop by my office unannounced. If I'm there and the door is open, poke your head in. If I am too busy to talk, I'll let you know, but if I have time, we'll talk then.

  Name Office Email Phone Office Hours
Professor Mark Sheldon Halligan 224
use sparingly, please
Piazza preferred
x72491 TW 1000 – 1200 and by appointment
Graduate TAs Evana Gizzi Posted on Piazza Use Piazza R1600—1900
Neda Hassanpour Halligan 114 Use Piazza W1315–1615
Teaching Fellows Max Bernstein Posted on Piazza Use Piazza See below
Julia Cooper Posted on Piazza Use Piazza See below
Margaret Gorguissian Posted on Piazza Use Piazza See below
Julie Jiang Posted on Piazza Use Piazza See below

Lab Schedule, Undergrad TAs, and their Office Hours

All TA office hours are in Halligan. Check Piazza to find out the TAs' location.

You should find this planning sheet helpful for working on your assignments.

How do Office Hours Work? CS office hours are not like office hours for some other courses. See this document for details.

TAs are organized into teams. Each team covers 2 (or 3) labs. All your work will be graded by the team for your lab section.

When you have a problem, make every effort to attend office hours for your TA team. You can look up a TA's office hours in the schedule below.

Our goal is for some member(s) of the staff to get to know of you student personally, what you're working on, and how you learn. They can coordinate to help you better.

TA office hours will be held in Halligan. When TAs come on duty, they find a suitable place in the building and then post their location on Piazza. So, check Piazza when you come in. If they forgot to post, a gentle query will prompt them to do so.

TAs will not debug your programs. The TAs and I are here to help you learn the material of the course, which involves your becoming a good programmer. We will assist you in developing good programming and debugging skills.

Teams (team leaders in bold face):

The hours below may change. We're still shaking out the schedule, so please check back here before you trek over to Halligan for help.

Schedule for Monday:

  13:30:  Office Hr TAs: Dana_Grotenstein, Margaret_Gorguissian

  15:00:  Office Hr TAs: Kalina_Allen, Nicola_Shi

  16:30:  Office Hr TAs: Aubrey_Anderson, William_Rusk

  18:00:  Office Hr TAs: Dylan_Hoffmann, Kaitlynn_Hong

  19:30:  Office Hr TAs: Dana_Grotenstein, Philip_Miller, Julie_Jiang

Schedule for Tuesday:

  10:30:  Office Hr TAs: Julia_Cooper, Julia_Hedrick

  12:00:  Office Hr TAs: Andrew_Castro, Suruchi_Devanahalli

  13:30:  Office Hr TAs: Daniel_Westrich, Kaitlynn_Hong

  15:00:  Office Hr TAs: Angela_Sun, Daniel_Westrich

  16:30:  Office Hr TAs: Angela_Sun, Aubrey_Anderson

  18:00:  Lab Leader(s): Maxwell_Bernstein
                Lab TAs: Emily_Tran
          Office Hr TAs: Aditi_Kocherlakota, Andrew_Castro

  19:30:  Lab Leader(s): Margaret_Gorguissian
                Lab TAs: Kaitlynn_Hong
          Office Hr TAs: Cole_Koester, Jorge_Eguiguren, Roberto_Breitman

  21:00:  Lab Leader(s): Dylan_Hoffmann
                Lab TAs: Matthew_Harrison

Schedule for Wednesday:

  10:30:  Lab Leader(s): Julie_Jiang
                Lab TAs: Aditi_Kocherlakota
          Office Hr TAs: Aubrey_Anderson, Roberto_Breitman

  13:30:  Lab Leader(s): Suruchi_Devanahalli
                Lab TAs: Nicola_Shi
          Office Hr TAs: Julia_Hedrick, Kalina_Allen

  15:00:  Lab Leader(s): Suruchi_Devanahalli
                Lab TAs: Lilian_Gjertsson
          Office Hr TAs: Julia_Hedrick, Kalina_Allen

  16:30:  Lab Leader(s): Maxwell_Bernstein
                Lab TAs: Michael_Seleman
          Office Hr TAs: Daniel_Westrich, William_Rusk

  18:00:  Lab Leader(s): Julia_Cooper
                Lab TAs: Cole_Koester
          Office Hr TAs: Aditi_Kocherlakota, Julie_Jiang

  19:30:  Lab Leader(s): Dylan_Hoffmann
                Lab TAs: Lawrence_Chan
          Office Hr TAs: Aditi_Kocherlakota, Eli_Rosmarin, William_Scott

  21:00:  Lab Leader(s): Eli_Rosmarin
                Lab TAs: Andrew_Castro
          Office Hr TAs: Roberto_Breitman, William_Scott

Schedule for Thursday:

  09:00:  Lab Leader(s): Philip_Miller
                Lab TAs: Eric_Metaj

  10:30:  Lab Leader(s): Julia_Cooper
                Lab TAs: Angela_Sun
          Office Hr TAs: Jorge_Eguiguren, Philip_Miller

  12:00:  Lab Leader(s): Margaret_Gorguissian
                Lab TAs: Kelly_Tattersall
          Office Hr TAs: Julia_Cooper, Michael_Seleman, Nicola_Shi

  13:30:  Lab Leader(s): Julie_Jiang
                Lab TAs: Dana_Grotenstein
          Office Hr TAs: Emily_Tran, Michael_Seleman

  15:00:  Office Hr TAs: Benjamin_Santaus, Emily_Tran, Nicholas_Williams

  16:30:  Office Hr TAs: Benjamin_Santaus, Matthew_Harrison, Nicholas_Williams, Suruchi_Devanahalli

  18:00:  Office Hr TAs: Cole_Koester, Josephine_Weidner, William_Scott

  19:30:  Office Hr TAs: Eric_Metaj, Josephine_Weidner, Lawrence_Chan, Maxwell_Bernstein

  21:00:  Office Hr TAs: Eric_Metaj, Lawrence_Chan, Margaret_Gorguissian

Schedule for Friday:

  12:00:  Office Hr TAs: Lilian_Gjertsson, Margaret_Gorguissian

  13:30:  Office Hr TAs: Jasmine_Falk, Matthew_Harrison

  15:00:  Office Hr TAs: Kelly_Tattersall, Nicholas_Williams

Schedule for Saturday:

Schedule for Sunday:

  13:30:  Office Hr TAs: Cole_Koester, Kelly_Tattersall

  15:00:  Office Hr TAs: Lilian_Gjertsson, William_Rusk

  16:30:  Office Hr TAs: Jasmine_Falk, Maxwell_Bernstein

  18:00:  Office Hr TAs: Benjamin_Santaus, Eli_Rosmarin, Emily_Tran

  19:30:  Office Hr TAs: Dylan_Hoffmann, Eli_Rosmarin, Jasmine_Falk

Schedule by TA

Aditi_Kocherlakota    :T1800, W1030, W1800, W1930
Andrew_Castro         :T1200, T1800, W2100
Angela_Sun            :T1500, T1630, R1030
Aubrey_Anderson       :M1630, T1630, W1030
Benjamin_Santaus      :R1500, R1630, U1800
Cole_Koester          :T1930, W1800, R1800, U1330
Dana_Grotenstein      :M1330, M1930, R1330
Daniel_Westrich       :T1330, T1500, W1630
Dylan_Hoffmann        :M1800, T2100, W1930, U1930
Eli_Rosmarin          :W1930, W2100, U1800, U1930
Emily_Tran            :T1800, R1330, R1500, U1800
Eric_Metaj            :R0900, R1930, R2100
Jasmine_Falk          :F1330, U1630, U1930
Jorge_Eguiguren       :T1930, R1030
Josephine_Weidner     :R1800, R1930
Julia_Cooper          :T1030, W1800, R1030, R1200
Julia_Hedrick         :T1030, W1330, W1500
Julie_Jiang           :M1930, W1030, W1800, R1330
Kaitlynn_Hong         :M1800, T1330, T1930
Kalina_Allen          :M1500, W1330, W1500
Kelly_Tattersall      :R1200, F1500, U1330
Lawrence_Chan         :W1930, R1930, R2100
Lilian_Gjertsson      :W1500, F1200, U1500
Margaret_Gorguissian  :M1330, T1930, R1200, R2100, F1200
Matthew_Harrison      :T2100, R1630, F1330
Maxwell_Bernstein     :T1800, W1630, R1930, U1630
Michael_Seleman       :W1630, R1200, R1330
Nicholas_Williams     :R1500, R1630, F1500
Nicola_Shi            :M1500, W1330, R1200
Philip_Miller         :M1930, R0900, R1030
Roberto_Breitman      :T1930, W1030, W2100
Suruchi_Devanahalli   :T1200, W1330, W1500, R1630
William_Rusk          :M1630, W1630, U1500
William_Scott         :W1930, W2100, R1800

All of us are here to help you. Please don't hesitate to contact us.

I make myself available during office hours, of course, but you may also email or call for an appointment at some other time. You are certainly welcome to drop by my office unannounced — I may be busy or somewhere else, but if I'm there and the door is open, poke your head in! However, for questions of a general or technical nature, you're first resource will be the course Piazza forum. Generally, you'll get much faster turnaround there.

Academic Resource Center (ARC) Subject Tutoring

You also have help available through the Academic Resource Center. ARC tutors are an additional resource to help reinforce subject material, help you develop effective study strategies, and help you take responsibility for your own learning. Throughout the semester, they offer drop in hours. Check the ARC web site for details. One on one sessions, which can be found on the Online ARC Tutor Finder.

Student Accessibility Services (SAS)

The Tufts office for Student Accessibility Services helps us accommodate students with special needs. Students with special needs should contact the SAS office in Dowling Suite 720 by emailing


We meet together in lecture Tuedays and Thursdays at 1330–1445 (Section 1) or 1500–1615 (Section 2) in Barnum 008 (enter through the rear of the building).

You are responsible for anything that happens in class, including announced changes to homework assignments, in-class exercises, and useful information not documented elsewhere.

Bring a pencil and paper to lecture and lab. Take notes. Taking notes helps you remember things — sometimes so that you don't need the notes later. This is better than not getting the reinforcement, forgetting, and then needing the notes. We may also ask you to do pencil-and-paper exercises.

Use of computers in class is prohibited unless there are specific in-class exercises to be done on computers. Using computers in class distracts others and undermines your own learning (even if you are actually taking notes). Michael Thramann forwarded me this NYT article by a law professor.


You must sign up for a lab and attend lab once per week. Lab work will be submitted and graded. You cannot get credit for lab work without attending lab. There are a large number of lab meetings, all in Halligan 116 or 118. Again: You must be signed up for labs, and you must attend a lab to get credit for that lab. That means being registered for a lab, signing the sign-in sheet, and, if required, submitting the work.

We may have a pre-lab due at the start of lab. This helps you be better prepared and lets you (and us) know how you're doing. There are no make-ups.

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.

During the term, if you would like to switch to another lab after the second week of class, you may, but you should do so using department lab registration page rather than SIS. This will ensure that when you get to that lab, there is a seat and a computer for you. You can use this if you have some unusual schedule constraint — afterwards, you can switch back to your previous lab. We discourage too much switching around: pick a lab and stick with it. Use switching privileges to accommodate unforseen and/or temporary conflicts.

Students often ask if they can attend a lab that the registration system says is full. Being registered for a lab guarantees you a space in that lab and, therefore, we cannot allow you to take a seat in a lab at the expense of a registered student. Labs only have a fixed number of computers and lab assistants, and we won't diminish the lab experience for others just for your convenience.

That said, you may try to attend “stand by”: You may drop in on another lab, alert the lab leader that you are there stand-by, wait until it's time for the lab to start, and, if there is an unused computer and empty seat, attend. We do not guarantee that this is possible, but it tends to be increasingly possible as the term progresses. If the lab is filled or if there is one unused computer but it's broken (we usually book labs so there is one computer left over just for this scenario), then you may not attend. If there are too many students, the lab leader will take attendance and all non-registered students will be asked to leave.

You may not attend an otherwise full lab merely for “attendance purposes” or just to submit the pre-lab. Attending lab means you do the hands-on work, and that requires a lab computer and TA resources.

Piazza Forum

We have a course forum at Piazza for class discussion. This is your forum. Use it to communicate with each other and the course staff. Just remember the cautions below. Send questions related to course material there rather than to the course staff via email: the next person who checks the site and knows the answer can respond. (The average time between question in response last fall was 35 minutes!) If you have any problems or feedback for the Piazza developers, email

There is a link to our class class page on the course calendar on the first day of class. Check the forum at least once a day: Important information and announcements will be sent there, including assignment clarifications and schedule changes.

Required Textbook

We will use Problem Solving with C++ by Walter Savitch. The 10th edition has just come out, and that is what the bookstore stocked. I will update the reading assignments accordingly. The 9th edition or even the 8th will probably be fine. I certainly wouldn't use anything earlier than the 7th edition.

The publisher provides on-line materials to support the book. I will make no use of this material. If you feel it would helpful for you to have access to additional material and exercises, then you are free to use it, of course, but it is not required or expected.

I don't have a textbook for the Python work we'll do. I can recommend Allen Downey's Think Python, 2nd edition, which is available as a PDF. We will probably not follow it closely, but it's a good introduction on its own. I'm still considering making use of Runestone Academy's online course, which uses an interactive version of Allen's book.


Your final grade will be based on a weighted sum of your homework, quizzes, labs, and exam scores: 45% homework (both smaller and larger projects), 5% labs and quizzes, 10% first midterm, 20% second midterm, 20% third midterm.

As a rule, we do not curve exams. However, at the end of the term, we may make statistical corrections. Such corrections are not usually more than 3–5 points, but they depend on the data. The corrections, if any, will never make your grade lower, only higher.

Students often ask how they are doing in the course. Once you get some data, you can run some numbers yourself. The above numbers yield the following forumula:

(0.45 × hw) + (0.05 × labs) + (0.10 × mid1) + (0.20 × mid2) + (0.20 × mid3)

Exam scores are easy to determine. Use the percentage score on the exam.

Lab scores are generally good. If you've missed no more than 1 or 2 labs, and you've submitted a good faith effort for each lab, then the score is 100%. If you've missed more, then use the portion of labs you've attended and submitted.

Homeworks are a little more complicated. I drop the lowest score, but here is the algorithm:

  1. All homework and project scores are normalized to 100 points.
  2. For projects with multiple submissions, the scores are combined using a formula to be determined, but the majority of the score is based on the final submission. For example, the final submission might be 85% or 90% of the whole project score.
  3. Now write down all the HW scores as percents.
  4. Write down each project percent score twice (they count twice as much as homeworks).
  5. Remove the lowest single score. (Thus, if the lowest score is a project, only one of the entries is removed.)
  6. Average the remaining scores.

Now you can plug your scores into the above formula. For homeworks, leave out scores you don't know. As long as the missing ones are similar in quality to the ones you know, you'll have a reasonably accurate estimate. For missing exams, play “what if”: use your lowest score, your average score, and various other scores to see the results.

Questions about grades

You will receive all your evaluations on line. When you receive evaluations of your work, you may have questions. You may suspect we've made a mistake. In fact, though we will do our best, in a course this large, there will be mistakes in grading. This is normal, and we have a procedure to deal with it — we want to get things right! If there is a mistake in your favor, there is no need to report anything: it's your lucky day. But if you feel there is a mistake that counts against you or if you would like clarification of an evaluation, there are two cases. For exam-related questions, see a grad TA or your instructor during office hours. For homework and project questions, follow this procedure:
  1. First, read, re-read, and think about the comments in your evaluation. We often get questions that are directly answered in the evaluation originally received, because students ask before they've even read the entire evaluation! Please think first. Often, figuring out what is meant on your own helps you to learn more.
  2. If, after reading the evaluation and thinking about it, you still have a question, raise it with a TA or with me during regular office hours. Do not email grading questions. You should go to your TA team members, but any member of the course staff can explain things and fix errors. For exams, go to any of the graduate TAs, a Teaching Fellow, or me during regular office hours. We have extensive office hour coverage, so you should be able to get help quickly without having to make a special appointment.

    When you ask for a correction, the grader will re-evaluate you work in whole or in part. It is possible for a grade to go down as a result. Therefore, remember step number 1 above.

  3. If the TA you contact cannot help, then go to your lab leader.
  4. If the situation is still not resolved, contact a grad TA or me and provide the name(s) of the TA(s) you worked with. We'll check with the TAs you name and get your situation resolved. We will not look at cases that have not gone through TAs and lab leaders, and contacting me or the head grader (outside of our office hours) does not count as a contact for purposes of the 1-week statute of limitations (see below). We can't provide timely feedback if all questions go through one or two people.

You can get explanations and clarifications from the course staff at any time. However, there is a one week statute of limitations on grading corrections: we will work to address questions that come up on an assignment for 1 week after the evaluations are made available to you.


There will be three in-class midterm exams during the regular class meeting time (though we may move to a more spacious location).

There will not be a final exam during final exam period.

There may be periodic assessment quizzes, announced or unannounced.

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 sheet 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. I do not require notification or justification. However, I 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 and third midterms will each be worth 25% rather than 20%. If you miss the second midterm, the third midterm will be worth 40%. If you miss both the first and second midterms, the third midterm is worth 50% of your grade (not recommended!).

The third midterm 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.

Academic integrity and exams.

You will be instructed what materials, if any, you may bring to an exam. As a rule, Comp 11 exams are closed book, closed notes, and you may not bring any electronic devices (computers, cell phones, music players, calculators, etc.). Tuft's policy on this is very clear. Do NOT bring unauthorized materials, information, or electronic equipment to an exam. Do NOT engage in behavior that gives the appearance of cheating, such as passing a note to a friend, whispering to another student while the exam is in progress, or looking at another student's exam. Do NOT bring your cell phone, tablet, music player, calculator, or any other electronic device to the exam. If you are seen handling an electronic device, even to silence a phone, the Judicial Affairs Administrator will treat it as an academic integrity violation. A typical penalty is 1 or 2 semesters suspension from Tufts. I am obliged to report all such incidents to Judicial Affairs. Please don't make me do that!


For the first part of the term, and after we switch languages, there will be approximately weekly homework assignments (4 or 5). These will help you internalize the course material through practice. After these homework assignments, you'll have a strong foundation for tackling real-world problems.

There will also be 2 or 3 larger projects. Projects are substantially more challenging than weekly assignments: they will be very real-world, practical problems. Projects may be submitted in multiple parts: often we'll ask for a design and then an implementation, which together will count twice as much as a regular assignment. (If there is to be any team programming, that will be specified in the assignment.)

Code formatting

All code you submit will be graded for readability as well as functionality. Formatting matters. When you submit your work, it should be beautiful, and there should be no question of your dedication and correctness. Prepare it as if you were writing up an example for a good textbook. Hint: Just as with a paper for a literature course, the first draft of a program that works is not usually the version to submit.

You'll receive guidance on how to organize and format code as the term progresses.

One hint now, though: Please use spaces rather than tab characters for indentation. Most editors you use to type your code will have a setting for this. Using spaces means that the program will look the same to you and to the grader, regardless of tab settings.

Late Homework

Homework will be submitted electronically and will be due at the published deadline on the calendar. Because clocks are not perfectly synchronized, and sometimes things go wrong, we allow an automatic extension of a few minutes, at least 10 at no cost to you. If you plan on submitting your work at the deadline, you will have nine minutes for last-minute changes. To be clear: the real deadline is the specified time.

Homework is expected to be submitted on time. However, we recognize that the exigencies of college life occasionally interfere with on-time submission. If you have difficulty getting homework in on time, there are two types of extension: automatic (you don't have to ask) and dean-approved.

Automatic extensions are designed to cover common issues such as catching a cold, 2-day stomach bug, etc., as well as things that come up in life. Here's how they work:

Dean-approved 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.

Testing and Limited Submissions

Part of computing involves thinking about how to know whether your solution is correct, and that involves testing. When soloving a problem, it's a good idea to construct test cases and examples. Then you should test your code extensively, trying to exercise every part of your code.

When you submit your homework, we may give automated feedback about function (and even style) of your code. We do this to help you avoid some simple errors. However, this is not a replacement for purposeful testing.

To encourage testing, we will limit the number of submissions that are permissible (normally to 3 submissions). After the final submission, we will not take any more. Therefore, you should test your code thoroughly. Even if you change what you believe is a non-functional part of the code (comments), you should test again. Submit your homework when you are confident it is correct.

Tokens (mentioned above) are for lateness. They are not a generic currency, and they cannot be used for extra submissions. The submission limit is to encourage testing, which is a separate issue from lateness.

CS Accounts

This course requires the use of the department's computers (lab machines and remote login servers). You will use them in lab and all your work will be evaluated in this environment. Most students do all their programming on department computers (though often remotely).

Most students do not have to do anything to get an account: before the start of classes, the EECS IT staff gets a list of all students registered for a CS course. They automatically create an account for any new students and send an email instructing you how to set your password. You must set your password.

To set your password, go to and click on “Enable or reset your existing ECE/CS UNIX account.”

If you didn't get such an email, be sure to check your Tufts email (or wherever you may have it forwarded) and any relevant spam folders.

If you are waitlisted or not registered as of a day or two before the start of classes, then you must contact EECS IT directly to request an account. Go to the EECS IT Help Desk in Halligan 231.

If you have difficulties, you may email, but try everything else first.

N.B. Your instructor cannot create an account for you. The IT staff are authorized to do that. All account creation issues have to go through IT. You probably have an account already, though.


You do not need your own computer to do the work in this course. The computers in Halligan Hall have everything you need.

Programming assignments will be in the Python 3 and C++ programming languages and will be evaluated on the department's GNU/Linux server. If your program works in some other environment but does not work on the department server, it will be considered broken. Therefore, you will need to test your code on the department server.

Consult the course reference page for other helpful information.

Collaboration and Academic Honesty

All of us should read the Tufts handbook on academic conduct located on the publication website of the student affairs office:

Some critical guidance:

Some work you do is to further your understanding. Some work will be used to evaluate your understanding (this work is graded). You may work with other students to further your understanding. Work submitted for evaluation is, unless otherwise stated, to be your work alone. You are bound by the basic principles of academic honesty and integrity.

It is never acceptable to present someone else's work as if it were your own. It violates the basic principle of academic honesty. All work you hand in is to be yours and yours alone, unless there is specific instruction to the contrary.

While you are working on a homework assignment, you may collaborate with other students by talking about the problem or your solution in a natural language (e.g., English), but you may not use any formal language, and especially not program code: high-level discussion is good, but each student must do an individual write-up. In other words, you should not be looking at other people's code (or problem set solutions), and you should not show your programs to another student.

You are encouraged to use the online forum to discuss course-related work, but the same rules apply: discussions should be in English and should not include code that is part of a homework solution.

Posting your solutions in a public forum and searching for solution code on-line is a violation of academic integrity.

When you turn in an assignment, you must list all other students with whom you collaborated. If you get significant help from any of the course staff, including a TA, you should acknowledge that, too. Academic honesty requires it. If you are not sure what constitutes collaboration or significant help, err on the side of caution. Giving others credit is good, and they will appreciate it, too.

You may consult public literature (books, articles, the web, etc.) for hints, techniques, and even solutions. However, you must reference any sources that contribute to your solution.

Assignments, exams, solutions and even notebooks from previous terms' versions of this course are not considered to be part of the public literature. You must refrain from looking at any solutions from previous versions of the course (unless that information is distributed this semester).

Mark A. Sheldon (
Last Modified 2018-Feb-15