Please read this page very carefully and in its entirety. It summarizes the general policies that apply to all courses I teach.
Courses co-taught with other faculty members often adopt a variation of these policies, please check the relevant course website or syllabus for details. Specific courses may also extend or modify these policies as noted on the relevant course website or syllabus.
I reserve the right to change these policies at any time; however, I try to only change them between semesters. If there is a pressing need to fix a policy while a class is in session, we will discuss the change at length in lecture and it will be announced very visibly.
Note that different policies apply to summer session and regular semester courses! See Summer Session for details.
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 I teach has a certain grading scheme, a breakdown of the different grade items relevant for the course (exams, projects, presentations, etc.) and an associated percentage weight for each category. You can find this breakdown on the course website or syllabus and I am usually willing to negotiate it (within reason) in the first week of the semester (or the first two days in summer session).
Each individual grade item is measured as a percentage relative to the highest actually achieved score for that grade item. So if the Final 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 I get the impression that you are “gaming” the relative grading system, I reserve the right to give everybody 0% on the grade item as well.
I 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):
|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 my opinion.)
There is an adjustment process for final grades as well, although I do not have to use it very often: If there are clear outliers, for example two students doing way better than everyone else, I will remove those students from the statistics and give them A+ grades. This has the effect of moving everybody else up, although it is unclear in advance by how much. If after removing outliers there is still nobody with a solid A grade (that’s 95% as far as I am concerned), I will add a fudge bonus that moves everybody up by a fixed percentage until I have at least one solid A grade. Do not rely on this adjustment process for your planning, I almost never have to use it here at Johns Hopkins!
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. I do not like giving grades in the first place, and I really do not like giving grades that sit right on the borderline. But it is what it is. Sorry.
Something must have changed in the world of students since 2015, because suddenly everyone seems very interested in how the grading script does rounding. The short story is this:
The relative score for a grade item is the number of points achieved
divided by the maximum number of points for the grade item in the
course as a whole.
The relative score is a floating point number between 0 and 1 (inclusive)
and is rounded to two significant digits, then expressed as a (whole)
So if you received 29 points and the maximum in the course was 37 points,
your relative score would be
29 / 37 = 0.783783... which is then rounded
79% by the grading script.
The remainder of the computation to determine the final grade is done
79% and not the original, unrounded, relative score.
Obviously I am too nice when it comes to grades.
If the weighted average of all grade items, which is what determines
your final grade in the course, comes out to
that turns into
80%; on the other hand
80.8333...% turns into
81% for the final grade. (Of course in this example that wouldn’t
make a difference, both percentages are a
B- grade in the end.)
In most of my courses, assignments and projects account for a large portion of your final grade. You can find detailed information about specific assignments and projects on the relevant course website, but some general rules apply:
Note that some of my assignments will 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 projects. For this and many other reasons I strongly encourage you to start every assignment as soon as it is posted.
Also note that you can submit a project as many times as you wish, we will grade only the last submission received before the deadline (but see Late Days and Grace Period, except for Summer Session courses). So if you are working on a project 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.
Depending on the course in question I may take attendance, and attendance may influence your final grade in a course. If the grading scheme for a course lists “Participation” as one of the categories, attendance is part of that percentage of your final grade. If a course is graded solely based on attendance (this is typical for some lab courses), attendance will obviously determine your entire course grade instead. (Also see Assessment.)
Regardless of whether attendance is graded or not, if you miss a lecture (for whatever reason) you’re on your own to obtain details of what was covered. I will not “repeat a lecture” in office hours; I will, however, gladly answer any specific questions you may have.
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:
Now, 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.)
In some courses, usually introductory courses, I may allow “cheat sheets” for exams. Make sure you double-check with me about this, don’t just show up with one to an exam, that may get you busted for cheating.
If a “cheat sheet” is allowed, it has to be a single letter-sized page in your own handwriting. Of course you can write on both sides sides of that page, and you can write whatever you want on it. However, you must hand in your “cheat sheet” with your exam if you use one. If you forget to hand it in, you may get busted for cheating.
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:
XXXreplaced by the last three digits of the course code. So if you’re trying to contact the staff for 601.220, you’d send email to
email@example.com it were. Since everybody on the staff will get a chance to answer your email, you should still end up with a relatively quick turn-around.
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…
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 me a copy of that letter as early in the semester as possible.
Since I cannot usually keep the details in my head for an entire semester, please remind me of your letter and the necessary accommodations, especially before exams (I may need some lead-time to arrange for alternate testing procedures).
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 course, I recommend that you attend from the first day and submit anything that might be due just like if you were actually enrolled. (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 me to be “manually enrolled” 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.
All of the written exams I give are 40 minutes long and there are almost always four pages of questions: one page of true/false, one page of multiple choice, one page of short answer, and one page of mystery (which can contain just about anything).
All of the written quizzes I give are 20 minutes long and there are usually two pages of questions; many of these will be true/false and multiple choice, but some may be more open-ended.
Exams and quizzes are cumulative, closed-book, closed-notes, open-mind and cover material from homeworks, projects, lectures, readings, and pretty much anything else we did in the course.
I do not give written exams in all courses, but I do so in many; unless I am teaching a course for the first time, I am happy to provide exams from earlier semesters for practice. I frequently like my questions enough to reuse at least some of them; doing all the practice exams you can get your hands on is therefore excellent preparation for the actual exam.
I never give out an “official” answer key, but you are welcome to discuss possible answers all you want, on Piazza for example.
This particular rule does not apply to summer session courses. See Summer Session for details.
For grade items that come with a specific deadline (most commonly projects in my courses) there is a grace period of one hour: If you submit within one hour after the posted deadline, we will still accept your submission but your total score for the grade item in question will be reduced by 10%.
Grace periods interact with late days in ways that may not be completely 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:
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 2 late days left, but you submit at a time when you would have needed 3 late days, both your 2 late days are gone and your submission receives 0 points. Be very careful about when exactly you submit something!
This particular rule works differently in summer session courses. See Summer Session for details.
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 Project 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; for summer session courses you must complain within two days of receiving your grade.
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 me as soon as possible to discuss the details. You do not need a doctor’s note if you miss a class or two, but of course it is possible that you will miss attendance points. 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 me 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 me. (Also see Late Days.)
We can only grade what we receive through the submission system; 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 (with whatever penalty that implies).
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 submission system, one that we can reconstruct from the log files, we will obviously make an exception. However, there has not been a genuine problem with the submission system in years. Indeed, the two most likely problems if you have trouble with a submission are (a) that your file is too large or (b) that you didn’t follow the naming conventions properly; read those error messages!
This particular rule does not apply to summer session courses. See Summer Session for details.
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. A 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.
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 normal planning process. (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.
Many of the courses I teach require some amount of team work. In some courses, however, the team work aspect is so important that it gets its own grade item. Since neither the teaching assistants nor I can directly observe how you and your partners work together, I usally ask you to “review each other” at some point. How often this is done depends on the particular course so check the course website and Piazza regularly for announcements and deadlines.
The goal of the peer review process is to evaluate the contributions you and your partners made to a particular project (or phase of a project as the case may be). Each of you is going to evaluate everyone else, including yourself! You assign a score from 0% to 100% to everyone, including yourself. We then average all the scores a student receives, and that average is the student’s final score for that peer review.
Before sending in the scores, please take a moment to reflect on your team’s work for the assignment or project you’re evaluating. You shouldn’t do anything “rash” since you don’t want your partners to do that to you either, right? Try to measure the genuine contributions of your partners to (a) the actual assignment or project and (b) your own education. Don’t assign a score based on how much you “like” somebody. Don’t assign a score based on the “lines of code” somebody wrote. In short, don’t assign a score based on any one particular thing. Think about all the things somebody did or didn’t do. The person who found the most errors in your code, although you got angry at them for doing so, might deserve a higher score than the person who kept telling you that everything is okay. The person who insisted on discussing your ideas for hours to make sure they result in a good design, or the person who helped you along by providing important sources, they all might have made a genuine contribution and thus deserve a good score from you.
Try to be as objective and as honest as you possibly can. When settling on everybody’s scores, please realize that a score of 59% or lower is equivalent to an F (failing) grade. So you should not use anything lower than 60% unless you have a really good reason. (Someone who literally did nothing at all might deserve a score lower than 60%, but hopefully nobody like that is on your team.)
You submit your peer review by sending an email to the staff list for the course in question, see Contacting Us above for details. The subject of your email should state clearly which assignment or phase of a project your peer review is for; it should also clearly state the official name of your team. For example, in 601.255 a typical subject line might be “Peer Review ALPHA for Trinomial Studios”. The body of your email should list, for each person on your team including yourself, their name, the score between 0% and 100% you award, and a brief justification for that score. The lower the score you award, the more detailed the justification should be. (Please stay objective and professional in your justification, don’t call anyone names.)
Please make sure that you don’t send your review to the wrong email address by mistake! Please make sure that you don’t forget to provide a score and a justification for yourself as well! If you do not submit a score for a team mate it defaults to 100%; if you do not submit a score for yourself it defaults to 0%.
I often use Piazza in my courses, mostly as a replacement for email, mailing lists, and other bulletin board systems. I 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.)
I 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, I may disable anonymous posts for the remainder of the semester.
If the grading scheme for a course lists “Participation” as one of the categories, Piazza activity is generally taken into account there. On the one hand you should not worry about the exact process by which that is done, you should just start using the system; on the other hand I always get pressed for a rule so I made one up: One relevant post on Piazza for each week of class means that you are doing okay in terms of participation. You should keep in mind that Piazza activity is usually correlated with a good grade in the course regardless of the formal “Participation” grade. (Also see Assessment.)
If you have to miss class due to a religious holiday, please inform me as early in the semester as possible to discuss the details. It is of course possible that you may miss attendance by not coming to class. 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. I will do whatever I can to avoid scheduling exams or presentations on a religious holiday, but you may have to remind me of your constraints as soon as dates and times for such grade items are published. (Also see Late Days.)
We are using a web application for homework submissions. Just go to http://gaming.jhu.edu:8888/ and follow the instructions. If the system complains, note carefully what it doesn’t like and ask if you can’t figure it out. If your submission fails due to a bug in our web application we won’t count it against you. (Just be sure that it’s really our fault and not yours!)
The maximum size for a submission is 2 MB (that’s 2*1024*1024 bytes) so you need to keep an eye on the size of your final archive. Note that due to the web framework we used there’s no error message for a submission that is too large, the website just “hangs forever” as it were. Before you send an angry “The crappy submission system doesn’t work!” email, double-check the size of your archive!
Your source code and related files for a project will all go into a
tarball” as it were.
The archive should be named
xxx replaced with the last three digits of the course code,
y replaced with the number of the assignment or project, and
jhed replaced with your JHED ID (without the
@jhu.edu at the end).
For example, Peter’s submission for Assignment 3 in 601.229 would be
cs229-assignment-3-pfroehl2.tar.gz under these rules;
don’t copy/paste that!
Unless instructed otherwise on the project handout itself, you should
have no directories in your archive, just files.
Unless instructed otherwise on the project handout itself, all of your
files should be text files (
README, source code, etc.) and not
strange binary files (so not
.jpg or, oh noes,
The tarball should contain no derived files whatsoever
.class files, no
.o files, no
.jar files, no executables
except for scripts you may have written, etc.), but should allow
building all derived files.
Each problem on a given project will usually state how you should name
your various solution files, and all of those should be included in the
You should also include a
README.doc or worse!) that contains any notes
and comments you may have about the various problems.
Some problems will ask you to put specific content in the
file, for others it’s up to you what you say about a given problem.
Also make sure that you clearly state your name and email address
at the top of the
In fact, make sure to include your name and email address in every
file you turn in (well, in every file for which it makes sense to do so anyway)!
If we handed you code for a project, for example interfaces you’re supposed to implement or test programs that your implementations are supposed to pass, you should include those in your submission. Also, except in cases where the project says otherwise, you’re not supposed to change files like that! Indeed, before grading, the TAs will replace the files you submitted with the originals. So if you changed them, you may lose points because your solutions no longer work with the originals.
It’s very easy to use
gzip incorrectly and hose your entire
submission that way. Always make a backup of your files before you
create the archive!
It’s very easy to use
gzip incorrectly and create an
incomplete submission that way. Always double-check your archive by
extracting it into an empty folder and building/testing there!
Summer session courses run on a very compressed schedule, so many of the time-related course policies need to be different from courses taught during a regular semester. The big changes are as follows:
|Policy||Regular Semester||Summer Session|
|Grace Period||1 hour||none|
|Grade Complaint||1 week||2 days|
|Grading Scheme||1 week||2 days|
Summer session assignments are usually due at 10:00 pm EDT, but check the assignment in question. For every (partial) hour the assignment is late, you will lose 10% of your score. For example, if you submit your final version at 11:35 pm, you lose 20% of your score.
I try to be as explicit as possible about all my expectations, but sometimes I 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.
(It’s amusing to note that some students interpret this clause as the instructor shirking his responsibility. If you’re one of those students, you may want to try to grow up: After all, it’s because of you and your esteemed predecessors that this clause exists. I would much prefer a world in which it wasn’t necessary to have it.)