Catalog description // Communication // Grading // Labs // Text books // Homework // Collaboration // Class meetings // Staff // Office hours Miscellaneous
Prereq./Coreq.: CS 105
Design and implementation of operating systems, including processes, memory management, synchronization, scheduling, protection, filesystems, and I/O. These concepts are used to illustrate wider concepts in the design of other large software systems, including simplicity; efficiency; event-driven programming; abstraction design; client-server architecture; mechanism vs. policy; orthogonality; naming and binding; static vs. dynamic, space vs. time, and other tradeoffs; optimization; caching; and managing large codebases. Group projects provide experience in working with and extending a real operating system.
We will distribute assignments on the course web site, and make all announcements through Piazza. The course web site has the schedule for the term. There is a Sakai site which will be used for gradebook, assessments, and Zoom links.
This class is organized as a flipped classroom. Lectures are prerecorded, and students watch them
There is a large focus in this class on hands-on development of an operating system, organized into 9 separate labs. Our meetings on Wednesdays from 6-8 PM will be a time for me to work with you on your labs.
Note that there are two sections of this class. Each has separate classroom time, but both share a single lab time.
The assessments can be taken starting on Thursday of the week that the material is covered in the schedule. If you don't succeed in getting 100% on the assessment, you can retake the assessment starting on Thursday the following week. Note that you'll need to request to retake by filling out this retake request form. (NOTE: As of 9/9/20, no need to fill out the form.) The assessment questions are drawn from a random pool, so each attempt may be different.
Thus, you can retake an assessment as many times as you need (although at most once per week).
Please feel free to come to office hours or to ask questions on Piazza to prepare for an initial assessment, or a retake.
The three hours reserved for the final exam will be used as a final assessment opportunity. You can retake any assessments you'd like during that three-hour window.
The labs take a small OS (called JOS) and, through nine different labs that build one upon the next, grow it to a fairly capable OS. (See the Labs tab in the toolbar at the top of this page.)
Labs are worked on in teams of up to 2. Teams are your choice, and your partner need not be in the same section of the class.
Labs are assessed in the following way: an autograder (which you can run on your own) assesses points for a various lab. Once the autograder shows that your solution has achieved all the available points, you may submit the code. The code submittal process is very similar to the process that's found in industry:
Thus, a lab is not finished until it is corect and complete.
Although you may begin coding the next lab while the previous lab is out for review, you may not submit the next lab for review until the previous lab has been approved. (I'll show you techniques for using Git to integrate changes made to the previous lab due to its code review into the next lab you've already started work on).
It's up to you how many labs you complete (which has a direct effect on your final grade).
We'll have a 2-hour scheduled lab from 6-8 PM on Wednesdays whose purpose is to help you with your labs. Each team will be in a Zoom breakout room and I'll visit room to room helping each team.
Labs are time-consuming (and, at times frustrating). However, I guarantee you'll learn a lot, and that many of you will get quite a bit of enjoyment and satisfaction from their completion.
It is important to me that each member of the team understand the entirety of the code that is submitted. Thus, for each submittal, I'll meet with the team and ask questions about the submittal to ensure each member of the team completely understands what has been submitted. If there's a lack of understanding, we'll schedule further meetings as needed.
There are no intermediate due dates for the labs There is a final due date: all code reviews will stop at 8AM, PDT, Monday, Nov. 30, so no labs will be approved after that time.
Although there are no explicit intermediate due dates, don't expect to be able to wait until late in the semester, and still be able to finish all the labs. One large constraint is the code review process. I'll get responses back to you within 48 business hours, but the number of cycles of review before the lab is accepted is potentially unbounded.
I'm available to answer questions about labs and look over your code during office hours. Please feel free to post questions (and answer other's questions) about the labs on Piazza. Although you can discuss code, don't provide solution code (in either your questions or in your answers). One-line code snippets are fine, as is discussion about any problems you are having. So, don't paste in your several lines of code that attempt to solve an exercise in the lab and ask what's wrong with the code. However, you may describe what your code is doing and ask questions about that.
Grade | Lab Requirement | Lab Challenge problems (no more than 2 per lab) | Number of satisfactorily completed learning targets |
A | Labs 1-9 | ≥8 | ≥20 |
A- | Labs 1-9 | ≥6 | ≥20 |
B+ | Labs 1-8 | ≥6 | ≥19 |
B | Labs 1-8 | ≥6 | ≥18 |
B- | Labs 1-8 | ≥4 | ≥18 |
C+ | Labs 1-7 | ≥4 | ≥17 |
C | Labs 1-7 | ≥4 | ≥15 |
C- | Labs 1-7 | ≥2 | ≥15 |
D+ | Labs 1-5 | ≥0 | ≥14 |
D | Labs 1-5 | ≥0 | ≥13 |
CS 134 relies on the following three books:
In addition, the class relies on tons of reference material on x86 instructions, PC hardware specs, etc. All that material is available on the reference page.
Do not post your lab solutions on publicly accessible web sites (such as a public repository on GitHub).
Class sessions will be held on Monday and Wednesday:
A lab is also scheduled for this class on Wednesdays from 6pm to 8pm (PDT). I'll be present during lab hours, available to answer lab questions. Zoom links for class sessions can be found on the Sakai calendar.
Professor
Neil Rhodes
Piazza
We'll use Piazza for questions. Use private posts to me only for specific code examples or personal issues—instead, prefer public posts so everyone can share in the question and answer, and so that other students can answer as well.
If you need accommodations for a documented disability, please talk to me or contact Brandon Ice, the HMC Student Accommodation Advisor (bice@hmc.edu). You will find information about disability resources on the college website: https://www.hmc.edu/ability. Students from the other Claremont Colleges should contact their home college';s disability officer. If I learn of a potential violation of the college's gender-based misconduct policy (see https://www.hmc.edu/tix), I am required to report it to Leslie Hughes, the HMC Title IX Coordinator. If you want to speak to someone confidentially, the following resources are available on and off campus: the EmPOWER Center (909-607-2689), the Monsour Counseling Center (909-621-8202), and the McAlister Chaplains (909-621-8685).
Top // CS 134 home // Last updated Tue Sep 22 10:15:01 AM PDT 2020