CS371p Spring 2021 Final Entry

Varad Thorat
3 min readMay 10, 2021
  • How well do you think the course conveyed those takeaways?

I think the course conveyed these takeaways very well. A lot of these concepts were covered in class explicitly. You learn the importance of some of takeaways as you work on the projects, such as testing, code reuse, and collaboration.

  • Were there any other particular takaways for you?

One takeaway that I learned was the importance of planning out and designing the project before coding. It is very tempting to just start writing code sometimes, but planning code out makes the whole process more smooth. You can avoid a lot of the errors you may face early on if you do this.

  • How did you feel about cold calling?

I think cold calling was a very nice part of the class. It helped me stay focused because I knew I could get called on. It made the class more interactive than my other classes on zoom.

  • How did you feel about office hours?

Office hours were very useful for me. I was able to get a lot of my bugs fixed during office hours, and I would also end up learning some more important pieces of information alongside that.

  • How did you feel about lab sessions?

Lab sessions were definitely helpful. The TAs helped me solve some issues that I had with git and the projects in general.

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

I never really had to use the CI/CD pipeline or Google tests in my previous projects. These were really nice and helpful as I worked on my projects. The Google tests were able to show very minor bugs that existed in my code, which saved me a lot of time in the long run. I will definitely be using it in my future projects.

  • 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?

It definitely gave me more insights on how to design my code. These papers really showed pitfalls that can occur with bad code. Even if the code works as expected, not following some of these principles may result in the code not being able to work in the future. Changes may occur, and the code that is written is not suitable to adapt to these changes.

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

It made me think about getters and setters in a different way. For most of my coding experience, I have used it frequently. However, these papers made me re-evaluate these methods and the potential pitfall of using them. I will definitely try to minimize them in future projects.

  • Give me your suggestions for improving the course.

Honestly, I was pretty satisfied with the course. One thing that I would advise is merging the tests into the public repository earlier. This can help students change their tests if needed.

--

--