CS 373 Spring 2021: Final Entry

Bruce Luo
CS373: SWE Blogs
Published in
3 min readMay 8, 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 believe that this course conveyed all of the above well. Professor Downing will go out of his way to emphasize the importance of such concepts throughout each lecture, and the daily quizzes help reinforce your memory as well.

Were there any other particular takeaways for you?

One of the biggest takeaways for me was learning how to work with a team in software development. This is something that will be required in industry, and I feel this course gives a good replacement for that.

How did you feel about cold calling?

I was anxious about the cold calling at first, but after a couple weeks, it really just becomes routine and nothing that scary. That aside, the good part is that cold calling helps keep me engaged during lecture, and I think I’ve learned more from conversations between Professor Downing and various students that I would have through standard pedagogical practice.

How did you feel about office hours?

I never attended office hours, as our group instead asked questions to our mentor through Teams if we had any questions regarding the projects.

How did you feel about lab sessions?

I never attended a lab session.

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

I found the make tool to be extremely useful. I did know about it beforehand, but had never used it extensively before. It helps greatly in development by automating the build process for your projects, and I’ll definitely be using it in the future.

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

I think that Material-UI was a very useful tool that our team used for styling the frontend. Personally, I prefer the look and feel of Material-UI over Bootstrap; however, the documentation for Material-UI is lacking, which makes it a bit harder to learn.

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

It was definitely different from your usual course, meant to simulate the work experience in software engineering. Since this is a course on software engineering, I have no problems with the course being structured in such a fashion.

Give me your suggestions for improving the course.

I think it is a great course overall. One thing I can think of that gave me trouble was that the occasionally the project specs were a bit unclear. If they could be improved upon in future iterations of the course, that would be great.

--

--