Cooper Wilk

April 7th, 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 finished our part of the project with not too much strife.. 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 get more started on our final project for this class. I will finish my Graphics project and have a good time with Survivor Texas.

Paper #11. More on getters and setters

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 SQL select, SQL subqueries, and SQL joins

SQL Select is like picking what you want from a buffet. You choose the columns of data you're interested in from a table. SQL Subqueries let you ask a question (subquery) to find specific information that helps answer the bigger question. SQL Joins let you have multiple tables, and joins help you connect the pieces (rows) that fit together based on common values, giving you a fuller picture of your data.

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 to really understand an algorithm before you try to implement it. If there are multiple ways to do something, understand the pros and cons to each. For my Single Transferable Voting addition to the website, reading more about the differenent variations of the algorithm would have significantly helped reduce the implementation time. You can see the website by navigating to the voting page of this website.

  • See voting here