CS373 Fall 2021: Nathan Eisenberg: Final Entry

Nathan Eisenberg
5 min readDec 5, 2021

How well do I think that the course conveyed the takeaways?

There were many takeaways from this course. Testing is essential. Algorithms should be as universal as possible in python. New containers in python should have all the bells and whistles to fit with more algorithms. Decorators are an easy way to extend functionality. Yield is easy. Lots of programming can be done with less code if you reuse what you’ve written. You have to communicate with your team. Refactoring helps get your code closest to its optimal organizational structure. Finally, making your code look good is an essential step for organization and for onboarding other people to your code easily. About half of these takeaways came from the group project while the other half came from the lectures. Anything that came from the group project really set in well with me; however, I have gaps on the stuff in the lectures. The lectures do not help very often with the group projects, so it was hard for me to stay engaged. It seemed like two separate classes, but the projects were much more important.

Were there any other particular takeaways for me?

The biggest takeaway for me was how software development teams work. People have different strengths, weaknesses, preferences, communication styles, and background knowledge. Figuring out these kinds of things ahead of time made the process run a lot smoother than it could have. I’ve never been in this kind of environment before, so it was a great learning experience for me. Also, I learned that frontend development is a lot more complicated than I had originally thought. For some reason I had the idea that it was basically graphic design with no concept of functionality, but it involves lots of concepts that we learned about in our required curriculum in CS here.

How do I feel about cold calling?

I have no problem with cold calling; in fact I think it is great for CS courses. It helps me stay engaged when I know my turn could be coming up soon. He is a very matter of fact person, so don’t get thrown off if it sounds like he’s getting upset with you. As long as you kinda know what’s going on, he will help you every step along the way.

How do I feel about specifications grading?

Honestly i was optimistic at the start, but I am not a huge fan after experiencing it. At first I thought it was good because it would take the pressure off of perfecting every assignment. However as we went along, we realized the specifications were really strict. It was just like doing assignments in normal classes, but if you leave out a a detail or two then you have to redo the assignment. Now to be fair, they put a lot of effort into defining the expectations. It is just a lot to make sure you get done, and it caused my group a lot of headache. In the end it all worked out for me, but in my opinion I think a normal grading scheme would have been simpler.

How do I feel about the help sessions and office hours?

I never really made use of theses resources, but all the TAs were beyond qualified to run this class. When you hit a wall, they will point you in the right direction. Also, go ask questions if there is any uncertainty in the grading specifications.

How did I feel about the support from the TAs?

Again, the TAs were awesome. Communication with them is key because they are the one’s grading the project. You will have one TA specifically assigned to your group; they will always be the best bet for getting your detailed questions answered.

What required tools did I not know and now find very useful?

React has some awesome components for you to use in your typescript code. I had no idea how any of that stuff worked, but you can make a whole career just off of that. There is a very high demand for people who understand these frontend tools. Also, I knew of continuous integration before this class, but I didn’t understand its usefulness until now. It downloads, installs, and cuilds all the tools you need to run your program onto your servers. Every time you commit to git, it rebuilds and makes sure that you didn’t mess anything up. Every large project should use this.

What is the most helpful Web dev tool that my group used that was not required?

We used VSCode’s liveshare. During development, we would host the website locally. So, all the current code needed to be on one person’s computer. Liveshare allowed us to edit code on the person’s computer in real time with a nice looking code editor. I highly recommend doing this if you are all trying to work on one issue together.

How did I feel about my group having to self-teach many, many technologies?

I strongly disliked this. I get that this will be an aspect of our jobs in the future, but I think that we should still be taught while we are in school. If I had been given even just a crash course on every tool I would need to use, it would have saved me a lot of trouble this semester. I was very disappointed when I found out that I would be my own teacher for a large part of this class.

My suggestions for improving the course:

I have already touched on this above. I think you should spend the first week or two teaching us the basics of every tool that our group will use. Even though everyone won’t use every tool, I think this would be helpful because it will give us a feel for what we would like to do and it would really cement the big picture of the project for us. However, this class was a great learning experience in a lot of ways, and I think that I have grown as a result of taking it.

--

--