Prezi
Here's the Prezi from today's lecture:
Contents
1. A Motley Assortment of Notes and Reminders
2. Stanford HashSet and HashMap Classes
3. Three Things to Know for the Exam
4. What's next?
5. Thank you!
A Motley Assortment of Notes and Reminders
Attached above is the Prezi I went through in class today with various announcements, reminders, and notes about some of the topics we've covered this quarter.
Stanford HashSet and HashMap Classes
I reiterated today the importance and awesomeness of hash tables and reminded everyone of the existence of the HashSet and HashMap classes in the Stanford C++ library. Those will be available to you on the final exam and will be listed on your reference sheet. Remember that they work (mostly) like the Set and Map classes from an interface perspective, but are driven by hash tables instead of balanced BSTs. The two implications of that are (1) better average-case runtimes -- O(1) instead of O(log n) on avarage -- and (2) the elements/keys are not guaranteed to be sorted when iterating over them.
Keep in mind also that the HashSet and HashMap can be used to hold any of the native data types in C++ (int, double, char, string, and so on -- and pointers, too!), as well as many of the Stanford C++ container types (Vector, Grid, Set, etc.). However, custom-built structs or classes are not automatically compatible with HashSet and HashMap. How to make custom classes hashable is a topic for another class, another day, as are many of the other "breadcrumbs" I've left for you to follow in the lecture notes on hashing.
Three Things to Know for the Exam
Among the many other expectations that have been shared related to final exam, I've mentioned in recent lectures (including today's) a few specific things I want you to know you're responsible for knowing coming into the exam, and that won't be on your reference sheet. Those are:
- Be familiar with the syntax for using new and delete to perform dynamic memory management tasks with arrays, classes, and structs.
- Be familiar with the ClassName:: syntax we use when implementing class methods.
- Be familiar with the distinction between the dot (.) and arrow (->) operators for accessing members of structs and classes
I'm sharing these prominently because I don't want anyone to be blindsided if any of these things end up being on the final exam. There are of course many other topics you're responsible for, but these are the ones I worried might have seemed obscure, and I didn't want them to escape anyone's notice.
What's next?
Your final exam is Friday, 3:30 - 6:30 PM. See the final exam page for details.
Thank you!
I would once again like to say...
THANK YOU!
Thank you for the exuberance and kindness you have brought to all our interactions this quarter.
Thank you for your curiosity and hard work, which inspire me and make my work at Stanford feel so meaningful.
Thank you for helping bring lectures to life with your engagement and the sense of community you created around this class.
I appreciate you and am rooting for your success on Friday's exam. You've got this!