Dec 5: CS371p Fall 2020 Blog Final Entry

This series of blog posts are assignments of my CS 371p course.


  • 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

1. How well do you think the course conveyed those takeaways?

I felt the course conveyed those takeaways greatly and thoroughly. The course and Professor Downing really break down these topics and make them very simple to understand. The papers we read every week also contribute to our understanding of these takeaways at a production level, and we get to see the takeaways in action when completing our projects in a pair. Even though some concepts were foreign to me at the beginning of the course, I feel like I have a solid grasp from the lectures and application of these takeaways.

2. Were there any other particular takeaways for you?

I personally felt almost every paper that we read could be a takeaway on its own. The papers mostly dealt with the scalability and security of implementations, and I will definitely keep these ideas in mind in the future.

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

I really enjoyed the format of the quizzes and tests, where you take the quiz or test by yourself in the first stage and work with a group on the second stage on the same problems. This format ensured that I have a solid understanding of the material afterwards and really encouraged a collaborative environment, something that is quite rare during this time.

4. How did you feel about cold calling?

I felt the cold calling was a great way to get students to engage and clear up any confusion in the student’s understanding of the material. There was a time where I was unsure about a topic, and although cold calling does put me on the spot, I’m glad that Professor Downing luckily called on me and made sure I understood everything correctly.

5. How did you feel about office hours?

I did not go to office hours.

6. How did you feel about lab sessions?

I did not go to lab sessions.

7. Give me your suggestions for improving the course.

I felt that the final few weeks of class were a bit more cramped compared to the earlier parts of the semester. I think moving a bit faster early on and a bit slower before the end of the semester would be great, but since this is my personal preference, I’m not sure if others would agree. One aspect that I thought didn’t need any improvement at all were the TA’s. I felt that the TA’s really took it upon themselves to make sure of our success in the course and contributed greatly to the course’s quality, and any way that’ll replicate this for future TA’s should be taken.