CS373 Spring 2021 Final Entry — Matthew Bianchi

Matthew Bianchi
4 min readMay 9, 2021

How well do you think the course conveyed its takeaways?

I will list all of the takeaways Prof. Downing hoped we would get out of this class, and then explain my thoughts below.

  • 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 would say all of these takeaways are conveyed very well throughout the course. I think one of the most important takeaways from the course would be the collaboration — the group project required a lot of collaboration, and given the remote work situation it was more important than ever. Overall, these takeaways were presented and discussed in detail throughout the course, and I feel that they were conveyed very well.

Were there any other particular takeaways for you?

The one takeaway I would add, that wasn’t intended but was more due to circumstance, is the importance of communication despite the pandemic. This semester for me really solidified the importance of communicating while working remotely. Even though classes are going back to in person soon (and I will be graduating), I still think communication will be one of the biggest takeaways I had from this class, and this semester as a whole.

How did you feel about cold calling?

Cold calling was a very interesting way of going about class engagement. I felt that it was a good idea at getting people engaged with the class and making sure everyone was paying attention and understanding the material. Something that people are often scared about going into the class is being called on when you don’t know the answer to the problem Prof. Downing asked. However, I’m here to tell you not to be worried about that. Prof. Downing doesn’t care whether or not you know the answer before you work through the problem with him, he only cares if you know it by the end. He will help you to understand the answer, and he is very approachable in that sense. He wants to make sure you learn it. So don’t be afraid of cold calling, and don’t be afraid of asking questions.

How did you feel about office hours and lab sessions?

I honestly didn’t attend any office hours or lab sessions this semester, but I know many people who did and found them super helpful. The professor and the TAs were all super approachable, and were more than willing to answer questions during class breakout rooms, so I can imagine they would be excellent resources during office hours and lab sessions.

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

One tool I found super useful was Docker. Working from home, Docker made it very easy to set up a working environment for my projects and made it a lot less stressful. Another tool I found useful was ReactJS, which we used to build our website. I had very little JavaScript knowledge before this class

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

For the front end GUI tests, we were required to use Selenium, but we discovered a Python wrapper called Splinter. This allowed for easily writing Python GUI tests, which allowed for much better test cases overall. Splinter removed a lot of the boilerplate from the Selenium tests, and made it very easy to write the tests. I would highly recommend using Splinter for GUI tests on projects in future semesters, as it will make your GUI test writing a lot easier.

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

Honestly, this was the hardest part of the semester. I felt like all of the technologies we used were just thrown at us, and we had to learn how to swim while in the middle of the Pacific Ocean. Because of the difficulty of learning a lot of these tools, it made the project very time consuming, but I feel overall it is a good learning opportunity for how you will have to learn at jobs in the future. One thing I would recommend is to talk to classmates and see if they can help explain things to you. Talking it through with your classmates made it much easier to learn some of these tools.

Give your suggestions for improving the course.

One thing I do wish is that there was more of a structured way to learn each of the resources we would be doing, since at times it was tough to find good learning resources. The projects are quite independent of the class material, which is both good and bad; Good because it gives a chance to try and learn on our own, but bad because for a first experience learning new things, we are thrown into so many. I don’t know of a way to improve this, but it is something for future students to be aware of. This class is a very intense workload, so be prepared.

If you are reading this in preparation for a new semester in SWE, good luck! I think it was a good course, despite being a lot of work, and I hope you enjoy what you learn in it!

--

--