CSE 332
Data Structures and Parallelism
University of Washington - Seattle Allen School
University of Washington - Seattle Allen School
Past iterations of the class are published (still!) online. I really liked this because my professor, Professor Richard Anderson, taught previous iterations of the class. Viewing his lecture materials ahead of class helped me learn and process the information much faster!
One of my favorite data structures from this class is trees.
In the past, adding implementation details to algorithms or data structure implementations helped me better conceptualize how it worked. However, adding the implementation details often bogged down my understanding, rather than adding to it.
This class still felt, largely, like an introduction course, even though it is ranked as a 300-level course. The class breezed through many topics, but, as Professor Anderson repeatedly said, “the level of depth does not give this topic justice.”
I wished we were able to explore parallelism and concurrency more. Dr. Grossman wrote a really great paper that I consistently referenced and learn something new every time I re-read it. Something that stuck out to me is, in his introduction, he noted that Java’s built-in support for threads, locks, and condition variables are sufficient for teaching the material. I talked to someone who took CS classes in the 1900s and noted my excitement for learning parallelism and concurrency in my upcoming class. He reminisced about how he needed to build locks with booleans and loops and how it forced him to understand how closely interleaved the two concepts were, when they seem so different.
I loved this course because it rounded out where I lacked in programming. In programming I or II, I learned about arrays and linked lists. Then, I used them religiously to solve LeetCode challenges. At one point, I began to feel stuck on some of the problems, even though they were tagged as “Array” or “String”. I learned about hash tables and trees at the University of Wisconsin, but seeing those same concepts being taught reinforced my beliefs that this class is meant to provide us with the final layer in the foundations of programming.