Home | CS439 |
Welcome! This course is an introduction to computer systems software---low-level software abstractions with an emphasis on the connection of these abstractions to underlying computer hardware.
The second goal is for you to learn how an OS manages the resources of a computer to better the user experience. We will focus on the core ideas in operating systems: virtual addressing, memory protection, concurrent programming, file systems, and scheduling, to name a few. Often, but not always, such ideas are best explained as abstractions that some software layer (usually the operating system) provides above imperfect hardware to make that hardware usable by programmers and users. The intent is for you to understand such abstractions well enough to be able to synthesize new abstractions when faced with new problems.
Many of the ideas and abstractions that we will cover are relevant not only to OS kernels but also to many large-scale systems. Thus, a third goal of this course is to enhance your ability to understand, design, use, and implement such systems.
During this course, you will have an opportunity to learn a lot of practical information about how programming languages, operating systems, and architectures interact and how to use each effectively. The written and programming assignments are designed to build on and enhance the class material. You will hear the concepts in class (or on video!), read about them in a book, analyze them, and put them in practice in the programming assignments. In addition to the technical knowledge and skills you will acquire in this course, you will also learn to work collaboratively, take responsibility for your own learning, consider new ideas and perspectives as they relate to system and project design, and develop confidence, resilience, and perseverance.
Alison Norman she/her | Teacher | ans@cs.utexas.edu | |
Allison Chen she/her | UGCA | allisonchen@utexas.edu | |
Dorcas Wong | UGCA | dorcaswong@utexas.edu | |
Joseph Wilson | UGCA | josephwilson@utexas.edu | |
Kai Celaya-Alvarez they/them | TA | kylecalvarez@utexas.edu | |
Kim Ton she/her | UGCA | kimton@utexas.edu | |
Kshitij Kapoor he/him | UGCA | kshitij@utexas.edu | |
Lindsey Bowen she/her | UGCA | lindseyb803@utexas.edu | |
Sruthi Gunturu | UGCA | sruthigunturu@utexas.edu | |
Thomas Bunch | UGCA | tebunch@utexas.edu | |
Class Meeting Times and Location:
Sections 50460, 50465, 50470: MW 9a-11a
Sections 50475, 50480, 50485: MW 11a-1p
This course will meet in person in GDC 1.304 in the common case. In special circumstances, we will meet virtually and the Zoom links will be found in Canvas.
An overview schedule is available on the course website. A weekly schedule will be posted to Canvas. You must attend the section for which you are officially registered, though if you need accommodations around this requirement, please let me know.
Some classes or portions of classes may be recorded using the Lectures Online system. This system records the audio and video material presented in class for you to review after class. Links for the recordings will not be available to students except by request. Requests will be made through the exception form.
Class recordings are reserved only for students in this class for educational purposes and are protected under FERPA. The recordings should not be shared outside the class in any form. Violation of this restriction by a student could lead to Student Misconduct proceedings.
Discussion section participation is evaluated and serves as a portion of how you earn your credit in this class. Please see the Evaluation section for more information.
Section Number | Meeting Time | Meeting Location |
50460 (9a class) | F 9a-11a | SZB 4.508 |
50465 (9a class) | F 11a-1p | CBA 4.324 |
50470 (9a class) | F 1p-3p | CBA 4.326 |
50475 (11a class) | F 9a-11a | CBA 4.326 |
50480 (11a class) | F 11a-1p | CBA 4.332 |
50485 (11a class) | F 1p-3p | CBA 4.330 |
Students must attend the discussion section for which they are officially registered to receive credit for discussion section. Discussion sections will meet in-person.
Canvas: We will be heavily relying on Canvas, UT's Learning Management System. Each week, we'll post to Canvas the topic, assignments, and assessments for that week. Please check Canvas regularly.
Discussion: The class discussion board is on Ed Discussion, which is linked from both the course website and Canvas. You will be automatically added to the discussion board through the registrar.
We will post course-related announcements and information on the board. You must read the discussion board at least once per day, and you should post course-related questions and responses there. We hope you will make good use of the discussion group and of TA support when you have technical or administrative questions or problems.
You are responsible for any and all information posted to the discussion board by any of the course staff. We will pin any important announcements to the top of the feed. You are expected to read all announcements within twelve hours of their being posted.
Email to you: In this course, email will be used as a means of communication with students. You are responsible for regularly checking (at least every 24 hours) both your CS email and your email officially registered with UT for class work and announcements. Your CS address may be forwarded to another account (see http://apps.cs.utexas.edu/udb/update/).
Email to Course Staff: Email is not the best way to get in touch with the teaching team. Do not send an email without first speaking to one of us in person. You can find us in office hours, after class, or after discussion section. To follow up, we may ask you to send us an email. In this case, emails to course staff should have the subject "CS439:" followed by a brief description of the purpose of your email. If you follow this rule, we will be better able to address your questions in a timely manner. If you do not, a response to your email may be delayed indefinitely.
Do not use Canvas messages to contact the teaching team. If you use Canvas Messages, you may not receive a reply.Facebook, text message, twitter, calling a mobile phone, or other forms of informal communication: None of these should ever be used to communicate with course staff regarding 439 material. Please give everyone space to have a personal life outside of their presence in this course.
Class material will introduce systems concepts through description and examples. For the majority of classes, approximately one hour of material will be delivered asynchronously through recordings and other mediums, and then synchronously to review and apply what you have learned. A key component of this course is the active participation of students. While we will lead you through the main concepts and provide you with details relevant for understanding and applying those concepts, you have to provide the "active learning" component. By active learning, we mean you must do things, think about things, ask questions---basically whatever it takes for you to be engaged. We are learning community, and without your active participation, your learning and that of your colleagues suffers.
The format is informal; questions are welcome all the time.
The schedule is subject to change, so please check it throughout the semester.
To maximize your learning, it is essential that you review the topic recordings and participate in the formative assessments prior to each class meeting. The ideas in this course require thinking about and getting used to, which is possible only with multiple exposures to the material. Also, the topics can be difficult---so be patient, as it may take some time for them to "click". Finally, the concepts build on each other, so please stay current---make up any missed classes as soon as possible, and let us know if you are feeling confused.
I ask that all students work with me to create an environment that is welcoming to all people and in which we treat each other with professional courtesy and respect. In this section, I highlight some common forms of support offered by the course and the wider UT community. If you need other types of support, though, please let us know. Note that this section discusses what to do if you face an emergency during the semester, such as a death in the family, and it also includes harassment reporting requirements.
If you are struggling, know you are not alone.
University-required language: A student who is absent from an examination or cannot meet an assignment deadline due to the observance of a religious holy day may take the exam on an alternate day or submit the assignment up to 24 hours late without penalty, if proper notice of the planned absence has been given. Notice must be given at least 14 days prior to the classes which will be missed. For religious holy days that fall within the first 2 weeks of the semester, notice should be given on the first day of the semester. Notice must be personally delivered to the instructor and signed and dated by the instructor, or sent certified mail. Email notification will be accepted if received, but a student submitting email notification must receive email confirmation from the instructor.
If you are a student with a UT-acknowledged disability, I ask that you meet with me in person to discuss accommodations as soon as you have your accommodation letter in hand. I do ask that you meet with me by the 12th class day so that we can put your accommodations in place as soon as possible.
If you are a student with a disability that has not yet been acknowledged by UT's Services for Students with Disabilities, I hope that you will be willing to disclose your status to me, and I ask that you meet with me in person to develop a plan for your success this semester.
University-required language: The University of Texas at Austin provides upon request appropriate academic accommodations for qualified students with disabilities. For more information, contact the Division of Diversity and Community Engagement, Disability and Access at 471-6259, 471-4641 TTY.
Please, if you are in an emergency situation, focus on "forgiveness, not permission". Please focus on your needs, and assume we will do something reasonable when we learn of the situation. If you have time to drop us a note to let us know what is going on, please do---but otherwise, focus on you. Documentation through SES will eventually be required, but it does not need to be immediate.
Exams will be in-person.
The exam will be administered on paper.
The final will be cumulative. The final exam will be at the time determined by the registrar, which is usually announced during the semester. You are required to remain on campus for the final exam and for two days after the final exam date. These two days allow us the opportunity to manage any concerns about your topics mastery rising from your final exam.
This participation will be measured through your engagement with the pre-class videos and their embedded assessments.
To guarantee credit, you will need to fully watch the videos (without a browser extension, see below for more information) and complete the embedded formative assessments in the relevant modules both before midnight the night before class.
If you choose to watch the videos through a browser extension, the engagement statistics may or may not update properly, and so you may or may not receive credit. We will not entertain grade discrepancy concerns based on the use of such extensions, so use at your own risk.
Participation credit will be earned at 3 points per module, which is awarded all-or-nothing. Videos must be fully watched for any credit (100%. Not 95%. Not 92%. Not 63%. 100%).
This credit may be earned on most of the modules for this class, and so there are approximately 70 available points.
Please note that we will not collect the engagement statistics from the videos for the first two classes until 1p on the second Tuesday of classes, so if you join the class late, you have time to watch those videos.
For the purposes of this section, "class" and "discussion section" are considered synonymous.
We will use a class sign-in sheet, exit tickets, and other participation artifacts to assign credit. In addition, we will be observing your participation and engagement in class, and you will earn credit based on your attention and contributions to in-class activities, including arriving prepared and with any requested materials (such as a completed problem set). During the first week of class, we will create name tents. Be certain to have it on display in class at all times, as we will use those to ensure we are assigning credit to the right person. Credit may be reduced or removed for extremely late arrivals or early departures, failing to be respectful to your colleagues or course staff, or the inappropriate use of laptops, phones, or other devices in class. Appropriate uses are described elsewhere in this document.
Participation credit will be earned at 3 points per class for each class, so there are approximately 100 available points.
Approximately 170 participation points (module + in-class + section) are available. We make so many points available but only require 150 to earn an A in the class to allow for times you are ill, have an interview, go to the career fair, etc. So there will not be exceptions made for those events.
However, if you have an extenuating circumstance, such as an extended illness, work conflicts, or other issues, please fill out the exception form as you are able. We will consider form submissions at the end of the term, and the timeliness of your submission may matter. Also, if you need to quarantine, are ill, or even think you might sneeze, please stay home and rest, and then please submit any missed work via the exception form when you are able. If you are having trouble catching up after an extended absence, let us know, and we will help you create a plan for success.
There will be a written problem set assigned for most discussion sections, which you will work independently in the week leading up to section. The problem sets will be posted each week on the schedule, and the answers will be discussed and reviewed during section. Your discussion section participation will be rated on a 0-3 scale.
In discussion section, you will have the opportunity to work an exam question for credit. That problem will be graded as any other exam question, and its score will be included in the appropriate exam-related column in Canvas..
Credit for discussion section may be earned through a combination of:
In general, discussion section credit may not be made up if circumstances cause you to miss discussion. However, in some cases you may receive credit for your problem set, if we are notified before or shortly after discussion. To notify us that you believe your circumstances warrant an exception, please fill out the exception form. Notifications via email will not be considered.
We will not offer makeup exam questions, as you will recieve another attempt at the exam.
Also, if you need to quarantine, think you may have come into contact with covid, or even think you might sneeze, please stay home and rest, and then please submit your problem set via the exception form when you are able.
Discussion section participation is included in the overall participation column.
For each group project, your group members will evaluate your contribution on several factors. If at any point it is determined by the course staff that you are not properly contributing to the group, either through these evaluations or their own observation, your grade will be appropriately offset from the rest of the group.
For most projects, you will be able to create your own group with other students in the class, though we will place you in a group if you would like us to do so. However, if you consistently fail to participate such that you are unwelcome in groups, we will not place you with a group, and you will not be able to earn credit for any remaining projects.
All projects must be submitted using Canvas. We will not accept assignments e-mailed to us. Project code is due by 5:59pm on particular Fridays, and the associated design document is due by 10:59pm on the same Fridays with the exception of Project 3. Please consult the schedule for more information about its due dates. Project submissions are dated by Canvas.
Projects are graded on the five-point scale used by this course (see the Evaluation section for more information), but projects are weighted differently and the grades will be scaled accordingly. Please see the projects page for more information.
Project code must compile and be submitted in the correct format. Projects that do not compile or are in the wrong format will receive a 0. Design documents are completed as a group and should be submitted as plain text. Additionally, design documents must contain minimal spelling and grammar errors. All other given turnin instructions must also be followed exactly. (Please don't break the scripts!)
Finally, all groups (and individual group members) must have a working Project 2 before moving on to Projects 3 or 4. Groups may either meet this requirement by submitting a working project before the deadline or groups may meet with course staff to demonstrate a working project within ten days of the deadline. This policy does mean that a student may not leave a group that does not have a working Project 2 to work with a group that does. Once a working Project 2 has been submitted, students may join whichever group they wish for the remaining projects. Students must achieve a working Project 2 by the deadline in order to pass the class. A reasonable amount of assistance will be provided.
Groups that revise Project 2 to meet this criteria are eligible for a grade revision as well, as long as they do so by the resubmission deadline.
Pair and Group Programming: On most or all of the projects (as specified in the project description), you will work with at least one other person. (It is a requirement!) You must follow the pair programming guidelines below and on the course web page.
We use pair programming because it is a more effective and time efficient way to learn the material. Researchers have shown that students perform better in the class in which they use pair programming than without, and also they perform better in subsequent classes with or without it. These results indicate that you learn more and better with pair programming. Please read:
You must follow the pair and group programming guidelines. The group must: (1) design and program together at least 90% of the time, and (2) split keyboard time evenly. Each student can work independently for at most 5% of the effort/time. The person at the keyboard is the driver, and the people sitting next to him/her are the navigators. We recommend you switch drivers every 30 minutes.
Projects are required to use the departmental GitLab instance, and code must be committed by each driver before a new driver takes control. We will use your git commit history to ensure compliance with the pair programming guidelines.
For some parts of the course, you will be allowed to change partners or groups between assignments. However, once you begin an assignment with a partner (or a group), you cannot change partners or groups for that assignment. If you must stop working with your partner or group, please request permission from the instructor and await further instruction.
If one of your group members falls out of communication with you, it is your responsibility to notify the course staff, and please do so as soon as you become concerned. We will work to make sure your group member is okay and provide advice on moving forward.
The course staff reserves the right to split groups or re-assign group members as necessary.
Late Policy: You will have 4 slip days in 1 day units (that is, 1 minute to 24 hours late = 1 slip day, etc.) to use throughout the semester to extend project deadlines. However, you may only use two slip days on any particular project, and you may use no slip days on the final project. Other than that, you may divide your slip days across the projects in any way you wish, subject to the 4 day total and the 2 day per project maximum. Slip days are to account for life circumstances and emergencies. Do not use your slip days frivolously. If you use all your slip days and then cannot turn in your project on time for any reason then you will receive a 0 for that project.
Note that each project has two pieces (the code and the design document), but that it is considered one assignment, so that if you submit both pieces two days late, you lose two slips days, not four.
In the case of group and pair programming, each member of the team must have enough slip days to cover the submission of the project code or design document. So if the team submits the code 2 days late, each team member must have two slip days remaining to use and each team member will lose two slip days.
To use slip days, you only need to submit the assignment late and indicate that you used a slip day in the project README or the design document header, whichever is appropriate. You do not need to email the instructor or the TA unless specifically requested to do so.
Slip days may not be used on other parts of the projects, such as group planning and reflection documents, group evaluations, the stack check, or the Project 3 data structures and design document. Slip days also may not be used on Project 4.
In general, if you miss a deadline such that Canvas is closed, that assignment will not be accepted. However, you are welcome to fill out the exception form and let us know why you need an exception to the policy. Please do it as soon as you are able, as the timeliness of your submission may matter. Discussion section exception requests will be considered weekly, but other such requests will be considered in a more ad hoc matter and consideration may be delayed to the end of the term.
Items in this class will be evaluated on a 5-point scale, where 5 is the highest and 0 is the lowest. 0s will be used for submissions that have no response or which are not submitted. 1s and 2s indicate that a student has begun learning the material, 3s indicate a student is progressing through the material, 4s represent satisfactory work, and 5s indicate exemplary work.
In the table below, you will see how the grades for this class will be determined. To earn a letter grade, you must meet every criteria listed in that row. The numbers in the "Participation and Assignments" columns represent point totals over the course of the semester.
Participation and Assignments | Core Topics | ||||||
---|---|---|---|---|---|---|---|
Final Grade | Participation | Project Test Cases | Project Design | Auxiliary Topic Exam Questions | Synchronization | Virtual Memory | File Systems |
A | 150 or more | 33 or more | 33 or more | 55 or more | For every core topic, 4 or 5 as final grades in all related subtopics. | ||
B | 130-149 | 24-32 | 24-32 | 45-54 | For every core topic, 4 or 5 as final grades in all but one related subtopic. | ||
C | 110-129 | 16-23 | 16-23 | 35-44 | For every topic, at least 3s as final grades in all related problem subtopics. | ||
D | 40-59 | 10-15 | 10-15 | 25-34 | For every topic, no more than one 2 as a final grade in any related problem subtopic. | ||
Revise/Retake? | No | Project 2 code | No | Any auxiliary offered both in-section and on the exam. | Yes. One chance in section, one chance on the exam, retake up to two core topic questions after each exam. Exact questions eligible for retakes to be determined by course staff. |
Failing to achieve all items to earn the letter grade 'D' results in an F in the course.
You must take the final to pass the course. You are required to remain on campus for the final exam and for two days after the final exam date. These two days allow us the opportunity to manage any concerns about you skill mastery rising from your final exam. Again, please note that taking the final is a requirement to pass the class.
You will notice that this scheme does not fully specify grade borders (decimals are missing!). We will determine those as we assign final grades. Please do not ask. We will not have answers---instead, we will be focused on your learning and we hope that you will also focus on your learning.
When assigning final grades, we will use the plus/minus grading scale for those earning "in-between grades", if it seems appropriate.
Your grades are recorded in the gradebook on Canvas.
Synchronization: Identifying Race Conditions, Synchronization Concepts,
Synchronization Code
Virtual Memory: Virtual Memory Mechanisms, Virtual Memory Policies
File Systems: File System Design, File System Implementation
Exam Questions: Each question related to a core topic (i.e., those covering core topic subtopics) will first be offered in discussion section. Then the question will be offered on the exam. After that, up to two of the core-topic-related questions on the exam may be retaken, though exactly which will be determined by course staff. For a problem to be eligible for retakes, the problem must have been answered on the exam, and that answer must have earned at least a 2. We will provide an ordering of questions, and you must retake the top two questions on the list for which you earned less than a 4. For instance, you may be required to retake question 7, if you earned less than a 4 on that question, before we will consider other retakes. For any retake, your last score in a subtopic is the one that is used for final grade calculations.
Projects: Revisions on Project 2 to meet the "working Project 2" criteria will also result in a grade revision for your test cases grade only, provided revisions are completed before the resubmission deadline. The maximum that may be earned on the resubmission is a 4.
Core Topics: If you have not demonstrated proficiency on a problem included in the Core Topics portion of the rubric after the exam retakes, you may attend learning sessions on that topic for an opportunity to learn the material. Your attendance at all related learning sessions is required, if your performance in a related subtopic earned a 2 or below. It is also required for anyone who wants another opportunity to demonstrate proficiency on that topic. A reasonable number of learning sessions and retakes will be provided. Note that once you choose to not take an offered opportunity to attempt a core topics problem, you are unable to participate in later opportunities. This restriction includes skipping a core topics problem on an exam.
On a retake or any resubmission after the exam, the maximum grade that may be earned is a 4.
Limits: In addition to other limits mentioned in this section, each person is limited to no more than four attempts on any subtopic. Those attempts include: 1) the original attempt in-section, if it exists, 2) the attempt on the exam, 3) the retake of the exam, if that problem is eligible, 4) one attempt after attending learning sessions. It does not include any attempt available on the final exam.
If you have questions or concerns about your course grade, please schedule an appointment with one of us by email. Remember to put "CS439" in the subject line and follow it with a brief description of your purpose.
For assignments where your feedback is given electronically, the deadline for regrade requests 48 hours from the time the grade became available on Canvas. If you are requesting a regrade, please include supporting evidence and arguments which explain why you believe your work was evaluated incorrectly. (For example, it is not sufficient to submit a note that says "regrade question 3".) Regrade requests that do not meet these requirements will not be considered. Note that we only post grades on Canvas when all grades are entered. If an assignment has grades posted and you do not have a grade at all, you should be worried and submit a grade change request following the above guidelines.
For all grades except exam grades, grade change requests may be submitted using the grade discrepancy form. Your form submission will be automatically timestamped by Google, and that time stamp will be used to determine if your request was submitted before the deadline.
For exams, your regrade request must be written and returned along with your exam. Exact deadlines for this process will be announced.
Regrade requests are not given priority over any current grading, and so a response to your request may be delayed. Some regrade requests may not be processed before the end of the semester.
Note that assigned grades are not the starting point of a negotiation. This isn't a weekend bazaar---unless we have made a mistake in grading your work (i.e., you have a correct answer that was marked wrong, or your score was added incorrectly), your grade is final.
Note that none of the following grade discussions is appropriate:
You are encouraged to study for exams, discuss the problem sets and projects, and discuss debugging techniques with your colleagues. You are welcome to use existing public libraries in your programming assignments (such as public classes for queues, trees, etc.) You may also look at operating systems code for public domain software such as Linux. Such activities qualify under approved collaboration practices and you are welcome to take advantage of them. If you are unsure about whether a particular source of external information is permitted, contact the instructor before looking at it.
Note that cooperation is not the same thing as cheating. The project, problem sets, and exams must be the work of the student(s) turning them in. Materials from the web should only be used for educational purposes. For example, you can read about threads and look at examples of thread code, but you must not copy any code from the web or be looking at any of this code from the web when writing anything you turn in, whether the code is copied or generated, including code generated software such as GitHub Copilot of ChatGPT. If you discuss an assignment with another student or look at examples from the web, you should employ the following technique: after a discussion with another student or looking at example code you should do something that has nothing to do with computer science or programming for at least half an hour before resuming programming.
Students who violate University rules on scholastic dishonesty are subject to disciplinary penalties, including the possibility of failure in the course and/or dismissal from the University. Because such dishonesty harms the individual, all students, and the integrity of the University, policies on scholastic dishonesty will be strictly enforced. The academic penalty for cheating on an exam, quiz, or assignment in this course is a zero on that assignment, a course grade reduction, up to and including failing the course, and a referral to the Dean of Students office. Additional sanctions, including community service, probation, or expulsion, will be as determined by the Dean of Students.
It is generally okay to verbally discuss the concepts needed to do projects or problem sets. Three guidelines will help you keep on the right side of the line.
Note that these guidelines are necessarily generalizations and cannot account for all circumstances. Intellectual dishonesty can end your career, and it is your responsibility to stay on the right side of the line.
Examples of cheating include: looking at someone else's program, writing your program while talking to someone else about it, talking another student through the solution code, allowing others to look at your solution code, and looking on the Internet for code to solve your programming assignments, including stackoverflow and other such sites. Use of AI-powered software, such as ChatGPT or GitHub Copilot, to generate your solutions---whether code or text---is also academic dishonesty. If you have any doubts about what is allowed, ask the instructor.
Additionally, if you are repeating the course you may NOT reuse any code or assignments. All submitted work must be new and original.
Plagiarism detection software will be used on various assignments and problem sets to find students who have copied code from one another. Any program that you submit must be yours, and yours alone.
If you are participating in a pair or group programming assignment and your partner cheats, you may also be culpable. Degree of culpability will be determined based on the circumstances, but realize that in all likelihood you will be culpable. If you were following the rules of group programming then you likely knew your partner(s) was cheating. If you were not following the rules of group programming, then you turned in work as yours that was not. Note that this includes the "I actually didn't participate in that project because I was doing x, y, or z instead." excuse, which is a type of cheating, since you were then prepared to take credit for work that was not yours.
Project Withdrawal: If you find yourself in a situation where code submitted by you or your group violates the academic integrity policies of this class, you may submit this project withdrawal form before we begin grading. This form allows you to withdraw your code from consideration by course staff without penalty beyond a 0 for the assignment. Please be sure to follow all guidelines listed in the form's description.
This syllabus is a plan of action for the semester. It is not a contract and is subject to change. As the instructor, I may make additions, deletions, and modifications to the syllabus and the course requirements with reasonable notification to the students enrolled in the course. You are responsible for any changes announced in class or on the course website.
In the preparation of this course, I used materials from Mary Eberlein, Mike Scott, Kathryn McKinley, Shyamal Mitra, Calvin Lin, Charlie Garrod, Jennifer Brown, Al Mok, Mike Dahlin, Emmett Witchel, Lorenzo Alvisi, Maria Jump, Michael Walfish, Jerry Breecher, Andy Wang, John Bell, Zero Assurance Recovery, Kristie J. Loescher, Shriram Krishnamurthi, Frank Vahid, Sarah Abraham, and the AAUP@UT.
Special thanks to the Stanford Computer Science Department for the use of Pintos, an instructional operating system.
Copyright Notice: These course materials, including, but not limited to, lecture notes, problem sets, and projects are part of a second course on computer systems. You must ask me permission to use these materials.
This copyright extends to any and all video or audio recordings of this class.
I do not grant to you the right to publish these materials for profit in any form.