Algorithm visualization

Try creating a visualization of a graph algorithm seen in class!

I'd been hoping to provide you with the Aanim engine, but unfortunately that codebase has been closed sourced. Still, you can check the video presentation of that paper to get some idea of what I originally had in mind. And, if you have lots of spare time (or experience with the Manim engine originally developed for 3Blue1Brown), then feel free to see if you can produce something similar, or even improve upon, Aanim's results!

Alternatively, NetLogo might be a simpler visualization option (albeit, likely at the cost of losing the code view)

Think you know a better visualization tool for the job? Try it!

If you're succesful, then I'd love to credit your tool and use it in this (and future) offerings of the course!

Some of the models and algorithms I'd love to have better visualizations for are:

  • Rozenshtein et al strong edge maximization (W2)
  • Sintos and Tsaparas strong edge maximization (Tutorial, W2)
  • Girvan-Newman partitioning (Tutorial, W3)
  • TIMBAL (W4)
  • Kumar et al. preferential attachment model (W6)
  • Hubs-and-authorities ranking (W6)
  • Threshold cascade (W7)
  • Unified SIR/SIRS/SIS/SEIRS visualization (W8)
  • Wright-Fisher single-parent ancestry model (W9)

Messing with generative models!

I've spent a little time mucking with ChatGPT, and I've been largely impressed by the results - though its reliability is clearly varied!
If you have time, why not try getting a large language model (such as ChatGPT) to define, reason about, contrast, or extrapolate on course content. Where does it work? Where does it break down? Can you reliably trick it? What sorts of things is it more or less reliable in? How rigourous and relevant are its explanations? Can you get it to hallucinate?

I'd love to hear your experiences with whatever models you experiment with!