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.
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!
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!
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.
Date/Time: Friday, February 14th, 12:30PM-2:20PM (in class)
Date/Time: Friday, March 20th, 3:30PM-6:30PM
- Handout 1 - General Information contains a summary of the course logistics and policies
- Honor Code and Collaboration details how the Honor Code applies in this course, including specific examples of acceptable and unacceptable collaboration
- The FAQ contains answers to course questions and information about CS107E and CS107A.
- How are we doing? Submit anonymous feedback here.
Visit the Getting Help page for information about how to contact the course staff.