What did you like the least about the class?
I actually enjoyed the majority of this course. Some of the complaints about this class I’ve heard before I actually enrolled in the course were simply untrue for me. I’ve heard that some of the lectures were about very niche features of C++ and that they were not very practical, but I feel that Professor Downing did a really great job in explaining the use cases for each topic. Another complaint I’ve heard was the workload in this class. Coming out of a class like OS may have jaded me a little, but I felt that the course load was not too much at all. The only part of the course that irked me a little was that we didn’t spend more time on shared and unique pointers as I felt these are important concepts to know. Furthermore, learning about multithreading would’ve been a cool thing to learn in this class.
What did you like the most about the class?
My favorite part of this course was the projects as they had a pretty direct correlation with what we're learning in class. I didn’t really need to learn anything extra to do the projects, they just solidified my understanding of those concepts. A bonus is reading other students’ tips and picks of the week in these weekly blog posts.
What’s the most significant thing you learned?
The most significant thing I learned in this course was probably the behavior of c++ classes. More specifically, learning what c++ gives you as defaults is useful to know. In addition, the inheritance structure is more interesting in c++ than in Java because of its customizability.
How many hours a week did you spend coding/debugging/testing for this class?
Even though this is not really good practice, I preferred to get my projects done in one or two days. As a result, I spent about 10 hours a week every 3 weeks, which averages to about 3 or 4 hours per week.
How many hours a week did you spend reading/studying for this class?
I didn’t really feel like there was a need to study for this course as Downing’s lectures are very informative and comprehensive if you pay attention. In addition, you are allowed to have a cheat sheet so that you do not have to memorize minute details. For the papers, I spent about 30 minutes reading and commenting on each.
How many lines of code do you think you wrote?
In total, probably about 1,000 lines of code.
What required tool did you not know and now find very useful?
There were many useful tools that I was introduced to in this course. Tools that I think I will actually use in the future are gitlab and gcov. Gitlab just has a lot of tools that make developing a larger project more manageable. Gcov is useful for making sure you don’t have unneeded code or weak tests.
How did you feel about the two-stage quizzes and tests?
Two-stage quizzes were nice in case you missed a previous lecture and the average with a 100 would soften the blow of a 20 on a quiz. On the other hand, I feel that two-stage tests are pretty unnecessary, as you just need one knowledgeable person in your group and everyone else can just copy him/her.
How did you feel about the cold calling, in the end?
Cold calling was definitely interesting. When classes were in person, they were not that useful as most people are probably paying attention if they are sitting in the class. But after we transitioned to online classes, cold calling definitely motivated me to pay attention to lectures.