- How well do you think the course conveyed those takeaways?
I thought this class did a great job at conveying those concepts. Although this class was taught in C++, these concepts are applied universally amongst many programming language and it gave me a much deeper understanding of how certain algorithms and data structures are designed to create the most efficient and elegant code.
- Were there any other particular takeaways for you?
One particular takeaway that I had from this class is how important it is to understand these coding languages in depth in order to truly get all of the utility that we can out of it. Oftentimes I scrape by by just using the shallow knowledge that I have of a language, but there are so many tools built into the language that can help to allow you to write really efficient, beautiful code.
- How did you feel about cold calling?
I didn’t mind cold calling because I think it holds me accountable and forces me to pay attention in class.
- How did you feel about specifications grading?
I thought specifications grading was a good way to ensure that we as students address every aspect of this class and don’t slack off on any one category.
- How did you feel about help sessions and office hours?
Every help session or office hours I went to was super helpful and I always came out of it accomplishing what I set out to as well as learning other tips or insights from the TAs.
- How did you feel about the support from the TAs?
The TAs were very helpful all throughout the semester and were very knowledgeable about the content of the class. Both TAs were always able to address my issues and showed that they really cared about our success.
- 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?
They gave me the insight that designing code with multiple dependencies and classes requires a lot of thought into the design and often should be thought of in advance. However, even once you start coding it’s important to continue to think about the design to ensure that you’re not writing code that is rigid and difficult to extend.
- You should have read two papers that advised minimizing getters and setters. What insights have they given you?
I realized that it’s important to minimize the use of getters and setters cause it may result in very convoluted code that can often lead to unnecessary dependencies and should only be used when it is absolutely required.
- What required tool did you not know and now find very useful?
I used Docker previously, but after this class I think I have a better understanding of what it is and how to use it and I think it’s a super valuable tool that I will definitely use in the future.
- In the end, how much did you learn relative to other UT CS classes?
I think I learned a decent amount more in this class compared to other CS classes, because Downing really packs as much information as possible into each lecture and holds us accountable for it with quizzes and projects so I’ve absorbed a lot of information in this class.
- Give me your suggestions for improving the course, but apologies in advance; specifications grading will remain.
I thought this class was really excellent and don’t see much room for improvement!