Long-term takeaways from this class:
- test first, test during, test after, test, test, test
- when designing algorithms, demand the weakest capabilities (e.g. iterable vs. indexable)
- when designing containers, provide the strongest capabilities (e.g. indexable vs iterable)
- build decorators on top of containers, iterators, and functions
- utilize the benefits of being lazy (i.e. yield)
- 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
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.
Overall the course was very fun. I think sometimes the rubric for each phase should be elaborated as we sometimes got points off of things we didn’t know we were supposed to do even after checking piazza and sifting the class website. 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 to learn a lot of things on your own. It will be fun and rewarding at the end to have taught yourself professional tools and produce a fully fleshed website with a team you’ll get to really know, but it will take time and dedication.