End of Semester

My experience taking OOP has been unique and immersive. As a whole, I really enjoyed the course. I felt that I learned important skills in C++ and object oriented programming that I could carry with me to my job and in my future projects. Each project, I learned something new. From making objects which knew nearly nothing about how each other worked, to understanding how allocation works, to making decisions about using an lazy or eager caches, I feel like I can confidently say that I took a lot from the projects. One of the hardest parts of the class was having the time for the readings. Even without taking a full semester, my classes kept me so busy that it was difficult to fit the readings in. However, overall, I wish I had made the time for them more because you will definitely need them for the quizzes and to develop a basic understanding of many of the topics we cover in class.

Read More

OOP Week Twelve

What did you do this past week?

This week, our class discussed inheritance in C++ and the usefullness of the keyword ‘virtual’. I learned an important lesson this week about the behavior of a child class. When the default constructor of a child class is called, so is its parent’s. This behavior is explained due to refinement overriding. However, copy assignment does not exhibit refinement overriding, rather replacement. So when you define the copy assignment for a child class, it’s parent’s copy assignment does not get invoked. Virtual is a nice keyword that allows an object to call the ‘correct’ method. (And it can only be applied to methods.) If a child class and a parent class share a method, and you have instantiated an object of type parent with it’s child (A a = new B, where B:A), then using the virtual keyword on its shared methods will sort out which method should be called. (In this case, we want B’s methods to be called). I could have this mixed up, hopefully not! The use of virtual in C++ allows for dynamic binding, or runtime binding.

Read More

OOP Week Eleven

What did you do this past week?

In class this week we talked about the move operator and wrote a move constructor and move assignment for our vector class. This allowed the user of the vector class to construct or assign a vector using an ‘r’ value. An ‘r’ value is a value which you cannot take the address of, for instance, you cannot say ‘&4’. I thought this week was really interesting and helped reinforce concepts of a copy constructor or copy assignment constructor, topics which we are familiar with but are still easy to get confused talking about.

Read More

OOP Week Nine

What did you do this past week?

This week was somewhat relaxing compared to others. I met with my partner for our Allocator project and we were able to finish the night before it was due. This was so nice! I would like to stay on top of my work like this more often. Next time I finish early though, I’d like to have more of a Piazza presence and help others out.

Read More

OOP Week Eight

What did you do this past week?

This week I spent a lot of my time working on an OpenGL graphics assignment. In our OOP class, we discussed arrays in C++. I found this topic to be really interesting! We learned that built in arrays do not have copy constructors or copy assignment operators. It actually can be a bit confusing working with arrays in C++ because, unlike Java, you have to consider what you’re working with more carefully. Are you thinking of it as an array or pointer? We also discussed important considerations when it comes to storing data on the stack or on the heap. I got flashbacks to my systems classes and our lectures on garbage collection! Storing on the heap can be tricky, and remembering all that you need to manage can be difficult. I also began the Allocator project with my partner. We are doing well and I’m excited about being on top of things for this assignment, despite starting later in the week.

Read More

OOP Week Seven

What did you do this past week?

This past week was tough! This week we discussed defining begin() and end() inside of Range, nested classes, and pointers declared with const. We also had an exam this week! There were two questions that I personally was disappointed in how I answered them. I wish I had studied what went behind those two questions more before this past Thursday. Exams really stress me out, and I tend to blank when I get in front them, although I think the mistakes I made on this last exam were preventable with maybe just two more hours of studying.

Read More

OOP Week Six

What did you do this past week?

This week in class we expanded on the idea of software contracts. We did so by reviewing iterators, lambdas, the allof function, the range iterator function, defining operations for user defined types, and the meaning of friendship. :) Although my courses are demanding, I appreciate how it keeps me staying social with my classmates. Talking with other students about concepts we learn in class definitely takes away some of the stress. I also stayed pretty busy in my Graphics course, wrapping up on an assignment, which took up the bulk of my time.

Read More

OOP Week Five

What did you do this past week?

I missed out on Monday this week due to getting sick over the weekend, and unfortunately it was a lesson on a topic I am not too comfortable with - iterators & templates. On Wednesday, we had a speaker come in from JPL to give a basic talk on software engineering. In particular, I enjoyed his discussion of solution brainstorming. I’m typically a quiet person, so I admire that his team tries to hear, or see in sticky note form, all ideas as equally as possible rather than just listening to the loudest person in the room. I think this allows for diverse ideas and puts solving the problem well as the primary focus instead of solving the problem fast.

Read More

OOP Week Four

What did you do this past week?

This week, we reviewed the new assignment and root mean squared error. We had a speaker come in to talk to us about working at Bloomberg. It was nice hearing about their development process and being able to relate that back to what I experience at my current internship. For instance, I am familiar with Jenkins and Jira, so it was cool to hear familiar terms. Also in class we discussed more elements of the C++ language. We talked about lists and list iterators using the example of a user defined equals. This was really informative and I am enjoying learning about C++.

Read More