CS371p Fall 2021: Kevin Chen: Final Entry

Kevin Chen
3 min readDec 5, 2021

How well do you think the course conveyed those takeaways?

I think this course was very thorough about the principles of object-oriented design. Downing had a lot of in-depth examples or exercises for students to use the knowledge they learned in class. The takeaways were also very fundamental to successfully completing the projects.

Were there any other particular takeaways for you?

I think the no setter/getter requirement was very helpful in making me think in an object-oriented way. The strict requirement made implementation tricky sometimes, but I definitely saw the benefits of not using these methods.

How did you feel about cold calling?

I though the cold calling was ok. I was used to cold calling from Downing’s SWE class, but I think OOP had more difficult questions to answer on the spot. It kept people engaged in the material and encouraged discussion in class. However, it can be awkward when someone doesn’t know the questions and ends up getting grilled by Downing for 10 minutes.

How did you feel about specifications grading?

I think I liked specifications grading because it was very clear on what you had to do to get an A. I also appreciate the leniency of not needing to be perfect to get an A. Figuring out your grade is also easier.

How did you feel about help sessions and office hours?

The help sessions and office hours were always useful when I attended. The TA’s are very knowledgeable about the projects and give helpful hints to tricky problems. I would have appreciated some more office hours though.

How did you feel about the support from the TAs?

I think TA’s gave a lot of support when asked. Amogh’s office hours on submission day are always a useful resource for last minute questions.

What required tool did you not know and now find very useful?

I did not feel comfortable with Docker before this project even though I took SWE. I had some headaches getting Docker to work in SWE so I just ended up avoiding the Docker sections. However, I used Docker for every project this semester and am very comfortable with it now.

You should have read five papers that describe SOLID design: Single responsibility, Open-closed principle, Liskov substitution, Interface segregation, Dependency inversion. What insights have they given you?

Reading the papers in OOP gave me more insight into SOLID design than when I read them in SWE. I learned a lot about how classes should interact with each other and minimizing exposure will actually lead to code that is easier to debug and expand.

You should have read two papers that advised minimizing getters and setters. What insights have they given you?

The most important insight associated with minimizing getters and setters is that work should be done strictly by classes with access to the data required to do work. Instead of requesting information from other classes, make other classes do the work themselves. This is a fundamental part of OOP design.

Give me your suggestions for improving the course, but apologies in advance; specifications grading will remain

Students should be able to see their perusall scores. I got 1’s for 2 readings early on in the semester even though I thought I had commented a fair amount. Especially when missing 3 readings is an automatic B, it can be frustrating to not know how your readings will be graded.

I really think that the Life submission needs to be moved back another day. There is still stuff that Downing has not gone over that is used in Life. Additionally, Life was first assigned during Thanksgiving break, giving us less time to work on it than usual.

--

--