I am a senior computer science student at the University of Pittsburgh. Pitt's curriculum for computer science focuses on understanding of essential algorithms, data structures, and computational theory, as well as an understanding of low level operating system implementations. As computer science electives, fields that have interested me the most are compiler design, and computer graphics using OpenGL.
In my study of compiler design, I learned to implement all phases of compilation, from lexical analysis to code generation. We also covered various methods of optimization and garbage collection. The compiler design coursework ended with a final project of a complete and functional compiler for the educational language MiniJava.
My coursework on OpenGL was project based, each project implementing new graphical advancements. For the first project, we focused on making geometric objects, for which I made a 3-dimensional spring which could be rotated. For the second project, the focus was on camera perspective. We had to make a randomly generated maze, and use an algorithm to solve it from the camera's perspective as it traveled through the maze. And for the final project, we combined the skills learned from the previous two, and added dynamic lighting. We made a surface with colored spheres on top of it, and a light source above the center sphere. A button could be pressed to make the spheres orbit around the center of the table, and their shadows would change as their position relative to the light source changed. One could also rotate the camera around the center of the table.