CS371P Spring 2021 Final Entry: Irena Lee
- How well do you think the course conveyed those takeaways?
Overall, I think I learned a great deal from each lecture from Professor Downing. However, likely since we didn’t have any exams due to the online format, I feel like it was easy to forget about the takeaways shortly after.
- Were there any other particular takeaways for you?
I really enjoyed the way the projects were set up and how they imitated more real-world projects. Before this class, I had never used Docker, CI/CD, or created issues on GitLab, so I enjoyed the practice and experience.
- How did you feel about cold calling?
The cold-calling definitely was not bad at all. Professor Downing is very understanding and helpful — it’s okay to say you don’t know the answer to something.
- How did you feel about office hours?
Office hours were pretty helpful at times. The TAs gave good tips when we were stuck on making our code more efficient. Whenever I went, there wasn’t too many people, so I definitely had plenty of time to ask my questions.
- How did you feel about lab sessions?
I didn’t get the chance to go to lab sessions this semester.
- What required tool did you not know and now find very useful?
Definitely CI/CD. I had no clue what this was before, but this came in very handy with our unit tests and making sure our project ran correctly.
- You should have read five papers that describe SOLID design: Single responsibility, Open-closed principle, Liskov substitution, Interface segregation, Dependency inversion. What insights have they given you?
The biggest insight I learned from these papers is to make sure our code is scalable and organized so that it’s easy to add or change anything in the future. We don’t want to have to rewrite or refactor code every time we add a feature. This will definitely come in handy when working on large-scale projects in future internships/jobs.
- You should have read two papers that advised minimizing getters and setters. What insights have they given you?
To be honest, I still do not get why getters are so frowned upon, since giving access to a client doesn’t mean he/she can alter the variables. From the projects, I’ve noticed that sometimes inside of using getters and setters, we end up actually sending another class’s private instance variables in (such as the vector of vector of cells), which also seems just as bad as directly returning a name or age. However, I do see how setters can be dangerous for our private variables.
- Give me your suggestions for improving the course.
I personally loved the way the course was structured. One thing I would like in hindsight is maybe weekly quizzes rather than daily quizzes, because I feel that would force us to retain what we learned for more than just one day.