MUST BE DOWNLOADED TO WORK According to Wikipedia, "In mathematics and computer science, graph theory is the study of graphs: mathematical structures used to model pairwise relations between objects from a certain collection. A "graph" in this context refers to a collection of vertices or 'nodes' and a collection of edges that connect pairs of vertices. A graph may be undirected, meaning that there is no distinction between the two vertices associated with each edge, or its edges may be directed from one vertex to another" (http://en.wikipedia.org/wiki/Graph_theory) This project is supposed to be an interactive example of this. In order to add an edge, keep the 'e' key pressed until it stops drawing for a few seconds. then release, and when the prompt comes up, you first enter the number of the node that the edge goes from, then you enter the node it goes to, then you enter what you want to set it to. when you want to stop entering data, enter 'exit' for the first prompt. for those curious, this project works using an Adjacency Matrix ( http://en.wikipedia.org/wiki/Adjacency_matrix ) to store data about what edges do and don't exist. a useful property of this matrix is that you can find how many paths of a specific length there are from one node to another by multiplying it by itself using matrix multiplication that number of times.