CS 371p Spring 2021: Final Entry

How well do you think the course conveyed those takeaways?

I think the course conveyed the key takeaways very well, particularly for the design takeaways. Downing went in depth over these in lecture and I have a lot more insight on how to properly design my C++ code now.

Were there any other particular takeaways for you?

How much easier everything is when you take the time to create a makefile!

How did you feel about cold calling?

I actually like cold calling, especially for an online course. It made me focus a lot more than I usually would just in case I was called on. For anyone worried about it, it’s not bad at all; even when you do get called on, it feels more like a discussion than Downing interrogating you.

How did you feel about office hours?

I only went a couple of times, but both times were useful and helped my group fix a tricky bug.

How did you feel about lab sessions?

I never went, they weren’t at a good time for me :(

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

Doxygen is really cool, it allows you to generate documentation by writing your comments in a specific way. Documentation is something a lot of developers hate doing, but I think Doxygen will help a lot as you can seamlessly write the documentation at the same time you are coding.

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 importance of making your code maintainable and easy to read. They also made clear that having a well-thought-out design is just as, if not more important than implementing that design. Without a good design, your code will be a complete mess, which is not useful to others or even yourself if you have to use that code again in the future.

You should have read two papers that advised minimizing getters and setters. What insights have they given you?

I always thought getters and setters were recommended OOD design, so I was surprised to find out that this is not the case. The biggest takeaway for me was to think about how you could make an object itself do the work instead of adding a getter/setter. By this I mean if you were going to add a getter for a private variable to use in some other code, you could instead have the object that owns that variable do whatever it is you needed its private variable for. Thinking in an OOD mindset can be difficult at first, but these papers included ways to help grasp these ideas.

Give me your suggestions for improving the course.

This is a tiny issue, and I’m not sure if it can be fixed, but I wish there was a better way to submit our code without having to copy and paste multiple files every time.