CS371p Fall 2021: Zein Fakhreddine: Final Entry

  • test first, test during, test after; test, test, test
  • when designing algorithms, demand the weakest iterators (e.g., bidirectional vs. random access)
  • when designing containers, provide the strongest iterators (e.g., random access vs. bidirectional)
  • build adapters on top of containers and iterators
  • do not use new and delete; use allocators instead
  • always look for reuse and symmetry in your code
  • collaboration is essential to the quality of your code and to your well-being in producing it
  • refactor, refactor, refactor
  • make your code beautiful

How well do you think the course conveyed those takeaways?

Were there any other particular takeaways for you?

How did you feel about cold calling?

How did you feel about specifications grading?

How did you feel about help sessions and office hours?

How did you feel about the support from the TAs?

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

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?

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

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



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store