CS 373 Fall 2020 Final Entry: Daniel Deng
Welcome back to my final blog post for this class, if you have been following along, I appreciate it! :)
Long term takeaways that Prof. Downing hopes we take away:
- 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?
I definitely think I learned a lot of concepts in this course that will help me in my programming career in the long run. I’ve also learned to appreciate many of these takeaways that I have never seen before or weren’t used in Java such as decorators and lazy code. Overall, working in a group for over such a long period definitely made me learn more about coding with others in a group environment.
Were there any other particular takeaways for you?
A big takeaway for me is how beautiful writing code can be. Professor Downing always uses that word — Beautiful. There are so many ways of making the code concise and powerful that I have never done before, and will still probably struggle for a bit into the future. But seeing the possibility of that excites me.
How did you feel about two-stage quizzes and tests?
I actually really like two-stage quizzes and tests. They’re in a sense like curves to the test on their own, but the main purpose is to make sure that we know what the likely correct answers are by putting 5–6 brains together. I wish more classes did two-stage tests.
How did you feel about cold calling?
At first, I was kind of nervous about cold calling because I didn’t know if Prof. Downing would yell at me if I was wrong (haha). He never yelled and was quite patient in explaining concepts. I got used to it towards the end of the class.
How did you feel about office hours?
Office hours are pretty essential to this course since most students here will need help on web-dev. Having a TA who knows this stuff really well definitely helped.
Give me your suggestions for improving the course.
Honestly, I really enjoyed this course so it’s hard to think of something. I guess one thing could be to try to fit in web-dev concepts into the course but then I don’t know what it could replace since everything felt pretty essential.