Syllabus
Table of contents
- Prerequisites
- Textbook
- Format
- Extenuating Circumstances
- Grading
- Regrade Policy
- Cheating vs. Collaboration
- Subject to Change
- Communication
- Auditing Policy
- Pass/Fail Policy
- Special Needs and Services
- Conduct
- Academic Integrity
- Statement of Intent for Inclusivity
Prerequisites
Operating systems are very complex. So big that it is impossible for us to cover everything in one semester! Therefore, it is very important that you have a broad range of background. For this course, the prerequisites are:
- C programming (strict)
- Linux shell (strict)
- CS 2200 - Systems and Networks (strict)
- CS 2110 - Computer Organization and Programming (recommended)
- CS 3220 - Processor Design (recommended)
Requirements marked as strict are absolutely critical for you to succeed in this course. If you feel that you do not have the necessary background, our strong recommendation is for you to build it up before taking CS3210.
Textbook
- Official Text: xv6: a simple, Unix-like teaching operating system
- xv6 codebase
- (optional) Operating Systems: Principles and Practice, Thomas Anderson and Michael Dahlin
- (optional) Computer Systems: An Integrated Approach to Architecture and Operating Systems, Umakishore Ramachandran and William D. Leahy, Jr.
Format
The course will be fully in-person, virtual option will not be available this semester. Lecture slides will be made available to students. Lectures will NOT be recorded.
Attendance
You are not required to attend the lectures. Your grade will not be impacted by you not attending the lectures, but your ability to complete projects and assignments may be severely impacted.
Assignments
The course will have several assignments. These assignments are categorized into introductory assignments and labs. All assignments are mandatory.
Introductory/Preparatory Assignments
These assignments are meant to help you ramp up for the course and are an easy way to get points. The following assignments are under this category:
- Self-evaluation Quiz
- Points are given for participation, not for score.
- Introduction Notecard
- Lab 0
All introductory/preparatory exercises are to be done individually and turned in on time. No late credit will be given.
Labs
Labs are the major projects of the course, and compose a significant portion of your grade. All labs will be submitted through Gradescope. Submissions are subject to all policies of the autograder (which are documented in the autograder manual).
Partner Policy
Labs (with the exception of lab 0 and lab 1) may be done individually or in pairs. If a lab is done in pairs, the lab will be submitted to the autograder as a group lab, and the same grade will apply to all members of the group.
The number of late days (discussed later) your group has will be equal to the minimum of the number of late days any individual member of your group has. Any use of a lab late day will consume a late day from all members of the group.
Lab Late Policy
Labs are expected to be turned in on-time. However, we understand that things may come up over the course of the semester. We have given each student three (3) late days to use over the course of the semester (three late days total, not per lab). The following policy defines how labs will be graded with respect to late assignments:
All labs will be submitted through the course’s autograder. The submission time for the lab will be the timestamp given to the assignment by the autograder upon submission. If there is a drift between the time observed by the autograder and the time observed by the student, the autograder’s time will be used (don’t risk it, don’t submit your code last second – I have marked students as late for submissions <10 seconds past the deadline).
If the submission timestamp is after the due-date of the assignment, the following policy will be applied:
- If the student or group has any “late days” remaining, the autograder will automatically apply the student or group’s late days, 1 at a time, extending the student or group’s due time by 24 hours. This will occur until the student or group is either out of late days, or the extended deadline of the submission is after the submission timestamp.
- If the assignment is now on-time (using the extended deadline), it will receive full credit.
Otherwise, the following late policy is applied:
- If the lab is late by (0-24] hours - The lab’s grade will be 80% of what it would have been (a 90% becomes (.9 * .8 = 72%)).
- If the lab is late by (24-48] hours - The lab’s grade will be 60% of what it would have been (a 90% becomes (.9 * .6 = 54%)).
- If the lab is late by (48-infinity] hours - The lab’s grade will be 0%.
The submission the student’s grade will be based off of is the last submission made to the autograder, even if that submission is lower in score than a prior submission. Late days will not be refunded, even if the student does not improve their score with the use of the late day.
Hand Grading
Students’ labs will also be hand-graded. In this context hand-grading refers to any grading not done by the autograder (not all hand grading is done entirely by hand). This generally includes: checking for subtle errors or inefficiencies the autograder may miss, plagiarism/cheating detection, and general code readability/quality checking.
Hand grading is 20% of lab grades, but hand-grading scores may be negative (e.g., if we’ve found you hard-coded the answers to autograder test #5).
Exams
The course will have two exams.
Midterm Exam
The course will have a midterm exam on the date indicated in the schedule. The exam will be administered in class during the usual class period.
Final Exam
The course will have a final exam (consult the course schedule for the date/time for your section).
Due to university policy, you are not allowed to take more than 2h 50min minutes on the final exam.
Extenuating Circumstances
Institutional excuses (medical, etc.) are treated on a case-by-case basis in accordance with university policy. Please make sure to have Student Life contact us if you have an excuse as soon as possible. While we will make every attempt to accommodate excuses, please note that the instructor’s decision will be final in such matters.
Grading
Course grades will be determined according to the following criteria:
Component | Weight |
---|---|
Self-evaluation Quiz | 2% |
Introductory Notecard | 1% |
Lab 0 | 2% |
Lab 1 | 10% |
Lab 2 | 15% |
Lab 3 | 20% |
Lab 4 | 10% |
Midterm Exam | 20% |
Final Exam | 20% |
Regrade Policy
Hand grading is error prone, and we will likely make mistakes over the course of the semester. We allow students to request regrades, with the exception of the final exam, to ensure that they have the proper grade for the work they’ve turned in.
We will happily regrade any hand-graded assignment you request except the final exam (no regrade requests will be entertained for the final exam due to the university timelines for grade submission). The regrade policy is as follows:
- The goal of a regrade is to ensure you have the correct grade for the entire assignment, not just to return points. We will regrade your entire assignment if a regrade is requested.
- To request a regrade, please submit a regrade request to the teaching staff. The request should include the following:
- What question(s) do you believe we made a mistake on?
- What mistake do you believe we made?
- Why do you believe your answer is correct for this question?
- Regrade requests must be submitted within 2 weeks of an assignment being returned. We will not regrade assignments after that window.
Cheating vs. Collaboration
Collaboration is a very good thing. On the other hand, cheating is considered a very serious offense and is vigorously prosecuted. Vigorous prosecution requires that you be advised of the cheating policy of the course before the offending act.
Cheating includes (but is not limited to):
- Sharing code or text on the project (with the exception of students within your group).
- Using resources such as ChatGPT or any such AI tools to assist you in your assignments.
- Using someone else’s code or text in your solutions.
- Consulting project code or text that might be on the Internet.
- This semester we are actively and aggressively looking for cheating. If you cheat there is a very high likelihood you will be caught.
We are aware of the solutions that students of this and other versions of this course have put on the Internet. Please do not put your solutions on GitHub either during or after you take this course. This constitutes cheating even if you are no longer in the course and can be prosecuted through the university policy.
We will strictly adhere to the academic integrity policy. Absolutely no concessions will be given. Therefore, if you are in doubt about whether something is cheating or collaborating, please err on the side of caution, and ask for a clarification on the policy.
Suggestions for working with partners
Working in a team is an excellent opportunity to improve your group design skills, lessen your workload, and give you some companionship during the debugging struggles 3210 can bring. However, we often encounter struggles when working with someone else, especially when our expectations are not the same.
Here are some suggestions for talking points to ensure you and your partner (or potential partner) are on the same page:
- Be clear up-front about your expectations. Do you expect to get 100% on every project, or is an 80% good enough for you?
- How early do you intend to start? Will you be working day 1, or likely try to get the work done more towards the deadline?
- How do you intend to collaborate? Will you design together and code separately? Team code?
- How will you communicate with each other if something is going wrong?
Dealing with unproductive group members
Every semester some groups have an issue where one partner feels like they are putting in more effort than the other. When these instances occur, its very important you communicate. Tell you partner if you feel they didn’t pull their weight on some part of the project. Otherwise, they may not realize that you’re unhappy with the situation. Talk through strategies to ensure an equal division of work, and how you’ll know if someone is putting in more work than the other.
Unfortunately, sometimes groups unable to resolve differences on their own. If this happens, please alert the instructor, and we will attempt to find a different remediation (either additional discussion and planning, or by adjusting group).
What if my laptop breaks or gets stolen?
If you have a problem with your laptop (or don’t have one), you will have trouble with this course. The computer labs available do not have the tools we use on them. Hence, it is your responsibility to ensure that you have the resources to successfully complete the assignments by the stipulated deadline in the course.
Let us know right away if you are having computer issues. We can’t fix broken computers, but we will try to work with you if you let us know ahead of time. We can also always help fix problems with your software or VM, if you reach out to us early.
Subject to Change
Due to the highly dynamic situation (e.g., global phenomena outside of the instructor’s control, conference travel, etc), the syllabus and course schedule may be subject to change. It is the responsibility of students to check Canvas, Ed/Piazza, email messages, and course announcements (through course Canvas and Ed/Piazza) to stay up-to-date with any course logistics changes. We will make every effort to communicate changes via these mechanisms.
Communication
We will be using Ed for asynchronous communication. ALL communication regarding this course must be via Ed. This includes questions, discussions, as well as private messages.
Auditing Policy
This course will not offer an audit option.
Pass/Fail Policy
A student interested in registering in pass/fail mode must approach the course instructor and determine the minimum course pass/fail requirements. For this class, minimum course pass/fail requirements include full participation (attending classes and engaging in discussions) and completion of all assignments and exams, and obtaining a grade equivalent to or greater than B in the course. Therefore, pass/fail option is highly discouraged, because the amount of work involved will be similar to taking the course for a letter grade.
Special Needs and Services
If you are a student with learning needs that require special accommodation, contact the Office of Disability Services at (404) 894-2563 or http://disabilityservices.gatech.edu/, as soon as possible, to make an appointment to discuss your special needs and to obtain an accommodations letter. Please also e-mail me as soon as possible in order to set up a time to discuss your learning needs.
Your mental health and well being is important to us. If you are having a difficult time or just need to talk, please make use of campus counseling services. These services are available in the Smithgall Student Services building (Flag Building) between 8:00 am and 4:00 pm, Monday through Friday. There is also a 24/7 service for students in crisis. Again, do not wait till the end of the semester to get help.
Conduct
Be respectful of one another as well as the instructors both in class and out. Be considerate and professional in online Ed/Piazza posts, emails, and other conversation related to the course.
Please help to provide a distraction-free learning environment in class, and be considerate to your teachers and other students by minimizing in-class distractions such as cellphone use, eating, etc.
Please plan to attend the lectures. Students are responsible for all material covered in class as well as any announcements made in class (as well as on Ed/Piazza and Canvas). We make our best effort to put information on Ed/Piazza or Canvas but cannot promise everything said in class will make it on there.
Academic Integrity
Georgia Tech aims to cultivate a community based on trust, academic integrity, and honor. Students are expected to act according to the highest ethical standards. For information on Georgia Tech’s Academic Honor Code, please visit http://www.catalog.gatech.edu/policies/honor-code/ or http://www.catalog.gatech.edu/rules/18/.
Any student suspected of cheating or plagiarizing will be reported to the Office of Student Integrity, who will investigate the incident and identify the appropriate penalty for violations.
Statement of Intent for Inclusivity
As a member of the Georgia Tech community, I am committed to creating a learning environment in which all of my students feel safe and included. Because we are individuals with varying needs, I am reliant on your feedback to achieve this goal. To that end, I invite you to enter into dialogue with me about the things I can stop, start, and continue doing to make my classroom an environment in which every student feels valued and can engage actively in our learning community.