CS371g Spring 2022: Sang Pham Final Entry
How well do you think the course conveyed those takeaways?
I think this class cover all of the takeaways from the projects and lectures. Professor Downing usually tweaks a simple piece of code and questions us on how it behaves that way. We had learned a lot of small details that we usually look past or ignore about C++ and OOP in general.
Were there any other particular takeaways for you?
An important takeaway that I learned in this class is you should think hard about the design phase of any project. Familiar ourselves with creating UML and sticking with the OOP principles from the get-go.
How did you feel about cold calling?
It feels nerve-wracking to me and makes me stay focused on the lecture at all times because you’ll never know who Professor Downing will be called next. It also keeps the whole class engaged in helping out each other and asking questions.
How did you feel about specifications grading?
I like this grading scale more than the traditional one. I know some people didn’t like it but this grading scale keeps you in the loop of doing everything right and on time. For the projects, if you miss one your letter grade will be lower than one but this makes sense to me because it really important part of the class. In addition, I don’t think the project should get any partial credit if it no completes the requirements because it is not useful in real life.
How did you feel about help sessions and office hours?
Help sessions and office hours are very useful especially when you need help with your codes.
How did you feel about the support from the TAs?
Serdjan and Philo are both very helpful and respond very quickly to Ed's discussion as well as discord. They are also very active to help students with any exercise problems.
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?
I think the paper is an important part of the class, you can only learn so much in a semester but the papers make you curious about OOP and spent more time to learned about it by yourself. They clearly stated what principles you should follow and why to become a good programmer.
You should have read two papers that advised minimizing getters and setters. What insights have they given you?
It really a wake-up call since I had and still use getter and setter a lot. It stated clearly how getters and setters will violate the other OOP principles from previous papers.
What required tool did you not know and now find very useful?
I found unit tests are very useful because I constantly change my codes and unit tests keep me in check as to how my code should behave.
In the end, how much did you learn relative to other UT CS classes?
I’ve learned more in this class compared to the other two CS classes that I took this semester. I found that I learned a new thing in every lecture and some time on my own because it related to class material. I’m glad I took this class because I feel like it had more hands-on knowledge that you will need in the future.
Give me your suggestions for improving the course, but apologies in advance; specifications grading will remain.
My only suggestion is to improve the class website. I didn’t find the Calendar tab useful and it would be great if we could have a Project and a Grading tab. I realized that I spent a lot of time looking up the project page and having to go through the schedule or have to scroll through the home page to find out about grading details. Other than that, I think this is a great class to take and Professor Downing really cares about the students and their experience.
Thank you for reading!