CS371p Fall 2020 Final Entry: Jesse Huang

Long-term takeaways from this class:

  • 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, iterators, and functions
  • 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?

These are good general practices in programming — some I already do and some that I see are really useful, solutions I didn’t even know I needed. Some of the ideas I learned somewhat before like from Mike or other CS classes, and some from especially this class I’ve found very useful.

Were there any other particular takeaways for you?

I think the most useful was extensive testing because before, with long-term projects, I had to deal with bugs surfacing only after several features were added.

How did you feel about two-stage quizzes and tests?

I think it was pretty fair and effective. I wasn’t always able to keep up with lectures and being able to understand what I got wrong from friends and also explain it to them made it really easy to cover whatever I missed.

How did you feel about cold calling?

For me it was fine. Sometimes I was a bit nervous as I wasn’t keeping up with the content and needed some more time, but even in that case I was able to ask questions or simply let Professor Downing gently walk me through it.

How did you feel about office hours?

I think they were probably useful for those that went. I didn’t go to many, but I would assume they provided useful direct help.

Give me your suggestions for improving the course.

Some of the quizzes took a bit of time even if I knew the answers to walk through the questions, but that wasn’t really a problem either since a good amount of them are dropped.

To future students:

Get ready for Mike Scott Part 3: C++ edition. The pace is pretty much the same except there are a lot of additional peripherals that will help you understand a better, more clean way of testing and upkeeping code.