Of all the projects in this class, I’ve had the most stake in Project III. While the first two projects were par for the course in an English class, Project III evolved into something much more. It contained many personal firsts. I had never created a website before. I also hadn’t attempted an educational piece like this before. And I hadn’t really even explored the P vs. NP problem to this extent.
The idea for this project was borne out of my interest in the Computer Science discourse community. There’s actually a surprising amount of writing within the community, whether in research or in blog posts detailing specific technical processes. I decided to explore a topic that was briefly mentioned in my discrete math class, the P vs. NP problem. I didn’t know what to do initially, but I knew I wanted to learn more about it. At the same time, I had been in a program for website design with HackCville, and thought that I might be able to implement some of those ideas into this project. The teaching element came when I tried to explain my project to friends and family, fueling the need to create an introduction to the problem. This inspiration also came from my experience with Wait but Why, a blog on the internet that explains complex ideas in simple terms.
Thus, I focused on an audience that did not necessarily know much about computational complexity and big-Oh run-times. I wanted my project to be as unintimidating as possible. This is manifested in the use of pictures, puzzles, and analogies to get specific ideas through.
There were a number of significant hurdles while making my third project. The most difficult thing was simplifying the P vs. NP problem without losing the nuance that comes with a higher level conception of the topic. By the end of the paper, grounding such an abstraction was a major personal achievement.
I learned a lot from this project specifically. I learned about the value of explaining difficult concepts through analogy. I learned several new elements and frameworks while playing with the HTML/CSS of this project. I learned how to put a website on UVA servers. I learned about how important writing is to theoretical computer science.
In the end, I’m proud of my website design and my attempt to create a concrete concept for something purely mathematical. I’m sure that my analogy needs a little bit more work, and that will come with future revisions of this project.
- Add JavaScript elements to the project to make it more interactive and less intimidating
- Add subheadings to improve reader flow
- Define algorithms better