A study of the three major concepts of a modern operating systems: virtualization, concurrency and persistence. Topics include the memory hierarchy (including caching and virtual memory), memory managment, processes, processor scheduling, address spaces, threads, the critical section problem, locks, sockets, file systems, and system performance analysis.
Upon completing this course, our goal is for you to be able to:
- Describe how an operating system mediates interaction with:
- CPU and RAM by virtualizing those resources by means of the process abstraction.
- Persistent memory (hard disk, Flash memory) through the file system abstraction.
- The Internet through the TCP socket abstraction.
- Write useful programs that:
- Interact directly with the CPU, RAM, keyboard, and monitor on behalf of a user.
- Operate concurrently without errors.
- Empirically analyze the performance of operating system components.
- Address cybersecurity issues that arise in these contexts.
Part 1: User Space
Part 2: Kernel Space
A total of 10 formal projects will be assigned throughout the semester; approximately one
project per week. Each project will have three levels to which it can be completed, with each level building upon the previous level. In general:
- A Level 1 project contains a basic implementation of the core ideas explored in the project.
- A Level 2 project is a more complete implementation of those ideas.
- A Level 3 project goes beyond this to undertake a deeper exploration of the assignment ideas.
Each project will be evaluated via specifications (a set of criteria) for each level. Projects meeting all the criteria for a
given level will receive credit for that level; projects that do not meet all the criteria will not receive credit for that level.
Each project submitted by the assigned deadline of at least Level 1 quality receives
one additional credit as an on-time bonus.
Once a project is graded, if a student wishes to revise it to achieve a higher level, the student should first meet with the
professor to discuss the planned revisions. The student may thereafter resubmit the revised project when ready.
Each student should have a GitHub account. Each student should create one private GitHub repository
that contains all of their code for Part 1 of the course and additional GitHub repositories as
specified for the Part 2 projects. The student should add Dr. Ferrer as
a contributor to each repository. For each project, there will be a Teams assignment in which
you will copy and paste the URL for the project’s GitHub repository. When each project is due,
the instructor will download the repository onto his own machine for grading.
Students may also complete a free project. This is completely optional, but it is
an opportunity to earn project credits pursuing a topic of personal interest.
The free project consists of a program written in the Rust programming language on any topic
of interest to the student. Any student wishing to pursue a free project should submit a project
proposal by Monday, April 21. The instructor will advise the student as to what would constitute
Level 1, Level 2, and Level 3 performance on the proposed project.
All free projects are due by the end of the final exam period for the course. There is no
on-time bonus for a free project; it must be submitted by the deadline to receive any credit.
A total of three in-class essays will be assigned over the course of the semester. Each essay
topic is posted on the course web page. In preparing for the in-class essay, each student may
make use of whatever resources they would like - readings, assignments, classmates, anything on
the Internet, or any other resource.
The in-class essay itself is closed-book, closed-note, and closed-device. Paper will be provided
for writing the essay, which must be submitted at the end of the class period.
The essays will be commented upon by the instructor and returned. Each student should then
revise their essay, taking into account the instructor comments. The revised essay should be
typed and submitted electronically. The original handwritten essay should also be resubmitted.
The revised essay will be due one week after the original essays are returned.
Students are welcome to make use of additional resources when revising their essays; proper
citation should be included for each resource. Each revised essay will then be assessed as
Level 1 or Level 2, depending on the quality of the essay. Quality will be assessed
according to the following criteria:
- Writing quality, including proper spelling, usage, and grammar.
- Demonstrated depth of understanding the essay topic.
- Appropriate use of examples from course projects.
One additional credit will be awarded for on-time submissions of the revised essays.
Each project and essay earns one credit for each level achieved. Submitting an assignment by the
specified deadline earns one additional credit.
There are 52 total credits available for the semester: 4 credits for each of
10 formal projects, 3 credits for the free project, and 3 credits for
each of the three essays.
Grade |
Minimum Project Credits |
Minimum Essay Credits |
Minimum Total Credits |
A |
Level 2 on 10 projects |
Level 2 on 3 essays |
47 |
B |
30 |
Level 2 on 2 essays Level 1 on 1 essay |
38 |
C |
20 |
Level 1 on 3 essays |
29 |
D |
12 |
Level 1 on 2 essays |
18 |
- Note: All late submissions/revisions must be received before 11:30 am on Friday,
May 9, the end of the final exam period for the course.
Commitments
It is my ultimate goal for this course, and my teaching, to
develop your academic skills, advance your learning
of computer science concepts, and support the liberal arts in general. To do so
will require commitments from myself and from you toward meeting this goal.
Active Participation
I will be prepared and on time for class each day, ready to use class time
to help you understand the course material. I will respectfully listen to,
understand, and answer questions asked in class.
You are expected to attend class and actively participate in discussions every day,
answering questions, asking questions, presenting material, etc. Your
participation will be respectful of your classmates, both of their
opinions and of their current point in their educational journey, as we
each approach the material with different backgrounds and contexts.
Constructive Feedback
I will keep office hours and be available for outside appointments, and respond
to emails within one business day (not including weekends).
I will provide feedback on group presentations within one day. For exams, projects,
and homeworks, I will provide graded feedback within two weeks.
You are encouraged to provide constructive comments for improving this
course for furthering your learning throughout the semester.
There will be an opportunity for
anonymous course feedback
at the end of the term, in which I hope you all participate. Through your
feedback I can improve this course and others for future students.
Academic Integrity
I will abide by the above syllabus and grade your work fairly.
As stated in the Hendrix Academic
Integrity Policy, all students have agreed to adhere to the following principles:
- All students have an equal right to their opinions and to receive constructive criticism.
- Students should positively engage the course material and encourage their classmates to do the same.
- No students should gain an unfair advantage or violate their peers' commitment to honest work and genuine effort. It follows that any work that a student submits for class will be that student's own work. The amount of cooperation undertaken with other students, the consistency and accuracy of work, and the test-taking procedure should adhere to those guidelines that the instructor provides.
- Members of the Hendrix community value and uphold academic integrity because we recognize that scholarly pursuits are aimed at increasing the shared body of knowledge and that the full disclosure of sources is the most effective way to ensure accountability to both ourselves and our colleagues.
More details of our departmental stance on integrity can be found in the
Hendrix
Computer Science Academic Integrity Policy
Learning Accomodation
I will make this classroom an open and inclusive environment,
accommodating many different learning styles and perspectives.
Any student
seeking accommodation in relation to a recognized disability should inform me
at the beginning of the course.
It is the policy of Hendrix College to accommodate students with disabilities, pursuant
to federal and state law. Students should contact Julie Brown in the
Office of Academic
Success (505.2954; brownj@hendrix.edu) to begin the accommodation process.
Physical and Mental Health
I am willing to work with you individually when life goes off the rails.
Coursework and college in general can become stressful and overwhelming, and
your wellness can be impacted when you least expect it. You should
participate in self-care and preventative measures, and be willing to
find support when you need it.
- The Office of Counseling Services
welcomes all students to see a counselor
in a private and safe environment regardless of their reasons for making an
appointment. Counseling services are available to all Hendrix students
at no cost.
- Student Health Services
provides free healthcare to Hendrix students. Services are provided by an
Advanced Practice Registered Nurse (APRN) in collaboration with a local physician.
The Offices of Counseling Services and Student Health Services are located in the white house
behind the Mills Center for Social Sciences at
1541 Washington Avenue.