Week Three: On the Ball

Grant He
CS373 Fall 2020: Grant He
3 min readSep 12, 2020

Greetings friend, Grant He here. Hope you’re having a wonderful weekend, and welcome back to my weekly update on Professor Downing’s Software Engineering class. This is week three, so we should all know the drill by now: there are questions and here are my responses. So without further ado, let’s just jump into it.

What did you do this past week?

School is officially in full swing, and I have gotten into the usual routine of fall semester work, i.e. juggling my time among searching and applying for summer internships, attending classes and completing school work, and maintaining a healthy and fit lifestyle. This past week has not been out of the norm. Computer-science-specific highlights include completing the Collatz project (more on this later), making serious headway in creating my first deep network to classify images, and assembling a team to construct a paravirtual hypervisor (where the first project is to implement a guest environment).

What’s in your way?

Time has never been more of the essence. Even in an era when people are physically disconnected, the web has everyone plugged into the world’s mainframe, effectively presenting dense, virtual immediacy and accelerated day-work potential. No matter how much I grind away, there’s always more to catch up, more to learn, and more to accomplish. I recognize that task prioritization and time management are broadly the keys to success, but it pains me to deliberately pass over so many opportunities.

What will you do next week?

I’ll mostly keep up my routine. In regards to this class, I hope to make a dent in whatever the upcoming project will be. And maybe, maybe, I’ll get cold-called by Professor Downing. The wait is making me act like a cat on a hot tin roof.

What was your experience of Collatz, the starter code, the makefile, its optimizations, and exceptions?

Collatz was a deceptively simple project that most importantly familiarized me with the software engineering workflow. I spent about a day’s worth of time working on the project (that’s a lot of time) and the vast majority of it was anxiously spent in overhead—getting my bearings by going through the starter code, trying to derive an optimization to pass the third test case (which ended up being the meta cache), and double-, no, triple-checking that I was following the requirements correctly before final submission. The essential document during this process was deciphering the makefile, which neatly defined all of the targets that I called to accomplish my tasks.

I implemented all five optimizations explored during class. I must admit that my prior experience with dynamic programming made the caching improvements quite intuitive to me. In regards to exceptions, I didn’t raise any in my Collatz project; however, as with the caching optimizations, my prior experience with exceptions stretches back to years ago at this point. I enjoyed the nice refresher from class.

What made you happy this week?

I passed a couple of interview rounds this week, which is super exciting to me. I’m determined to land a great internship next summer, and I’m happy to see that my LeetCode grind is about to pay dividends. Oh yeah, also the new Ichiko Aoba song is sublime. Would also warmly recommend you give this earlier masterpiece a spin if you aren’t familiar.

What’s your pick-of-the-week or tip-of-the-week?

The other day as I was going through the files for a PyTorch project with functionality I would need to implement, I noticed a requirements.txt file in the root directory. I’m a bit of a greenhorn when it comes to Python projects, so out of sheer curiosity I looked into this. I learned that this file is the standard medium by which a software engineer working on a Python project can easily download and install the necessary dependencies to run the application. All it takes is running the following command: $ pip install -r requirements.txt.

When creating your own application, you can run $ pip freeze > requirements.txt to generate a list of dependencies in the requirements.txt file for others to use. Voila! Easy peasy lemon squeezy.

For more information, check out Robert Boscacci’s Medium post here.

And that’s it for now! Join me next week for more stuff. Yep, my creative juices are running overtime as I type this…

--

--

Grant He
CS373 Fall 2020: Grant He
0 Followers

An introverted outdoorsman, conscientious trivia nerd, and staunch proponent of the Oxford comma. Also studying Computer Science at UT Austin. 🤘