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:
- Follow all instructions in the assignment specification carefully!
- Submit your work on time!
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:
- Dean-requested extensions
- Automatic 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:
- At the start of the semester, each student receives a bank of 4 (virtual) tokens.
- If you submit your work late, token(s) will be automatically deducted from your account in the following manner:
- If your work is less than 24 hours late, one token wil be used.
- If your work is greater than or equal to 24 hours late, and less than 48 hours late, two tokens will be used.
- Work submitted later than or equal to 48 hours after the initial deadline will not be accepted and receives a 0.
- If you have no tokens left, we will not accept late work from you (unless you have a dean-sanctioned extension).
- Projects may have multiple submissions, e. g., there may be project part 1 and part 2 submissions. In such cases, each part counts as a separate assignment for token purposes. That is, if you use a token for the first part, you do not automatically get an extension on subsequent parts. Extending those would require their own tokens.
- We usually grade student assignments as soon as possible after the deadline. Thus, if you intend to use tokens, you should not submit until you are ready for your code to be graded — if you submit something before the deadline as a hedge, we may grade that, and if you submit again a day later, intending to use a token, we will not reevaluate the new submission.
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:- Course web site You're already here!
- Course on-line forum Sign up! See the description of the forum in this document.
- Course resources The reference page has many useful resources that we have made or found specifically for a Comp 15 level of understanding.
- 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!
- 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.
- 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:- A student having a problem with a TA
- A TA having a problem with a student
- A TA having a problem with another TA
- A TA having a problem with an instructor
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.- Both homework and exam grades will be reported on GradeScope
www.gradescope.com
- Do not email grading questions. Follow the rest of these steps.
- 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.
- Regrade requests on exams are done directly via Gradescope (see the link above). Click on the Regrade request link and follow the instructions.
- 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.
- If a TA cannot help you in office hours, then consult your lab leader.
- 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).
- Put
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.