Fork to play along from home.
Each week or so, we'll start with a basic outline of a data structure with some test data we can play with.
A basic guideline of what methods should be implemented will be given. For the most part I plan on following a simplified STL for most of my interfaces. Everyone, of course, is free to choose anything they want.
Check out the code, fill in your implementation, write some tests, etc. At the end of the week anyone who's interested can get together and talk about how it went, and award arbitrary points for arbitrary accomplishments. We can then come up with challenges for the next week.
Since we don't have any challenges set for the first week, I encourage discussing possible challenges now.
Write a dynamically resizing array. Implement two sorting algorithms that can function on this array.
Write a balanced binary tree.
Write a hash map implementation. Play around with bucketing algorithms.
Return to the dreaded CS70 final assignment: ChunkyString. Implement an object that from the outside appears as if it's a string (array of chars), but is implemented as a linked list of fixed size arrays of chars for efficiency in insertion and deletion.
Everyone loves functional programming. Create a functional programming-style immutable list. Implement a set of functional operators for this list (map, reduce, zip, etc.).