Final Entry
What did you like the least about the class?
My least favorite thing was by far the tests. I feel that the tests are more of a “how well can you code/debug under time constraints” rather than testing the actual knowledge you gained in the course. I posted an extensive Piazza post after the second exam outlining how Downing could make the test more comfortable under the time constraints. He said that he would implement some of these ideas in the fall, so I hope that he means it.
What did you like the most about the class?
I think the projects were the best part about the course. I really enjoyed the challenge of designing a solution while trying to adhere to the principles of OOP. Another great thing about the projects is that you don’t receive the five points of extra credit unless you work with a different partner for each project. That was great for me because I got to meet a lot of new people and became good friends with some of them.
What’s the most significant thing you learned?
I feel like I learned a lot about good design principles when it comes to coding classes. I learned a hell of a lot of C++, and now I feel like I could do any coding project easily in C++. After Downing’s lecture on C++ containers and the underlying data structures, I was inspired to relearn most of what we learned in data structures, so now I have an even more solid understanding of that.
How many hours a week did you spend coding for this class?
I would probably say about 10 hours of actually coding/debugging, but about 2-3 hours thinking about the design of the code and the best way to go about implementing the solution.
How many hours a week did you spend reading for this class?
I actually didn’t read much for this course. I read about half of the textbook over the semester, but never read the articles (mainly because they were the same articles from the SWE course, so I had already read them). The textbook can definitely help solidify and complete some of the things Downing lectures about, but it was not anywhere near necessary to read the textbook. Very occasionally something from the articles and textbook would show up on the daily quizzes. I think it happened a total of 3 times.
How many lines of code do you think you wrote?
Oh boy. If I had to guess, including all of the .h and .cpp files we had to write, I would venture to say somewhere around 6,000 (including the comments in those files). But why guess when you can just check because it’s all on GitHub! I tallied them up and it comes out to about 5,858 lines. If you included the makefiles, it would probably be spot on with my estimate.
What required tool did you not know and now find very useful?
Docker is a great tool for doing work in a linux container. You can set up your environment however you need to, so you never have to worry about having the right thing installed on specific computer. All you need to have is Docker, and you can connect to the container that run whatever you need.
If you could change one thing about the course, what would it be?
I probably wouldn’t change anything except the tests. There are better ways to assess what people learned in the course and accommodate for different test taking styles. People like myself have a hard time with coding quickly and effectively, and of course we should probably get better at that. However, some people are just better at that and it gives them an inherent edge on the tests. I think that the test should probably be split into a multiple choice/short answer portion, and a relatively short HackerRank portion. This way people have to have an actual understanding of the concepts (multiple choice portion) and then have to show that they can code it (HackerRank portion).