How do I find out my score? Like for the midterm, the scores have been released on Gradescope. Log in to Gradescope to see your score.
If you have questions about exactly what points you missed and why, please look over the grade and markings made by the grader, compare it with our answer key, and then contact your Section Leader if you still have any questions.
How do I pick up my paper exam? A complete scan of your exam is available on Gradescope; we are not distributing paper exams to students. If you would like to see the paper exam, they will be available by appointment only the first week of Fall quarter (September 25 - October 1).
The statistics of the exam scores (out of 180, to the nearest whole number) were as follows:
Mean: 45.88
Median: 47.0
Standard Deviation: 13.58
Practice Final Exam | Solution
Sample final exam(s) posted here are intended to be similar to the actual final. The number of problems and type of problems on the actual exam will be relatively similar to what is seen on these practice exams, though we do not promise that it will be exactly the same in length or in difficulty.
Section Handouts and CodeStepByStep lecture practice problems (on the schedule page) are also great ways to practice relevant material.
The logistics for the final exam are the same as for the midterm exam; please see the midterm logistics section for more information.
The final focuses on material taught since the time of the midterm, including the following concepts listed below. However, programming is inherently cumulative in that new topics build upon old ones. So you may be asked to solve problems that involve, though not necessarily focus primarily upon, past topics such as ADTs, recursion, big-Oh, and so on. Note that you may be asked to read code (look at a piece of existing code and answer questions about it, such as writing its output or drawing its state in memory) and/or write code (write a piece of code such as a method or short program that solves a given problem).
Linked Lists: You may be asked to write a generalized method that works for any linked list. You should be comfortable with singly- and doubly-linked lists
Trees: You should be comfortable with binary trees, binary search trees (BSTs), trees with more than two children, tries, and heaps
Graphs: You should understand graph syntax as well as the algorithms we discussed in class: BFS, DFS, Dijkstra, Topological Sort, graph matching, and Kruskal's
Sorting: You should be comfortable identifying and describing different sorting algorithms. You should be able to write code for any of the ones we discussed in class.
Hashing: Understand how hashing and HashSets/Maps work
Classes: Understand C++ class design
The following concepts will NOT be tested on the final:
throwing exceptions with the throw statement
any Stanford library functionality not explicitly taught in class, section or homeworks
anything else not explicitly covered in lecture, section or homeworks
The recommended exam strategies for the final exam are the same as for the midterm; please see the midterm exam strategies section for more information.
Written by Nick Troccoli. Updated by Ashley Taylor and Shreya Shankar.