Cooper Wilk

Mar, 31st, 2024

Me

SWE accomplishments this week

This past week, we had the most fun challenge of the season: the smoothie making challenge. I also spent some time working on Graphics and constructing a new game on my website called Digits and added a new component to my website to calculate ranked choice and single transeferable voting.

In terms of Software Engineering, our team started working on populating our API with sorting calls. I started working on adding the search bar and search features to the frontend. I feel like we also have good infrastructure in place to finish this milestone.

What was in my way

I spent a lot of time this week on my Graphics projectt, which was due on Thursday. Also, Survivor Texas starting took up a bit of time, but honestly, all of these were very fun.

Plans for next week

Next week, we will finish our milestone for the project by having our API filter calls completed and tested. I will finish my Graphics project and have a good time with Survivor Texas.

Paper #10. Why getter and setter methods are evil

This paper probably did the best job of convincing me why data in classes should be private. I'd heard this before but I never really belived it or understood fully why until now. When working on long-term projects, it makes sense to enforce the modularity of your code by making modules not overly-dependent to any other objects, especially objects that do not immediately relate to them by separating complex interfaces.

Thoughts on instance methods, static methods and class methods

Instance methods operate on individual instances of a class and have access to instance-specific data through the "self" parameter. They are commonly used for actions or behaviors that are specific to each instance. Static methods, on the other hand, are not bound to any specific instance and do not have access to instance data. They are often used for utility functions that do not require access to instance variables. Class methods are similar to static methods but have access to the class itself via the "cls" parameter. They are commonly used for methods that need to access or modify class-level attributes or perform operations on the class itself. Each method type serves a distinct purpose in Python, providing flexibility and clarity in object-oriented programming.

Thoughts on cross join, theta join, and natural join

Select allows users to filter and retrieve only the data that meets certain conditions, making it a powerful tool for data analysis and manipulation. On the other hand, "project" refers to selecting specific columns or attributes from a dataset while discarding others. This operation is essential for tailoring the retrieved data to meet specific requirements or for optimizing query performance by reducing unnecessary data transfer.

What made me happy

I was most excited about our challenge on Thursday, because it was so so cool. Everyone wore their new crew shirts and the challenge went amazingly well, all the players were really really into it.

Tip-of-the-week

My tip of the week is that there are no free online ranked choice voter programs, so you either have to build your own, or use the one that I made B), it is attached to this website.

My other tip of the week is to still learn the functional aspects of JavaScript programming. I always hated it so I never learned it for real, but to add this game, Digits, to my website I had to learn a lot more about functional programming. For example to shuffle a list in JavaScript, you can do it in one line with this: numbers = numbers.slice().sort(() => Math.random() - 0.5);

  • Play Digits Here