Course | Operating Systems |
Number | 325 |
Instructor | Matt Jadud |
Office | Danforth Technology Building 102B |
Phone | |
CPO | 2188 |
Office Hours | |
Office hours are by appointment. I am available for appointments:
If none of these times work, it will be difficult for us to meet, but not impossible. (I am in class or meetings most of the times that are not listed.)
I am more than happy to chat, and sometimes you can stop by during those hours and I'll be free; however, I schedule my time pretty tightly, so it is possible I may ask you to make an appointment and/or follow up via email.
In this course, we will implement a kernel operating system for the x86 architecture. To frame the programming exercises that lead to the development of a complete operating system, we will also be reading and discussing our course text and a selection of classic and current articles regarding systems, be they single-machine, single-user operating systems, or filesystems that span the globe.
In this course, you will develop an understanding of the fundamental concepts of operating systems through code study, implementation, and practical experience with the Linux operating system.
We will explore:
Critical to the study of operating systems, but not explicitly covered in depth in this course include:
Both of these texts are free and open texts.
Completion of Data Structures or permission of instructor.
For every unexcused absence beyond two, you may be fined a 5% grade penalty for each class missed. (There are roughly 28 class meetings; on your 3rd absence, you have missed 10% of class, so a 5% penalty is generous.)
Much of the work in this course will require use of the computer, so these policies are designed to help you better understand how to be effective in a technology-rich environment.
When doing work that is collaborative in nature, it is essential that you cite your collaborators in all instances. Failure to do so could be construed as academic dishonesty.
I will make use of the institutional policies laid down regarding academic dishonesty. In the real world, plagiarism and claiming others' work as your own could result in you losing your job. Our goal is to support you in your learning, and copying the work of others (or inappropriately reusing work found on the WWW) never constitutes good learning. CITING YOUR WORK is always, always essential.
Work | 55% |
Assessments | 30% |
Attendance | 10%|
Participation | 5% |
"Work" means work done in-class, homeworks, laboratories, presentations, etc. as assessed by the instructor, TAs, or (if appropriate) your peers. Put simply, "more than half of your grade comes from doing excellent work throughout the course."
Often, different groups will read different articles, and share and discuss a common topic from multiple perspectives. Your participation in discussions from an informed perspective is essential.
The Berea College grading scale makes clear that:
Most work that any of us do is competent. I will communicate with you bi-weekly about where I believe you stand in the course, so that you can focus your efforts appropriately.
A plus may be earned through exceptional attendance, teamwork, professionalism and collegiality, and participation. A plus is completely at the discretion of the instructor.
Any questions regarding grades should never be directed at TAs, but instead always directed to the instructor of the course.
You have a number of expectations for me as a professor in this class:
Don't hold your hands -- metaphorically. This is a difficult expectation: I want to challenge all of you, but it is also my job to make sure everyone learns and masters material. I will work to strike the right balance for the group enrolled this term.
Clear objectives on assignments. I will add an objectives section to all assignments going forward, and do my best to make sure they are understandable.
Timely feedback. I will aspire to returning feedback on assignments within three days, one week at the most. Where assignments stack or directly inform each-other, I will make sure that feedback comes in before the next assignment is due. (For example, in larger programming assignments, feedback between them is essential.)
Clear instructions on assignments. I will aspire to provide clear instructions without being overly prescriptive. You are responsible for informing me when I have not been clear enough. Given that you don't want me to "hold your hands," part of that means that I can't spell every single step of every single assignment out for you. Part of the challenge, in many cases, will be for you to work through material on your own, and part of that sensemaking process is coming to understand the assignment. It is a balance, and we need to communicate continuously with each-other to find that balance.
I want many things for students in my classes, and I very much want you to help me achieve these goals.
In years past, I used Chickering and Gamson's Seven Principles of Good Undergraduate Education as my guide; in many ways, they still apply. However, as Bereans, we are all committed to the eight Great Commitments ; I ask that we aspire to those as we challenge and learn with each other in this course.
As systems have grown in power and complexity, the software which interfaces between the hardware and a developer's application has similarly grown. Today, the "operating system" might be a virtual machine on an embedded computer in an automotive entertainment system, or it might span a cluster of hundreds of physical devices, presenting a single, unified interface to the developer. In this course, we will explore the breadth of these systems, beginning with traditional concepts of process management and concurrency on embedded, single-core devices, all the way up to issues of communication and workload distribution in multicore systems, both real and virtual.
The Computing and Digital Crafts Lab is open Sunday through Thursday from 7:00 to 9:00 PM (except on evenings of convocations). The primary teaching assistant and several other TAs will be able to answer questions about the content in the course during consultations in their Lab hours. You are strongly encouraged to make use of the help available in the Computing and Digital Crafts Lab, as well as in the instructors' office hours. Best results are obtained trying to solve problems before asking for help, and you should be prepared to show what you have already tried. Topics in this course build throughout the course, so you should be sure to do your best to keep up with the class, so as to not fall behind. No question to which you do not know the answer is "dumb" unless it goes unanswered because it remained unasked.
Students who have a disability that may prevent them from fully demonstrating their abilities should contact Cindy Reed, MSW, LCSW, the Disability Services Coordinator at (859) 985-3212, or by email at cynthia-reed@berea.edu, to discuss accommodations necessary to ensure full participation in this course. Upon request, this syllabus can be made available in alternative forms.
This website is provided under a CC BY-SA license by the
The Berea CS Department.
Fall 2013 offering of taught by Matt Jadud