<?xml version="1.0"?>
<!DOCTYPE Projects SYSTEM "projects.dtd">

<Projects>
  <ProjectsTitle>
    Index of Possible Final Year and MSc Projects to be supervised
    by Alan Sexton in 2012/2013
  </ProjectsTitle> 
  
  <DefaultSupervisor>
    <Name>
      Alan Sexton
    </Name>
    <Email>
      A.P.Sexton@cs.bham.ac.uk
    </Email>
    <URL>
      http//www.cs.bham.ac.uk/~aps 
    </URL>
  </DefaultSupervisor>

  <Preface>
    <p>
      My current main interest is in software for Document Image Analysis (DIA),
      and/or support for Rich GUI applications in the cloud.
    </p>
    <p>
      DIA is about analysing images of documents of various types and turning
      them into semantically meaningful knowledge. There are many potential
      projects in this area, from the deeply image analysis (e.g. image
      cleaning, deskewing etc.) to optical character recognition (glyph
      identification, glyph segmentation, pattern classification, shape
      clustering), to domain specific (analysis of music sheets, mathematical
      formulae, technical diagrams, maps etc.) to sophisticated algorithms (e.g
      graph grammar parsing) to AI-like knowledge construction (e.g. term and
      graph rewriting, mathematical knowledge base).
    </p>
    <p>
      Rich GUI applications in the cloud refers to building web applications
      with a focus on high performance and sophisticated graphical user
      interfaces. The arrival of HTML5 with its new Canvas element, and
      especially when combined with Javascript and CSS, gives web applications
      the ability to build interfaces nearly as powerful and flexible as
      available from Java Swing. This opens the possibility of avoiding the
      problems of distribution, porting, and version management of traditional
      GUI applications and instead simply providing the application on the web.
      I am very interested in exploring these technologies to see how rich an
      experience we can give users in such web applications. Most of my projects
      that are GUI front end oriented can be taken as either a desktop
      application or as a rich GUI web application.
    </p>
    <p>
      Overall I tend to like the more technically demanding types of project
      where there are interesting implementation issues or serious problems of
      design, analysis or mathematics to deal with. Some of my projects have a
      strong research element and a good result from the project may lead to
      publication in international conferences or journals. There are also
      opportunities to pursue some of these projects further into PhD research
      projects following graduation.
    </p>
    <p>
      While these projects can be developed in Java, I have switched to using
      OCaml in my own work for developing code in this area because of the
      improved speed of development, speed of execution and because I find it
      easier to write complex algorithms in this language. If you would like to
      use OCaml for the project (and I heartily recommend doing so) you must
      either be an MSc or undergraduate student with some previous familiarity
      with OCaml, or an undergraduate student who is willing to learn OCaml over
      the Summer with support from me.
    </p>
  </Preface>

  <Group>
    <GroupTitle>
      Document Image Analysis
    </GroupTitle>
    <GroupDescription>
      <p>
        The general subject of Document Image Analysis covers everything from
        low level image analysis up to high level sophisticated algorithms for
        turning components identified in an image into usable information. I
        am particularly interested in developing a centre of expertise in
        Document Image Analysis here at the University of Birmingham. There
        are many related projects available here and I will generally give
        preference to DIA projects over other projects. There is plenty of
        scope for interested students to pursue this topic further at the MSc
        level (via our MSc in Advanced Computer Science) and at PhD level. A
        number of previous projects in this area led to papers being
        published. In one, in 1998/1999. the results were subsequently
        commercialised and it is now a live font search engine run by a major
        font foundry in the USA. See Identifont on http://www.myfonts.com. The
        student involved has been, and remains, employed by that company.
      </p>
    </GroupDescription>

    <Project>
      <Title>
        OCR for Scientific Documents
      </Title>
      <Keyword>
        Document Image Analysis
      </Keyword>
      <Description>
        <p>
          Scientific documents are particularly difficult to recognise with OCR
          software. They contain diagrams, graphs, mathematical formulae and
          complex tables. Because of the difficulty of analysing them, students
          with visual impairments are much more severely disadvantaged in
          studying the sciences than in studying many other subjects. This set
          of projects (there are many different ones in this area) is to use a
          particular scanned book (<a
          href="http://www.cs.bham.ac.uk/~aps/research/projects/as/"
          target="_blank">http://www.cs.bham.ac.uk/~aps/research/projects/as/</a>)
          in developing tools, algorithms and solutions to assist in this research.
        </p>
        <p>
          Possible projects include: developing a character recogniser for the
          individual characters in the image. Analysing the layout of the page,
          to identify blocks of the pages as containing columns, headings,
          diagrams, formulae etc. Recognising tables or formulae. Turning bitmap
          diagrams into vector diagrams etc.
        </p>
      </Description>
    </Project>

    <Project>
      <Title>
        Online Text, Formula or Diagram Entry by Drawing
      </Title>
      <Keyword>
        Document Image Analysis
      </Keyword>
      <Description>
        <p>
          Online methods of optical character, formula and diagram recognition,
          online recognition are based on drawing on a pad device, a graphics
          tablet, a smartphone touch screen or with a mouse. Each
          stroke that that the user enters is analysed, recognised, corrected
          and displayed to the user, who can either accept what has been
          recognised or undo the change. Demonstrations of a commercial system
          that implements a number of tools of this type are available at: (<a
          href="http://webdemo.visionobjects.com/"
          target="_blank">http://webdemo.visionobjects.com/</a>)
        </p>
        <p>
          This project is to focus on one of these application domains (text,
          formulae or one diagram type, e.g.UML Class diagrams, Chemical
          diagrams, etc.) and implement a working system.
        </p>
        <p>
          The system can be a Web application, using HTML5's Canvas element, CSS
          and Javascript for the GUI front end, it could be a smartphone
          application (Android preferred), or it could be a desktop application
          using Java or OCaml. Also possible is the use of a note taking device
          such as the Digimemo: <a href="http://www.digimemo.net/"
          target="_blank">http://www.digimemo.net/</a>
        </p>
      </Description>
    </Project>


    <Project>
      <Title>
        Optical Character Recognition Engine
      </Title>
      <Keyword>
        Document Image Analysis
      </Keyword>
      <Description>
        <p>
          Recognising printed characters correctly from scanned images is
          difficult because of the range of ways in which the scanned image may
          deviate from the true image. This project is to choose one of a number
          of different technologies and develop an OCR engine to recognise
          characters. Suitable technologies from image analysis and pattern
          classification and clustering can be used.
        </p>
      </Description>
    </Project>



    <Project>
      <Title>
        Registering Keyed Text with Handwritten Text in Historical Manuscripts
      </Title>
      <Keyword>
        Final Year Undergraduate Students Only
      </Keyword>
      <Keyword>
        Document Image Analysis
      </Keyword>
      <Description>
        <p>
          Historical manuscripts contain handwritten text that, in general, is
          beyond the current ability of handwriting analysis systems to
          recognise. Hence for many such manuscripts, humans read the
          manuscripts and key in the corresponding text so that various search
          tools can index and find the corresponding pages. This is a laborious
          and errorprone task, not least because checking for errors in the
          keyed in text requires matching the written text with the keyed in
          text. This project is to assist in this task by trying to carry out
          that matching automatically: this is a much easier task than
          handwriting analysis but would be extremely useful to a large number
          of researchers in the Humanities. It would be most useful to have this
          tool as a rich GUI web application, although a desktop application
          would also be acceptable.
        </p>
      </Description>
    </Project>

    <Project>
      <Title>
        An Historical Manuscript Analysis System
      </Title>
      <Keyword>
        Final Year Undergraduate Students Only
      </Keyword>
      <Keyword>
        Document Image Analysis
      </Keyword>
      <Keyword>
        User Interface Design
      </Keyword>
      <Description>
        <p>
          Archaeologists and Historians, in their studies of ancient languages,
          manuscripts and writing, often need to do very difficult and
          painstaking character recognition of symbols and text. Recently some
          illuminated manuscripts from the 11th and 12th century have been
          scanned at very high resolution (c.f. http://www.isos.dcu.ie/) and are
          available for inspection and processing. While the languages of these
          manuscripts may not be known to the students (indeed, in some cases
          the interest is to decipher lost languages), computer techniques to
          match images, extract common symbols and cluster patterns of images,
          together with various image enhancement techniques, could prove very
          useful.
        </p>
        <p>
          I have obtained a large collect of images of manuscripts of the the
          Pilgrims Progress. There is significant scientific interest in
          determining information about the scribes who wrote them. I believe
          that image analysis techniques should be able to find objective
          evidence supporting or contradicting commonly held beliefs about the
          origin and development of these documents
        </p>
        <p>
          This project is to develop a collection of tools in a software
          toolbox useful for such purposes. It will involve development of
          specialist noise reduction, deskewing, binarisation, glyph
          extraction, shape clustering and identification algorithms.
        </p>
      </Description>
    </Project>

    <Project>
      <Title>
        Hand-drawn Diagram Analysis
      </Title>
      <Keyword>
        Final Year Undergraduate Students Only
      </Keyword>
      <Keyword>
        Graphics
      </Keyword>
      <Keyword>
        Image Analysis
      </Keyword>
      <Description>
        <p>
          Drawing diagrams for inclusion in papers and reports can be very
          tedious. Either you use a markup language for drawing figures which
          gives a great deal of flexibility in defining your diagrams but needs
          programming style skills to do so, or you use an interactive tool and,
          typically, sacrifice some expressivity or quality of the final
          diagram. Either way, it can take a long time and a great deal of
          detailed work to get it right.
        </p>
        <p>
          An alternative is to sketch the diagram on paper, scan it
          in, analyse the results for lines, curves, rectangles,
          circles, text etc. use some intelligence to clean it up,
          e.g. by guessing that, a particular slightly wavy line was
          intended to be straight, and generate the diagram in an
          appropriate form for further editing in a diagram tool.
        </p>
      </Description>
    </Project>

    <Project>
      <Title>
        Printed Diagram Analysis
      </Title>
      <Keyword>
        Final Year Undergraduate Students Only
      </Keyword>
      <Keyword>
        Graphics
      </Keyword>
      <Keyword>
        Document Image Analysis
      </Keyword>
      <Description>
        <p>
          Even the best commercial OCR programs can rarely do more than
          recognise diagrams in documents as images. However, it would
          be nice to be able to analyse the image and turn it into an
          editable vectorised image that could then be further modified
          with a suitable diagram editing tool. Furthermore, the result
          should require far less disk space than the original image and
          could be printed at much higher resolution than the original
          (without showing the grainy quality that printing bitmap
          images at too high resolution incurs).
        </p>
        <p>
          This requires scanning the diagram, analysing the results for
          lines, curves, rectangles, circles, text etc. use some
          intelligence to clean it up, appropriate form for further
          editing in a diagram tool.
        </p>
      </Description>
    </Project>

    <Project>
      <Title>
        Sheet Music Reader
      </Title>
      <Keyword>
        Final Year Undergraduate Students Only
      </Keyword>
      <Keyword>
        Document Image Analysis
      </Keyword>
      <Keyword>
        Music
      </Keyword>
      
      <Description>
        <p>
          This project is to optically scan a sheet of music and
          analyse it. Minimally, a Music XML file should be generated
          that captures as much as possible of the music information
          on the music sheet. Generating MIDI output from
          the Music XML file would be a useful bonus.
        </p>
        <p>
          The student should understand at least something about
          reading music and music theory although he/she does not have
          to be an expert.
        </p>
      </Description>
    </Project>

    <Project>
      <Title>
        Mathematical Expression Analyser
      </Title>
      <Keyword>
        Document Image Analysis
      </Keyword>
      <Description>
        <p>
          Using a tool to extract characters from PDF documents that will be
          provided to the project, a mathematical expression can be scanned
          resulting in a list of which characters are in the image, where they
          are in relation to each other (in 2 dimensions) and what size they
          are. The task is to construct the mathematical expression including
          subscripts, superscripts, fractions, summations, matrix expressions
          and as many other mathematical expression components as possible.
        </p>
      </Description>
    </Project>

    <Project>
      <Title>
        Glyph Segmentation
      </Title>
      <Keyword>
        Final Year Undergraduate Students Only
      </Keyword>
      <Keyword>
        Document Image Analysis
      </Keyword>
      <Description>
        <p>
          One of the most difficult problems in OCR is dealing with
          different glyphs that touch each other or damaged glyphs.
          While we can get very high recognition for individual glyphs,
          when two glyphs actually touch, or due to printing problems, a
          single glyph is broken into two separate components, character
          recognition rates drop significantly. This project is to
          explore this problem, implement and evaluate some standard
          approaches described in the literature, and design and develop
          new algorithms based on what you have learned.
        </p>
      </Description>
    </Project>

    <Project>
      <Title>
        Graph Rewriting
      </Title>
      <Keyword>
        Final Year Undergraduate Students Only
      </Keyword>
      <Keyword>
        Document Image Analysis
      </Keyword>
      <Description>
        <p>
          One the the most promising techniques for higher level
          analysis of documents (i.e. after all the low level image
          analysis and character recognition has been completed) is
          Graph Rewriting. The idea is that the objects discovered in an
          image are placed in a graph data structure with links between
          objects based on their spatial relationship to each other
          (e.g. to-the-right-near or above-left-far etc). Identifying
          the higher level structure in the document can then be done by
          rewriting the graph: e.g. if one object is an italic "x" at
          ten point size and above-right-near there is a "2" at 8 point
          size we might reasonably rewrite the two objects and the link
          into a single "x squared" object, while keeping the remainder
          of the graph the same. A whole sequence of rewrites could
          recognise a whole mathematical expression. The same techniques
          can be applied to diagram recognition, form recognition or
          general document analysis.
        </p>
        <p>
          This project is to develop a working graph rewriter and
          associated algorithms to experiment with these ideas.
        </p>
      </Description>
    </Project>

    <Project>
      <Title>
        Optical Forms System
      </Title>
      <Keyword>
        Final Year Undergraduate Students Only
      </Keyword>
      <Keyword>
        Document Image Analysis
      </Keyword>
      <Description>
        <p>
          Paper forms such as the school's mid and end semester questionnaires
          require a great deal of work to prepare and expensive software to
          analyse them. This project is to produce a free, public domain version
          that could be the basis of a cheap but effective solution for anyone
          who needs to work with forms. There are many different components of a
          scanner based forms processing system. The forms have to be created.
          This can be in a special purpose editor which allows creating the
          various components: choice fields, image fields, text boxes etc.
          Alternatively it can be produced outside the system and then scanned
          in, allowing a user to mark up and configure the various components.
          Various image processing facilities are necessary (noise reduction,
          skew and rotation correction etc). Automated form detection is an
          advantage, locating components correctly on the form essential,
          segmentation issues must be looked at etc. Good optical character
          recognition on top of the rest would be too ambitious for this project
          but the system should provide an API by which an OCR engine could be
          plugged in to the system and a free open source OCR engine such as
          Tesseract or OCROpus could be used.
        </p>
      </Description>
      <Equipment>
        The high speed school scanner will be made available, although
        the project should be based on handling grey scale or
        monochrome, low resolution (200-400dpi) TIFF images of forms.
      </Equipment>
    </Project>

  </Group>

  <Group>
    <GroupTitle>
      OCaml Programming
    </GroupTitle>
    <GroupDescription>
      <p>
        OCaml is a strongly typed, high performance programming language
        with functional imperative and object oriented features as well
        as a type inference system (so although strongly typed, you
        often need not explicitly declare the types you are using). Its
        features (such as pattern matching, and type inferencing) makes
        much simpler the process of constructing and manipulating
        complicated structures of data than is the case in languages
        such as Java, C, C++ or many other languages. I am interested in
        supervising some projects to explore the use of this language on
        some complex problems.
      </p>
    </GroupDescription>

    <Project>
      <Title>
        OCaml based Rich Web Applications
      </Title>
      <Keyword>
        OCaml
      </Keyword>
      <Keyword>
        Graphics
      </Keyword>
      <Keyword>
        Web
      </Keyword>
      <Description>
        <p>
          Ocsigen is an OCaml based web application framework with some
          interesting and very attractive features for easy development of
          sophisticated web applications. This project is to extend those
          features to the new HTML5 canvas elements to provide a framework
          suitable for rich graphical web applications. The project will involve
          building a demonstrator application that shows the new features in operation.
        </p>
      </Description>
    </Project>

    <Project>
      <Title>
        A Tool for Aesthetically Pleasing Layout of Graphs
      </Title>
      <Keyword>
        OCaml
      </Keyword>
      <Keyword>
        Graphics
      </Keyword>
      <Description>
        <p>
          Graphs (the node/edge variety) are used in many areas of
          computer science both as internal data structures and as
          interface elements. As a result there is often a need for
          displaying a graph in an aesthetic manner. Unfortunately it is
          very difficult to come up with a good algorithm for doing so
          although there is now a rich literature on the problem.
        </p>
        <p>
          This project is to review the literature and implement a
          number of the most interesting graph layout algorithms in a
          useful environment: namely, the graph layout algorithms should
          be implemented as a module which can handle annotating a graph
          with appropriate spatial coordinates. A separate widget module
          should then see to display of the resulting graph with support
          for selecting nodes and navigating the graph structure. The
          entire package then becomes a useful interface tool for
          inclusion with any program that has a use for graph or tree
          representations in its interface.
        </p>
      </Description>
    </Project>

    <Project>
      <Title>
        Graph Algorithms and Animations in OCaml
      </Title>
      <Keyword>
        OCaml
      </Keyword>
      <Keyword>
        Graphics
      </Keyword>
      <Description>
        <p>
          Graph algorithms (e.g. shortest paths, finding minimal
          cycles etc) are very important for many applications,
          especially for those with more sophisticated requirements, and
          yet are poorly understood by many programmers. OCaml is an
          excellent language for working with graphs. This project is to
          develop implementations of standard graph algorithms and
          demonstrate how they work with graphical animations.
        </p>
      </Description>
    </Project>

    <Project>
      <Title>
        Go Problem Solving
      </Title>
      <Keyword>
        OCaml
      </Keyword>
      <Keyword>
        Graphics
      </Keyword>
      <Keyword>
        Games
      </Keyword>
      <Description>
        <p>
          The game of Go has stumped computer scientists for many years.
          Computer programs are now the best players of Chess,
          Othello/Reversi and (bar one human) draughts/checkers.
          However, Computer Go players have still not advanced beyond
          the level of amateurs. It would not be feasible to try to
          improve on this in a final year project, but some parts of the
          overall problem could be tackled. For example, "Life and
          Death" problems in Go are published in news papers and are
          equivalent to the Chess problems of "White to mate in 4" and
          the like. This project is to develop a program to visualise
          and solve such problems. The student should already be
          familiar with the game.
        </p>
      </Description>
    </Project>


  </Group>

  <Group>
    <GroupTitle>
      Web Applications
    </GroupTitle>
    <GroupDescription>
      <p>
        The following is a list of projects intended to explore a number
        of aspects of Web Application Technologies.
      </p>
    </GroupDescription>


<!--
    <Project>
      <Title>
        Web Based Questionnaire (Tutorial/Assessment) System
      </Title>
      <Keyword>
        Web
      </Keyword>
      <Keyword>
        User Interface Design
      </Keyword>
      <Description>
        <p>
          For teaching purposes it would be useful to have a system that
          allows lecturers to prepare questions (multiple choice,
          selection, numeric, string and many others are possible) that
          can be marked automatically and can give immediate feedback to
          students who use it. Examples of such systems can be found at
          <a
              HREF="http://www.derby.ac.uk/assess/newdemo/mainmenu.html">
            Triads
          </a>
          and
          <a HREF="http://cw.prenhall.com/bookbind/pubbooks/carlson_ema/chapter1/deluxe.html">
            Carlson book web assessment
            </a>. Also of interest is the site:
            <a
                HREF="http://www.herts.ac.uk/ltdu/technology/what_is_caa.html">
              What Is Computer Aided Learning
            </a>
        </p>
        <p>
          It should be possible to register classes of students for the
          tests, the students can then take the tests under conditions
          specified by the lecturer and the lecturer should be able to
          monitor student progress and results.
        </p>
      </Description>
    </Project>
-->


    <Project>
      <Title>
        Mind Mapping
      </Title>
      <Keyword>
        Web Applications
      </Keyword>
      <Keyword>
        User Interface Design
      </Keyword>
      <Description>
        <p>
          A common tool for organising ones thoughts, and a favourite
          tool of students planning essays, is "Mind Mapping",
          typically involving taking a large sheet of paper and drawing
          lots of cloud diagrams with lines between them. There are a
          number of desktop applications to support such a process (e.g. 
          <a
              href="http://freemind.sourceforge.net/wiki/index.php/Main_Page">Freemind</a>).
          This project is to develop a web based version that allows
          groups of people to develop mind maps together online.
        </p>
        
      </Description>
    </Project>

    <Project>
      <Title>
        Publication Collection Manager
      </Title>
      <Keyword>
        Web Applications
      </Keyword>
      <Description>
        <p>
          For someone with a large number of books, keeping track of
          them can be a problem but necessary for reasons of insurance,
          security in lending them, and just assistance in finding them.
          Entering the data alone is such a nuisance that many people
          simply don't bother. Now, one can obtain the full
          bibliographic data from the ISBN information (which can be
          entered by hand or which can be scanned with the aid of a
          cheap bar code reader). There are desktop applications for
          this purpose. However, it would still be nice to have full
          access to the book collection manager online, so that one can
          enter new books at home, at work or when away on holidays or
          at conferences. Similarly one would like to be able to carry
          out all possible operations on the collection online rather
          than be fixed to one location for the purpose. This project is
          to do precisely that. Other functionality, such as generating
          bibliography information for inclusion in academic papers and
          reports, or supporting other forms of publications, such as
          papers, music or videos is also possible.
        </p>
        
      </Description>
    </Project>


    <Project>
      <Title>
        Family Connections
      </Title>
      <Keyword>
        Web
      </Keyword>
      <Description>
        <p>
          Family trees are rarely trees. With possibilities of deaths,
          divorce, remarriage, adoption etc., a family tree can be quite
          a complex graph. Furthermore, it is often very hard to collect
          together the family history from an extended family, each
          member of which may know some small bits that no-one else
          knows, or has some pictures or anecdotes that are not
          available to the others.
        </p>
        <p>
          This project is to develop a web application that securely
          allows a family to collaborate in collecting together and
          sharing the family history and relationships. Family members
          should be able to log in, see various visualisations of the
          family structure, add pictures, video or sound recording, or
          text annotations.
        </p>
        
      </Description>
    </Project>


  </Group>

  <Group>
    <GroupTitle>
      Music and Sound Analysis
    </GroupTitle>
    <GroupDescription>
      <p>
        I am interested in the possible connections between music,
        sound and computers. From analysing music from sound files to
        extract the more abstract music information (e.g. producing a
        music sheet from the sound file - an open research problem) to
        doing the same from MIDI data (much easier but still not
        simple), to optical recognition of sheet music to produce MIDI
        data (i.e., teaching your computer to read music) etc.
      </p>
    </GroupDescription>



    <Project>
      <Title>
        Music Analyser for MIDI
      </Title>
      <Keyword>
        Music
      </Keyword>
      <Description>
        <p>
          The problem here is to take a MIDI file
          and analyse it to extract the music information. The music
          information should be output as sheet music.
        </p>
        <p>
          The student should understand at least something about
          reading music and music theory although he/she does not have
          to be an expert.
        </p>
        <p>
          An excellent site on music analysis can be found at
          <a HREF="http://www.kcl.ac.uk/kis/schools/hums/music/ttc/IR_projects/OMRAS/">
            OMRAS (Online Music Recognition and Searching)
          </a>
        </p>
      </Description>
    </Project>


    <Project>
      <Title>
        Dynamic Interactive Music Notation Display Tool
      </Title>
      <Keyword>
        User Interface Design
      </Keyword>
      <Keyword>
        Music
      </Keyword>
      
      <Description>
        <p>
          I have supervised a number of music related projects in
          the past, and one significant problem with all of them is
          the lack of a freely available high quality user interface
          for dynamically displaying and interacting with a
          graphical representation of sheet music. Think of it as
          the musical equivalent of a Java Swing JEditorPane: One
          should be able to display music scores in it, dynamically
          modify the contents of the pane, highlight parts of the
          score, etc. Such a Swing control could be used as the
          front end to any number of music related applications:
          from capturing midi on a keyboard and display the
          corresponding music in real time, to playing music while
          highlighting on the score exactly what is being played, to
          providing the front end to a music score editor.
        </p>
        <p>
          The student should understand at least something about
          reading music and music theory although he/she does not have
          to be an expert.
        </p>
      </Description>
    </Project>

  </Group>



  <Group>
    <GroupTitle>
      Computer Aided Software Engineering
    </GroupTitle>
    <GroupDescription>
      <p>
        The following projects are to do with tools that assist developers to
        design and build software systems. I am also interested in other
        projects of this type if you have any ideas for something related.
      </p>
    </GroupDescription>


    <Project>
      <Title>
        UML Diagram Editor
      </Title>
      <Keyword>
        Graphics
      </Keyword>
      <Keyword>
        User Interface Design
      </Keyword>
      <Description>
        <p>
          UML contains 14 different types of diagrams and I would like projects
          to develop editors for some or all of these diagrams. Support for
          intelligent editing will be required (e.g. the inclusion of top-down
          and bottom up editing operations on diagrams), as well as output to
          SVG, XML and bitmap image formats.
        </p>
        <p>
          There is scope to implement this either as a desktop application or as
          a web application. As a web application, there is the possibility of
          making it a communal application where multiple people can work on the
          same diagram simultaneously.
        </p>
      </Description>
    </Project>



    <Project>
      <Title>
        Graphical Tools for Developing Conceptual Database Models Based
        on Extended Entity-Relationship-Attribute Diagrams
      </Title>
      <Keyword>
        CASE Tools
      </Keyword>
      <Keyword>
        Graphics
      </Keyword>
      <Description>
        <p>
          Entity-Relationship-Attribute modelling is the most common form
          of conceptual modelling used in database design today. Tools
          to support ERA modelling are available but are, for the most
          part, either very expensive or of poor quality. An ideal ERA
          diagram drawing tool is more than just a figure drawing tool
          with some special predefined figures. It should support common
          refinement approaches (Top Down, Bottom up, Inside Out and
          Mixed). It should support different diagramming styles such as
          Chen (rectangle/diamond/oval) and Crow's Feet. It should be
          able to save to and restore from the Conceptual Schema
          Definition Language (CSDL). It should support view
          integration, constraints and extended ERA features such as
          Generalisation, Aggregation and Classification. It should be
          able to map a conceptual model into a logical model (e.g. a
          relational schema).  It should be able to import a relational
          schema and make reasonable assumptions to extract an
          approximate conceptual model from it.
        </p>
        <p>
          This project is to design and develop an ERA tool that goes as
          far as possible in producing such a system.  The internal
          design and user interface design are critical parts of the
          project as the intention is to carry the project further in
          later years.
        </p>
      </Description>
    </Project>


  </Group>


  
  <Project>
    <Title>
      A Technical Figure Drawing Tool
    </Title>
    <Keyword>
      Graphics
    </Keyword>
    <Keyword>
      Web
    </Keyword>
    <Description>
      <p>
        There are a number of inexpensive high quality technical
        figure drawing packages under Windows on PCs (Lotus Freelance,
        Serif DrawPlus, TurboCad etc.). The same is not true of
        Unix. There are public domain packages such as xfig and tgif,
        both of which have much of the required functionality.
        Unfortunately, they are both missing highly desirable features
        (e.g. a full undo/redo system, more sophisticated grouping
        facilities etc.). More importantly, they are examples of poor
        user interface design with poor consistency and bad ergonomics
        for common tasks.
      </p>
      <p>
        This project is aimed at developing a good design for such a
        tool and an implementation of significant elements of the
        design. The emphasis in the design will be on experimenting
        with novel interface elements and pushing consistency and
        ergonomic issues as far as possible. The emphasis in the
        implementation will be on a solid structure that can be the
        basis of further projects in future years to develop a very
        high quality public domain tool.
      </p>
    </Description>
  </Project>


  <Project>
    <Title>
      Web Mathematics
    </Title>
    <Keyword>
      Web
    </Keyword>
    <Description>
      <p>
        This project requires very little mathematics.
      </p>
      <p>
        Writing web pages that include mathematical expressions is
        very difficult if standard web browsers are used.  However a
        new XML standard for the presentation of Maths has been
        developed: MathML.  This project is to develop tools to
        assist in the production, analysis and display of MathML. A
        number of different directions could be taken on this
        project depending on the student's interest.
      </p>
    </Description>

  </Project>

  
  <Project>
    <Title>
      Interactive Online Whiteboard
    </Title>
    <Keyword>
      Web
    </Keyword>
    <Description>
      <p>
        Academics can collaborate internationally using Skype. However, they
        could work together much better if they could share a whiteboard. This
        is now possible using a rich GUI web application. This project is to
        build such a system.
      </p>
    </Description>

  </Project>

  

</Projects>

<!--

  <Group>
    <GroupTitle>
      
    </GroupTitle>
    <GroupDescription>
      <p>
        
      </p>
    </GroupDescription>

    <Project>
      <Title>
        
      </Title>
      <Keyword>
        
      </Keyword>
      <Description>
        <p>
          
        </p>
      </Description>
      <Equipment>
        
      </Equipment
      <Software>
        
      </Software>
    </Project>
  </Group>

-->




