RESOURCES
Qt CreatorSTAFF
Lecturer: Nick Troccoli
troccoli@stanford.edu
Gates 193
M/W/F 1:30-2:30PM
Or By Appointment
Head TA: Zachary Birnholz
zacharyb@stanford.edu
Gates B02
Tues. 2:30-4:30PM
Or By Appointment
Final grades have been uploaded to Axess and should be visible soon. If you would like to see a breakdown of your final grade, please visit this grade report link, which will prompt you to log in with your Stanford credentials. This report contains the grades that we have recorded for you, along with your final grade; if you believe anything is incorrect, please reach out to us as soon as possible.
We have also posted final exam grades, which have been released via Gradescope. Please see the final exam webpage for more information about exam regrades, statistics and scores. Regrade requests will be accepted until the end of the first week of Winter quarter, at 11:59PM PST on Sunday, January 13, 2019.
Thank you for a great quarter! Have a great winter break, and please keep in touch or stop by anytime!
For our last lecture, we will leave some time for you to ask questions about anything you might like; whether it's related to CS106X, Computer Science in general, or anything else! You can feel free to ask questions during lecture on Friday, or submit them anonymously ahead of time at this link. We will pick some from this form to answer during lecture.
The CS 106X final exam is on Monday, Dec. 10 from 8:30AM-11:30AM in 420-041. Please see the final exam webpage for information about the exam, as well as study tips. A few particularly important announcements:
As mentioned in class today during the Honor Code discussion, if you wish to retract any of your assignments for any reason whatsoever, please send Nick an email (email at left) saying which assignment(s) you wish to retract. We will, no questions asked, retract that assignment and give you a 0 for that assignment. In particular, if there were any Honor Code issues with that assignment, retracting will remove it and we will no longer consider it an Honor Code issue. Note that you may not retract just parts of assignments, and we do not provide an opportunity to redo that assignment. The deadline to retract an assignment is Friday, December 7 @ 1:20PM.
If you have any questions about the Honor Code, please see the Honor Code handout under the "Handouts" tab. Also feel free to come talk to us if you have any questions about the Honor Code, retractions, or anything else.
Update (12/4): we want to clarify that, even with topological sort for cell updates, you should be sure to still only re-calculate cells that need to be updated when a given cell changes. Please see this Piazza post for more information.
Update (12/3): we found a small bug in the controller's error handling - please see this Piazza post for more information.
Update (11/29): we mistakenly wrote in the spec that you should implement 8 tests for CS106XCellModel, when the correct number is 6; 6 required additional tests for Expression, 6 for the model. We've corrected this.
For your eighth and final assignment, you will use topological sort and inheritance to build your own spreadsheet program. This assignment also gives you practice with working on a larger-scale project, and adding to an existing codebase. It is a chance to pull together your stellar C++ skills, use a variety of existing classes, design and implement a few new ones, and build an awesome piece of productivity software. It's a wonderful and sophisticated task that is a capstone to all you've done so far. See the assignment page for more details.
As part of Assignment 8 we ask that you document one bug you encounter and how you solved it. You may also (optionally) work on this assignment in pairs. Please see the pair programming guidelines for guidelines on working in pairs.
The assignment is due Friday, December 7 at 6PM (note the new due time).
We hope you had an enjoyable and restful break! As a reminder, the LaIR reopens starting tonight for its usual help hours (7-11PM). Please feel free to stop by, or post on Piazza, if you have any questions while working on the homework.
For your seventh assignment, you will implement several graph search algorithms to find paths between different points on maps, mazes and terrains. See the assignment page for more details.
As part of Assignment 7 we ask that you document one bug you encounter and how you solved it. You may also (optionally) work on this assignment in pairs. Please see the pair programming guidelines for guidelines on working in pairs.
The assignment is due Wednesday, November 28 at 11AM.
Update (11/17): we replaced "shortest" with "minimum cost" throughout the description of Alternative Path to clarify that the Alternative Path algorithm should always be dealing with the minimum cost/weight path, not the shortest path by number of edges.
Update 2 (11/18): we have created a new demo program that also includes Alt Path and the updated maps data; you can download this new JAR from the assignment page.
We have posted individualized grade reports for each student to help you better understand how you're doing in the course so far. You can view your grade report by going to this grade report link, which will prompt you to log in with your Stanford credentials. This report details grade information through Week 6 (11/2), including Assignments 1-4, Sections 1-5 and the midterm exam. This report contains the grades that we have recorded for you; if you believe anything is incorrect, please reach out to us as soon as possible.
For your sixth assignment, you will implement several additional features in the MiniBrowser program you worked with in assignment 5. You'll get practice with various types of trees, including binary trees, binary search trees, and tries. See the assignment page for more details.
As part of Assignment 6 we ask that you document one bug you encounter and how you solved it. You may also (optionally) work on this assignment in pairs. Please see the pair programming guidelines for guidelines on working in pairs.
The assignment is due Friday, November 16 at 11AM.
Update: we removed the requirement in the Autocomplete portion that said "for all these methods, the runtime should be independent of the number of characters in the alphabet."
The midterm exams have been graded, and individual scores have been released via Gradescope, an online course grading website. Please see the midterm information page for more information about exam regrades, statistics and scores. Regrades will be accepted until 1:30PM on Monday, November 12, 2018.
The encrypted exam files for the regular and OAE exams have been posted to the midterm information page. Please remember to download this in advance of the exam, and also download BlueBook. Remember to also bring your two-step authentication device with you.
The slides from the midterm review session have been posted in the "Downloads" section of the midterm information page. Thanks to everyone who attended!
For your fifth assignment, you will implement several parts of a fully-functioning web browser and get practice with classes, pointers, linked lists, and dynamic memory. See the assignment page for more details.
As part of Assignment 5 we ask that you document one bug you encounter and how you solved it. You may also (optionally) work on this assignment in pairs. Please see the pair programming guidelines for guidelines on working in pairs.
The assignment is due Wednesday November 7 at 11AM.
We have posted practice materials, including a practice exam PDF and the provided syntax reference sheet. Please see the midterm exam webpage for more information. We have also posted a download and instructions for the BlueBook software. We are finalizing the BlueBook version of the practice exam as well, which will be posted shortly.
UPDATE: we have posted a BlueBook version of the practice exam. We have also added a note under "Material covered" to reflect that there may be short answer questions, like the format of the last question on the practice midterm exam.
The CS 106X midterm exam is on Thursday, Nov. 1 from 7-9PM in 420-040. Please see the midterm exam webpage for information about the exam, as well as study tips. A few particularly important announcements:
For your fourth assignment, you will write a series of programs that will give you practice solving more recursive problems in a variety of cool domains, from disaster prep to presidential elections. See the assignment page for more details.
As part of Assignment 4 we ask that you document one bug you encounter and how you solved it. You may also (optionally) work on this assignment in pairs. Please see the pair programming guidelines for guidelines on working in pairs.
The assignment is due Monday October 29 at 11AM, but make sure to get started early!
If you're interested in playing around with the last problem on this week's section handout, take a look at the starter project and solution project that are posted, with a cool graphical interface to visualize the problem. Check it out if you'd like!
For your third assignment, you will write a series of programs that will give you practice solving recursive problems in both console and graphics programs. In particular, you'll be drawing a series of awesome recursive graphics (fractals), generating random writing via grammatical rules, and calculating the wait on poor souls at the bottom of human pyramids. See the assignment page for more details.
As part of Assignment 3 we ask that you document one bug you encounter and how you solved it, so we highly recommend reading handout 6 if you have not already to provide a sense of how to approach debugging.
The assignment is due Friday October 19 at 11AM, but make sure to get started early!
UPDATED: we have updated the provided output for the recursive tree and Mandelbrot fractals to correct their resolution (for easier comparison) and, for Mandelbrot, to correct and label them with their Complex number ranges. Please see the assignment page for more information.
Zach is rescheduling his normal planned Tuesday 10/9 office hours to Thurs. 10/11 instead from 2:30-4:30PM due to a one-time conflict. Please feel free to stop by his office hours in Gates B02!
For your second assignment, you will write a series of programs that will give you practice using a variety of different ADTs. Word Ladder is a program that finds connections between different words in the dictionary. Random Writer is a program that generates new random text from a provided source file. Maze Generator is a program that generates solvable random mazes of any size. See the assignment page for more details.
As part of Assignment 2 we ask that you document one bug you encounter and how you solved it, so we highly recommend reading handout 6 if you have not already to provide a sense of how to approach debugging.
The assignment is due Friday October 12 at 11AM, but make sure to get started early!
Nick is rescheduling his normal planned Friday 10/5 office hours to tomorrow (Thurs. 10/4) instead from 2-3PM due to a one-time conflict. Please feel free to stop by his office in Gates 193!
Regular section signups have concluded, and we have finalized section assignments. See the course website, under the "Section" dropdown, for more information.
If you missed regular section signups, you may sign up using the late signup form in the "Section" dropdown at the top.
If you would like to swap into a different section, you may also do that using the "Section" dropdown at the top. Section swaps will close in a week, on Tuesday, Oct. 9 @ 5PM.
If you are trying to swap into a section to be with a preferred partner, but are unable to do so due to capacity restrictions, we can attempt to place you and your preferred partner in a different section. Please contact the Head TA, Zachary Birnholz.
For your first assignment, you will write a program that simulates Conway's Game of Life. The Game of Life simulates cell life over generations by following a simple set of rules. This program will give you practice with concepts like file reading, streams, strings, Grids, and decomposition. See the assignment page for more details.
We have also posted Handout 6, which provides tips and tricks for debugging your programs. As part of Assignment 1 we ask that you document one bug you encounter and how you solved it, so we highly recommend reading this handout to provide a sense of how to approach debugging.
The assignment is due Friday October 5 at 11AM, but make sure to get started early!
Section signups are now open! Click on the "Section" dropdown at the top and select "Sign up for section" to submit your preferences. As a reminder, signups are not first come first serve. As such, you may modify your preferences any time up until the deadline. We will notify you of your section assignment by early next week. Sections start next week!
As mentioned in lecture today, as a small portion of your section participation grade we are asking each student to provide brief feedback on 2 assigned lectures throughout the quarter. The feedback should only take a few minutes, and will be used to understand how the course is going, and to help make it better. To see which lectures you have been assigned, please see the lectures dropdown at the top of the page. For each lecture you are assigned, please fill out the Google Form linked to from the lectures dropdown after the lecture has concluded. You will also receive an email the morning of each lecture you are assigned, as a reminder. Of course, you are welcome to provide feedback on other lectures in addition to the ones to which you are assigned. We greatly appreciate any feedback you have to improve the course!
If you run into any issues installing Qt Creator, we will be holding a troubleshooting session from 7-9PM on Wednesday 9/26 in the LaIR. The LaIR is on the first floor of Tresidder, in the food court/eating area. Please feel free to stop by!
Section sign-ups open at 5pm on Thursday, Sept. 27 and end at 5pm on Sunday, Sept. 30. Please make sure to sign-up for a section, as they are required for the class. Once signups open, the signup link will be visible in the section dropdown up top. Signups are not first-come-first-serve. Sections will start week 2.
For your "zeroth" assignment, we have some todos to get you started during your first week in CS 106X. These include things like setting up Qt Creator and signing up for Piazza. See the assignment page for more details.
Welcome to CS 106X! We are looking forward to a fun quarter. Class starts Monday, September 24th at 12:30PM in 300-300. See the "Handouts" dropdown above for handouts that outline the course policies.