Course Information
Course Title | Computer Systems |
Course Number | CS 5600 |
Semester | Fall 2015 |
Prerequisites | None |
Contact Information
Role | Name and Email | Address | Office Hours |
---|---|---|---|
Instructor |
Therapon (Theo) Skoteiniotis (skotthe@ccs.neu.edu) |
401 Terry Ave. Suite 100, Room 142, Seattle, WA, 98109. |
Thursday 3:00 - 4:00pm |
Assistant | TBD | TBD | TBD |
Grader | TBD | TBD | TBD |
Course Description
Studies the structure, components, design, implementation, and internal operation of computer systems, focusing mainly on the operating system level. Reviews computer hardware and architecture including the arithmetic and logic unit, and the control unit. Covers current operating system components and construction techniques including the memory and memory controller, I/O device management, device drivers, memory management, file system structures, and the user interface. Introduces distributed operating systems. Discusses issues arising from concurrency and distribution, such as scheduling of concurrent processes, interprocess communication and synchronization, resource sharing and allocation, and deadlock management and resolution. Includes examples from real operating systems. Exposes students to the system concepts through programming exercises.
Grading Policy
The class will consist of 2 assignemnts and 4 projects with the following weights.
Assignments | 15% (7.5% each) |
Projects | 80% (20% each) |
Instructor's discration | 5% |
The final grade for a student is calculated as the weighted average of the preceding list and rounded up to the nearest integer. The mapping to a letter grade uses the following scale
A | [95, 100] |
A- | [90, 94] |
B+ | [85, 89] |
B | [80, 84] |
B- | [75, 79] |
C+ | [70, 74] |
C | [65, 69] |
C- | [60, 64] |
D | [0, 59] |
Attendance
You are expected to attend all lectures.
Missing Lectures
If you have to miss a lecture please inform the course staff. Materials covered for each lecture, readings, tutorials, assignments, are available on the course web page.
Assignment Extensions
Assignment extensions are at the discretion of the instructors. If you would like to discuss a possible extensions talk to the course instructors in advance (minimum of 48 hours).
Academic Honesty
You are expected to read, understand and follow the University's policies on Academic Integrity
During assignments you are encouraged to discuss the problem with classmates on piazza or other forums. You are however not allowed to share solutions.
Working Individually
All work submitted for assignments expected to be completed individual must be your own work. You are not allowed to share code. Code that is identical or similar will be penalized and reported to the appropriate University authorities.
Working in Teams
All work submitted for assignments expected to be completed as a team must be the team's work. You are not allowed to share code with people outside your team or with another team. Code that is identical or similar will be penalized and reported to the appropriate University authorities.
Diversity/Disability Statements
If you require support during the course due to disability please ensure that you are already registered with the University's Disability Center and contact your course instructors in order to coordinate any support needed during the course.
Helpful Links / Resources
- Git
-
Editors
-
Emacs
- Emacs
- Online Documentation. Also installed in your VM.
- Emacs Wiki. Extra information on how to configure and extend Emacs.
-
Vim
- Vim
- Online Documentation
- Vim Awesome. Vim Plugins.
-
Emacs
-
The GNU Debugger (GDB)
- GDB
- Online Documentation.
- Debugging with GDB. Video by Michael Lee.
-
Misc Developer Tools
- Valgrind [doc | tutorial]
- Exuberant CTAGS. Tutorial for both Emacs and Vim. Look at editor specific plugins as well.
- CCIS Systems Group Howto