As part of my final undergraduate year (⅓ of it actually) I produced a project with the title "Tools to Support Education". The title was deliberately chosen to give the student complete flexibility as to what they actually did. I was interested in software comprehension at the time. My project studied hypertext program annotation, and issues involved with maintaining relationships between code and external annotations.
- My final dissertation.pdf (903K, 99 pages)
As part of the project, I produced a basic graphical code browser. This was arranged into two panes, approximately 20/80 split vertically. The left hand (smaller) pane displayed an expandable/collapsable tree heirarchy of the software project you were browsing. Files selected on the left hand side were displayed in the right-hand (bigger) pane.
Clicking lines in the right-hand pane performed a number of actions, depending on the program's "mode". You could
- create an association between that line of code and an external file - usually a HTML file
- remove an association
- edit the associated file (via an external editor)
- view the associated file (via an external viewer)
Associations were called 'annotations' and were indicated by a light-yellow background (similar to if you ran a highlighter over the line). If an association was considered to be out of date, the colour was changed to red.
A blog post about progress made in February '04: Dissertation demo