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: