CS373 Spring 2021: Final Entry

Riddhi Bhave
4 min readMay 8, 2021
  1. Some long term takeaways Professor Downing emphasized were:
    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 most of these tips, if not all, were continuously iterated throughout the semester through examples and exercises. Professor Downing did a really great job in building upon these ideas and showed us how to incorporate it in our projects so that we have practice doing it. I learned so much about Python and SQL, and although I’ll still need some practice to perfect these techniques, I’m glad that I was at least exposed to those takeaways.

2. Were there any other particular takeaways for you?

One major takeaway was to do as much research as you can before starting a major project. It’s really important to know which technologies work well with your project and if they meet all the requirements in the rubric. At one point we had to switch from AWS Amplify to AWS Elastic Beanstalk to host our website since Amplify didn’t meet all our needs. Although we finished on time, it did cause some stress.

3. How did you feel about cold calling?

Personally I did not have an issue with cold calling. Professor Downing created a very supportive and comfortable environment so even if we didn’t the answer, he helped us out.

4. How did you feel about office hours?

I didn’t have too much experience with office hours since we figured out most of our issues as a group, however from what I heard, the TA’s were very helpful. They were also very accessible and responsive over Teams chat so that was really nice.

5. How did you feel about lab sessions?

Similar to office hours, I didn’t attend any lab sessions, however I heard they were helpful. There were many opportunities throughout the week to attend lab sessions which was great.

6. What required tool did you not know and now find very useful?

Coming in, I had no knowledge of Docker. It was always a term I heard people use, but I always thought it was some complicated tool that was hard to learn. Professor Downing introduced Docker in the first week, and I have been using it since. Although he showed a pretty basic use of it, I found his tutorial very helpful and thorough. I definitely get the grasp of Docker and will be using it in the future.

7. What’s the most useful Web dev tool that your group used that was not required?

I thought MaterialUI was very helpful in implementing the frontend features. This tool made creating the tables very easy and digestable. We also used MaterialUI for creating icons and formatting the visuals of the website.

8. How did you feel about your group having to self-teach many, many technologies?

I think it’s definitely a good skill to have, however it did become stressful at times. It would have been nice if some of the main tools were introduced in class and Professor Downing or the TA’s guided us on how we should use it. There are so many moving parts to the project, and many people took the class to learn about how to create a website the right way, so talking about do’s and don’t of the major technologies would have helped.

9. Give me your suggestions for improving the course

Overall, I loved the class. I liked the group aspect of it and not having tests really helped me focus on the main part of the class, the website. The only improvements I would suggest is the class content. I personally took the class because I wanted a formal introduction to web development but self teaching everything did not give me that experience. I was hoping for more structure in terms of learning the workflow of creating a website rather than figuring it my own, which I could have done outside of the class. I appreciate the sentiment behind this design though, as it taught me how to research and work closely with a team. I think having some crash course sessions hosted by the TA’s could be useful to future students. As this can allow Professor Downing to continue the current structure of the class but also give some guidance to the students on approaching the different technologies. The rubric could also have been more detailed, as we found ourselves asking for clarifications many times.

--

--