Exams
- Quizzes: There will be short quizzes to encourage students to keep up with the lectures, labs, and reading. These quizzes will not be announced. They will be designed to be straightforward if you've been keeping up.
- Midterm: There will be an in-class midterm: Wednesday, March 08, 2023.
- Final: There will be a final exam in the time and place scheduled by the university. No rescheduling will be permitted. Final exam schedules are usually posted during the last few weeks of the semester.
Unless stated otherwise, all exams above will be closed book. The midterm and the final exam will cover material from class meetings, labs, readings, homeworks, and any other assigned material.
Grading
Your final grade will be determined by the following weights:
- 5%: Homework and quizzes
- 25%: Lab assignments
- 25%: Midterm exam
- 45%: Final exam
Work in the "homework" category will be graded loosely. To receive credit, you must make a credible effort to solve the problem; mistakes will not be penalized, in general. Everything else will be graded strictly, unless explicitly noted otherwise.
Turn-in policy, slack days, and lateness
Late homeworks will not be accepted. We will drop your lowest two homework scores.
Labs will be accepted until a week after they are due. That is, we require that you turn in labs no later than 7 days after they are due, at the same hour as the original lab. We call that day and hour the lab’s drop-dead time; please forgive the expression.
Late labs incur penalties. However, you have 5 slack days that forestall the penalty clock. Here are the details:- Each submission has a 59-minute grace period; for example, if the lab is due at 7:00 PM and your submission time is 7:59 PM, it will be viewed as on time. After that, the lab is viewed as a full day late.
- Each day late incurs a full letter grade penalty, for example, A to B or B+ to C+. Per the previous item, fractions of a day late count as a full day late.
- There is a floor: labs that are 100% correct and submitted up to one week after the deadline will get at least a C (labs that are X% correct and, say, 6 days late would get X% of the points that a C represents, etc). The intent of the floor is that if you do all of the work by the late submission deadline you will pass.
- By spending slack days, you give yourself an extension by that many days. For example, if you turn in the lab two days after the real due date, and spend two slack days, then there is no grade penalty from lateness; alternatively, if you spend that number and turn in the lab three days after the real due date, you get one letter grade penalty.
- You must indicate the number of slack days that you are taking for a given lab at the time when you submit that lab.
- Slack days do not change the drop-dead time: regardless of the slack days spent, the drop-dead time is exactly one week after the lab is due.
If you do not hand in an assignment, or hand in a blank assignment, you get a 0 for that assignment. It is much better for you to hand in an assignment that receives a C for lateness than to simply give up on the assignment.
Exemptions of the lateness rules will be allowed in three cases:
- Illness or genuine crisis. Crisis requires a supporting note from campus authorities. Note, illness exemption does not require a doctor’s note, per university policy.
- Death in the immediate family.
- Accommodation for students with disabilities, as prescribed by the university.
No extensions will be given for any other reason (including job interviews, friends requiring support, work on research publications, etc.).
Collaboration, source material, and academic integrity
Here is this class's collaboration and integrity policy.
- For whatever reason, students sometimes think we aren’t serious about this. Then they find out we are serious, and it's unpleasant for them. If you cheat, you will own the consequences.
- The work that you turn in must be yours. Code that you turn in must be code that you wrote and debugged. Do not discuss code, in any form, with your classmates or others outside the class (for example, discussing code on a whiteboard is not okay). As a corollary, it's not okay to show others your code, look at anyone else's, or help others debug. It is okay to discuss code with the instructor and TAs.
- You must acknowledge your influences. This means, first, writing down the names of people with whom you discussed the assignment, and what you discussed with them. If student A gets an idea from student B, both students are obligated to write down that fact and also what the idea was. Second, you are obligated to acknowledge other contributions (for example, ideas from Web sites or other sources). The only exception is that material presented in class or the textbook does not require citation.
- You must not look at, or use, solutions from prior years or the Web, or seek assistance from the Internet. For example, do not post questions from our lab assignments on the Web. Ask the course staff, via email or Campuswire, if you have questions about this.
- You must take reasonable steps to protect your work. You must not publish your solutions (for example, on GitHub outside our class repo, or on Stack Overflow), in this semester or any future semester. You are obligated to protect your files and printouts from access.
- If there are inexplicable discrepancies between exam and lab performance, we will overweight the exam, and possibly interview you. Our exams will cover the labs. If, in light of your exam performance, your lab performance is implausible, we may discount your lab grade (if this happens, we will notify you). We may also conduct an interview or oral exam.
More about collaboration
You can discuss the labs in general terms with your classmates. What does "general terms" mean? First of all, per the policy above, you cannot look at the written work of anyone else (besides your partner for a given assignment, if the assignment is done in pairs). Second, after discussing a problem with another student (or the course staff!), go do something else (read a book, watch a movie) for half an hour before going back to work on the assignment. If you can't remember what the person said after a half hour, you didn't really understand it.
More about source material
You are welcome to use existing public libraries in your programming assignments (such as public classes for queues, trees, etc.) You may also look at code for public domain software such as Linux. Consistent with the policies and normal academic practice, you are obligated to cite any source that gave you code or an idea.
Per the policy above, you may not look at any course material relating to any project or lab similar to this course's assignments. You may not look at work done by students in past years' courses. You may not look at similar course projects at other universities. If you are unsure about whether a particular source of external information is permitted, contact the instructor before looking at it.
Statement on AI-based tools
You are not allowed to use AI based tools such as Copilot for help with any of the code assignments for this class. These tools are obviously powerful, and when used carefully can help productivity. However, they are also susceptible to outputting incorrect code. The goal of this class is to teach you systems programming, and give you the tools to both write better code and understand existing code, including code produced from these tools. Consequently, it is important that you do the work by yourself, rather than using these tools. We will treat any use of these tools as a violation of the collaboration policy, and will handle them in the same way as any other violation.
More about academic integrity
The above guidelines are necessarily generalizations and cannot account for all circumstances. Intellectual dishonesty can end your career, and it is your responsibility to stay on the right side of the line. If you are not sure about something, ask.
Regrades
You can submit any graded item for a regrade, under the following conditions. First, you need to submit a clear, written statement that explains the request (what was wrong and why). Second, you must submit your request within one week of when the graded work was returned. Third, we will regrade the entire exam, homework, etc. (so a regrade can potentially decrease your grade.)