ADMINISTRIVIA: you should each have a ~/cs323/marks/hw1.log file, produced around 10pm last night, showing the status of what I found in your ~/cs323/hw1/sol.jar file (some feedback, not a complete grade). Seven students had some kind of problem (3 had no sol.jar, 3 had code taking too long to finish, one had a NullPointerException). I'm willing to help with these issues in my office hours, 1-3pm. Today, in preparation for your hw2 program (soon!), we introduce the notion of a "persistent" data structure. For each operation which would modify a traditional data structure (like put in a BST), a "persistent" data structure instead returns a new version of the data structure, leaving the old version unmodified and available for use. We'll look at PBST.java, a persistent version of the book's BST class (with put/insert only, no deletion). If we have time, we should also look at the rank and select methods (which can replace min, max, floor, and ceiling). Coming hw2 (sketch, not ready): PROGRAM: Modify PBST.java to produce a persistent red-black tree (insertions only). Also (maybe?) add an iterator. WRITTEN: Look up and explain what is a "fail-fast" iterator in the java.util collections library. Now look into the huge TreeMap.java file, and explain how they detect the fail-fast situation. Look up and explain the distinction between "weak" and "strong" persistence in data structures. (PBST is strong.)