CS110: Principles of Computer Systems

Winter 2020, Mo/We/Fr 1:30pm-2:50pm, NVIDIA Auditorium

Midterm Exam:
calendar_ok:small February 14th (in class)
alarm:small 1:30pm-2:50pm
map:small Location: Nvidia Aud. and Cubberley Aud.

Midterm Information

Final Exam:
calendar_ok:smallWednesday, March 18, 2020
alarm:small 3:30pm-6:30pm
map:small Location: Take-home
Final Exam Information

Instructors

Note: If you want to contact the instructors for the course for course-related reasons, please email
cs110-win20-instructors@lists.stanford.edu


Chris Gregg
mail:small Direct email (see above for general instructors email): cgregg@stanford.edu
alarm:small Office Hours (Gates 201):

Tue 9am-11am
or by appointment.


Nick Troccoli
mail:small Direct email (see above for general instructors email): troccoli@stanford.edu
alarm:small Office Hours (Gates 193):

Mon 3-5pm,
Thurs 1:30-3:30pm
or by appointment.

Announcements

  • Assignment 5 - 7 Grades Released

    3/14/2020T01:00

    Assignment 5 grades have been posted to the Gradebook page, along with style feedback for the assignments. Assignment 6 functionality grades have also been posted - style feedback and grades will be added next week (you may also see an incorrect late day count for any accommodations until style is graded). Assignment 7 functionality grades have been posted, and style grades were all assigned as 100%. Also note that the extra credit (if any) for HTTPS has not yet been calculated. All these and other grades, including midterm and section grades, should be visible and current (all midterm regrade requests have been processed). If you believe there are any issues with the listed grades, or with any of the automated tests, please let us know as soon as possible!

    To provide as much information as possible to you, here are the quartiles, averages and standard deviations for the functionality scores for assign1 - assign7 and the midterm (updated now that regrade requests have closed). All numbers are rounded to the nearest 0.1. These assignment statistics include grade caps, if any, for functionality due to late submissions:

    assign1 (out of 68):
    first quartile = 68
    second quartile (median) = 68
    third quartile = 68
    mean = 63.2
    standard deviation = 14

    assign2 (out of 66):
    first quartile = 65.2
    second quartile (median) = 66
    third quartile = 66
    mean = 63.3
    standard deviation = 10.9

    assign3 (out of 90):
    first quartile = 81
    second quartile (median) = 90
    third quartile = 90
    mean = 83.1
    standard deviation = 13.5

    assign4 (out of 202):
    first quartile = 135.2
    second quartile (median) = 169
    third quartile = 184
    mean = 154.6
    standard deviation = 42.4

    assign5 (out of 168):
    first quartile = 148
    second quartile (median) = 158
    third quartile = 168
    mean = 150.1
    standard deviation = 28.4

    assign6 (out of 80):
    first quartile = 72
    second quartile (median) = 80
    third quartile = 80
    mean = 71.2
    standard deviation = 16.8

    assign7 (out of 125):
    first quartile = 113
    second quartile (median) = 125
    third quartile = 125
    mean = 115.1
    standard deviation = 23.1

    midterm (out of 80):
    first quartile = 36
    second quartile (median) = 49
    third quartile = 61
    mean = 48
    standard deviation = 16.4

  • Optional Take-Home Final Exam; Review Session Planned

    3/13/2020T21:00

    The CS110 take-home final exam is now optional, and is on Wednesday, March 18th from 3:30-6:30PM PST. Please see the final exam webpage (updated 3/10 5PM with more information about permitted materials) for information about the exam, the policy for taking or not taking the exam, as well as study tips and review materials. The exam will rely on the same version of BlueBook you previously downloaded for the midterm. The encrypted file for the exam will be posted in advance of the exam, and you will be notified when it is available. Download the file ahead of time so you are prepared when the exam starts. We will provide a password to unlock the exam at the start.

    We will also be holding a CS110 final exam review session remotely at the start of next week. Please fill out the following form if you would like to help us decide what to cover, and how to make the remote format work best for you: click here.

    We also have an update about coursework grading weights for the rest of the quarter. Because of the cancellation of assignment 8, we have decided that, if the assign8 weight would help your grade more by being combined with the final exam than with assignments 1 - 7, we will upweight your final exam instead. In other words, we will calculate your final grade in both of the following ways, and take the maximum of the two: 1) assignments 1-7 weighted 60%, final exam weighted at least 20% (possibly higher as per discussion section attendance policy), 2) assignments 1-7 weighted 52.5%, final exam weighted at least 27.5% (possibly higher as per discussion section attendance policy).

  • CS110 Course Policies Update

    3/7/2020T11:00

    After much consideration, we have decided to go forward as follows for the rest of the quarter in CS 110:

    We are canceling assignment 8. We will release it, and we will answer questions for those who work on it (it is a pretty cool assignment), but we won’t count it for a grade. Assignments 1 - 7 will have their weights changed accordingly so that the overall assignment weight remains the same.

    We are extending assignment 7 by two days -- although it was due last night, you are welcome to continue working on it if you’d like with no late penalty until Sunday at midnight. There will be regular late-day penalties on Monday and Tuesday.

    Lectures will be delivered on video (probably via screencast), and you can find them on Canvas.

    Office hours will operate on the same schedule (more or less, check the Google calendar for possible updates as our schedules might change), but will be held virtually via Queue Status and Google hangouts. In the box where it says to give a description of how to find you, paste an invitation URL to a Google hangout and wait there for a course staff member to join you. Also watch the chat/announcements area on Queue Status in case the TA tries to message you there with other instructions etc.

    The final exam will be on Bluebook at the same date/time (this also applies for students who contacted us about alternate exam accommodations), timed for 3 hours (or extended time, if applicable), but can be completed from any location on your own computer. So whether you are on campus or decide to go home early, just be sure that you have access to a computer in a quiet/private location with a solid internet connection during that timeslot (i.e., please don't schedule to be on an airplane or otherwise unavailable at that time). The plan will be to release the exam password just before the exam start time, and expect it to be returned after 3 hours. The exam will be open-book; we will have more details to share later next week. If you are on campus and not sure you can have such a space due to your living situation etc, let us know and we will try to find you a space where you can work. If you expect trouble with Internet access at around that time, please reach out to the instructors prior to the exam. If you have academic accommodations, e.g. through OAE or athletics, please let us know as soon as possible. If you do not have a workable laptop for the exam, please also let us know as soon as possible.

    We want to minimize the overall stress that students (and staff) may have during this time, but we also want to finish the course appropriately. Please let us know if you have any other circumstances you’d like us to consider. We have enjoyed working with everyone this quarter, and hope you have had a good experience in the course. Please stay safe, and we hope the last couple of weeks of the quarter goes smoothly, despite the circumstances.

  • Assignment 4 Grades Released

    3/4/2020T20:20

    Assignment 4 grades have been posted to the Gradebook page, along with style feedback for the assignments. The median on the functionality portion of the assignment was 169/202. Congratulations on completing your shells! Also, for this assignment, we regraded tests if there were erroneous print statements (e.g. debugging statements that should have been omitted) left in any code. Please let us know if this impacted your submission but you were not regraded.

  • Assignment 7 Posted

    2/28/2020T13:00

    Assignment 7 has been posted under the Assignments dropdown. This assignment has you implement a cool piece of networking software - an HTTP Proxy! A proxy acts as an intermediary between a client and a server, and can modify requests and responses that are sent. We hope you have fun with it! It is due on Friday, March 6th at 11:59PM. See the assignment spec for more information.

  • Assignment 6 Posted

    2/22/2020T13:50

    Assignment 6 has been posted under the Assignments dropdown. This assignment has you implement the ThreadPool class, and we will discuss Thread Pools on Monday. It is due on Saturday, February 29th at 11:59PM.

  • Midterm Grades Released

    2/19/2020T14:50

    Midterm scores have been released via Gradescope, an online course grading website. You can find more information about the exam statistics, how to see your score, and information about regrade requests, on the midterm exam webpage.

  • Assignment 5 Posted

    2/15/2020T11:30

    Assignment 5 has been posted under the Assignments dropdown. This assignment has you implement a news index to let you efficiently gather and search news articles from across the web. We hope you have fun with it! It is due on Friday, February 21st at 11:59PM.

  • Assignment 3 Grades Released

    2/14/2020T01:00

    Assignment 3 grades have been posted to the Gradebook page, along with style feedback for the assignments. There is one style grade for each of the four programs. The median on the functionality portion of the assignment was 90/90 - rock on! Also, for this assignment, we regraded tests if there were erroneous print statements (e.g. debugging statements that should have been omitted) left in the code. Please let us know if this impacted your submission but you were not regraded.

  • Midterm BlueBook File Posted

    2/14/2020T00:00

    The midterm exam files are now posted on the midterm exam webpage. Please download your exam file in advance of your exam seating.

    Additionally, we have uploaded an updated syntax reference sheet to the midterm exam page as well. Finally, we made a correction to the midterm review session slides, specifically slide 44 - there should be a signal block around the entire creation and initialization of child processes.

  • Midterm Review Materials + Exam Reference Sheet Posted

    2/11/2020T15:30

    We've posted a link to the review session slides, as well as how to access the review session video, on the midterm exam webpage. Thanks to everyone who came! Additionally, we've posted a copy of the provided reference sheet on the midterm page as well, to view before the exam.

  • Midterm Review Session Mon. 2/10 7-8:30PM in Hewlett 201

    2/06/2020T16:30

    We'll be holding a midterm exam review session on Mon. to help you review concepts for the midterm exam. Please come with questions! A video of the session, and other materials used during the session, will be posted on the course website afterwards. Please see the midterm exam webpage for more information about the exam.

  • Assignment 2 Grades Released

    2/06/2020T02:30

    Assignment 2 grades have been posted to the Gradebook page, along with style feedback for the assignments. There is one style grade for each of the four filesystem layers. The median on the functionality portion of the assignment was 66/66 - nice work!

  • Midterm Exam Fri. 2/14 1:30PM-2:50PM

    2/5/2020T12:00

    The CS110 midterm exam is on Friday, February 14 from 1:30PM-2:50PM in Nvidia Aud. / Cubberley Aud. (depending on last name). Please see the midterm exam webpage for information about the exam, as well as study tips. You can also find review materials, as well as a download of the BlueBook software. You should download BlueBook in advance of the exam to become familiar with it. It is a program that can administer exam files in a special file format. The encrypted file for the midterm exam will be posted in advance of the exam. Download this file ahead of time so you are prepared when the exam starts. We will provide a password to unlock the exam at the start.

    If you have academic accommodations (e.g. OAE) or athletics accommodations, or if you do not have a workable laptop for the exam, please let us know by Monday, February 10 at 11:59PM PST. Limited charging outlets will be available during the exam.

    We'll also be holding a review session on Monday evening 2/10, with more details to come soon.

  • Assignment 4 Posted

    2/3/2020T18:30

    Assignment 4 has been posted, under the Assignments dropdown. Your job: Write a shell! This is a non-trivial assignment, but once you finish it, you will be proud of your accomplishment, and you will be a signals and multiprocessing wizard. It is due on Wednesday, February 12th at 11:59PM.

  • Assignment 1 Grades Released

    1/23/2020T19:20

    Assignment 1 grades have been posted to the Gradebook page, along with style feedback for the assignments. There is one style grade for each of the three parts of the assignment, in the following order: getReview, getSortedReviewsFromIndexes, and searchKeywordIndex. The median on the functionality portion of the assignment was 68/68 - way to go!

  • Assignment 3 Posted

    1/23/2020T09:15

    Assignment 3 has been posted, under the Assignments dropdown. Your job: Write four multiprocessing / pipe programs (two utility programs and two full programs). It is due on Sunday February 2, at 11:59pm.

    Note: Part 4 of the assignment (and to a minor extent, part 3) requires knowledge of signals, which we will cover on Monday. You are welcome to read ahead about POSIX signals, but you might want to wait until Monday's lecture to start digging into part 4 in particular.

  • Apply To Section Lead!

    1/22/2020T13:30

    The application is now open to apply to be a CS106 Section Leader starting in Spring 2020! The deadline for CS110 students is Thursday, January 30th at 11:59PM. Apply at https://cs198.stanford.edu, and please email cs198@cs.stanford.edu if you have any questions!

  • Assignment 2 Posted

    1/15/2020T12:00

    Assignment 2 has been posted, under the Assignments dropdown. Your job: write the file system for an old (c. 1975) Unix operating system. It is due on Thursday January 23, at 11:59pm.

    Note: we have been tweaking the assignment since earlier this morning, so if you started working on the assignment before 10:30AM PST, please re-clone the starter project.

  • Assignment 1 Posted

    1/7/2020T10:30

    Assignment 1 has been posted, under the Assignments dropdown. It is meant as an refresher of C and C++ and an introduction to the Standard Template Library (STL); the assignment has you reading and searchign over a large dataset of Amazon reviews to uncover interesting keyword occurrences; we hope you have fun with it! The assignment is due Wed. 1/15 at midnight PST, and no late submissions will be accepted for this assignment, so please make sure to submit by the deadline.

    Note: we have been tweaking the assignment since earlier this morning, so if you started working on the assignment before 10:30AM PST, please re-clone the starter project.

  • Compact Calendar

    1/6/2020T10:00

    Here is a compact calendar for the major deadlines in the course. We may modify some dates as necessary, but at this point this is up to date.
                            January
    Su       Mo       Tu       We       Th       Fr       Sa
    5        6        7:1R     8        9        10       11
    12       13       14       15:1D/2R 16       17       18
    19       20       21       22       23:2D/3R 24       25
    26       27       28       29       30       31       1
    February Su Mo Tu We Th Fr Sa 2:3D 3:4R 4 5 6 7 8 9 10 11 12:4D/5R 13 14:Mid 15 16 17 18 19 20 21 22:5D/6R 23 24 25 26 27 28:7R 29:6D
    March Su Mo Tu We Th Fr Sa 1 2 3 4 5 6:7D/8R 7 8 9 10 11 12 13:8D 14 15 16 17 18:Fin
    Key: #R Assignment # released #D Assignment # due Mid Midterm Fin Final

  • Honor Code Video

    1/5/2020T10:00

    Last quarter, we put together a brief Honor Code video -- please watch it. If you have any concerns about the Honor Code, feel free to ask us.

  • Welcome!

    1/5/2020T08:00

    This is the website for CS110, Principles of Computing Systems, for the Winter 2020 Quarter.

    If you have any questions about enrolling in CS110, please email Chris at cgregg@stanford.edu, or Nick at troccoli@stanford.edu and we look forward to having you in class!


Website design based on a design by Chris Piech
Icons by Piotr Kwiatkowski