Class meeting times and location: TuTh 1:25–2:40pm — Wilkinson Auditorium 021
Instructor: Dr. Rabih Younes
Duke e-mail: rabih.younes
Instructor
1-on-1 office hours are available by appointment (link to make appointments on our Canvas
homepage).
To provide
anonymous feedback about anything related to the course, please follow the link provided on our
Canvas homepage.
Teaching Assistants (TAs):
- Rui Cao (rc384) — Head TAs for projects
- Yang Xu (yx248) — Head TA for project autograding
- Wenxi Zhong (wz173) — Head TA for online student questions
- Suo Chen (sc831) — Head TA for plagiarism checking
TA office hours (location: Hudson Hall 214):
- MoWe: 9:45–11:45 (2 TAs)
- TuTh: 10:15–12:15 (2 TAs)
- Fr: 10:00–12:00 (2 TAs)
Course Description
Focuses on a range of topics that are central to both the design of operating systems and the programming
system-level
software. Students will apply knowledge of basic concepts in operating systems, networking, and programming towards
these two
areas. Topics covered will include concurrency, process management, hypervisors, networking, security, databases,
and
file systems. Students will be expected to demonstrate their understanding in these areas through a series of
programming
assignments covering these topics. Prerequisites: ECE 550D and ECE 551D. 3 Units.
Learning Objectives
Having successfully completed this course, the student should be able to:
- program using multiple processes and threads, sockets, and SQL;
- describe the OSI and TCP/IP layers and some of their main protocols;
- create, manupulate, and interface with databases;
- describe the basic functionalities of operating systems; and
- critique academic research papers and write reviews about them.
Textbook and Other Course Material
No textbook is required for this course. All needed material will be posted on Canvas.
Grading Policy
- Projects (50%): Five projects — long (start early!) — with the
following tentative grade distribution:
- Project 1: 7%
- Project 2: 7%
- Project 3: 11%
- Project 4: 11%
- Project 5: 14%
- Exams (40%):
-
Paper reviews and discussions (10%): Short reviews of two papers related to course topics.
- Late policy: Late submissions are not allowed unless you have a valid excuse. In that case, email your
instructor about it as soon as possible and wait for a decision (might involve a penalty, depending on the
excuse). Refer to this
list of common but unacceptable excuses borrowed from Dr. Bletsch. You are required to use Git to
keep track of previous
versions of your work and use a cloud storage
service to back up your
work (GitLab, GitHub, etc.). This way, if you something happens to your device, you could still resume your work
elsewhere (such as Duke computers) and you can always revert to a previous working version.
- Regrading policy: Regrade requests must be submitted no later than one week after the assignment grade
is released.
- Grading schema (minimum %):
- 97: A+
- 93: A
- 90: A-
- 87: B+
- 83: B
- 80: B-
- 77: C+
- 73: C
- 70: C-
- 0: F
Important Notes
Extremely important advice:
- Start as early as you can! Leave ample time for testing!
- Review class lectures after every class (before the next one).
- Manage your time well and work on multiple assignments (in different courses) concurrently. Split bigger
task into smaller (realistic) ones. Make sure you use a calendar and a to-do list.
- Ask questions! We are here to help! We want you to succeed!
We can only grade what we receive. Always check what you are submitting and make sure you submit the right files.
Contacting the instructor and the TAs:
- For questions that can be answered by a TA or the instructor: use Ed Discussion
- To contact a specific TA or the instructor: use email (do not use texting, social media, ...)
Misconduct
- Academic misconduct will not be tolerated and will be taken very seriously.
- You are expected to complete the assignments individually unless otherwise stated.
- Students are encouraged to share ideas, learn from each other, and learn from online sources, but cheating is
not tolerated.
- Any borrowed design/code/etc. — if allowed to be borrowed — should be properly cited.
- Students suspected violating the Duke Community
Standard will be reported.
- In addition to the measures taken by the administration, the affected assignment(s) will receive zero credit,
or
possibly -100% in extreme cases.
- If you are considering this course of action, please see me instead and we can work something out! I want
every
student in my course to be successful.
- Note that programming submissions will be compared to one another and to previous semesters using
state-of-the-art tools to detect signs of plagiarism.
Communications Support at Pratt
Graduate Communications and Intercultural Programs (GCIP) offers customized communications support for all graduate
students at Pratt. They offer one-on-one coaching in the Graduate Communications Center (GCC) for all communications
needs (e.g.,
academic writing, cover letters, presentations, pronunciation, master's theses/projects, PhD
dissertations/publication/prelims). Additionally, GCIP offers a communication workshop series to help build specific
communication skills throughout the
academic year. Visit
this link or email gcc-pratt@duke.edu.
Tentative Schedule
Week |
Date |
Topic |
Homework |
1 |
Thu 1/11 |
Syllabus + Intro |
|
2 |
Tue 1/16 |
Concurrency: Introduction |
|
2 |
Thu 1/18 |
Concurrency: Inter-Process Communication (IPC) |
|
3 |
Tue 1/23 |
Networking: Introduction |
|
3 |
Thu 1/25 |
Networking: Link Layer |
Proj 1 due |
4 |
Tue 1/30 |
Networking: Link Layer |
|
4 |
Thu 2/1 |
Networking: Network Layer |
|
5 |
Tue 2/6 |
Networking: Network Layer |
|
5 |
Thu 2/8 |
Practice/Q&A Session (professor traveling)
|
Proj 2 due |
6 |
Tue 2/13 |
Networking: Transport Layer + Application Layer |
|
6 |
Thu 2/15 |
Practice/Q&A Session (professor traveling)
|
|
7 |
Tue 2/20 |
Databases: Relational Databases |
|
7 |
Thu 2/22 |
Databases: Introduction to SQL |
|
8 |
Tue 2/27 |
Databases: Introduction to SQL |
|
8 |
Thu 2/29 |
Databases: Database Transaction Processing |
Proj 3 due |
9 |
Tue 3/5 |
Paper 1 Discussion + Exam 1 Review
| Paper 1 review due |
9 |
Thu 3/7 |
Exam 1 (up to databases)
|
|
10 |
Tue 3/12 |
NO CLASS (Spring Recess) |
|
10 |
Thu 3/14 |
NO CLASS (Spring Recess) |
|
11 |
Tue 3/19 |
Exam 1 Muddiest Points
|
|
11 |
Thu 3/21 |
OS: User-Kernel Interaction + Process Management |
Proj 4 due |
12 |
Tue 3/26 |
OS: Protection and Security |
|
12 |
Thu 3/28 |
OS: IO Handling |
|
13 |
Tue 4/2 |
OS: File Systems |
|
13 |
Thu 4/4 |
Practice/Q&A Session (professor traveling)
|
|
14 |
Tue 4/9 |
OS: Virtual Memory Management |
Paper 2 review due |
14 |
Thu 4/11 |
Paper 2 Discussion + Exam 2 Review
|
|
15 |
Tue 4/16 |
Exam 2 (comprehensive)
|
|
17 |
Fri 5/3 |
NO CLASS |
Proj 5 due |