Last Weekly Blog Post

My experience

My experience in OOP was excellent. It’s a worthwhile experience and leaving it I feel that I have good grasp of OOP and C++. Professor Downing’s style is lot different than any other CS professors I’ve had. The teaching style and structure of the course are unique and clearly well thought out. C++ can be intimidating, but Downing explains each concept extremely clearly. Also on some particularly challenging concepts he has humorous analogies to help you understand things better.

The lectures are really engaging. Throughout the lectures, Professor Downing randomly calls on students and poses questions related to the material. At first this was nerve-wracking for me, but it got easier as the semester progressed. Like most people, I don’t speak up in class because I don’t want to make a fool of myself. The thing with OOP is that pretty much everyone makes a mistake at some point, so there’s little shame in being incorrect.

Tests

One unique thing about tests in OOP is that they’re done through Canvas and you take your laptop to the test. The best part is that there’s no waiting for your score because you get it back immediately after clicking submit. The only complication I had with the online exams is that my laptop is unreliable. For example, it likes to randomly crash when I move it. Having issues like this can create some anxiety because you’ll be in a constant worry during the exam. In my case, my laptop crashed exactly when the final exam started, which was awful since I had to sit for a couple minutes while it rebooted. So if you plan take this class, get any computer issues sorted out.

Projects

The projects are a lot like programming competition questions, but modified so that you have to apply some OOP concepts. The correctness portion of the assignment is done through hackerrank so you know if your code is correct before turning it in. For the other parts of the project, the instructions are specific enough to provide assurance that you’re doing things correctly. Because of this, there are few surprises on what score you’ll get and also the waiting period is pretty short.

For me the most time-consuming part of the projects was not the actual coding part. For each project, you go through a number of steps to set up your programming environment and you also need to write documentation and tests. These things can feel like chores, but they’ve made me a much better programmer. Looking back at my personal projects before taking this class, they’re a complete mess. But now, I’ve been able to use all the tools I used in these projects, which has made them much more organized. And as an added benefit, employers really liked it when I told them that I had experience with unit testing and continuous integration.

Quizzes

Quizzes were the most challenging part of the class for me. The content of the quizzes was often difficult, but fair. There would usually be one or two reading questions a week. Then the other questions would typically be ones where you analyze a snippet of code and determine the output. This was the source of the most difficulty because of the time limit on the quizzes. Although, the scariest part for me was the lack of a back button. My testing style is to answer every question as fast as possible, then go back to the beginning and fix the errors. This obviously doesn’t work for the quizzes, but fortunately I discovered this reality on the first quiz and was able to adjust my style.

Written on May 7, 2017