General Information¶
CS-3210 is primarily intended for senior students (motivated junior students) and graduate students who want to concentrate on systems. To benefit from the course, low-level programming skills (e.g., C or ASM programming) and preliminary knowledge on computer system (e.g., CS 2200) and architecture (e.g., CS 2110). You will be asked to design and implement core components of an operating system through labs, assignments and a final project.
Prerequisite¶
- C programming (strict)
- CS 2200 - Systems and Networks (strict)
- CS 2110 - Computer Organization and Programming (recommended)
- CS 3220 - Processor Design (recommended)
Meetings¶
- When: TR 3:05pm-4:25pm
- Where: Klaus 1456
Grades¶
- Preparation and In-class Assignments (10%)
- Quiz (20%)
- Lab (10% per lab = 50% + 10% bonus)
- Multipart labs (3 and 4) are treated as one lab
- Final project (20%)
- Proposal presentation (5%)
- Demo & presentation (10%)
- Write-up (5%)
Labs¶
- Labs build on each other. Students are responsible for having each lab working in order to do the next lab.
- Each lab except Lab 1 has challenge questions. Each challenge question is worth 5% of the lab points. Other questions are worth 2% of lab points each.
- Labs must be tagged and handed in through the github repo. No emailed submissions.
- Labs are graded using the official vagrant trusty32-based configuration. Use other configurations at your own risk.
- Students must use their assigned github repo for working and should commit and push daily.
- Labs 3 and 4 are multipart Labs
- Each part accumulates late days. E.g., if Lab 4A is 1 day late, Lab 4B is on time, and Lab 4C is late 2 days, the student loses 30% for 3 late days.
- The 5 grace late days may be applied to one of the parts, e.g., Lab 4C, but the student will still lose 10% for Lab 4A.
- Each lab has challenge questions. Each of these is worth 5% of the TOTAL lab grade.
- If a student turns in the code on time but turns in challenge or regular questions late, the whole lab is considered late.
Final Projects¶
- All students must do a final team project
- Students may work alone but groups no larger than 4 students
- Lab 6 will not be allowed as a final project this semester
Prep Questions¶
- Due at beginning of class
- No late submissions
- Must be turned in to your prep GitHub repo (https://github.gatech.edu/cs3210-spring2017/cs3210-prep-YOUR-USERNAME.git). No other submission methods accepted.
In-Class Assignments¶
- Due a week from the end of tutorial at midnight
- Must be turn in to prep github repo.
- Are counted the same as prep questions
- No late submissions accepted.
Equipment Problems¶
- Students are responsible for having a working laptop or computer available to do the assignments
- Deadlines will not be extended because of equipment problems (broken, lost, or stolen laptops). Please see an instructor immediately if this impacts your ability to meet a deadline.
Other Policies¶
Similar to UW’s CSE 451 and MIT’s 6.828, CS3210 provides 5 days of grace period (late days) and strictly follows the cheating policy (read GT’s Academic Misconduct Policy).
Note
Late days: Late Labs are assessed a 10% fine per day. All other assignments (prep, tutorials, etc.) must be turned in on time (generally either 11:59 pm or start of class) for credit.
You may have 5 late days forgiven on ONE assignment deadline only. (For multipart labs, this can be applied only to one part.) This is for emergencies (e.g., broken laptops and other non-official excuses). Late days may not be spread to multiple assignments. Once used, they are gone.
Institutional excuses (medical, etc.) are treated on a case-by-case basis in accordance with university policy.
Important
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.
- For this semester, the policy is simple: don’t cheat:
- Never share code or text on the project.
- Never use someone else’s code or text in your solutions.
- Never consult project code or text that might be on the Internet.
- On the other hand, for this class, you are strongly encouraged to:
- Share ideas.
- Explain your code to someone to see if they know why it doesn’t work.
- Help someone else debug if they’ve run into a wall.
If you obtain help of any kind, always write the name(s) of your sources.
Text¶
- Official Text: xv6: a simple, Unix-like teaching operating system
- (optional) Linux Kernel Development
- (optional) Operating Systems: Principles and Practice, Thomas Anderson and Michael Dahlin
Staff/TA¶
Feel free to send us an email to make an appointment, or if you have any questions/concerns.
- Office hours: Tue/Thu*, 2-3 PM in KACB 3100, Tim Andersen (mailto:andersen)
- Office hours: Tue/Thu*, 2-3 PM in KACB 3100, Kyle Harrigan (mailto:harrigan)
- Office hours: Friday, 12-1 PM in KACB 3100, Meenal Maheshwari (mailto:meenal)
- Office hours: Monday, 12-1 PM in KACB 3100, Pranit Shah (mailto:shah)
- Office hours: Wednesday 10-11 AM in KACB 1315, Vivek Iyer (mailto:iyer)
* Dr. Andersen and Mr. Harrigan will share office hours and will only hold hours on class days.