The semester comes to an end today. The final test is a nightmare
for me. I didn’t complete the whole section of problems. It seems time is too
limited. It is really a pity that I cannot get an A for the course even if I
did well in everything except the final test. Anyway, I really gained a lot in
this class.
First, the second half of the class taught us many knowledge about
object oriented concepts and design principles. Abstraction, encapsulation,
polymorphism, dynamic binding, they are really complicated and cool!
I would like to thank Professor Downing’s lecture, which is unique
and great. It is so different to what I received before. But after I got
accustomed to it, I really appreciate it. The code sample is very meaningful
and helpful to help us master the concepts. I also like the way we discussed
it, which is ask and answer. It forced everyone focus on the material from
beginning to the end.
We have done five projects finally, and the last three are more
complex and useful, which require us to apply object-oriented concepts.
It will always be better to write code than only read design principles.
My C++ skills improved after the practices of those projects. That is cool.
I have some feedback to the following items:
the use of GTest: to be honest I didn’t benefit too much from it.
It looks a burden to me that I have to fill out enough test cases for each
function. However, I always finish that at the end of the project, which means
I really passed the acceptance tests, making it meaningless to do unit test
using GTest.
The three projects, Allocator, Darwin,and Life. I really like
Allocator and Life, from which I learnt inner knowledge of c++. It seems that
Darwin is not necessary considering we implement life project, which is a
higher challenge.
Company talks are cool. They show a broader world to us and make
the lecture not so stressed.
Estimated Stat:
weekly time spent studying: 2 hours
weekly time spent coding, testing, debugging: 10 hours
total lines of code produced for the team: 5000 lines