During my senior year of high school I was employed at TAMSCO, a local manufacturing plant that worked mainly on defense contracts. When I started, I was the only programmer on staff. I was in charge of creating applications that made my coworker’s tasks easier and more efficient. I used to joke with them and say that all I needed from college was a piece of paper that told the world that I was qualified to do the job I was already doing.
Five years later, I’m about to receive that piece of paper, and I’ll admit that I was mistaken in thinking that I wouldn’t learn anything from it. The experience that I have gained has proven absolutely invaluable. Through the courses that I have taken, the professors that have taught me and the people I’ve worked with, I’ve come to appreciate the field of computer science on a much deeper level than I had thought possible.
The first year of my college experience was spent at BYU-Idaho where I took basic C and C++ programming and computer engineering courses. While the courses were interesting, I didn’t feel like I was heading in a direction where I could utilize my full potential. I had heard about the media arts department at the UM from a friend and decided that I would try to add it out when I transferred here in the spring of 2004. It was in this course, taught by Professor Rick Hughes, that I realized what my curriculum was missing: artistic and creative output. I decided to add a minor in Media Arts to fulfill that need and to balance out the logic with creativity.
After this semester I applied for a job at the Information Technology Office to work on the University’s new Portal project. Working at the ITO taught me how to work effectively as a team. Jamey Maxwell, the senior developer there, helped me appreciate the value of coding standards, documentation and a host of other good programming habits. The Portal really helped me focus and apply the programming concepts that I was seeing in class. At the same time, some concepts that I learned while working at ITO gave me a competitive edge in later courses.
I feel like I didn’t start “learning” anything in the computer science program until I took Dr. Jesse Johnson’s Data Structures course. Up until this point, learning Java had been fairly trivial, but the new concepts introduced in Data Structures helped me to realize that there was much more to computer science than just hacking together code – real design work could make programs simplistic and powerful at the same time.
Armed with these new ideas I took Dr. Joel Henry’s Theory of Programming Languages, where I started to see how all languages were based on the same ideas. After programming an assignment in LISP, the functional nature of programming became clear to me. Suddenly I found that it didn’t matter what language I was using – I could pick up any programming language and learn it very quickly. This was an excellent tool for me to gain, because after this course I worked on projects in a wide variety of languages.
Dr. Henry’s Theory of Advanced Programming was another eye opener for me. When I started this course I was already programming using objects, but I had no clue as to how flexible and robust they could actually make an application. The methods of programming I learned in that course helped me realize that I had the tools to tackle very large projects effectively while still keeping the code simple and straightforward.
During my senior year I started projects specifically aimed at integrating the fields of computer science and media arts in interesting and unique ways. Dr. Johnson’s course in Computer Graphics was an excellent way for me to apply the creative skills I had gained through courses in media arts. Two of these projects are displayed in my portfolio because I feel that they were excellent examples of computer science as art.
I’m sure that if I were to examine some of the code that I wrote for TAMSCO those first years that I was working as a programmer, I would be amazed at how much I’ve learned and how far I’ve come. I hope that five years from now I’ll look back on the code that I’m writing today and feel that same sense of amazement.