CS373 Fall 2021: Victor Xia: Final Entry
- 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 (e.g., 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
- refactor, refactor, refactor
- make your code beautiful
How well do you think the course conveyed those takeaways?
I think that this course wonderfully conveyed these takeaways. The lectures were extremely engaging and helpful.
Were there any other particular takeaways for you?
I really enjoyed the fact that the projects were very similar to what you may be asked to do as a software engineer in the real world. Before this course, I had always heard API thrown around, but I never had any idea what it was or how to use it. Since I worked on backend through our projects, I finally learned how to use APIs to get JSON data and how to use the JSON data. The front-end seemed very intensive too, and I feel that my team members who worked on front-end are now very prepared for any front-end job in the industry.
How did you feel about cold calling?
Cold calling was a very nice experience, as it forced me to attend every lecture and stay focused in spite of everything being online. Even though I was only cold-called around 3 times within the entire semester, the times were very informative and non-intimidating.
How did you feel about specifications grading?
Specifications grading was not too bad in my opinion. Only having to get an M (2/3) on a majority of the quizzes and exercises took a lot of stress away from being a perfectionist and going for a 100. I felt that it was just a little stressful trying to get an M on every single project, as a single mishap (such as forgetting to comment your code or forgetting some unit tests) that would normally only dock 5–10 points off of your grade with the traditional grading system could result in an R and give you a B in the class.
How did you feel about help sessions and office hours?
The help sessions and office hours were very helpful, and my group went to them whenever we were stuck on something.
How did you feel about the support from the TAs?
I really loved the support from the TAs. The TAs were usually very helpful and were very easy to communicate with through discord.
What required tool did you not know and now find very useful?
Postman was a tool that I did not know before and was very useful for our team’s APIs. I found it very helpful with documenting and testing our API calls.
What’s the most helpful Web dev tool that your group used that was not required?
Our group used Flask-Restless, and it was super helpful for sorting and filtering in the backend.
How did you feel about your group having to self-teach many, many technologies?
Self-teaching the technologies was the main difficulty of the projects in this class. While it would have been nice to get some lectures on backend/front end functionalities, this method of self-teaching is also very present in the current industry, so I feel that it prepares us well for the future. The guides provided by the TAs also provided a ton of help and direction for learning these technologies.
Give me your suggestions for improving the course, but apologies in advance; specifications grading will remain.
I think that this course was very well structured. I would probably advocate for being able to choose your partners in the groups in the future, but I was overall thoroughly satisfied with the partners that I was assigned this year, and I actually became very close to my group members that I just met this semester.