CS 373 Spring 2022 — Week 9 Blog, Joseph Muffoletto
What did you do this past week?
This past week, I studied for my Reinforcement Learning exam, worked on the backend of our SWE project, continued debugging the code signature for my game development research, tutored at Govalle Elementary, hung with friends, and propagated many of my plants.
What’s in your way?
I have spread myself too thin for this semester, so it is hard to make time for my commitments. When one improves, another suffers. It's a frustrating cycle that I am still working on balancing.
What will you do next week?
Next week, I want to wrap up my game development research, help my group complete our phase II submission, complete my project proposal for my synthesis/verification course, catch up on my Roman history course, tutor again at Govalle Elementary, generate data for my autonomous systems research, and begin the literature review for my Reinforcement Learning course project.
What did you think of Paper #9: Dependency Inversion Principle?
I thought it was interesting, but also a bit redundant. At its core, the DIP is a design that combines the Liskov Substitution Principle with the Open-Closed Principle. To eliminate bad design (rigidity, fragility, and immobility), the author posits that modules should only depend on abstractions and that these abstractions should not depend on details.
What was your experience of decorators, Cache, and functions? (this question will vary, week to week)
The lecture I enjoyed the most was the one over decorators. Oftentimes, I find myself having debug statements littered throughout my code. With decorators, it seems like there is a clean way to: a). enable/disable debug statements with a small change and b). add logic to debug statements without adding clutter.
What made you happy this week?
This week, I volunteered as an after-school tutor at Govalle Elementary School and it was a really enjoyable experience. The kids were hilarious and so eager to talk to us. I’m really looking forward to going back again this week.
What’s your pick-of-the-week or tip-of-the-week?
Pipreqs is a Python package that automatically generates a dependency file (requirements.txt) for any Python files you specify. While pip is able to generate a list of module dependencies, the list includes all of the modules installed in your environment. As such, if you did not use a virtual environment to isolate your backend’s modules, you will want to use a package like pipreqs.