Comp 15

Course Policies and Administration

Table of Contents


Course Mechanics

Lectures

For Spring 2021: Lectures will be pre-recorded. The lecture links will posted on the course calendar at least a day in advance. Live question and answer sessions will scheduled Mondays and Wednesday. Check Piazza for the times and links.

Labs

Labs are a required meeting once a week that will give practice on various concepts and reinforce your learning.

You must sign up for and attend a lab to get credit for that lab. That means being registered for a lab, attending a lab, and submitting the lab and prelab (see below) and lab exercises. You cannot get credit for lab work without attending lab.

For Spring 2021, labs will be held live on Zoom. Students should switch to the lab that works best for them wherever they are. Attendance is still required. Post an instructor-only message on the course forum if this represents a hardship given your time zone. I am optimistic that, with labs going 9am to 9pm EST, that everyone can find a workable time.

Before most labs, we will release a pre-lab that you must do before the lab. This helps you be better prepared and lets you (and us) know how you're doing. Turn in the pre-lab when you get to lab, and it will be assessed immediately.

There are no make-ups for labs. However, we understand that things come up, people get sick. So, for grading purposes, we credit you with full attendance if you miss one lab session. Labs cover essential material that you will need for the course. Therefore, if you do miss a lab, you should go through the lab on your own, talk to a fellow student, and ask the staff any questions you have.

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. 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 lab assistants, and it isn't fair to let some students diminish the lab experience for others.

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. 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 take the quiz/hand in the pre-lab. Attending lab means doing the hands-on work

Labs are intended to be finished by the end of the lab period, and you should submit whatever work you were able to do at the end of lab. If you need or want to polish things up, you may (re)submit up until 1800 (6 pm) on Friday of that week.

Coursework

Getting Started

There are a few steps to get set-up with the department servers if you have not taken a computer science class at Tufts. This involves an EECS account as well as learning how to access the Halligan server when not on a department machine. You also may want a text editor. It is important that all of this is done before the first lab so that lab time is not spent trying to set-up accounts or coding environments.

CS Accounts

This course requires the use of the department's remote login servers.

Students do not have to do anything to get an account to login to these servers: before the start of classes, the EECS IT staff gets a list of all students registered for a CS course, and 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 https://www.eecs.tufts.edu/~accounts/ 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 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. Send an email to staff@eecs.tufts.edu for help.

Software/Platforms

Programming assignments will be in the C++ programming language 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 lab 00 for other set-up information including instructions to access a terminal, ssh to the homework server, and to set up the Atom text editor.

Assignments

There will be shorter homework assignments (usually 12 days), and longer projects (usually two weeks). Both include programming implementations in C++.

Assignments will be submitted using provide on the department homework servers, and will be due at the published deadline on the course calendar.

Please be aware that we use automated systems to process and test your work. Thus, it is your responsibility to:

You might get lucky if you submit very close to the deadline, but you should assume that any submission after the deadline (according to the time on the Halligan servers' clock) will cost you one or more late tokens (see below), or will prevent your work from being acceepted at all.

So, make sure to submit well before the deadline. This also gives you time to fix any unforeseen problems and re-test before submitting again.

Extensions

Homework is expected to be submitted on time. However, we recognize that the exigencies of life occasionally interfere with on-time submission. If you have difficulty getting homework in on time, there are two types of extensions:

No extensions are granted merely on the basis of a student request.

Dean-requested extensions are for cases of serious illness, family emergencies, or other unforeseeable, severe, longer-term difficulties (more than a few days). In these special circumstances, extensions are granted after we receive a request from your associate dean. The deans can protect your privacy, get you appropriate help, and coordinate with all your instructors.

Automatic extensions are designed to cover less severe, shorter-term issues, such as short-term illness, catching a cold, stomach bug, headache, migrane, etc. They can also be used for other interruptions, like the need to secure a loaner laptop. Something that sets you back a few days. To support automatic extensions, we use a token system. Here's how it works:

Testing and Submission Limits

When you submit your homework, we may give automated feedback about functionality (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.

Part of computing involves thinking about how to know whether your solution is correct, and that involves testing. When solving a problem, it's a good idea to construct test cases and examples. Test your code extensively, exercising every part of your code.

To encourage testing, we will limit the number of submissions that are permissible (e. g., 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 (the number of submissions will depend on the assignment and will never be hidden).

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.

Style Guide

Organization and style are things we care deeply about in this course. When you code, you must write for a human audience; code that is not understandable is as useless as code that does not work. To emphasize this, a fair portion of your grade on each assignment will be based on adherence to the course style guide which lays out our policies for organization, style, and documentation. You should read it at the start of the term and return to it before submitting each assignment to ensure that you are following all of the requirements.

We know that getting deductions because you forgot a space somewhere or you used the boolean symbol && instead of writing and can be frustrating. We promise that there are reasons for these policies in the style guide. You should not come to a staff member to ask if a certain instance of breaking the style guide is acceptable or if you will get points off for it. Anything in the style guide could be a rubric item, and the rubrics might change throughout the term to emphasize stylistic issues we have seen. Just because some style guideline has not come up in past grading does not mean it will not.

Documentation is one of the biggest things you can do to get points back even when your code does not fully work. Clear documentation will make it easier for the grader to understand what went wrong, and a lot of the time we will refund points for cascading errors if we can find them. Thus, it is in your best interest to thoroughly comment and write code that is as clear as possible.

Exams

There will be one in-class midterm exam and a final exam during the final exam period. See the course calendar for dates. The final exam is cumulative, but with greater emphasis on the last part of the course.
For Spring 2021, exams will be administered via GradeScope. We will announce the details at least two weeks before a scheduled exam. Students will have a 24-hour period within which they must take an online assessment.

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 online exams, you may, of course, use your browser, but internet searches and communications with others, whether in the class or not, are not permitted.

Reference Sheets

For each exam, each student may bring in one sheet of standard-size (8.5 × 11 inch) paper with their own handwritten notes (on both sides if desired) to use as a reference. Pages from books or printed pages are not allowed. Writing your own notes is part of a process known as “studying.” 😀

There are no make-up exams

You may miss a midterm for any reason. The usual reason for missing an exam is illness, but the same policy applies whatever the reason. We do not require notification or justification. However, we strongly recommend that you do take the exams, as they provide you and us with valuable feedback about how you're doing, and they get you used to taking computer science exams in preparation for the required third exam.

If you miss a midterm, we will adjust the grading forumula to use the subsequent exam(s). For example, if you miss the midterm, the points will move to the final exam.

The final exam is required: you must take this exam. If you miss it and 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.

A final note about illness and exams: Students who are somewhat ill 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, our 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. We are obliged to report all such incidents to Judicial Affairs. Please do not make us do that!

Getting Help

The course can be challenging. Remember that sometimes sleeping on something will help to clarify it (a good reason not to wait until the last minute!). If you've been stuck on something for a while and you've given it a good effort, then seek help. Here are resources in the order you should try them:
  1. Course web site You're already here!
  2. Course on-line forum Sign up! See the description of the forum in this document.
  3. Course resources The reference page has many useful resources that we have made or found specifically for a Comp 15 level of understanding.
  4. On-line resources The web is a wonderful trove of information. Some of it is good! Do be aware of the course collaboration policy. Do not use things you don't understand!
  5. Staff office hours During the term, the course will hold office hours as well as review sessions. The TA office hour schedule is on our course forum. Any permanent schedule changes will be reflected in the office hours post. Temporary changes, additional office hours, or one-time cancellations as well as any workshop information will be posted in individual notes there as well. Since the schedule may change, please check the forum before you come in. If you cannot find the TAs at the appointed time check the forum to see if there were changes. If they forget to post, then a gentle reminder on the forum is appreciated.

    The instructors will also hold regular office hours and are also available by appointment. If you see us in Virtual Halligan, you are welcome to ask whether we are free, and if we are, then we can do impromptu office hours.

    Instructor hours Mark See www.eecs.tufts.edu/~msheldon/ for the most up-to-date office hours.

    You are welcome to to ask any questions and further get to know us during the scheduled Q&A sessions. See the forum for information on that.

  6. Email Generally, please use office hours for course questions. You can post staff-only messages on on the the course forum, too. My email is msheldon@cs.tufts.edu. Emails may be monitored only loosely, and you will get quicker responses using the forum or office hours.

You are welcome to ask any member of the staff questions. However, when you go to see undergraduate TAs, we recommend you try to work with the TAs from your lab. This will allow some member(s) of the staff to get to know you personally, what you're working on, and how you learn. They can coordinate to help you better.

Please note: The course staff is not here to debug your programs. We are here to help you learn the material and gain the skills of the course. We will help you develop good programming and debugging skills, because those are crucial course skills for you to develop.

When you come to office hours with a program bug, we will ask you to describe your plan, show us diagrams of data structures, outline your algorithms, and summarize what you have done so far. You can therefore help us to help you by coming in with a plan, pictures of your data structures, etc. If you don't have these ready, the staff will ask you to do them, and you can come back when you are prepared to receive help. Staff will also ask you what you have done so far and may ask you, for example, to determine exactly where a failure occurs and the values of all relevant variables at that point in the program.

For more tips on how to succeed in Comp 15, see Comp 15 Tips for Success.

Course Staff

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

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

  Name Office
Professor Mark Sheldon https://tufts.zoom.us/my/mark.sheldon
Graduate TA Matt Russell See office hour schedule
Undergrad teaching fellows Camille Calabrese See office hour schedule
Rhys Gilkenson See office hour schedule
Juliana Vega Del Castillo See office hour schedule
Cicely Panara See office hour schedule

Undergraduate TAs Camille Calabrese Rhys Gilkenson Juliana Vega Del Castillo
Cicely Panara Akash Mishra Alessandra Jacimovic
Lexi Blair Amanda Westlake Amy Bui
Amy Ly Ananya Pavuluri Ankur Dahal
Cheryl Melwani Dameli Utembayeva Daniel Mahoney
Elise Kaplan Elizabeth Hom Ellis Brown
Erena Inoue Grace Fielding Hamza Ali
Jackson Clayton Jolie Davidson Judy Hanson
Kiran Misner Mateo Hernandez Idrovo Matt Champlin
Max Mitchell Mia Ferguson Niall Sheridan
Nick Gravel Pippa Hodgkins Raphael Obu
Ryan Beckwith Sam Russo Silvia Wang
Spencer Ha Victoria Chen Zachary Goldstein

Course Forum

We have a course forum at Piazza for class discussion (see the course calendar for the link). 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 time between question and response is often just a few minutes, and the average is well under an hour!)

See the course calendar (the first day) for the link. Check the forum at least once a day: Important information and announcements will be sent there, including assignment clarifications and schedule changes.

Resources

In addition to lecture and lab materials, there are numerous other resources we suggest you use. These have been selected as roughly correct for the level of experience of Comp 15 students. Other resources online can often over-complicate topics or present material in a way that is contrary to how this course is taught, so we highly suggest you use these resources before going to the general internet.

Textbook

Although not necessary, there are many textbooks that can help you understand the course. I often recommend Data Structures and Algorithm Analysis by Clifford A. Shaffer (mainly because it is free and online). I will assign readings there cooresponding to the topics we will cover in class. If you prefer a printed copy, take a look at Data Structures and Algorithm Analysis by Mark Allen Weiss, which is pretty thorough. You can read equivalent material from any reasonable text (use the table of contents and index to find the material for the topic we're discussing). Note that digital versions of both books are also available.

Course Materials

There are also a number of materials you can find on this website. It is always a good idea to see if the calender has a resource on the given topic. You can also find a number of materials on the reference page that may help to clarify a concept.

Course Support

StAAR Center: Subject Tutoring and Accessibility

The Student Accessibility and Academic Resource (StAAR) Center provides general academic support, in the form of study assistance, note taking, writing assistance, as well as specific subject tutoring, including for this class. They can help reinforce subject material, help you develop effective study strategies, and help you take responsibility for your own learning. Tutoring is available via drop-in hours as well as by appointment. There is more information available via the StAAR Center website. Their Academic Coaching web page has information and links for workshops and tutors among other things.

We want to ensure equal access and support for all qualified students by providing reasonable accommodations to ensure each student can fully participate in the course. The Tufts StAAR Center accessibility services team helps us accommodate students with special needs. Students with special needs should contact the StAAR Center via the above link to determine and authorize appropriate accommodations.

Accoommodations cannot be applied retroactively (e. g., you cannot get extensions for exams or assignments already done), so it is important to do this right away.

If you qualify for accommodations, it is important to give that imformation to me as soon as possible — within the first 2 weeks of the term or within a week of adding the course. It can take several days to work out accommodations, so I usually need the letter a week in advance. If you receive accommodations during the term, then please send the letter right away. This helps me plan so I can meet accommodations and support all the students in the course.

TA Liaison/ Ombudsperson

The TA ombudsperson (AKA TA liaison) is here to help mediate conflicts that arise involving TAs. Specifically, the TA ombudsperson/liaison will help with the following situations: If you are involved in or aware of such an issue, please contact the TA ombudsperson, Mark Sheldon, at ta-ombudsperson@cs.tufts.edu or ta-liaison@cs.tufts.edu. If you are one of Mark's students or TAs and are not comfortable discussing the issue with him, please contact the back-up TA ombudsperson, Prof. Megan Monroe, at mmonroe@cs.tufts.edu.

Course Policies

Grading

Your final grade will be based on a weighted sum of your homework, projects, labs, and exam scores. Specifically, 45% of the score comes from homework (including projects, see below), 5% from labs, 20% from the midterm exam, and 30% from the final exam. I. e., your final course grade (G) is determined by the following formula:
G = 0.45 × HW + 0.05 × Lab + 0.2 × Emidterm + 0.3 × Efinal

All homework assignments are normalized to a 100-point scale. All weekly homeworks are weighted equally, and each project counts twice as much as a weekly homework.

Each project will comprise multiple installments submitted separately; that is, there may be an initial part of the project due one week, a more involved version a week later. We do not publicize the formula for combining the scores, but most of the score (80–90%) will come from the final submission.

We do not promise to 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.

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 your score will be excellent. If you've missed more, then use the portion of labs you've attended and submitted as your grade.

Questions about grades

You will receive all your evaluations online. When you receive evaluations of your work, you may have questions. You may suspect we've made a mistake. In fact, though we 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. If you feel there is a mistake that counts against you or if you would like clarification of an evaluation, follow this procedure, which is designed to help us support a large number of students and resolve issues that inevitably come up. We can't do this if all grading questions go through one or two people.
  1. Do not email grading questions. Follow the rest of these steps.
  2. First, read, re-read, and think about the comments in your evaluation. We often get questions that are directly answered in the evaluation, because students ask before they've even read the entire evaluation! Please read and think first. Often, figuring out what is meant on your own helps you learn more.
  3. Regrade requests on exams are done directly via Gradescope (see the link above). Click on the Regrade request link and follow the instructions.
  4. For homework, bring your remaining questions to any member of the course staff during regular office hours. You do not need an appointment. Any member of the course staff (TAs or instructors) can explain things and fix errors. Do not email or post grading questions to the course forum. We have extensive office hour coverage, so you can get help quickly without the need for any special arrangements.

    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.
  5. If a TA cannot help you in office hours, then consult your lab leader.
  6. If the situation is still not resolved, then contact the instructors by posting a staff-only question on the course forum.
    • Put [Comp15] Regrade request for assignment your_login in the subject.
    • Describe the steps you've followed inlcuding the names of any staff members you talked to. Briefly describe the issue and the way in which your previous efforts were not satisfactory.
    • Clearly say what you want done (e. g., if you would like us to reconsider a particular part of an answer on an exam, rerun some tests for a homework, etc).
    We'll check with the TAs you name and get your situation resolved. We will not look at cases that have not gone through the proper process. Contacting instructors or a grad TA outside of office hours does not count as a contact for purposes of the 2-week statute of limitations (see below).

Statute of limitations

You can get explanations and clarifications from the course staff at any time.

However, to encourage students to read and think about their feedback in time for them to benefit, there is a two week statute of limitations on grading corrections. We will work to address questions that come up on an assignment or exam for 2 weeks after the evaluations are made available to you.

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: http://uss.tufts.edu/studentaffairs/publicationsandwebsites/AcademicIntegrity.pdf.

We can and do make routine use of automated systems for detecting plagiarism. We do catch people, and Tufts does issue sanctions (up to and including suspension or even expulsion from the university). We take it seriously, and so should you.

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 C++. In other words, you should not be looking at other people's code (assignment solutions), and you should not show your programs to anyone else. This applies to family members, roommates, anyone, and to solutions from previous terms as well. Only you and the course staff are allowed to see your code.

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.

One way to avoid accidental plagiarism is to ensure that you are never looking at anyone else's code while you are writing your own. The only reason to look at somebody else's code is if you are helping them find a particular isolated bug. If this becomes an extensive project (e.g., you are asked to help a friend figure out why their linked list is seg-faulting and it becomes apparent that your friend does not understand the use of pointers in C++), please refer the student to a member of the course staff, or go away from the computer and talk to them about the general concept rather than collaborating on an extensive rewrite.

Discussion with others should be documented. An example might be including the following in a README file or in file comments: “Thanks to Sam Hugg for showing me how to initialize the linked list.” This includes TAs from whom you receive help. 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. For example, “I used the Wikipedia page on the Poisson distribution to learn more about generating random arrival times.”

While computers enable easy collaboration and copying both from other students and materials from the internet, it is possible to use these same computers to detect plagiarism and collaboration. The course staff reserves the right to use any available computational tools, or to write new tools, to search for infractions.

If any student does not understand these terms or any material outlined in The Academic Code of Conduct it is his/her responsibility to talk to the instructors or teaching assistants.

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). Remember: We have every project that has ever been submitted for this course available to us.

Policy on sharing course 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. Similarly, I have specifically designed the syllabus, exams, handouts, and lectures for the people who are enrolled in the course this term and those may not be shared outside this course. It is against Tufts policy for anyone to share any content made available in this course including course syllabi, reading materials, problems sets, videos, handouts, 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.

Written by Mark A. Sheldon and Matias Korman (msheldon@cs.tufts.edu, matias.korman@tufts.edu)
Last Modified: 2023-Feb-28