CS 373 Fall 2020 Final Entry: Jackson McClurg
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
My thoughts and opinions
How well do you think the course conveyed those takeaways?
The course conveyed these well. The class time itself focuses on most of these things and it sort of carries over to projects. Pay attention in class, because these things will be covered and they can set you apart from other programmers in the industry if you know them well.
Were there any other particular takeaways for you?
The biggest takeaway for me was to take my code seriously. There’s a difference between writing code that works and writing code that works. Just because something runs doesn’t mean it is ready for deployment, or even functional. Speed matters, readability matters, flexibility matters. You can’t just write code to pass 10 tests cases in the real world, you need to write real code that is fast, easy to read, and not rigid or brittle. These things are important and can help you move from coursework to industry work.
How did you feel about two-stage quizzes and tests?
I like this setup a lot. I think it gives a good opportunity to demonstrate individual knowledge while still providing a bit of a safety net with collaborative work. I enjoyed working with my team on these assignments.
How did you feel about cold calling?
It wasn’t too bad. I think I ended up being called 3–4 times throughout the semester as Professor Downing cycles through everyone before starting again. He is pretty nice and understanding of your level of comfort with the material, so unless you skipped class or just don’t pay attention then you have nothing to worry about for these.
How did you feel about office hours?
Very helpful and useful. Please make use of them for questions that you have, it can save you lots of time and frustration. The TAs are here to help you.
How did you feel about lab sessions?
Lab sessions are similar to office hours, they are very helpful for learning things that you need for the projects. I recommend you go if you are lost or struggling.
Suggestions for improving the course.
I enjoyed this class, and while I wish there was slightly more guidance on the assignments I understand that part of the process is figuring things out on your own. Also, tests were very open-ended and while they weren’t necessarily difficult, their ambiguity made them more so.
To future students.
Take this class seriously, it has the potential to really help you grow as a developer. Start your work early, and if you don’t have any experience with web development or databases then make use of the resources you have available. Find out what you need to do and be proactive — go to office hours, talk to your teammates, ask questions, watch Youtube tutorials — anything. The worst thing you could do in this class is not understand something and wait for it to be clarified in class, because it won’t be. Class time and assignments are on different wavelengths, and while both are important, they’re just not really related. So take initiative! You’ll thank yourself at the end of the semester.