Final Entry

Grant He
CS373 Fall 2020: Grant He
4 min readDec 6, 2020

Salutations! Welcome to my final blog post of the Fall 2020 semester. It’s been a long and arduous journey, especially under the extraordinary conditions of the time we all live in, but I’m very happy that I’ve decided to take this class during my time at UT Austin. You might be a fellow student who’s reading through this on the first day of class, or you might be, like me, nearing the final days of the semester. Regardless, I’m happy that you’re here! This blog post is simply me recapping some long-term takeaways from the class, as well as revealing some tips and tricks to help you succeed.

Firstly, Professor Downing was helpful in providing a list of key takeaways that he hopes his students take away from class. They are the following:

1. Test first, test during, test after, test, test, test

2. When designing algorithms, demand the weakest capabilities (e.g. iterable vs. indexable)

3. When designing containers, provide the strongest capabilities (e.g. indexable vs iterable)

4. Build decorators on top of containers, iterators, and functions

5. Utilize the benefits of being lazy (i.e. yield)

6. Always look for reuse and symmetry in your code

7. Collaboration is essential to the quality of your code and to your well-being in producing it

How well do you think the course conveyed those takeaways?

The majority of the course’s lectures covered the various elements of Python, the most useful of which involved emphases on containers, iterators, comprehensions, generators, and functions. Material like SQL and refactoring took up the final month and a half of the semester, but it was the Python unit the did most of the heavy lifting in involving the key takeaways above (points two to five are explicitly about this section). As such, even if I don’t personally understand the importance of a handful of these takeaways, the time and energy that was spent during lectures about these topics sufficiently conveyed the takeaways. In regards to the other points, the IDB project more than sufficiently conveyed those takeaways. If you don’t know what the IDB project is yet, oh boy… don’t sweat it and find a good group. You will be doing nearly every collaborative assignment (including projects, quizzes, tests) with your group.

Were there any other particular takeaways for you?

After working with my wonderful HomeFarmer team this semester (shoutout to Jonathan Randall, Sujoy Purkayastha, Pranav Akinepalli, and Sameer Haniyur!), I realized that the most important takeaway has been team communication. Of the few times that there was trouble among the team, every single instance could have been prevented (and were eventually resolved) if/when everyone was more open with their progress in the development cycle. Just be communicative and everything will work out in the end. 👌

How did you feel about TWO-STAGE quizzes and tests?

The two-stage quizzes and tests have been the saving grace of my grade in this course many times over now. People often say that two minds are better than one. Now imagine what five minds can do. As long as everyone puts in their best effort to learn the course material, I can always expect a full 50% point buffer in the quizzes and tests. Of course, it’s also important to keep an open dialogue with the group to make sure that all members have agreed to the final submission.

How did you feel about COLD CALLING?

I fully recognize the importance of Professor Downing’s cold calling style, and actually I think it’s a lot better than the alternative teaching styles that I’ve encountered in my other computer science classes. I’ve talked about this in more depth in an earlier post, but the cold calling method enables a more conversational/dialectical tone, which I personally find more engaging than a didactic one. Of course, this also puts pressure on the students, who must pay present attention to the lecture lest they don’t mind being caught off guard when being called. However I find this to be a valuable tradeoff and I frankly wished more classes employed it in online lectures.

How did you feel about OFFICE HOURS?

I found office hours to be very helpful. The class has many TAs and in my experience they’re all more than happy to help out with answering any questions about the course material or project.

How did you feel about LAB SESSIONS?

I found lab sessions to be similar to office hours, in that the TAs have dedicated their time to help you out in any problems you have. On top of these two options, I would also like to add that Piazza has been a very helpful platform to get questions answered or clarified by other students or Professor Downing himself!

Give me your suggestions for improving the course.

I loved this course overall. My biggest suggestion to the course creator is to have the IDB project’s second phase be longer overall. I know other groups experienced a similar problem, but the workload in moving from a static website to a dynamic one, plus creating a database with exposed API points to fetch from, was a heavily involved process for both frontend and backend teams. I don’t know the optimal layout of project deadlines, but I would cut into the first project (Collatz) for more breathing space elsewhere.

Thanks for reading! Hope you have a wonderful day :) Sayonara!

--

--

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. 🤘