CS373 Spring 2021: Remus Wong
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 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
I think that Downing did a great job at conveying these topics. However, I blame myself more for being a bad student and not listening at times attributing to some of this knowledge not sticking with me. It was really difficult paying attention online. Especially when the actual contents of the class are separated from the projects.
Were there any other particular takaways for you?
I have a new respect for frontend coders when they are told to change the same box ten different times. On a more serious note, I learned that it isn’t too difficult to use source control in a large group. Everything seemed to work pretty seamlessly with how we planned things out which was great.
How did you feel about cold calling?
I’ve always been fine with cold calling. It keeps me on my toes at times and I’m not too afraid of botching my answer in front of the class.
How did you feel about office hours?
I never really attended office hours with Downing. Part of it was because his hours are a little too early in the day for me.
How did you feel about lab sessions?
The TAs were always available during office hours and willing to help. Whenever I needed to go, I would always come out with a solution to my problem. But, I often wouldn’t need to go because the TAs are so attentive to paying attention to Teams and answering my questions on there before I need to think about going to office hours.
What required tool did you not know and now find very useful?
SQLAlchemy was a real-life saver. When I had taken data management, I was writing queries in Java and I would have to manually create my strings and concatenate them to make my requests which not only made it a chore to code but tedious to debug. I embraced SQLAlchemy with open arms as it wrapped the underlying SQL into a library that was much easier to read and write.
What’s the most useful Web dev tool that your group used that was not required?
I don’t think there was anything really significant that we used that wasn’t required. If I had to choose one it would be materialUI because it really helped with creating our tables.
How did you feel about your group having to self-teach many, many technologies?
I don’t really mind it. I enjoy project-based courses more than normal by the book classes (well I at least get better grades in them). I’ve self-taught myself a good amount of things so I’m used to it at this point as I bang my head against the wall and wonder where the correct documentation for my problem is.
Give me your suggestions for improving the course.
I think that this was the first semester that Downing did random groups and I think that it was a good choice to stick with. I had come into this class with a few friends in mind to partner with but I honestly think we would’ve done worse because none of us like doing frontend. Besides that, Downing could teach some of the SQL concepts earlier (specifically during phase II where it is the most relevant). I had already been familiar with SQL so I knew what had to be done, but I knew a lot of people were frustrated with it.