600.226: Data Structures (Spring 2017)

Course Policies

Please read this page very carefully and in its entirety. It summarizes important policies for this course and you need to be thoroughly familiar with all of them if you want to avoid nasty surprises. Some of these policies appear on the syllabus, but not all of them.

Note that these policies are a blend of how Peter and Joanne usually run their courses and apply to both sections of the course. If you’re used to one instructor or the other, you will find some differences here.


Academic Integrity

It is your responsibility to adhere to the Department Integrity Code and all other applicable university regulations. Please read those policies carefully, they apply in full.

If you’re worried about academic integrity, the simplest rule to follow is to do all your own work and to cite all your sources:

Unless otherwise noted, never post significant portions of any grade item publicly! If, for example, you have problems with a piece of code, do not post code directly from your solution; instead, post the smallest snippet of code you can come up with that exhibits the problem you want to ask about. And please do not maintain your code in a public repository!


Each course has a certain grading scheme, a breakdown of the different grade items relevant for the course (exams, assignments, presentations, etc.) and an associated percentage weight for each category. You can find this breakdown on the course syllabus.

Each individual grade item is measured as a percentage relative to the highest actually achieved score for that grade item. So if the Midterm Exam was out of 40 points, but the highest actually achieved score was 36, then whoever has 36 points gets 100% while everybody else gets a percentage relative to that.

If the highest actually achieved score is 0 for some reason, everybody gets 0% on that grade item. If we get the impression that you are “gaming” the relative grading system, we reserve the right to give everybody 0% on the grade item as well.

We will determine the final grade you receive as follows: Percentage scores for grade items in each category are averaged, that average is multiplied by the weight of the category, and finally all weighted averages are added to yield your overall score. Your final grade is then determined by the following fixed scale (there is no “curve” in the traditional sense):

Score Grade Size
100 A+ 1
99 – 93 A 7
92 – 90 A- 3
89 – 87 B+ 3
86 – 83 B 4
82 – 80 B- 3
79 – 77 C+ 3
76 – 73 C 4
72 – 70 C- 3
69 – 67 D+ 3
66 – 60 D 7
59 – 0 F 60

This grading scale is in line with the way grade point averages are computed here at Johns Hopkins. (Note that the A+ grade is a “special distinction” and will only be awarded, regardless of numerical outcomes, if it is warranted in our opinion.)

Note that all letter grades are subject to our overall evaluation of your performance in the course. We reserve the right to make adjustments to this scheme if, for example, there are a few high-performing outliers in the course.

It is sad but true that there will always be some students who are “just one percentage point” away from the next higher grade. That is the game we play in school. We do not like giving grades in the first place, and we really do not like giving grades that sit right on the borderline. But it is what it is. Sorry.

Assignments and Projects

In this course, assignments and projects account for a large portion of your final grade. You can find detailed information about specific assignments and projects on the course website, but some general rules apply:

  1. We will not accept late submissions for full credit. Not ever! You have to submit before the deadline to be sure that your submission actually arrives in time, so if you submit in the last minute you might not make it and that’s your responsibility.
  2. We may grade (parts of) an assignment automatically, especially in the case of programming assignments. Following the specifications for an assignment exactly as given is very important for this to work. Even the “correct” output values may lose points if you do not also follow the “correct” format for it.
  3. Obvious disregard for your work will get you 0 points on the assignment. For programming assignments you show “obvious disregard” by handing in code that either doesn’t compile or that fails so miserably that we can be sure you never actually tested it. For written assignments you show “obvious disregard” by making horrendous amounts of spelling errors or handing in text files that are formatted so badly that no sane reader would want to waste their time on them.

Note that some of our assignments may require that you learn something by yourself, for example how to use a certain library that wasn’t covered in detail in lecture. This is quite intentional because you have to learn how to learn something, especially in the case of programming assignments. For this and many other reasons we strongly encourage you to start every assignment as soon as it is posted.

Also note that you can submit an assignment as many times as you wish, we will grade only the last submission received before the deadline (but see Late Days and Grace Period). So if you are working on an assignment with multiple problems, you can submit once after you get done with each one. That way you can be sure that we have at least a partial submission just in case you never get done with all the problems. Just make sure that each submission contains all finished problems as we will not “fish” different parts out of different submissions.

Broken Laptops and Other Disasters

This is not only about “broken laptops” but also about “crashed disks” and “dogs that eat homework” and “files deleted by accident” and all the rest. You are responsible for keeping your work safe and in a state that is ready for submission regardless of the glitches that life throws your way. Luckily there are many ways for doing that these days, for example:

  1. Get yourself a free Dropbox account (or a free account from one of their many competitors.) Keep all your course work in a private cloud folder that syncs automatically. (And read this for details on how to get even deleted files back).
  2. Learn how to use a revision control system such as git and sign up for free private repositories with a service like Bitbucket. Heck, for students github offers free private repositories as well.
  3. Make regular backup copies of your folders for class on a USB stick before you switch of your laptop, just on the off-chance that it will not boot back up again the next time you try.
  4. If you don’t trust cloud providers with your precious data, and if dealing with USB sticks is too tedious, learn how to set up your own private server and use tools such as git and Unison and the like. (That’s what Peter does a lot.)

Now, having used at least one of those approaches faithfully, if your laptop really goes up in flames or if any of the other “bad things” mentioned above happen, you can use another computer to access your files and finish your work. (Please don’t try to get an extension with a sob story about your rusting disk drive, it simply won’t work.)

Contacting Us / Asking Questions

If you have questions or concerns, you are probably interested in getting a reply quickly. The more people you can ask, the more likely it is that someone will answer you quickly. With that in mind, please proceed as follows:

  1. Ask all questions on Piazza, not through email. There are several ways you can do this, depending on the nature of your question as detailed below.
  2. Post publicly on Piazza. But please don’t post before you search previous discussions, that would be embarrassing. Once you post your question, everybody will see it and you can often get an answer within minutes. Certainly the best option if your question can be asked in public.
  3. Post privately on Piazza for all instructors if your question can’t be public due to ethics violations (contains partial homework solution for example) or is of a sensitive or private nature. Since everybody on the staff will get a chance to answer your question, you should still end up with a relatively quick turn-around.
  4. Post privately to a staff member directly. That’s almost certainly a really bad idea because now you’re looking at a turn-around time between an hour to an entire weekend. Please only do this is you are sure that nobody else but this person can help you. That’s exceedingly unlikely.

Speaking of asking questions: While we all agree that there are no “stupid questions” as it were, there certainly are questions that make it obvious that the person asking didn’t do any work themselves. And why should anyone help somebody like that? If you want to ask better questions and improve your chances of getting useful answers, you should probably read these articles now. After all, you’ll keep asking questions for the rest of your life, so you should probably start learning how to do it well…

Disability Services

If you have any kind of disability that requires accommodation in the course, you should obtain an accommodation letter from Student Disability Services. Please send your section instructor a copy of that letter as early in the semester as possible.

Since we cannot usually keep the details in our heads for an entire semester, please remind us of your letter and the necessary accommodations, especially before exams (we will need some lead-time to arrange for alternate testing procedures).

Enrolling Late

If you enroll late you will not be able to “make up” any grade items that you missed because their deadlines have already passed. Even if you cannot enroll on time, for example because you’re on the waiting list for a section, we recommend that you attend from the first day. You will have to ask Joanne to manually enroll you in Blackboard for the course so that you can submit anything that might be due just as if you were actually enrolled. Do this in a private post on Piazza, and include your full name and your JHED ID (Blackboard login). In other words, we will not ignore your on-time work simply because you had to formally enroll late.

Speaking of waiting lists: Please don’t ask us for permission to enroll in the course before the first week of the semester is over. There are usually quite a few students who drop during that week, so it’s frequently possible to avoid a lot of extra work (on all sides) by just “waiting it out” as it were.


Exams are cumulative, closed-book, closed-notes, open-mind and cover material from assignments, lectures, readings, and pretty much anything else we did in the course. They will be relatively short, but we’ll try to give you plenty of time to complete them.

We will provide exams from earlier semesters for practice. But keep in mind that this is a blended course, so the exams will be a blend of our styles as well. We will not give out an “official” answer key, but you are welcome to discuss possible answers all you want, on Piazza for example.

Grace Period

For grade items that come with a specific deadline (i.e. homework) there is a grace period of one hour for the initial deadline: If you submit within one hour after the posted deadline, we will accept your submission but your total score for the grade item in question will be reduced by 10%.

Grace periods only apply to the initial assignment deadline, not to any deadlines that are extended through the use of your late days. The interactions between the grace period and late days is not obvious at first, so here’s an example. Say an assignment is due at 10:00 pm, and let’s say that your submission would have netted you 90 points. There are the following possibilities:

  1. If you submit before 10:00 pm, up to and including 10:00 pm itself, you would receive 90 points.
  2. If you submit after 10:00 pm but before the grace period is over, so anytime between 10:01 pm and 11:00 pm, you would receive 81 points instead (a penalty of 9 points).
  3. If you submit after 11:00 pm and you still have a late day left, then you use up one late day and your new deadline is 24 hours after the original deadline; so in this example the new deadline is 10:00 pm the next day. That new deadline does not come with a new grace period.
  4. If you only submit after 11:00 pm and you don’t have a late day left, then you will receive 0 points (just as if you had never submitted the assignment).

Be very careful about when exactly you submit something!

Grade Complaints

If you have a problem with the grade you received for an assignment or exam, you are free to complain about it—and indeed you should. However, we can’t very well deal with complaints about Assignment 1 in the last week of the course. Therefore you must complain within one week of the time you received your grade for us to process the complaint. Remember that all grading questions must be asked privately on Piazza for all instructors so that it can be handled consistently and quickly. Be sure to include your Blackboard ID when asking about grades.

It might be obvious, but “one week” means “seven days” means “seven 24-hour periods” and nothing else. If you submit your complaint later than that, we will not deal with it. Obviously it’s enough to send your initial complaint (with details about what exactly is wrong) before that deadline, it’s not required that the entire process of resolving your complaint takes place before the deadline (although that’s usually a good idea).


If you have to miss class due to illness, please inform us as soon as possible to discuss the details. You do not need a doctor’s note just because you miss a class or two, and you also do not need a doctor’s note if you decide to compensate for a brief illness with a late day.

If you require further accommodations due to a long-term illness however, you must request a doctor’s note and hand it to your section instructor once you return to school; details of the illness are not important, but a clear statement that you could not attend school for a certain amount of time is required.

Note that Student Health and Wellness does not provide written doctor’s notes, but you can have them contact the Dean of Student Life who in turn will contact your instructors, including us. (Also see Late Days.)

Incomplete Submissions

We can only grade what we receive through Blackboard submissions; in particular, we do not accept email submissions. If you forget to include a required file in your submission, or if you include the wrong version of a file, the only way to “fix” that oversight is by making another submission within the submission window (with whatever penalty that implies). Therefore, we strongly recommend leaving yourself time to download your submission from Blackboard, open the zip in a clean folder, and recompile and test your submission. By the time we grade and realize files are missing, it will be too late for you to resubmit.

The increasingly common “…but I had it done on time, I just forgot to put it into the archive, you can check the last-modified time on my files, here is a screenshot of my desktop folder…” scenario is not a proper submission and we will not look at whatever you email us in this regard.

If there was a genuine problem with the Blackboard system, one that can be documented somehow, we will obviously make an exception. However, this is extremely unlikely to happen. Indeed, the two most likely problems if you have trouble with a submission are (a) that you uploaded your file but forgot to actually submit (b) that you didn’t follow the naming conventions properly. If you can’t download your submission, we can’t either.

Late Days

You are responsible for tracking how many late days you have used up already and how many you have remaining!

All students start the semester with a budget of five late days; however at most two can be used for any particular deadline. Each late day can be used to extend the deadline of a grade item by exactly 24 hours. Late days cannot be used to delay an exam or a presentation. Late days cannot be used to make up attendance. Late days have to be used in their entirety. You can only use a late day if you have one left in your budget; a team can only use a late day if all team members still have a late day left.

All you need to do in order to use a late day is submit a grade item after both the deadline and the grace period are expired. There is no need to “request” a late day in advance, it’s solely based on when you submit. Of course you must still have a late day available, otherwise the late submission will result in a score of 0. Note that since late days are used up automatically based on your submission, it’s very important that you weigh your options carefully. You cannot “get back” a late day after the fact because you (or one of your team mates) made a mistake.

Note that each 24 hour period that you are late with your submission will eat up a late day, regardless of whether or not you have enough total late days. So if you have 1 late day left, but you only submit at a time when you would have needed 2 late days, both your late day is gone and your submission receives 0 points. The best way to avoid misunderstanding and 0 grades is to submit often - before the deadline, in the grace period and if necessary, in the late days period.

Late days are a valuable commodity and you should use them sparingly. They are primarily intended to help you deal with unexpected circumstances, so you should not make them part of your regular scheduling. (Also see Illness and Religious Holidays.)

Note: You cannot use late days to delay an assignment until after the semester is over (meaning after the final exam for your course has been given). You can, however, delay an assignment that’s due on the last day of classes into reading period; you do this at your own risk, we are not responsible when you do worse on other exams as a result of spending your reading period working on an overdue assignment.


We will use Piazza for all communication in this course, and also as a place to provide additional resources such as class notes and code examples. We look at Piazza as an asynchronous extension of the class room, a place where we all (students, instructors, assistants) can interact to deepen our understanding of the course material and to discuss how things are going in general.

Note that Piazza is a very important channel of communication. If you miss an important announcement because you are not properly signed up or you do not check the site on a regular basis, that is your problem. (Yes, this applies to clarifications for homework assignments as well.)

We allow semi-anonymous posts on Piazza but that does not mean that you can abdicate all responsibility for what you say. Please be professional and use anonymous posts responsibly instead of calling people names and being generally obnoxious. If things get out of hand, we may disable anonymous posts for the remainder of the semester.

Religious Holidays

If you have to miss class due to a religious holiday, please inform your section instructor as early in the semester as possible to discuss the details. Religious holidays are known to you well ahead of time, so you should plan the use of your late days accordingly to ensure that you will not have to rush anything. We will do whatever we can to avoid scheduling exams or presentations on a religious holiday, but you may have to remind us of your constraints as soon as dates and times for such grade items are published. (Also see Late Days.)

Universal Insecurity Clause

We try to be as explicit as possible about all our expectations, but sometimes we fall short in that effort. So whenever you are unclear about the requirements for a given grade item or about any of the policies for a course, it is your responsibility to contact the course staff and ask for clarification.