BCompSci / BComp 12-point `industry' projects are [here]
Note, some projects may require an agreement covering intellectual property rights to be signed as a condition of undertaking them.
URL: http://www.cs.monash.edu.au/~annn/hons/1998-Research-proj.html
Other projects offered to the Bacheor of Digital System (Honours) are also available to Computer Science students who have the required background.
Previous experience and demonstrated ability in interactive computer graphics is a necessary prerequisite for this project. The aim is to provide a 3-D world, distributed over many servers and clients, and to investigate and solve the problems of maintaining consistent views and time-lines for the users. Jamie Cameron's 1995 "indoors" world may provide some inspiration [http://www.cs.monash.edu.au/hons/projects_1995/Jamie.Cameron/index.html] In 1997 Eugene Ware produced an "outdoors" world programmed in Java and VRML (not available in '95). The aim is to develop this world further.
Many of the programming mistakes made by novice programmers result from their inability to correctly translate an algorithm to code. This project aims to produce software which assists them in overcoming these such problems by automatically translating their erroneous code back to algorithmic language (with annotations indicating possible errors).
In taking on this project all of the following would be of definite advantage:
This project involves the design and implementation of a fast (if possible, real-time) 2D morphing engine. The aim will be to produce high quality morphed image sequences at the greatest possible speed. Techniques to accomplish this may include:
This project involves the design and implementation of a UNIX software package which uses simple content recognition techniques to identify and eliminate unsolicited commercial bulk email messages. The project is open-ended and may lead into areas such as natural language understanding, fuzzy matching, machine learning, user-modelling, and plan recognition.
In taking on this project all of the following would be of definite advantage: * Familiarity with C, C++, or Perl * Familiarity with sendmail and procmail * A fanatical hated of spam
Non-Chinese speakers do not know the sounds associated with Chinese characters. On the other hand they quickly learn how to copy Chinese characters. The aim of this project is to devise a system which will allow non-Chinese speakers to produce Chinese text in an English language document. It will be necessary for the student to devise both a method for doing that and also ways to access existing Chinese dictionaries.
Prof David Abramson is proposing to build a multi-processor using twenty or so PCs. Processing programs in functional languages can be done in a parallel fashion. The project is therefore in several parts. Devise a way of parallel processing a simple functional language, then upgrade that to David's multi-processor or extend the system to more complicated languages Alan Robinson's massively prallel system (which is a mixture of Prolog, lambda calculus and logic). The work can also be extended to improve performance of our ProofEd2 system which extracts programs from mathematical proofs.
Further details on either or both of Prof. Crossley's project can be obtained from him personally (phone x55200).
This project looks at the work of other international researchers in this area of the Human Genome Project with the intention of developing an improved technique for using sequenced tag site (STS) information. So what does that mean... One wants to arrange the fragments of DNA in an order consistent with the same site being found on more than one fragment, indicating that these fragments overlap. However, there are false negatives and false positives in the experimental data to complicate matters. (No knowledge of biology/biochemistry is required!)
This project builds on some existing work done in C++ where a different and (hopefully) better approach was tried. This project performs an AI search to piece together data which happens to come from the Human Genome project. There is a need to view results of the search, so a GUI using either Java or tcl/tk will probably also be developed. (No knowledge of biology/biochemistry is required!)
Joyce-Linda is a language that forces the use of parallel processes. The Linda communication model is provides a convenient mechanism for many sorts of parallel programs. This project involves changing the Joyce-Linda compiler and runtime support code to run with different packages, including running across a network.
Attaching to predictions an indication of how certain the predictor is, and rewarding such predictions properly, are important issues in many fields. This project focuses on football tipping because it is topical, accessible and may be useful in teaching. The project is partly software engineering, and partly implementation of ideas concerning prediction and inference.
For the last three years, the Department of Computer Science has run a football tipping competition in which participants must nominate, for each game, not only which team they think will win, but a probability that that team will win. Tips are scored according to a simple formula, and the theory is linked to information theory and gambling theory. This year the competition was extended to allow participants to nominate a mean and standard deviation for the margin of each game. Again, there is a soundly based way to score such tips. The competition is currently run using software written in C++ (with a curses interface) by John Hurst. The software is written as a literate program (nutweb), and managed by a version control system (RCS), currently at www.csse.monash.edu.au/~footy/ .
The aim of the project is to implement new probabilistic football tipping ideas in software, and to extend the software so that the competition can be run over the World Wide Web.
In more detail, the main tasks of the project are to:
Strict Minimum Message Length (SMML) is a criterion (due to Wallace) by which models of data can be assessed. It can be shown to have many desirable properties, and is important in the theory of machine learning. It is, however, very difficult to compute, except in the simplest cases. In the binomial case, we have an exact and efficient algorithm, but the trinomial case is significantly harder, and may well be NP-hard. The aim of this project will be to implement and study some algorithms for cases such as the binomial, trinomial and normal, and thus hopefully shed light on the theory. A strong mathematical background is required.
Some background in discrete mathematics would help.
Programming will be in C++ and will build on the Leda package for combinatorial computing.
The project is part of work I am doing with Prof. Peter Eades (University of Newcastle).
The sort of games considered are board games like Chess. A long term aim is to be able to take as input a record of the chess games of (e.g.) Garry Kasparov (World Champion), and infer something (but not everything!) about his chess playing strategy. This may be an ambitious goal, but we propose to move toward it in achievable steps. Initially, a program capable of inferring very simple aspects of strategy would be developed, and tested using records of games played by appropriately simple computer players. We have developed some basic methods for doing the inference, and expect to improve on them. Several types of inference are possible; among these, we intend to apply the principles of Minimum Message Length (MML) inference. This project builds on a 1997 project by Tony Jansen.
Programming will almost certainly be in C.
The Java programming language has quickly become one of the most popular languages in the past years. Many people are learning to program in Java, and almost all Universities teach it somewhere in their curriculum. As Universities move towards using object- oriented languages in their introductory course, Java is seriously beeing considered as a first programming language by many institutions.
Using object-oriented languages in introductory course has proved difficult because of the lack of programming environments that are appropriate for teaching to beginners. To overcome this problem, we have, over the last years, developed a programming language and environment named "Blue" especially for teaching object-oriented programming to first-year students. This environments includes numerous features not available in most other environments, and has been successfully used.
Because of the popularity of Java, it has become interesting to make the features of the Blue environment available for programming in other languages. The proposed project is to work towards a Blue-like environment for the Java language. If successful, the result can be one of the most advanced programming environments for Java today.
The project would include analysis of Java, Blue and the Blue environment to determine in what way the environment needs to be changed to work with Java. It would involve adapting a large existing software system (the Blue system, currently approx. 80,000 of C++ code) to new specifications. The aim of the project is to build a prototype of this new environment. Implementation will be done in C++ and Motif on Unix.
The increased use of electronic media for disseminating ideas has led to a disparity between the technology used to distribute information, and the technology used to display information. We find the web being used in inappropriate ways, such as the distribution of documents in proprietary or inefficient formats (e.g., Word, Postscript).
TeX is a system for typesetting that has sufficient power to address this issue. It not only provides powerful macro facilities for generating well-laid out, professionally typeset documents, but it also has hooks to allow interoperability with other systems, such as the Web. Specifically, this project is about exploring a mode of use called "HyperTeX", which allows the creation of document previewers that are URL sensitive, such that the previewer can be used to browse typeset documents in an efficient way (by downloading the text before processing, and performing typesetting on the client machine), while hyperlinks in the document can be followed in the usual internet browser way.
The most expensive phase in the software life cycle is program maintenance, during which programs typically get modified so frequently that this phase may account for up to 70\% of their total development cost. A major factor in this cost is the need for software engineers to re-engineer some (rarely all) of the program code to either fix bugs, or to develop new functionality. In both of these cases, having access to the design decisions made during initial and subsequent program development can be invaluable in terms of understanding the code.
Literate Programming offers a mechanism to maintain such information. Originally proposed by Donald Knuth in 1984, the idea has seen a resurgence of activity with the advent of "second generation" (language independent) and "third generation" (WEB based) literate programming tools. The use of advanced macro processing features can also ease the program maintenance task, through appropriate revision control and platform independence mechanisms.
This project is about exploring these issues, and developing a state-of-the-art literate programming tool.
This project involves the design & construction of an interactive toolkit for the building of all manner of visually represented networks. Networks could conceivably include cellular automata, chemical plants, logic circuits, electronic circuits, road maps, factory assembly lines, the game of "Mouse Trap", worlds of communicating animated creatures... All of these things have in common that they
The toolkit will be easily extensible and will be useful primarily for the animated display of the behaviour of complex dynamical networks.
The student should have a thorough understanding of C or C++ and should have completed 3rd year graphics. An understanding of Artificial Life techniques is advantageous.
The student must have a thorough understanding of C or C++ and have completed 3rd year computer graphics. An understanding of the rendering process (eg.as involved in raytracing) would be very helpful.
Currently, when performing analytical flutter clearances for the RAAF, a technique is used which, whilst giving an accurate estimate for the flutter speed, can result in non-physical solutions remote from a flutter point. It would be desirable to implement a technique which gives realistic solutions throughout the range of desired airspeeds for two reasons: i) greater faith in the results in the mind of the customer; and ii) such physically realistic solutions can be used in flight-flutter trials to monitor the performance of the mathematical model well before a potential flutter region is approached.
A method of solution which achieves the above aims does exist, but, for a number of reasons, it is computationally intensive and, therefore, time consuming. One of the main difficulties with this method is that sufficiently small increments in airspeed must be chosen such that the results at previous airspeeds can be used to predict a possible solution from which to start the iterations for the next airspeed. The question is then, what is a sufficiently small increment? In early implementations of technique, a uniform, very small increment was used for all of the roots to be solved. What is really sufficiently small, for any given mode, however, depends very much upon the behaviour of that mode in the region of interest. In a previous Honours project (1996), a student developed some algorithms to vary the airspeed increments for any given mode as the airspeed is increased. This honours project will build on that work by:
This project would involve several extensions to the basic existing hardware and software implementation.
This project would suit a BCSE student who has completed CSC2091/3091 Artificial Intelligence and who can program in C. In addition, non-engineering student could also do this project, focusing on the software aspects.
The cricket scheduling system was originally implemented on a PC using Visual Basic, however the simulated annealing algorithm was written in Fortran; this Fortran code also currently runs under UNIX. The student could continue to use this platform, or shift to C/C++ or any other suitable language. The student doing this project should have completed CSC2091/3091 Artificial Intelligence.
If we select a pixel at random from a picture, it is highly likely that the pixel will be in the same segment as its nearest neighbouring pixels. The next most likely outcome is that a pixel and its nearest neighbours are likely to be in no more than two segments. That is, the block straddles the boundary between two regions. If a pixel and all its neighbours are in the same segment, then we may use all the pixel values in subsequent processing of the current pixel. If we determine that some neighbouring pixel values are not in the same segment as the current pixel, then we should exclude those pixels from processing of the current pixel.
The aim of this project is to investigate ways of looking at small blocks of pixels and deciding whether the pixels in the block all belong to the same segment or whether they belong to at least two different segments. Minimal Message Length (MML) Inductive Inference gives us a way of choosing between two possible models or explanations for a body of data. In this case, MML techniques will be used to decide whether a block of pixels can be best described by saying that all pixels in the block belong to the same segment or they belong to at least two different segments.
The process of classifying blocks of pixels as consisting of only one segment or at least two segments can be termed local segmentation. Local segmentation is of fundamental importance in an image coding technique called Block Truncation Coding. In addition, local segmentation can be used in algorithms for edge detection, segmentation and for noise removal.
The Langdon and Rissanen paradigm for data compression states that a compression algorithm can be regarded as consisting of two parts: a modeling section and an encoding section. Since optimal algorithms are known for encoding, the emphasis in data compression turns to providing effective models.
In universal data compression, we treat the data as a single stream of symbols. Popular compression programs like Unix-compress and gzip are examples of universal data compression programs. Rissanen has proposed the use of overlapping Markov models as the modeling component of universal data compression schemes. In a zeroth order Markov model, we estimate the probability of the next symbol in the stream by assuming that its probability will not be affected by the identity of previous symbols in the stream. In a first order Markov model, we assume that the probability of the current symbol is only affected by the identity of the symbol which immediately preceded it.
To use English text as an example, a zeroth order Markov model will assign a certain probability to the character 'u', regardless of the identity of the symbol which preceded it. For a first order Markov model, the probability of getting a 'u' will depend on the identity of the previous symbol. If the previous symbol was a 'q' then we might expect a 'u' to occur with high probability. In normal English text we would expect the probability of a symbol to be be influenced by the identity of the previous symbol and we expect a first order Markov model to be a better model than a zeroth order Markov model.
In Rissanen's universal context modeling approach a number of overlapping Markov models are maintained and a heuristic is used to select between them. The programs which lead to the best performance for compression of arbitrary files are based on this approach. The aim of this project is to investigate some new strategies for selecting between model orders and to see how well they perform. The strategies may be implemented for a universal data compressor program or they may be used to build a program for compressing binary images, i.e. images such as faxes whose pixels can only be black or white.
Binary images are picture whose pixels are either black or white. Binary images are often used to represent faxes or pages of documents. The Fax group 3 and group 4 compression algorithms were designed to compress binary images which consist of pages of text. These algorithms are quick and achieve reasonable results on pages of text but they perform poorly on other kinds of binary images.
The algorithms in the JBIG standard were designed to adapt to the characteristics of the binary image and perform very well across a wide range of binary images. The JBIG algorithms perform better on images of text than the Group 3 and Group 4 algorithms and can still achieve good compression on other kinds of binary images, e.g. scanned pictures and dithered pictures. The JBIG algorithms are more expensive to implement and they make use of a form of arithmetic coding which has been patented by IBM.
The aim of this project is to develop a way of compressing binary images of text that will deliver as much compression as the Group 3 and Group 4 algorithms, will adapt to the characteristics of the binary image and will deliver better throughput rates than the JBIG algorithm. Ideas to be investigated include: transforming the binary image, use of run-length coding, use of adaptive modeling, Rice coding and chain coding.
The aim of this project is to use Minimal Message Length (MML) techniques to come up with a good objective criteria for comparing segmentations of the same image. The approach involves constructing two-part messages for each segmentation. The first part of the message allows us to recover the segmentation of the image. Once the segmentation has been recovered, it is used in conjunction with the information in the second part of the message to recover all the information in the original image. The use of the MML criterion suggests that the two-part message with the shortest overall message length is the one with the best segmentation.
The project involves looking at ways of encoding a segmentation and then using the segment information to encode the image. One approach is to associate a segment number with each pixel and to form an image of the segment numbers. This image we can call the segment map. Segment maps can be regarded as being generalised forms of binary images and effective techniques for the lossless coding of binary images may be generalised and applied to segment maps.
As the image is processed, information about the distribution of the differences is obtained, and this is used to encode future differences efficiently.
In "context-based" encoding, not only is information about the distribution of the diffences used, but also other information about the neighbours. Thus we may base our estimate of the likelihood of a particular value of (v - e) occurring not simply on the relative frequency with which it has occurred in the past, but on the relative frequency it has occurred in the past where the neighbours had similar properties to the neighbours of the current pixel.
The problems with contexts is that if many contexts are used, (i) Considerable storage is required to maintain the frequency distributions for the errors (v - e), (ii) Unless contexts are initialised suitably, there is considerable "startup cost" for compression, caused by the fact that the relative frequencies of errors based on the table are not correct. The first problem is partially overcome by using bitplane techniques, such as Zero-Sign-Magnitude coding, or a "sunset" technique. To minimise the second problem, compression normally starts by having one context, and at a suitable time, breaking this into two or more child contexts, initialised from the parent context in some way. This splitting may continue as needed.
Some time ago a paper was published concerning the use of contexts with Gray-coded bitplane coding of the errors. It is believed that Zero-Sign-Magnitude Bitplane coding and Sunset techniques are more efficient, and repetition of the work in that paper using a more efficient coding technique is desired.
The aim of this project is to carry out some of the work in that direction, using contexts and ZSMB error encoding. The project will therefore investigate suitable choices of contexts for context-based bitplane compression. [A context may be based on, for example, the magnitude of (v - e) and v at neighbouring pixels.] The means of "context-splitting" will also be investigated.
Graph layout is difficult, but there exist some techniques that normally give reasonable results for small graphs. The aim of the project is to modify such a technique to cope with the extra complication of finite automata in that they have labels on the edges.
Other NLP projects may be available and interested students should discuss them with I. Zukerman
The project requires skills in parallel computing, Unix and C, as well as exisiting debuggers like gdb.
Some more details can be obtained from [http://www.dgs.monash.edu.au/research/guard/].
SSCOP has been proposed by some people as a possible replacement for TCP as a wide-area transport protocol, however some doubts have been expressed as to its efficiency in the face of errors, congestion, variable delays, etc. etc.
What is needed is a thorough investigation of SSCOP, including simulation to determine its performance in terms of throughput, goodput, etc. in a typical error/congestion/delay environment.
The HG-RCP relies on a simple protocol operating between a router and host machines in a LAN such that the router can specify the rate at which IP packets are released whe they are intended for onward connection through the router.
What is required is a pilot implementation, both in a router and in host
systems. It is suggested thatthe pilot could be developed using the
Public Domain "pcroute" package and the Linux source for the host
TCP/IP/ICMP end.
This project investigates genetic and other algorithms for the optimisation of fuzzy controllers in terms of membership functions and linguistic rules.
This project simulates and implements a bit-parallel CPU with different control mechanism. Mentor Graphics will be used for simulation.
The objective of the project is to investigate image interpretation/segmentation algorithms for ophthalmological images, implement selected algorithms in Matlab, C++ and Photoshop for PCs, and test the behaviour of the algorithms with real-live images. These are images of an intraocular lens implanted during cataract surgery into the posterior eye capsule. The images are recorded to monitor a state of patient's vision after opeartin
Objectives include
a) an investigation of speech coding techniques at low bit rates;
b) an implementation and evaluation of a 16 or an 8 kbps speech codec in the form of either software or hardware.
The characteristics of robot motion is of great importance especially during manoeuvres which must be performed to follow accurate and complex paths. This project focuses on research in the area of laser tracking. The student is required to further develop the laser tracking apparatus (developed initially in 1996 and 1997) and perform experiments using the ABB and/or Scorbot robot. Further, the project aims to establish techniques to employ the apparatus for laser guidance of long reach or mobile robots.
This project involves research in the area of long reach manipulation. An experimental manipulator will be developed incorporating 3-5 axes with 3-5 metre- reach. An investigation must be carried out to develop techniques for positioning and control of the manipulator which would exhibit bending. A student from France will also be involved in this project.
Service robotics is one of the fastest emerging areas of research and commercial development. The potential market is large and applications include: floor cleaning, courier services, research platforms, security and monitoring, tasks in hazardous environment, etc. The project focuses on continuation of the research (a robot built in 1997) to develop an autonomous mobile robot platform for research purposes. In 1998, the research will focus on development of sensory-based navigation strategies for the autonomous mobile robot system.
The research is focused on the study of control strategies on a robotic adjustment system. The project also involves exploring various techniques in computer-aided engineering (CAE) software to describe tasks in a virtual reality environment (i.e. the user is immersed in a virtual reality environment for task specification). Students will be provided access to robots, SGI workstations, Envision software, and virtual reality devices (i.e. crystal eyes, data gloves, ..).
Image tracking is a computationally expensive process. In recent times there have been a number of attempts to implement image tracking in hardware. Some recent results are very encouraging; leading us to believe that an implementation in FPGA using VHDL and the Mentor Graphics ECAD software, will be quite successful. The hardware component of this project would involve the acquisition of an off-the-shelf FPGA board to which the memory (to hold the images) has to be interfaced.
This is hardware only project. Most solid state cameras convert the image data to an analog video signal. A much better idea is to tranfer the data from the CCD area array to memory chips which are also mapped into the address space of a microprocessor. The project involves design and building a CCD and memory circuit on a PCI based interface card. The design is to be accomplished with the Mentor Graphics ECAD software.
This project concerns the development of computer architectures which implement various optimisation algorithms. The designs will be implemented on a multiple FPGA platform in the school, and will be specified in VHDL. The algorithms are based on Simulated Annealing, Tabu Search and Neural Networks.
The project builds on an ARC project. The student will make use of a variety of CAD tools, including VHDL synthesis and simulation and FPGA configuration tools. Interested students are referred to [ http://www.dgs.monash.edu.au/ davida/guess.html/].