CS 373 Spring 2022 — Week 14 Blog, Joseph Muffoletto

This past week, I spent the majority of my time on campus trying to make progress on my various projects. Since each of my courses is based on a semester-long project, I have been trying my best to balance my efforts between them. Aside from my academics, I met with my autonomous systems research advisors, met with the other leads in Longhorn Racing Combustion, and had various meetings with my fraternity.

The main thing in my way is myself. I need to be more disciplined so I can close out this semester. I also need to figure out my registration. As part of the integrated BS/MS, we are required to take courses outside of the CS department. I spent quite a bit of time the past few weeks emailing engineering professors for approval, largely to no avail. It is a frustrating process and the uncertainty of my fall schedule is weighing on me. I hope to get this resolved soon, but I suspect that I will have to wait after the engineering graduate students have registered (late June).

Next week, I will keep making progress on my projects. I will also try and figure out my registration, although this seems a bit unlikely.

I found it fairly interesting. We have little exposure to these methodologies in our coursework, so it is a bit difficult to apply these findings to our academics. Nevertheless, it is interesting to see the role that engineering philosophies play in the software development process.

I really enjoyed the lectures on refactoring. While there are many different ways to refactor that we have not covered, the intuition behind the examples we went over is helpful and applies universally. Object-Oriented Programming is quite a difficult paradigm to get right, so I do appreciate this knowledge.

I spent some quality time with my new member class. We resolved some internal issues and then had a nice time afterward. It is moments like these that make me appreciate the community I have found myself in.


TLA+ is a “formal specification language”. It allows you to design a system and then verify that it meets certain specifications. It is essentially a more verbose language of unit tests and assertions, and I have found it useful when designing concurrent and/or distributed programs. It's completely free, has a plethora of documentation, and has been used in the development of large software projects (e.g. Amazon Web Services S3).



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store