CS373 Spring 2021: Final Entry

Erika Tan
3 min readMay 8, 2021

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
  1. How well do you think the course conveyed those takeaways? We went over each of the takeaways for an adequate amount of time in class, in my opinion. However, I think it would’ve been helpful to practice them more with more HackerRank exercises, because we didn’t really do those until the end of the semester. So, although we learned about some of the concepts, we didn’t necessarily apply them in code.
  2. Were there any other particular takeaways for you? We went over Docker in the very beginning of the semester and I think it was one of the most important lectures. It was an incredibly valuable takeaway since we used it so much during the bulk of the web project, and it seems like a technology that’s widely used in industry as well. I’m glad that I at least got exposed to it so I know it a little bit better now, since I’ve seen it here and there for a couple of years but never really knew how it worked or why we needed it.
  3. How did you feel about cold calling? It would’ve been better if, when a person got cold-called on, they didn’t have to answer so many questions in a row. Since there was so much time spent on one person, it was easy to zone out while that person was answering questions.
  4. How did you feel about office hours? I only went once, but they were really helpful. I also appreciated the fact that we got extra credit from going to them.
  5. How did you feel about lab sessions? Not sure what it means by this, but I’m guessing it’s the help sessions that were held on Tuesdays and Thursdays. These were as helpful as the office hours.
  6. What required tool did you not know and now find very useful? As I mentioned before, I didn’t really know Docker before and now I find it really useful, because it keeps your runtime environments consistent.
  7. What’s the most useful Web dev tool that your group used that was not required? We used Splinter, which is a Python library for UI Selenium tests. This made writing our GUI tests easy and efficient.
  8. How did you feel about your group having to self-teach many, many technologies? It was a lot of work, but in my opinion really worth it and fun. I didn’t have a lot of backend experience before working on the project, so I’m glad I got to get a ton by working on a real-world application.
  9. Give me your suggestions for improving the course. Nothing much other than shortening the amount of time spent on each person who gets cold-called on.

--

--