How well do you think the course conveyed those takeaways?
- 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 that this course did an amazing job of teaching me to use tests. I think that this alone has made me a much better programmer, as writing tests before developing a solution has made debugging so much easier. In terms of iterators, I have gotten a lot better at using them, and I now understand how different containers provide different iterators much better now. All of the other points were also quite well-conveyed, but those two stood out to me the most.
Were there any other particular takeaways for you?
I think that the other major takeaway I have is working with a partner. I think that pair programming is an amazing way to program. It helps so much having somebody else coding alongside you, and makes it much more fun as well.
How did you feel about cold calling?
I was totally fine with cold calling, as I had taken another class with Downing before. As always, he doesn’t put any pressure on you to get the questions he asks right, and mainly helps you talk through the problems.
How did you feel about grading?
I personally didn’t like the grading scheme during this class. Falling behind in one area of the grades means that it is impossible to make up for in the other areas. For me, halfway through the class, I was in a situation where I was unable to obtain an A in the class anymore. As a result, I was less motivated to try in the class, whereas with a regular grading scale, I would be motivated to try harder in order to bring my grade up.
How did you feel about office hours?
I thought office hours were offered pretty often, enough so that I never wished that there were more of them.
How did you feel about support from Amogh?
I thought that Amogh provided a lot of help in office hours whenever I needed it. He was very supportive as a TA, and was able to answer all the questions I had.
What required tool did you not know and now find very useful?
Not really a required tool, but I learned how to close issues with commits from this class, which was quite helpful to know how to do.
Give me your suggestions for improving the course.
I think that the main issue I had was the grading scheme. As for the content, I think that the Integer and Deque projects were a large step up from the other projects that we had. Maybe that was because we had less time because this was a summer course, but I felt that I would have liked more time for those, or maybe more experience with a few more projects in-between first.