CS371p Spring 2022: Vincent Huynh: Final Entry

Vincent Huynh
3 min readMay 9, 2022

• How well do you think the course conveyed those takeaways?
The course conveyed the takeaways very well. Some takeaways I was familiar with beforehand, such as the importance of testing and refactoring, but this course made their importance much clearer. The course was also able to convey iterators, containers, adapters, and allocators just as well, and I learned a lot from both the lectures and exercises.

• Were there any other particular takeaways for you?
On the projects, I was able to work with many different tools that will be useful to know in the future, such as Docker, CI/CD, and Makefiles. I was also able to reinforce my knowledge and coding abilities with C++, and I feel much more comfortable with the language in general.

• How did you feel about cold calling?
I was fine with cold calling after seeing how it went the first few days. When it was my turn to be called on, it was not stressful at all and felt like a normal conversation.

How did you feel about specifications grading?
The grading system actually made the class less stressful for me. It felt better knowing that we just had to perform well enough instead of perfectly, but also perform well consistently and across every category to earn a good grade.

How did you feel about help sessions and office hours?
The office hours and help sessions I went to were very helpful. I ended up being able to apply the advice given to me on subsequent projects.

• How did you feel about the support from the TAs?
The TAs were very helpful and were also very responsive on Canvas, and I appreciate that.

• You should have read five papers that describe SOLID design: Single Responsibility, Open-Closed Principle, Liskov Substitution, Interface Segregation, and Dependency Inversion. What insights have they given you?
These principles are all there to prevent us from having problems further down the line when we design our code. They revolve around minimizing the possible issues that could come with implementing changes in requirements, which are common in the real world.

• You should have read two papers that advised minimizing getters and setters. What insights have they given you?
After reading those papers, I realized we are taught about getters and setters early on in programming courses because they are an easy way to get started. However, they are not good in terms of object-oriented design and are usually signs that something can be done differently to improve the design.

• What required tool did you not know and now find very useful?
I had used Docker and CI/CD before, but I also found working with Makefiles useful.

• In the end, how much did you learn relative to other UT CS classes?
I learned a lot both in terms of concepts and programming from this class, which is something not all CS classes have. Usually, they are either heavy in one or the other. But I think a balance is also a good way to learn the material.

• Give me your suggestions for improving the course, but apologies in advance; specifications grading will remain.
I actually liked the specifications grading, but I would find a way to keep the cold calling going strong towards the end of the semester — I noticed many students were not being responsive when called on, taking up class time.

--

--