This week has been pretty eventful. I successfully submitted my last undergraduate programming assignment! It was "Life." The assignment, much like Darwin, the previous one, consisted of a board. However, in this assignment each cell had an object (in Darwin there could be empty cells, which meant null values). Some values could hold a status of 'dead' and others were 'alive' but the whole board had some type of cell in each position. Looking back, I think that implementing AbstractCell, FredkinCell, and ConwayCell was relatively easy, you just had to have a good grasp about inheritance and virtual functions in C++. It was really interesting. Implementing the Life class got a little more complicated but I actually thought that the meat of the project was implementing the Cell class, which acted as a Handle class. From what I got, the objective of a Handle Class is to separate the abstraction from the implementation and provide a smooth transition between different types (in this case, when it is appropriate to do so, the Cell class switches a FredkinCell to a ConwayCell).
As far as class goes, we have one more day of class (tomorrow) and then comes the final week, which means last-midterm week. I am relatively nervous because I did not do as well as I had hoped in the first midterm so I will definitely change my studying method for this one so that I can get a better grade. That week I will also be interviewing in Seattle so it will be kind of tough to balance but such is life!
Sunday, November 23, 2014
Sunday, November 16, 2014
Week 12
This week we started discussing the last programming project, which will be called Life. The assignment, much like Darwin, the previous one, consists of a board, which now will contain a cell in all the positions with a state of either dead or alive, and we have to simulate however many turns based on the rules of the game. However, the project is a little more complicated than what I described so even prof. Downing hasn't fully explained it yet. We are still missing a formal explanation for what one of the classes' behavior should look like. My partner and I got started during the weekend, we are relying on a couple of the concepts that were used in the Darwin assignment, such as a 2d array for the table. We are populating the board and updating the number of neighbors of each element so it's looking good in its early stages.
In class we started discussing heavily the concept of inheritance and, as we have been doing during the whole semester, its differences and similarities in Java and C++. We learned about friend functions, which seemed a little confusing to me at first but I have been getting it more and more as the days have gone by. It is basically a way for a non-member function to access the private and/or protected member of a class if it is declared a friend of that class. I also learned how to use virtual functions in C++ this week which is basically overriding functions in C++ (Giving different different implementations to the same function signature depending on the class from which it is called).
In class we started discussing heavily the concept of inheritance and, as we have been doing during the whole semester, its differences and similarities in Java and C++. We learned about friend functions, which seemed a little confusing to me at first but I have been getting it more and more as the days have gone by. It is basically a way for a non-member function to access the private and/or protected member of a class if it is declared a friend of that class. I also learned how to use virtual functions in C++ this week which is basically overriding functions in C++ (Giving different different implementations to the same function signature depending on the class from which it is called).
Monday, November 10, 2014
Week 11
This past week was pretty hectic for me. The "Darwin" project was due on Thursday, I had a Computer Networks project due on Friday, and I was interviewing in Chicago from Tuesday to Wednesday and in San Francisco from Thursday to Friday. However, I was able to complete all the activities more or less successfully. For Darwin, thankfully, my partner and I completed a considerable chunk before I left on Tuesday for Chicago. We just had to implement infecting and creating the best creature. I came back to Austin on Wednesday night and we met for about 6 hours, which allowed us to finish the project, create the tests, and do the rest of the Github protocol. I found the project just a tad less difficult than what I had imagined. I guess when you first hear about it, it seems a little overwhelming. It was interesting learning how to declare and use 2d arrays in C++, which wasn't intuitive at all. The computer networks project I finished the night before my interview in San Francisco.
As for the interviews I am extremely happy because I got my first offer from the company in Chicago, they do financial/investment research and the position they offered my is a rotational program in the development part. So I assume I will be exposed to development, testing, big data, among others. I think I did very well in the San Francisco interview but I haven't heard back from them, we will see what happens!
As for the interviews I am extremely happy because I got my first offer from the company in Chicago, they do financial/investment research and the position they offered my is a rotational program in the development part. So I assume I will be exposed to development, testing, big data, among others. I think I did very well in the San Francisco interview but I haven't heard back from them, we will see what happens!
Sunday, November 2, 2014
Week 10
This past week we finally got to the next project, which is called "Darwin". It was released on Wednesday, which, compared to usual, gives us a little less time to work on it so it is definitely an added challenge. It is going to be especially challenging for me because this coming week I am going to be interviewing with two companies, one in Chicago and the other one in San Francisco and that is going to take approximately three days out of my week. Thankfully my partner and I already came up with a schedule of what days we will be working on the project (most of the times we will work on it together, but this will require a couple of times where we work separately and do the catch up when we meet again) and started working on Darwin early and we already got a head start. We started implementing the classes but we do have some doubts regarding the avoiding the getters and setters. It seems like that is the heart of this project, the coming up with a design that is good enough so that it doesn't need to rely on getters and setters, which, apparently, are always a sign of bad design. We will see how the project develops throughout the rest of the week.
Material-wise we finished off talking about the (priority) queue and stack data structures and started discussing class variables, and the similarities and differences between Java and C++ of these two.
Material-wise we finished off talking about the (priority) queue and stack data structures and started discussing class variables, and the similarities and differences between Java and C++ of these two.
Subscribe to:
Posts (Atom)