While co-oping at Georgia-Pacific last summer I found myself quite bored after work. During my first two semesters at Georgia Tech I think I became accustomed to the grueling pace of classes and having it stop so suddenly with the arrival of summer left me feeling bored. My brain was itching to do interesting and new things but it was my first semester as a co-op so they didn’t give me very challenging work. So I did what every good programmer does when bored; I picked up an O’Reilly book to learn a new programming language. I chose PHP because I had heard a lot of buzz about it and I had seen some really cool online applications built on PHP. Since I had the whole summer to learn PHP I decided I might as well come up with a reasonably large project to cut my teeth on and really help me grasp this new language. I brainstormed some ideas with a friend of mine and we agreed that a web-based version of the Risk board game would be awesome. We always enjoyed playing it but had problems finding other people to play with us and finding the large blocks of time necessary to finish a game in one sitting. So why not use the internet to enable anyone to play Risk anytime they wanted?
At Georgia Tech, Computer Science majors are required to take Calculus I – III but we actually have a special Calculus III just for Computer Science majors. I wasn’t sure what to expect when I started this class but now that I’m almost done I have found it to be a very refreshing change from the previous Calculus classes. In my Calculus III for CS class taught by Michael Loss, the curriculum was integrated with a number of programming projects in which you implement the concepts you learn in class. Personally, I have always found it a challenge to apply many of the abstract mathematical concepts learned in math classes to real life or computer science. But in this class I was able to put those abstract concepts into code which gave me a better understanding of them and how they can be applied to real problems.
I did four projects in the class. The first three are Java applets and the last is a Java application: