-
CS 416 is a senior undergraduate course in operating systems.
-
We will cover the basic concepts in operating systems, such as processes, threads, virtual memory, file systems, and communication protocols.
-
We may also cover a few interesting research topics.
-
For the programming assignments, we will be using C.
-
Students must have taken an undergraduate courses in Systems Programming and Computer Architecture.
-
These pre-requisites translate into CS 214 (which itself requires an undergraduate course in Computer Architecture, such as CS 211) OR the combination of ECE 331 and ECE 351.
-
The programming assignments require good programming skills and a lot of time and effort.
-
Note that these requirements are very serious; you will not be able to keep up with this course's load, if you don't have the suggested background, programming skills, and time.
-
Even if you do have the background and the skills, the course can require lots of technical research and reading for the programming assignments, so come very motivated!
- 20% Midterm
- 60% Homeworks and Programming Assignments
- 20% Final Exam
-
Exams and written homeworks in CS 416 must be strictly individual work.
-
Programming assignments will be done in groups of 3 or 4 students.
-
Collaboration with other groups on programming assignments is encouraged at the level of ideas.
-
Feel free to ask each other questions, brainstorm on algorithms, or work together at a blackboard.
- You should not, however, copy the actual code for programming assignments, or copy the wording for written homeworks.
- This will be considered cheating and will be punished severely!
- Please review the CS department's cheating policy to be sure you do not have difficulties.