Sunday, September 25, 2011

Aftermath of Midterm 1

          I was extremely anxious going into the first midterm, not really knowing what to expect. Luckily, it wasn't as difficult as I thought it would be, but a few of the questions still threw me for a loop. The ones I had the most difficulty with were the questions on the readings. While studying for the exam I skimmed over all of the readings and took notes on what I considered the important points of the text, but this was insufficient considering the detail expected in one or two of the questions. It would have served me better to have reread all of the papers since it had been a week or more from the time I had read most them. Other than that, I thought the programming questions were manageable.

Sunday, September 18, 2011

Anticipation of the First Midterm

           Our first exam is this Friday and I'm a little anxious to see the kinds of questions that will be on it. For the most part, the readings, assignments, quizzes, and lectures have not been too difficult to understand. However, I am worried about how specific the questions over the readings will be, since the readings were quite extensive and covered a lot of material. I'm also worried to write code in python since I've only programmed twice in python so far and some of the syntax still eludes me from time to time.
          On a different note, my programming partner and I are almost done with the second programming assignment and I found this assignment much easier to manage than the last. I mostly attribute this to pair programming and the learning curve I had to overcome in the last assignment. Having spent more time than expected on the first project, I actually overestimated the amount of time it would take for this one. If I had one ongoing complaint, it would be that it is sometimes difficult to debug your code with Sphere. My partner and I kept getting wrong answers in Sphere and were not able to figure out where we were going wrong simply because Sphere doesn't tell you what test case you're missing. We had to wait for other students in the class to submit their test cases before we found out that we were understanding the problem incorrectly. Sphere can be frustrating because the messages can not help you find out where you're going wrong, but is generally a useful tool in validating program correctness.

Sunday, September 11, 2011

First Project

          So the first programming assignment was due this week. I think I implemented it pretty effectively in the end, but needless to say, it was somewhat of a nerve-wracking task. I think the most difficult aspects of the project was figuring out how to design the cache effectively and keeping track of all the deliverables. I spent quite a while trying to figure out how a meta-cache works, and was often confused by the large number of files we had to turn in. Other than that, coding it wasn't terribly difficult. Overall, I grossly underestimated how many hours I would need to work on the project based on my initial assessment of the project, mainly because of the time it took to figure out the cache. I'm definitely glad we will be able to program with someone on our next project.
          The papers this week on pair programming were pretty easy reads and generally very informative. A lot of it seemed to be common sense, but sometimes you forget about "proper" pair programming when you do it. When reading the papers, I realized some things that I could do better when I program with others. Sometimes I tend to hog the keyboard when I should let others do more of the typing. Also, I was kind of surprised when people in the second paper said that they understand the program better when they program by themselves, because I always find that I understand the material better when I have someone to help fill in the holes for me.

Sunday, September 4, 2011

Some Interesting Reads

          I have found the readings in the course so far to be long assignments, but quite interesting. While reading the two papers on college advice, I realized how helpful it would have been to have found these papers when I had first started college. Luckily, I had discovered many of the points over the years and my college experience has followed many of them in the end. One piece of advice I was surprised about was to take foreign language classes because I was always under the impression that these classes were very time-consuming and thus not very enjoyable. Sadly, I tried to avoid taking foreign language classes in college at all costs after having taken 5 years in high school. Now I wonder if I missed out on something...
          Likewise, I found the twelve chapters in Extreme Programming to be an interesting read, and discovered a lot of new programming techniques that I had never heard of before. For example, I found the relationship between customers and programmers described in the book to be quite intriguing and the author made many good points about how such a relationship could be highly beneficial. I especially related to how time-consuming email can be since it often takes people longer to respond and information is often lost in translation. I also agreed with the author's explanation of the benefits of pair programming, but found that many of the computer science courses I have taken discouraged programming with others. I understand that the professors want a more accurate representation of people's work, but I feel that there has always been a contradiction between programming in a school setting and in a work setting. For this reason, I am glad that this class relates better to the workplace and stresses pair programming as well as programming in large groups.