Computer Science Philosophy Statement

My computer science life started one night during the summer between my junior and senior years of high school. I was at my high school district's administrative office because my brother was receiving an award for his running. After the ceremony, one of his coaches, who also was my math teacher junior year and one of my Mathlete coaches, started asking me about whether I liked to fix computers and mess around on them. I responded that I did. (My dad and I used to challenge each other to figure out how to fix different computer issues and find different ways to do something.) My teacher then suggested that I take either one of his computer science classes during my senior year. I told him I would think about it, and a few days later I emailed him asking about what happened in each of the classes. Upon receiving his reply, I decided that the only one I would enjoy would be the AP Computer Science class, but it would not fit into my schedule. Towards the end of my senior year, my teacher said I should take the intro computer science class at whatever college I would be going to, so I did.

I took Introduction to Computer Programming my first semester of college. I really enjoyed the class, more so than I was enjoying Calculus 3 (I went into college considering to be a math major, but still hadn't been sure if it was for me). I liked knowing it was a field where I would constantly be learning, even after finishing school. It's also a field where people may not know you are the one who made a popular program, but you know, and that's good enough for me. I have always enjoyed helping others, more so when they don't know it was me who helped, and computer science gives me that opportunity all the time. I also get to do something that matters - nowadays, people wouldn't be able to function without computer scientists. We are involved in most new technologies, which means I will never be bored. Throughout my experience with computer science so far, I have yet to regret choosing this field as my career.

piazza navona

Description of Project

Develop an application that employs various techniques of stegangraphy to embed and recover hidden messages within an image file.

General Requirements

  1. Research the history and progression of steganography giving examples of techniques and usage.
  2. Compare the use of steganography versus cryptography.
  3. The application should allow the user to choose from several steganography algorithms to embed or recover a hidden message in an image file.
  4. Display the original image and the altered image side-by-side for visual comparison, with a zoom feature for close examination.
  5. Compare efficiency, effectiveness and quality of the different algorithmns.
  6. Consider issues like size of the message, modification of the image size and distortion.
  7. Can you discover hidden messages using tools like filters, hex editors and text editors?