CS373 Fall 2021: Varad Thorat: Final Entry

Varad Thorat
3 min readDec 7, 2021

These are the long term takeaways from this class.

  • 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 (e.g., 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

So,

  • How well do you think the course conveyed those takeaways?

I think that the course was pretty good at conveying these takeaways. Testing the code was vital to our success on our project. The other takeaways were emphasized on heavily during class. There was not too much information on ways to refactor code, but the value of that was definitely discussed.

  • Were there any other particular takeaways for you?

I think allocating your time and planning ahead was another takeaway that should be mentioned. You need to be vigilant on how you spend your time. Communication is also very important, especially in a large scale project such as this one.

  • How did you feel about cold calling?

I thought that the cold calling was fine. It does force you to be more attentive in the instance that you are called on, but it is not the end of the world if you are called on. Professor Downing guides you through the material, and he is very helpful if you get stuck.

  • How did you feel about specifications grading?

I personally did not like the specifications grading. It makes getting an A a bit more challenging since you really need to make sure that everything you do is of high quality. I feel like there is less leniency than the normal grading scheme. However, it is still manageable to do well in the class, but you will need to make sure you are on top of all your assignments.

  • How did you feel about help sessions and office hours?

The help sessions and office hours were helpful when I had questions. Occasionally, some errors would pop up that the TAs were not sure of, but they were often resolved quickly. I did not go to too many of the sessions, but during the times that I did, there was enough time for me to get my questions answered.

  • How did you feel about the support from the TAs?

The TAs were very nice and helpful. They do not take unreasonable long times to respond to messages, which is great. They answered any questions I had, and they cleared all of the confusion I had during the semester.

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

Selenium was very useful tool that we used. We used this tool to run GUI acceptance tests for the front end. It was a good way to make sure that our code was working properly, and that we were outputting everything correctly.

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

We used Typescript. I found that doing the project with this was pretty good. The ability to use types made many part of our code so much easier to implement. I would definitely suggest any student to try it.

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

In an industry that is constantly evolving, I think the skill to be able to self-teach is very vital to your success. There are a lot of disjoint information that we learned outside of class compared to in class. It definitely was frustrating at times. However, my group managed, and we got decent amount of work done given our lack of knowledge in some technologies.

  • Give me your suggestions for improving the course, but apologies in advance; specifications grading will remain.

Perhaps, it would be helpful for the Professor to spend a little bit more time on resources or information about the project. If some time was spent on the technologies that we would use on the projects, that would be really good. It does not have to be too in depth, so the students still learn to be vigilant about learning these technologies. Other than that, I do not have many suggestions.

--

--