CS373 Spring 2021: Final Entry

Jiaxi Chen
3 min readMay 9, 2021

Long-term 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

How well do you think the course conveyed those takeaways?

I think the course conveyed those takeaways super well. The professor took a lot of time in class to explain those concepts, like unitest in Python, the difference between iterator and iterable. Also, those takeaways are reflected during our project, like collaboration and refactor. Overall, all of those concepts are well conveyed during either the lecture or the project.

Were there any other particular takeaways for you?

One takeaway I learned from this class is start planing earlier. For a team project, it’s super helpful to have a concrete schedule at the beginning and make sure everyone knows their responsibilities. Though there could be some minor changes, it will be easier for people to work together if they all know what their job is!

How did you feel about cold calling?

It’s super nice and interesting way of teaching. One benefit about it is to make me force on the lecture. Because for online teaching, I often got distracted by many many things. The cold calling will force me to concentrate on the professor and the content. Because, I never know when I will be called and which question will be asked. So, in my view, cold calling helps me for this class.

How did you feel about office hours?

I didn’t go to office hours much. But from I’ve experienced, it was a great experience. The TAs are the students who took this course before, so they know a lot about the development tools, like GCD, AWS and so on. Therefore, it’s super helpful to go to office hours if we are in trouble in the technologies.

How did you feel about lab sessions?

It’s super useful. People are nice there and I can ask various questions which may not even relate to our course. It’s a nice way to separate the office hours and lab sessions!

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

Docker. I only heard about it before but never used it. However, as we started talking about this tool, I found it super easy to use. Also, Docker is very useful for the software development. Because, we want to build a software that can be executed on any machines instead of just our local computer. It’s impossible to have everyone installed the same environment. So, Docker provides an easy way for that. Now, each team member will have the same developing environment. AWS also uses Docker to deploy the website. It’s awesome.

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

For me, I think the algolia search is a super useful tool for web searching. Algolia is a web search library. We used it in our model and site-wide searches. It’s easy to use. Just reformat the data and upload it to algolia’s database. Then, we can search for it! Also, we can specify which attributes of the data can be searched and which order of data should be displayed. Overall, algolia is a great tool for web search and it provides free plan!

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

Self-teach can take a lot of time. I have to do a lot of search and reading about the tool I want to use. However, self-teach is also a great way to learn new things. Typically, I would have a better memorization about things I learned myself. Moreover, it’s a good way to starting teaching myself, because after graduation, no everyone will be so patient teach my the new stuff. So, self-teach is essential for my future, I think.

Give me your suggestions for improving the course.

I don’t have much suggestions. I think the course is great. The instructor teaches all the concepts super clearly. Overall, it’s a fantastic course!

--

--