Supervisors:
The project will be done in JAVA, supporting a GUI for inputting different project graphs and comparing them with each other.
Write a simple interpreter for a subset of Prolog in the Java programming language. The interpreter should be able to run small Prolog programs, possibly slowly. It will be used in HTML pages for educational purposes. An existing interpreter available as a cgi-bin program gives an indication of the intended uses:- [ http://www.cs.monash.edu.au/~lloyd/tildeLogic/Prolog.toy/Ch/]. (See Lisp interpreter above.)
With the onset of the internet, in particular the World Wide Web (WWW), companies are thinking specifically of methods of utilising dynamic database content in efficient and consistent ways on the web. The goal of this industry based project is to focus on a publishing systems, while this is fairly broad-ranging, some areas for consideration will include tracking changes, improving performance, integrating published and fully dynamic content.
The aim of the project would be to develop a plug-in tool that web developers can use to utilise the benefits of publishing. Part of the initial research would determine what can be achieved in a generic, plug-in tool and what would need to be customised, given the range of commercial web sites common today.
The student selecting this project would be expected to have completed:
The project will be co-supervised with the company ZIVO, in which equipment and access to company facilities will be provided.
With the accelerating rate of change in technology, learning has increasingly become an ongoing career-long process for all information technology (IT) professionals as well as a competitive necessity for all organisations. Companies and universities are looking for ways to integrate cutting-edge online technologies with effective instructional methodologies. The goal of this industry based project is to explore and evaluate online educational technologies and be involved in the development, implementation and testing of a cutting-edge educational technology with Sybase.
Sybase is currently developing an innovative, learner-led approach to training called Next Generation Learning (NGL). NGL enhances Web-based course content with classroom training using effective instructional methodologies. The Next Generation Learning concept involves 3 phases: pre-class, class room and post class. The student will be exposed to three key technologies: PowerBuilder as content capture tool, Adaptive Server Enterprise to create a Content Repository for storing learning objects in a database, and PowerDynamo to dynamically generate Web-based learning materials "on the fly".
The idea behind NGL is to create reusable learning objects that can be combined in many ways and run on many platforms, stand alone PC's Internet/In tranet connected PC through to CE devices . A learning object is a self contained concept, task or piece of information that is independent of delivery mode and can be reused in different learning environments. Objects can include Lotus ScreenCams, video, simulation, questions, text and so forth. These can then be reused in different combinations in different classes. Courses are the built on the fly form existing objects. The material needs to be stored centrally so that changes can be distributed instantly and the technological barriers should be removed to enable anyone to public content on the Web.
Training and HR officers can quickly identify the progress and application of any student and secession planning or career planning can be easily managed. The flexibility of the back-end database can allow research into the learning ability, style and suitability of any groups of students. Educators can be quickly notified with any major strengths or weakness of a training course.
A brief demonstration of NGL is available on http://slc.sybase.com/ngl/index.html
There is a number of different ways (protocols) in which processes that are currently active on different hardware devices can exchange information about their status, contents, function etc. TCP sockets is a client-server application protocol that offers a wide range of compatibility across a number of communications media (internet, tcp/ip, winsock etc.) over a number of different operating systems and hardware platforms. The basic idea behind this particular way of process communication is based on the notion of a two way communication link been established between a number of client processes and a server process. Messages are exchanged only between each client and the server while communications between clients can only be facilitated through a server. The protocol is implemented through a range of low-level library function for a number of languages including C, and Perl for the UNIX operating system. While the low-level implementation of the protocol provides versatility and fine control for the programmer, it does not have built-in support for a number of higher level operations such as block functions, validation, error handling, statistics, and garbage collection. Such functionality can be most effectively provided by an object oriented approach where servers and clients are defined as object instances of predetermined classes. Recent developments in Perl (version 5.004) have enabled programmers to treat sockets and the associated servers and clients as objects with specific methods, states and data assigned to them thus providing fertile ground for the development of an object-oriented library that will support application-level control functions. Such functions may include group assignment of clients, selective broadcasting facilities, secure transmission procedures, user-level protocol communication definitions etc. This project aims at:
The purpose of a GUI is to facilitate user-friendly access to previous and current information. A GUI commonly allows the user to interact and search for information with the use of visual aids most often in a windows environment. In real-time systems the content and the structure of the information accessible by the GUI is expected to change fairly frequently. In some of these cases the changes may have a detrimental effect on the functionality of the GUI as this may no longer adequately reflect the wealth of the information the user is attempting to access. One possible way to overcome such problems relies on the concept of a dictionary driven design. The structure and content of the information are reflected in an memory resident dictionary which describes the nature of the data and the methods in which their presentation will be most meaningful for the user. The design of the GUI is then based on the idea that at runtime the dictionary contents are consulted every time information is requested by the user. Dictionary consultation is reflected in the way the requested information is presented to the user and the ways the user is allowed to interact with it.
A first approach towards a fully dictionary driven GUI design using Perl has yielded increased programming versatility as the programmer does not any longer need to anticipate all the forms in which information may change in the future and incorporate these in the GUI, rather relies on the dictionary to make these available at runtime. The paradigm is a suitable candidate for an object oriented approach where the dictionary contents are the classes of the objects currently present in the system. In this case the dictionary object(s) will act as an interpreter between the GUI and the system. An object oriented dictionary design will enable a more robust and perhaps intelligent GUI function. This project aims at: