Computer Organization & Systems

Winter 2020

Important course announcements will be posted below and announced in class. You are responsible for all material that appears here and should check this page for updates frequently.

Announcements

  • Assignment 7 Grades Released Sat. Mar 28 by Jerry Assignment 7 grades have been posted to your Gradebook. The CAs reviewed design readmes, validate_heap implementations, and code quality, and you should be able to drill through your Gradebook to read through what they had to say. Should you have any questions about why something was graded the way it was, you should first email your grader, and then email Lisa or me if there's unresolved drama. The median on the assignment was a 106 out of 112, which was a full six points higher than it was last quarter. No doubt many of your benefitted from the extra time, but I'm particularly impressed the scores were as high as they were because everyone was stripped of their ability to hang with other students during in-person office hours.

    Lisa and I will be computing final grades tomorrow and Monday, and we'll submit them by Tuesday evening at the very latest.

    Be safe and healthy, everyone.

  • Assignment 7 Deadline: Wednesday, March 25th at 11:59pmWed. Mar 18 by Jerry The university just emailed all instructors with guidelines for final exams, outstanding final projects, and what reasonable deadlines can now be imposed. Assignment 7 is effectively your final project, and Lisa and I have set the assign7 deadline to be this coming Wednesday, March 25th at 11:59pm. We will grade assign7 submissions on Thursday and Friday and return assign grades on Saturday, March 28th.

    Lisa and I will hold office hours over the course of the next seven days, and some of our CAs will as well. You can check out the ongoing office hours schedule, which will soon be populated with additional hours beyond those already scheduled.

  • Assignment 6 Grades Released Wed. Mar 18 by Lisa Assignment 6 grades have been posted to the Gradebook page, along with feedback for the assignments. The median on the assignment was a 79 out of 84. Great job!!!!

  • Assignment 7 deadline suspended indefinitely, office hoursMon. Mar 16 by Jerry As you may have read in recent hours, the university is mandating that all outstanding deadlines—in our case, the assign7 deadline—be delayed indefinitely until we sense some stability. Frankly, Lisa and I couldn’t agree more. At least for the time being, heap allocators shouldn’t be very high on the must-do-right-now list.

    We will be in touch as everything begins to take structure again. You’re more than welcome to work on Assignment 7 if you’d like, of course, but if you have any reason whatsoever to pay attention to more important matters, then you should do so without concern for any deadlines. Restated, CS107 should be the last thing on your mind for the foreseeable future.

    Lisa and I will hold some office hours this week, and we’ll try to stick to those we’ve currently scheduled. Given the volatility of the world around us, we may need to reschedule them last minute, but we will try not to. Because there are no looming deadlines now, Lisa and I are no longer requiring our CA's to hold their online office hours. They, like you, probably have more pressing matters at hand.

    The university hasn’t mentioned anything about when grades are due, but we will be in touch once we hear more.

  • Final Exam Week, UpdatedFri. Mar 13 by Lisa Given the urgency of the situation on campus and in Santa Clara County, we have decided on the following updated policy:

    The assignment 7 grace period deadline has been pushed back to Friday 3/20, 3:30pm Pacific Time. The on-time 5% bonus deadline of today 11:59pm will not change. Given that many students now have to move out of dorms immediately, and that our assign7 deadline falls on this critical weekend, we have made this decision so that everyone has an opportunity to turn in a heap allocator assignment that they are proud of. Please note the deadline is 3:30pm and not midnight, and this is an absolute hard deadline.

    There will be no final exam held on Friday 3/20. We will instead calculate your course grade as follows:

    • 17% (original) curved midterm exam
    • 15% (original) lab participation
    • 35% (original) assignments
    • 16% (new) the higher of (95) and (a curved midterm exam)
    • 17% (new) weighted average on assign 5 through 7

    The curved midterm is computed as follows: The midterm exam is curved when the median grade is below an 80%. When curved, the median grade is lifted to an 80%, the highest grade is curved up to a 100%, and all other grades are linearly scaled up accordingly (e.g., student with score halfway between the max and the median gets a 90%).

    Reasoning. Echoing our post from last time: Jerry and I came to this policy decision because of the specifics of CS107—in particular, heap allocator is a capstone assignment that we have not cancelled or made optional (unlike what has happened in other classes). We care about your well-being and sanity, and we also care that you walk away from this course seeing your own heap allocator as a point of accomplishment. Please, out of respect for your peers and your instructors, realize that everyone at the university is in a critical situation. Please call out misinformation about CS107-specific course policies if you see it, and do not use this course policy as leverage for changes in other courses.

    Please read the Piazza post for more information.

  • Final Exam WeekThurs. Mar 12 by Lisa Please read the Piazza post for more information. This post is deprecated.

  • Updated Assignment 7 deadlinesTues. Mar 10 by Jerry We're living in interesting times :)

    Now that the university is strongly urging undergraduates to leave campus, we want to allow everyone to do precisely that if they choose to. Recognizing that traveling, mallocing, and callgrinding at the same time is pretty much impossible, we're extending the on-time-5%-bonus deadline to be Friday at 11:59pm. We also want to be fair to those who've already made sacrifices to meet the original Thursday deadline, so we're going with the following:

    • Those who submit by the original deadline of Thursday at 11:59pm will receive an 8% bonus instead of 5%.
    • Those who submit by the new deadline—Friday at 11:59pm—will still receive the 5% bonus.
    • Those who submit by the new grace-period deadline of Sunday at 11:59pm can still receive full credit, though there's no bonus.

  • Final Exam Fri. 03/20 3:30-6:30PM PSTMon. Mar 9 by Jerry The CS107 final exam is on Friday, March 20th from 3:30-6:30PM PST. Please see the final exam webpage for information about the exam, as well as study tips and review materials. The exam will likely rely on a new version of BlueBook for the final exam, and we'll provide a link to the new version as it becomes available. 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 five minutes before the published start time, and we'll post that password here and on Piazza.

  • Course Logistics Update Sun. Mar 8 by Lisa and Jerry (Piazza post announcement) We realize there’s been a lot of recommendations campuswide regarding in-person meetings in light of the novel coronavirus. Here are a few updates about what you can expect in CS107 in the last two weeks of the quarter:

    Helper hours: We will continue holding helper hours as scheduled on the Google Calendar. All CA helper hours will use QueueStatus where you have the option to sign up remotely and talk to course staff over Google Hangouts. Most helper hours will also have physical locations (in Huang or Jerry/Lisa’s office), but course staff who choose to hold remote hours will mark their location as “remote-only” on the calendar event. Edit: As of Monday 3/9, all office hours are remote-only to comply with campuswide guidelines.
    Lecture/lab: We will not hold any lectures or labs during dead week.
    Final exam: The final exam will be administered through BlueBook, scheduled as close to our final exam slot as possible. You do not have to be on campus to take the exam, but you will need a persistent internet connection. More details to be released Monday.
    Final exam review session: We will have a CA-led review session during finals week on Wednesday, March 18th, 12:15-3:15. This session will be recorded. More details to be released Monday.

    We appreciate your patience as we figure out how to navigate this situation as a community.

  • Friday Lecture (March 6th) cancelled Wed. Mar 4 by Lisa In light of the campus advisory against large-scale events, as well as your pressing end-of-quarter deadlines, we've decided to cancel the wrap-up lecture scheduled for this Friday, March 6th. The slide deck is posted here (and on the schedule page) if you're interested in what comes after this course.

    Jerry and I will be holding helper hours during the scheduled lecture time (12:30-1:50pm), so swing on by if you have questions about the last assignment. Details about a CA-led final exam review during finals week to follow once we have more info. Thanks! :)

  • Assignment 5 Grades Released Wed. Mar 4 by Lisa Assignment 5 grades have been posted to the Gradebook page, along with comments for your READMEs. The median on the assignment was 33/35 - awesome work!

  • Assignment 7 Posted Mon. Mar 2 by Lisa Assignment 7 has been posted on the assignments page. It is mean to act as a capstone for all the topics we've covered this quarter by implementing our very own heap allocator! We hope you have fun with it. The assignment is due Thurs. 3/12 at 11:59PM PST. You can find more details on the assignment page.

  • Assignment 4 Grades Released Sat. Feb 22 by Jerry Assignment 4 grades have been posted to the Gradebook page, along with style feedback for the assignments. The median on the assignment was an 88 out of 92. Continued excellent work from everyone!

  • Midterm Grades Released on Gradescope Thurs. Feb 17 by Jerry We'll be publishing midterm grades via Gradescope before the end of today. Solutions and exam stats are provided right here. The original midterm (in PDF form) is here.

  • Assignment 3 Grades Released Thurs. Feb 13 by Lisa Assignment 3 grades have been posted to the Gradebook page, along with style feedback for the assignments. The median on the assignment was 91/95 - awesome work!

  • Encrypted CS107 Midterms Available For Download Thurs. Feb 13 by Jerry Please be sure to visit the midterm exam webpage again and download the encrypted version of tomorrow's midterm. It's best that you do this well ahead of time so that you're ready to go at the crack of 12:30pm. Also, remember to fully charge your laptop ahead of time, and bring whatever device you use for two-step authentication!

  • Assignment 5 Posted Mon. Feb 10 by Lisa Assignment 5 has been posted on the assignments page. It is meant to reinforce the topic of floats and give exposure to working with assembly, with exercises ranging from exploring real-world applications of IEEE floating point to investigating the implementation of an executable program without having access to its source code. We hope you have fun with it! The assignment is due Fri. 2/21 at 11:59PM PST. You can find more details on the assignment page.

  • Midterm Exam Fri. 2/14 12:30PM-2:20PM Mon. Feb 10 by Lisa The CS107 midterm exam is on Friday, February 14 from 12:30PM-2:20PM in Hewlett 200. 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 on Thurs. 2/13 before 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. Limited charging outlets will be available during the exam.

  • Assignment 2 Grades Released Thurs. Feb 6 by Lisa Assignment 2 grades have been posted to the Gradebook page, along with style feedback for the assignments. The median on the assignment was 76/80 - nicely done!

  • Assignment 4 Posted Mon. Feb 3 by Jerry Assignment 4 has been posted on the assignments page. It is meant to reinforce the topic of generics, void * pointers and function pointers, with exercises ranging from implementing your own version of the ls command to implementing your own version of the sort command. We hope you have fun with it! The assignment is due Mon. 2/10 at 11:59PM PST. You can find more details on the assignment page.

  • Assignment 1 Grades Released This AfternoonMon. Jan 27 by Jerry We just released the vast majority of Assignment 1 grades, and the remaining ones will be released by 9:00pm or so. The median on the assignment was a 74 out of 80! That's excellent work, so keep doing what you're doing!

  • Assignment 3 Posted Mon. Jan 27 by Lisa Assignment 3 has been posted on the assignments page. It is meant to reinforce the topic of pointers, arrays and heap allocation, with exercises ranging from implementing a convenient version of a C file I/O function to implementing your own versions of the Unix tail and uniq commands. We hope you have fun with it! The assignment is due Mon. 2/3 at 11:59PM PST. You can find more details on the assignment page.

  • Education Research Survey Wed. Jan 22 by Jerry Two former CS107 students are interested in building a platform that students might use to improve how they consume information from class lecture. They're asking you to take 30 seconds (at most, I promise) to fill out this survey.

  • Social Good Fellowship Tue. Jan 21 by Jerry A former CS107 student was just in touch and asked that we identify the CS + Social Good Fellowship. The fellowship provides funding so that students can work in tech positions at public interest organizations. Applications are due on February 4th.

  • Assignment 0 Grades ReleasedMon. Jan 20 by Jerry Assignment 0 grades have been posted to the Gradebook page, along with style feedback for the assignments. The median on the assignment was 25/25, which is all kinds of awesome! Keep that up!

  • Assignment 2 Posted Mon. Jan 20 by Lisa Assignment 2 has been posted on the assignments page. It is meant to reinforce the topic of C Strings, with exercises ranging from implementing tools to display environment variables to implementing your own version of the Unix "which" command. We hope you have fun with it! The assignment is due Monday January 27 at 11:59PM PST. You can find more details on the assignment page.

  • Free CTL Tutoring Tues. Jan. 14 by Jerry Want to meet with an experienced peer to discuss course concepts, think through a problem set, or prepare for an upcoming exam? CTL offers appointment tutoring for CS107 (and some other courses, including CS103 and CS109). For more information and to schedule an appointment, visit their tutoring appointments and drop-in schedule page right here.

  • Assignment 1 Posted Mon. Jan. 13 by Jerry Assignment 1 has been posted on the assignments page. It is meant to reinforce the topics of bits, bitwise operators and integer representations, with exercises ranging from implementing the core "saturated arithmetic" algorithm to a bit-level cell simulation to a modern-day character encoding. We hope you have fun with it! The assignment is due Monday January 20 at 11:59PM PST. You can find more details on the assignment page.

  • Assignment 0 Posted Mon. Jan. 6 by Lisa Assignment 0 has been posted on the assignments page. It is meant as an introduction to Unix and C, with exercises ranging from uncovering who got unauthorized access to a filesystem to modifying a provided C program to accept command-line arguments. We hope you have fun! The assignment is due Mon. Jan 13 at 11:59PM PST, and there is no grace period for this assignment, so please make sure to submit by the deadline.

    Helper hours times are now posted on the Getting Help page and start tomorrow, Tuesday Jan. 7.

  • CS107A course location Mon. Jan 6 by Lisa CS107A, the Pathfinder course for CS107, meets Mondays at 3:00 in Littlefield 103 (starting today, Monday January 6th). For more information on CS107A and CS107E, check out the FAQ.

  • Welcome! Thurs. Jan. 2 by Lisa Welcome to CS107! Our first lecture is Monday, January 6th at 12:30PM in Hewlett 200. We are looking forward to meeting you and starting off a great quarter together! If you have questions about the course before the quarter starts, please feel free to check out the FAQ. It covers questions about recorded lectures, conflicting classes, CS107E, CS107A, and more. We hope you find it helpful!

Course Description

CS107 is the third course in Stanford's introductory programming sequence. The CS106 courses provide you with a solid foundation in programming methodology and abstractions, and CS107 follows on this to build up and expand your breadth and depth of programming experience and techniques. The course will work from the C programming language down to the microprocessor to de-mystify the machine. With a complete understanding of how computer systems execute programs and manipulate data, you will become a more effective programmer, especially in dealing with issues of debugging, performance, portability, and robustness. Topics covered include: the C programming language, data representation, machine-level code, computer arithmetic, elements of code compilation, optimization of memory and runtime performance, and memory organization and management.

The class has two lectures a week and a weekly lab designed for hands-on learning and experimentation. There will be significant programming assignments and you can expect to work hard and be challenged by this course. Your effort can really pay off - once you master the machine and advance your programming skills to the next level, you will have powerful mojo to bring to any future project!

Course Logistics

Lectures: Mon & Fri 12:30PM-1:50PM in Hewlett 200; Note that this is shorter than what Axess says. We will only use the full Axess-listed timeslot for the Midterm exam.

Labs: Tue/Wed/Thu at various times in Gates B08; students sign up for labs after the quarter begins.

Exams:

Course Policies

Feedback

Course Staff

Visit the Getting Help page for information about how to contact the course staff.

Instructors:

CAs:

Anthony Li

Brent Yi

Jennifer Tao

Monica Anuforo

Nikhil Athreya

Nolan Handali

Sasha Harrison

Timothy Le

Zack Cinquini

CS107A CA:

Jennie Yang