CS 373 Spring 2021 Final Entry: Pranay Kalagara
Professor Downing’s 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
- refactor, refactor, refactor
- make your code beautiful
How well do you think the course conveyed those takeaways?
I think the course converyed all these takeaways very well. From the way the projects are designed to how Professor Downing goes about explaining key concepts in lecture, you end up learning a lot about each one and get better as an overall software engineer. Even though they may not be specific tools, they are skills that make you become a better programmer for the future.
Were there any other particular takeaways for you?
I think one particular takeaway for me was just how nice it was to go over SQL in class. I had known basic SQL but I’d never really had the chance to sit and actually learn the nuances of the language. I thought the excercises were good for that as well.
How did you feel about cold calling?
Initially I was nervous about it but I found that it kept me attentive during class. Towards the end I was glad it was a thing because without it I probably would have zoned out a lot more.
How did you feel about office hours?
N/A, I did not attend office hours.
How did you feel about lab sessions?
The lab sessions were nice and the TAs helped a lot with issues we were having.
What required tool did you not know and now find very useful?
I thought learning about Postman was pretty interesting. I had never used it before and at first I didn’t think its application was necessary but I came to appreciate how much it helped with documentation and such.
What’s the most useful Web dev tool that your group used that was not required?
I’d say the most useful was Material-UI. It really helped a lot in building and filtering the tables we had because it basically does it all for you.
How did you feel about your group having to self-teach many, many technologies?
I found it to be kind of annoying because it can definelty be a lot but I think it was good preparation for the future since you may very well be asked to do the same once you start working. I’d say the harder of part of the course is just learning how to use the tools rather than the actual coding or algorithims you have to implement.
Give me your suggestions for improving the course.
I think going over at least some basic front-end or web development during lecture would be nice. Especially for people such as myself who have had no experience with it. I remember being pretty confused and overwhelmed at the start of the project so I believe that having some sort of intro would be very helpful.