CS373 Spring 2022: Luca Santos
- What did you do this past week?
I finished my second project for Symbolic programming and spent a considerable amount trying to improve my drawing skills. Besides, I applied for the graduation ceremony and started more carefully planning my last Summer before work.
2. What’s in your way?
Currently I feel like I need to find motivation within me to start on a few projects/hobbies I have been wanting to get to.
3. What will you do next week?
Work on my next Symbolic programming assignment, meet with my SWE group to keep developing our application idea, and hopefully keep drawing!
4. What did you think of Paper #5: Single Responsibility Principle?
I had read over this paper before, so it was a nice reminder of the core principles and rationale behind this design rule. It can be difficult to take time to design an application before diving into implementation, so if anything, the SRP emphasizes how much difference careful code architecture can make for relatively little effort. This notion becomes even more self-evident when you consider how much debugging time you can save by dividing up responsibilities between separate application modules.
The SRP allows for ease of bug tracing, and cohesiveness, while helping avoid unnecessary interdependences.
5. What was your experience of types and recursion? (this question will vary, week to week)
Sometime after 314 and before OS we had to become at least a little comfortable with recursion, but for the longest time using it as a tool seemed daunting to me. Nowadays it does not seem like a scary prospect anymore, but it is always interesting to go over different types of recursive techniques and how different languages handle recursive patterns. Symbolic programming has helped cement the idea that recursion can be extremely helpful when used correctly, especially in Clojure, which, like we talked about in class, simplifies tail-recursion into a simple loop.
6. What made you happy this week?
I was extremely proud of some of the Drawings I did during art class.
7. What’s your pick-of-the-week or tip-of-the-week?
Please, no matter how eager you may be to start or finish a project, always start with some sort of design draft. Architecture is just as important as the actual implementation of your project and can keep you safe from mindless coding (also known as channeling a lot of good effort into a bad idea). Draw diagrams, write down bullet points, enumerate the things you need to accomplish and how you may approach the problem. Time spent here is saved debugging!