CS371p Spring 2022: Jonathan Randall

What did you do this past week?

Coming back from Spring Break was jarring, to say the least! Here are my recaps, separated by course.

  • Data Mining
    • We covered two clustering algorithms: k-means and DBSCAN, which is a density-based clustering algorithm.
  • Big Data
    • We covered graph processing, from GraphX to Pregel.
    • I worked on a project where we implemented PageRank, but using the GraphFrame library. We used the MessageAggregation module to update vertices, which is more efficient than the groupBy and join operations needed if we treated the website vertices as raw DataFrames.
  • OOP
    • We discussed ideas relevant to the Allocator project.

What’s in your way?

I need to finish up Allocator. Coalescing multiple free blocks in the deallocate() function is non-trivial, but I’m confident that I can figure it out.

What will you do next week?

Tomorrow, I will finish Allocator and write additional unit tests and acceptance tests. On Tuesday, I will finish my Big Data assignment.

What did you think of Paper #9: Dependency Inversion Principle?

I still don’t see what exactly is being inverted. Most of the examples discussed using abstract classes, upon which lower level modules depended.

What was your experience of DigitsIterator, Iterators, and std::vector? (this question will vary, week to week)

It brought me back to creating a DigitsIterator in Python for SWE. Clearly, pointers and pointer arithmetic served as the guiding aesthetic principle for iterators in c++. It can, however, be confusing to conflate the * operator with accessing an iterator’s current element. There is a sense in which the * operator feels overloaded.

What made you happy this week?

I went to Barton Springs today. The weather’s getting hot!

What’s your pick-of-the-week or tip-of-the-week?

My pick-of-the-week has to be the argparse module in Python. If you’re like me, you were using sys.argv[] to access command-line arguments blindly. It provides the user with additional context for each argument, and allows the programmer to mandate arguments without exception handling.

Headshot