CS371p Safin Kasturi: Final Entry

Safin Kasturi
3 min readMay 9, 2021


  • How well do you think the course conveyed those takeaways?

I think this course did a great job of conveying the takeaways. They were also reinforced in the 5 projects throughout the semester.

  • Were there any other particular takeaways for you?

Some takeaways I have from the projects are that listing out specific to-do items (or issues) is actually very useful, and that frequent commits are the best way to prevent having to spend excessive time debugging.

  • How did you feel about cold calling?

I actually like the cold calling. It kept me engaged in lecture throughout the semester, and it is an easy way to earn participation credit. Prof Downing is also very good at making sure you’re comfortable with the material before moving on.

  • How did you feel about office hours?

I actually never went to an office hours session this semester, but a friend of mine attended one once, and said it was quite useful.

  • How did you feel about lab sessions?

I liked the lab sessions. The TA’s in this class were usually pretty knowledgable, and willing to help. The lab sessions are especially useful for when you get stuck on projects.

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

I didn’t know about Google’s unit testing framework, Google Test. I found it to be extremely useful while testing as I did the projects in the class. It tells you exactly what tests (if any) failed, and also why it failed.

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

I think these readings were very informative of some useful general software engineering practice. I particularly enjoyed the single responsibility paper. It is very intuitive (and seemingly simple), but I think keeping it in mind while designing software will be very beneficial.

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

I found the two papers about getters and setters to be the most interesting throughout the course. I’ve always just assumed that the conventional and best way to design classes was to incorporate public getter and setter methods, but these two papers changed my understanding on that. It has caused me to think about the application or behavior that would be the result of the getter or setter, and how to directly do this behavior in the object itself.

  • Give me your suggestions for improving the course.

One suggestion I have would be to allow a little more time on the in class exercises. Sometimes I felt like there wasn’t enough time allotted for the exercises. However Prof. Downing does give plenty of extra exercises so that you can still earn full credit for the exercise portion of the grade.



Safin Kasturi