CS373 Spring 2021: Ian Thorne (Week 9)

Ian Thorne
4 min readApr 5, 2021

What did you do this past week?

Technically, I’m writing this post a week late, so this was really two weeks ago. As you can see, that week must’ve been a busy one for me, since I’ve only gotten around to writing this blog post now. That week, however, I was scrambling to help my game development capstone team finish our pre-alpha build in time for play-testing while also working on finishing the frontend for the web project in this class. It was definitely a busy week but I also made some time to relax and spend some time with my family. Now, it’s arguable that that was a good decision, considering I’m only writing this post now, but that sort of thing is important. Take care of yourself!

What’s in your way?

At the time I should’ve written this, the major thing in my way was the “integration essay” I needed to write for the Bridging Disciplines Program. If you’re a UT student and you don’t know about the program, it’s definitely worth checking out! It lets you take classes from across majors within a variety of interdisciplinary themes. I’m in the program for Digital Arts and Media, since I want to go into game development, but there are programs for Museum Studies, Environment and Sustainability, and many more. If you want to check it out, I’ll leave the link here: https://ugs.utexas.edu/bdp. With that plug over, I essentially needed to write an essay summing up my experience in the program, so I could actually graduate with the certificate I’ve been working towards. After having worked on my web project group’s frontend all day and still having that essay to write, there was a lot in my way. If you’re curious, though, I did get my essay turned in on time — and quite a good one if I do say so!

What will you do next week?

The next week, I needed to finish of the frontend and frontend testing for the web project and also get to work on group projects in other classes, not least of which was my game development capstone, which rarely seems to loosen its grip on my schedule. Barring those projects, however, I also wanted to get started on the next web project phase, so my group could avoid future deadline crunches, which we’ve definitely been under on the last two phases. Aside from schoolwork, though, I was definitely planning on taking some time to relax, after the grind that the end of that week had been.

If you read it, what did you think of the Interface Segregation Principle?

I did read that article, and I found it pretty interesting. Early on while reading it, I was wondering if some sort of multiple inheritance was the solution, but I found that to be somewhat questionable. Reading on, I saw some comments that reminded me that Java allowed implementing multiple interfaces, which made me more accepting of multiple inheritance from pure abstract classes. I found it particularly elegant that the multiple inheritance solution allowed the writer to separate their interfaces without having to do any extra work. Simply writing the interfaces as different abstract classes separated them enough.

It reminded me of the way game engines like Unity and Unreal use component systems to separate functionalities. Basically, game objects are composed of multiple components, each responsible for some functionality. For example, a game object that needs to be rendered but not physically simulated could just make use of a rendering component, but not need any physics-related components. Generally, this solution does require writing another class to compose these behaviors however, so it’s not a perfect analogy.

What was your experience of comprehensions, yield, closures, and decorators?

I thought they all made sense. I’d worked with comprehensions before, but I didn’t know that they had a special name, I thought they were just a special for loop syntax that Python provided. When I first heard “yield” I had sort of assumed it had something to do with multi-threading, based on my what we learned in Operating Systems, but I was happy to hear that it’s used to create generators with functions. Though I suppose it is doing something quite similar to what “yielding” threads do. I’d seen closures in other classes before, but that never stops me from forgetting exactly what a closure is, so the refresher was welcome. Finally, decorators were interesting. Seeing the ways scripting languages like Python and JavaScript treat functions like any other object is definitely something that’s hard to wrap my head around, coming from languages like Java and C++.

What made you happy this week?

While it’s not really related to school, I’ve been growing my hair out since the pandemic started. I’ve always wanted to try wearing a bun, but never did, since I’d have to walk around with my hair at that awkward middle length for months on end. Since I’ve just been at home — and haven’t wanted to go for a haircut — I’ve been growing it out, and I discovered that week that it’s finally long enough to put in a small bun.

Exciting, I know.

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

That week, my pick-of-the-week definitely would’ve been this tutorial on React: https://www.youtube.com/watch?v=Ke90Tje7VS0&t=5236s. It explains a lot of React fundamentals that I was definitely missing coming out of phase one of the web project and, honestly, provided most of the information I needed to work on the frontend for phase two.

--

--

Ian Thorne
0 Followers

Senior in Computer Science at the University of Texas at Austin