There were many reasons this was an especially unique experience for me. Some of which include this being my first semester at the U of M, my first time working with a partner, my first time using Linux, my first time using SVN, and my first time working with code I hadn't written entirely myself from scratch.
Working with SVN was a love hate relationship. At first I didn't grasp the simple concept of what the hidden files were doing and I ended up checking out the full URL each time, instead of, of course, just doing a SVN update within the folder. Other errors that came up were that SVN is not a working folder, even after I had added it. At one point both my partner and I became locked out for a still unknown reason. But even with all of the headaches, SVN made it possible for my partner and I to work together without any time spent trying to figure out merging or version conflicts. Even with all the headaches, SVN was still extremely seamless and definitely something I will not be able to code in teams without SVN from now on.
The C test suite was incredible to me in how quickly I could develop with it. It may take a little more time to think about the function design and how to test it but in the end I was able to build much more robust code and lay great confidence in the end results. This as well is something I will not be able to develop without and have actually looked into implementing into my other classes.
This being my first semester at the U it was hard for me to grasp the structure and style of teaching. It took me, what I would guess to be, a larger amount of time than my peers to identify that the previous labs built up to this and how to build a program utilizing them all together. This was also my first time coding in over a year, and my first time working with someone else's code to begin with, as stated above. I even had a hard time working with linked lists; to show how rusty I am. Because of these reasons, I would say the cards were stacked against me.
There were both good and bad things that came from working in pairs. It was good when spending physical time with him because anytime he may not be grasping something I would have to explain it. In me explaining it I not only able to show my full understanding of the subject but also get an even better grasp myself. It was bad in the sense that I could not rely on him to produce work. For one reason or another he could not be depended on and I ended up becoming quite stressed due to the workload.
The next iteration I will try to identify earlier on is why my partner is not contributing the same as I. On my personal front I will be spending more time with the TAs if I don't understand something. This way a higher percentage of the time spent on the code will be on developing functions I can be confident are correct instead of just taking baby steps and hoping they'll lead me somewhere.
It is very clear to me the benefits of CXXTest suite and test driven development. I could not imagine trying to work in a partnership without some kind of version control system. As such I will definitely continue to use these two systems in the future of this class and any other coding I do in the future.