One of the topics that I think I have reasonably known well is writing effective comments. From my previous programming experience, I had got to know that comments are essential to let first-time readers to know what is going on with your code and it is especially important if you're working on the projects in a group. Provided that you have a bunch of well-explained comments, you would be able to communicate with your partner(s) better as coding progresses.
Another topic that I think I have grasped in pretty well is values, pointers and references. I have had intensive experience of exercises/practices in these subtopics when I took CSci 1902 and CSci 2021. Creating pointers to store a bunch of data and later referencing the pointers to retrieve the data was kinda fun in a way that I realized that pointers and arrays are such powerful structures to hold data and to play with.
One topic that I don't really know well would be testing frameworks and writing good tests. I have had hard times writing merely simple test cases when I was programming in Java, so don't mention "good" test cases. I was kinda confused as to how to really write several(strong) test cases that would really prove that the functions work correctly on all test cases.
Another topic that I wish to get out of the class by the end of the term is to be good at programming in C++ (using classes, inheritance, templates). I did not have a chance to really get most out of Java last time and I am glad that I am now given a chance to learn more about creating classes and inheriting them from one to another to function a big project as a whole. Having done continuous effort on projects but always not getting the expected outcome was always a nightmare to me. I truly hope that I can get much out of this course, or at least more than what I already knew.