Table of Contents
|Getting Help||Course Mechanics||Doing your work|
|Student Accessibility Services||CS Accounts||Questions about Grades|
|On-line Course Forum||Software/Platforms||Collaboration|
Course web site:
https://www.cs.tufts.edu/comp/11/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.
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.
|Professor||Mark Sheldon||Halligan 224||
use sparingly, please
|x72491||TW 1000 – 1200 and by appointment|
|Graduate TAs||Evana Gizzi||Posted on Piazza||Use Piazza||W1600—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 HoursAll 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):
- Max Bernstein. Jorge Eguiguren, Emily Tran, Ben Santaus.
- Julia Cooper. Angela Sun, Cole Koester, Julia Hedrick, Kalina Allen.
- Suruchi Devanahalli. Lillian Gjertsson, Daniel Westrich, Nicoholas Williams, Dana Grotenstein.
- Margaret Gorguissian. Kaitlynn Hong, Michael Seleman, Kelly Tattersall, Nicola Shi.
- Dylan Hoffmann. Matthew Harrison, Lawrence Chan, Jasmine Falk, Roberto Breitman, William Seleman.
- Julie Jiang. Aditi Kocherlakota, Aubrey Anderson, Josephine Weidner.
- Eli Rosmarin and Philip Miller. Andrew Castro, Eric Mataj, William Rusk.
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 TutoringYou 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 helps us accommodate students with special needs. Students with special needs should contact the SAS office in Dowling Suite 720 by emailing
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.
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.
Added 12 March 2018 based on Piazza post
from early in the term:
Students should turn in the lab by the end of lab. If it isn't done, submit your best, honest effort. Some students ask whether they can polish up the lab or work on it after lab. Of course! The official deadline for final submissions for a lab in a given week is 1800 on Friday.
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.
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.
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:
- All homework and project scores are normalized to 100 points.
- 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.
- Now write down all the HW scores as percents.
- Write down each project percent score twice (they count twice as much as homeworks).
- Remove the lowest single score. (Thus, if the lowest score is a project, only one of the entries is removed.)
- 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.
- Homework grades will reported at
- Exam grades will be reported at
- 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.
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
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.
- If the TA you contact cannot help, then go to your lab leader.
- 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 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!
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.)
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.
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:
- 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 they are for!
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 SubmissionsPart 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.
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
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 email@example.com, 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.
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
Posting your solutions in a public forum and searching for
solution code on-line is a violation of academic integrity.
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).