CS371g Summer 2021 Final Entry — Kyzer Polzin

  • 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

I think Downing did a pretty good job on explaining the importance of each of these takeaways. Oftentimes, he would introduce these concepts by assigning us a paper to read or by poking us with questions until we realized the advantage the takeaway. After the discovery, we would often explore the why and how of these takeaways which really helped to understand their importance.

Nothing too significant. I would just like to bring further emphasis to the testing takeaway though. As this class forces you to optimize your code on nearly every project, build simple solutions, then test. Then make a small optimization, test again. Continue down that process until you have a working project that is quite efficient. Also, make sure to always add comments and notes in your code that make it easier to figure out how you can further optimize. Not only will this improve productivity, but it will also make your more readable.

Cold calling is a little anxiety inducing. Regardless, I am still a fan of it. It forced me to pay attention in class so I could provide answers when called on. Downing was really good about helping you through finding an answer to his question even if you didn’t know it initially. He always helped students arrive at the idea he wanted us to and didn’t make anyone feel bad for stumbling along the way. He even encouraged getting help from fellow classmates if you were stuck (granted this was Zoom and we could just read the chat). It is a good aspect of the class and don’t be too worried about it!

Erm, the grading is unique to say the least. To be honest, I am kind of a fan of it though. It sort of feels like a game sometimes and it is a little bit more work trying to keep up with what you need to take you to the next level (levels being letter grades), but it is more forgiving than the traditional grading system I feel like. It also helped me to set reasonable expectations of myself and not have to stress about striving for perfection on every little assignment. If it is continued to be used, just make a quick little spreadsheet that tracks the number of E’s and M’s you have so it is easy to visualize what grade you have already achieved and what you need to get a better one. I like it and think it should continue to be used though!

Office hours were always super helpful. Downing and Amogh were both really helpful and were willing to sit and spend time with you to provide high-level suggestions to any issues we had. Word of advice, if you get started early on your assignments and go to the OH at the beginning of the week, you will have MUCH more 1 on 1 time with them as I found the queue was generally empty the majority of the time.

Amogh was fantastic. Super helpful in OH, monitored chat during lectures to help answer questions, always there to answer questions, etc. He often held extra OH on weeks where the projects caused students lots of issues and even provided write-ups on several of the labs so that we could fix common mistakes for future projects. His dedication to the class was obvious and he definitely “exceeds expectations.”

To be honest, didn’t know a lot of the tools we used in this class before this summer. Out of all of them though, I really enjoyed learning Google Tests. It has a nice display and made it obvious as to how many and which test cases passed and failed.

Change the virtual token system. Since the main flaw with the EMRN system is it functioning like a game, set a hard and clear criteria for when and how virtual tokens can be used. Then lower the criteria for the benefit of having all 5 tokens at the end of the course, it will encourage people to use their tokens as they are intended without stressing about the grade as much. For example, there is only one more grade that will affect my final letter grade this semester (final project) and based on the current system, I could end up with anything between a C and an A-.

--

--

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