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 12:00pm-1:15pm
- Where: Klaus 1456
Grades¶
Grades will be released from T-square.
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
- All parts are graded based on what is turned in with the last part (B or Lab 3 and C for Lab 4). Thus, corrections can be made to earlier parts.
- Challenge questions from any part can be turned in with the last part as well.
- Each challenge question 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
- All final project proposals must be approved
Prep Questions¶
- Due at beginning of class
- No late submissions
- Must be turned in to your prep GitHub repo (https://github.gatech.edu/cs3210-fall2017/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. 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.
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 may use a comparison tool to check if there are similarities with these solutions or the solutions of other students.
- 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*, 1:30-2:30 PM in KACB 3100**, Tim Andersen (mailto:andersen)
- Office hours: Tue/Thu*, 1:30-2:30 PM in KACB 3100**, Kyle Harrigan (mailto:harrigan)
- Office hours: Mon, 10-11 AM in KACB 3100, Meenal Maheshwari (mailto:meenal)
- Office hours: Fri, 12:30-1:30 PM in KACB 2108, Anita Ramasamy (mailto:anita)
- Office hours: Wed, 1-2 PM in KACB 2100 Gauresh Vanjare (mailto:gauresh)
* Dr. Andersen and Mr. Harrigan will share office hours and will only hold hours on class days that they teach.
** Office hours will in KACB 1212 on 8/31 and 9/19. On 9/7, 9/14, 9/21, and 9/26 office hours will be held in the Juniper Room of the Student Center.