Project 3, CSE 490ra, Winter 2005
Diagram Recognition
The diagram recognition problem is: given a collection of ink strokes, determine what the person who did the drawing was
attempting to convey. This can be an easy or hard problem for people to do, depending on the quality of the drawing, and
how much context is shared with the person who drew the diagram. This is often a very hard problem to solve automatically.
To make the problem somewhat easier, diagram recognition is often restricted to known domains, such as circuit diagrams or
chemistry diagrams. This project is to develop a recognizer to analyze the types of drawings that are drawn in data structures
and algorithms courses.
There are two related scenarios to apply the recognizer to - first, diagrams that instructors draw while lecturing about data
structures, and second, diagrams students draw as class exercises in a data structures class. We will be able to get plenty
of real world data to test your application on. Examples of slides and student work from CSE 326 can be found
here. Slides 0, 2, 4, and 6
from the hashing lecture show arrays, and slides 9, 10, and 15 from the huffman lecture show trees. Student submission exercises
2 and 3 show student drawn trees.
Scope
You can choose which types of data structures diagrams to recognize, you do not need to be comprehensive and try to recognize
all possible diagrams. Arrays, trees, and linked lists would be natural families of diagrams to start with. You should
recognize diagrams with text labels, and associate the text labels with appriate components of the diagrams.
Here a samples of the types of diagrams you might try to recognize: