CS373 Spring 2021: Jack Raney (Final Entry)
Main Takeaways:
- Test first, test during, test after
- When designing algorithms, demand the weakest capabilities
- When designing containers, provide the strongest capabilities
- 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 code
- Collaboration is essential to the quality of code and to your well-being in producing it
- Refactor, refactor, refactor
- Make your code beautiful
Each of these points are placed center stage throughout the course. Upon first glance, they may seem confusing or unclear, but after completing the class you will have a solid grasp of each of them.
Any other takeaways?
Yes! Be a good partner. Its not enough to just do your work when working with others. Each of us has a responsibility to be communicative. You should have a good general understanding of where the project as a whole stands. Who is doing what? How much progress have they made? Is someone else relying on your work to finish before they can advance? All of these questions are crucial when working with others. The only way you can answer them is if you are in constant communication with your team!
How did you feel about cold calling?
I would be lying if I said that cold calling wasn’t a source of anxiety at first for me. However, it isn’t a big deal AT ALL. Calls are split fairly among the class, so you won’t be getting called upon regularly. When you are called upon, all that is required of you is to do your best. Professor Downing is very kind and will not crucify you for being wrong or simply not knowing the answer. Make a genuine effort and you will be completely fine!
How did you feel about office hours?
Office hours were constantly made available through the semester. The TAs are going to be grading your project, so it only makes sense to go to them whenever you have questions! Office hours are a useful tool, and I recommend taking advantage of them.
How did you feel about lab sessions?
I did not make use of the lab sessions, and so I cannot make any comments about them.
What required tool did you not know and found very helpful?
I came into this class with very little knowledge about Web Development. AWS seems like a very useful tool, although difficult to use. Similarly MySQL and Flask are fantastic for the backend, however I did have some experience in those areas prior to this course. React is a tool that I had not used before, and was crucial for our front end success. Additionally, Postman is invaluable for documenting and sharing your API.
What’s the most useful web development tool that your group used which was not required?
Algolia. This tool was just really useful for making our searching work. It would have been a major hassle without it.
How did you feel about your group having to learn many new technologies?
Honestly, its really stressful at first. This class really drops you into the deep end and forces you to learn to swim. That is a scary experience, however that is how the world is. Its good to get this experience now rather than later. That being said, it is completely within your ability to figure out the tools at hand. Once you get going, you will find yourself quickly adapting to new tools. It was certainly one of the greater challenges in this course, but it is the one that I am most grateful for having.
Suggestions for improving the course
This course gave me exactly the experience I was looking for. I think that the group project was handled perfectly well. We were given just enough information to get by, the rest was left to us to figure out. While stressful, this is such an important experience to have. The lectures and quizzes were well structured, useful, and interesting. The blogs were a good way to keep track of your group’s progress. More importantly, they allowed us to see what other groups were experiencing in a world where that information isn't as easy to come by as it once was.
The only part of the class that I felt unengaged with were the Perusall readings. When doing Perusall, I find myself fighting the algorithm to score points instead of naturally reading and absorbing the information in the paper. It was not an experience that I loved.