This academic year, IBM United Kingdom Limited ("IBM") is running a scheme whereby Cambridge University undergraduates who pick one of the potential dissertation topics listed below will benefit from access to an IBM project mentor throughout the period of their dissertation. The mentor will usually be the software engineer who originally suggested the topic, working from IBM's software development Laboratory at Hursley in Hampshire.
There follows an attempt to address some frequently asked questions.
The IBM mentor will not interfere with the traditional supervisor / student interaction. Students are still responsible for identifying and engaging a suitable supervisor from the Computer Lab (who must be made aware of IBM's involvement from the start), and should continue to look to their supervisors as the main source of advice. The project mentor is expected to maintain a removed view of the student's progress and offer high-level advice on directions in which to take the work, rather than answers to day-to-day technical questions. This degree of separation will help the mentor to track the project impartially, and to offer constructive criticism from an outsider's perspective when the dissertation is being drawn together. The mentor will provide regular feedback to the student and supervisor on the project's progress as they see it, the open issues and so on, in order to foster open discussion between the three of you. It is important that you involve your mentor when you feel it appropriate, as the mentor has no means otherwise of knowing if you require assistance at any particular time.
As IBM believes is the case for other dissertations at Cambridge University, a student who chooses one of the topics listed below will naturally retain all rights to any IP or collateral material produced as part of the dissertation work. All IBM request is a right of "first refusal" to discuss the possibility of licensing the IP (in whole or in part) from the student, or to consider engaging the student on a consultancy basis, if the project becomes potentially valuable. However, IBM is not guaranteeing to do so, particularly as the topics below are deliberately removed from IBM's current fields of business, in order to prevent overlap.
No IBM (or third party) confidential information will be passed from the mentor to the student, and IBM asks students to work to the same principle in reverse. If the student - e.g. through interaction with peers or members of the Computer Lab. - comes into contact with confidential information, they must not pass it on to their mentor, directly or indirectly, unless a specific written agreement is put in place beforehand to provide for that communication.
Everyone involved on the IBM side is doing this on a voluntary basis. Each mentor is expected to spend up to 1-2 hours a fortnight advising on the project. The mentors all work in a variety of roles within software engineering in IBM's development laboratory at Hursley. Each student will be able to talk the project through with their mentor prior to their formally accepting it, to ensure that they will be able to work effectively with the mentor.
Each of the topics listed below will only be the subject of one dissertation and each mentor will only be responsible for mentoring one student.
Please be aware that neither IBM nor any mentor makes any claim or provides any warranty as to the mentor's expertise in any given area; rather, each mentor's input is expected to be high-level, and removed from the day to day running of the project. The supervisor could be, and ideally should be, more experienced in the specific fields on which each of the topics focus.
If you choose one of these projects, you will be communicating directly with the mentor, e.g. by phone or e-mail. Each mentor is expected to spend up to around 1-2 hours a fortnight in working with you on your project. If you have any questions about something not specifically to do with one of the given topics, before during or after the project, contact firstname.lastname@example.org.
To apply for one of these projects, send an email to email@example.com, containing (a) your name, (b) the title of the project (or projects) in which you're interested, and (c) how you'd like us to contact you; also, if you have any specific questions, then please include those as well at this time - they will be forwarded to the relevant IBM mentors who will get in touch to talk through the project and address any specific concerns you may have.
If you have any questions about IBM's involvement, would like further details on the process or anything not specifically related to one of the topics below, then please send an email to firstname.lastname@example.org.
Most personal organisers, personal and electronic, contain two distinct concepts - to-do items and calendar items. These can be seen as two ends of a spectrum - to-do items typically have a general action to be done and a relative priority. Calendar items, on the other hand, have a specific time when they need to be done, but no associated priority. Most practical tasks fall somewhere between these on the spectrum - perhaps they have to be done on a certain afternoon, or by a certain time, but are not totally fixed to that. Or maybe some clashing calendar entries have a higher priority than others. They are thus more 'hazy'.Project goals
Examples of the existing organisation systems being referring to are:
Laser pointers can currently only be used to produce a single dot on a screen. It should be possible to point a web camera at the projected image and work out where the laser pointer is, then use that information to draw a line. After this basic task, there's a whole host of extensions to work on, such as gesture recognition, shape recognition (so when they circle something, it actually draws a circle, not a wobbly line) and related to that there would also be smoothing of the input (to try and get every line "smoothed out" not just recognisable shapes). Other things to consider would be ambient light, calibration, that type of thing (also how to achieve these things with off the shelf consumer web cams etc.)
From this point there are a number of directions the project could take; here are just a few ideas for further work.
http://hct.ece.ubc.ca/publications/pdf/vogt-etal-uist2003.pdf - A basic implementation with the ability to track multiple pointers. An interesting short paper considering the recent interest in group interaction with large displays.
Software testing is an expensive undertaking which is the first development activity to get squeezed when time gets tight on a project. In order to reduce testing time and cost, techniques such as model-based testing have been pioneered. The ultimate goal of model based testing, as its name suggests, is to generate a set of test cases for a piece of code from a model of the system under test.
Currently lacking from state-of-the-art model based testing solutions is a generic system that can determine how to manipulate objects into desirable or interesting states based on information in the model.
The goal of this project is to produce a simple object model and goal-seeking engine that can use that model to produce the sequence of steps required to create an object and push it into a particular state.
You can model the object in terms of its internal state (fields) and the methods that manipulate or mutate that state. This defines a state space which you can wander by calling methods on the object. The state of the object when constructed defines where you can start in the state space.Project goals
As software companies continue to develop products assembled from more and more components, these products become increasingly reliant on multiple prerequisites and corequisites. The dependencies for a software product are determined prior to its release. This can lead to discrepancies between the prerequisite software versions at a historical point in time, reflected on an install CD for example, and the latest software versions available, which might offer fixes to defects detected since release. Often administrators must identify, obtain, and install these levels themselves. The manual process of investigating the latest levels of prerequisite products, and whether they are all compatible, can be time consuming and complex. In the worst case scenario businesses could end up using incompatible versions of software leading to instabilities in their systems.
Businesses need easy access to the prerequisites they require and confidence that the combination of software products installed will work smoothly together.Project goals The proposed solution will deliver the following features:
The following would be valuable extensions to the proposed solution
This idea has been published on the Prior Art database - go to https://priorart.ip.com/ and search for document ID IPCOM000035204D.
There is also an IBM Research Report, An Approach for Managing Service Dependencies with XML and the Resource Description Framework (Alexander Keller and Christian Ensel) which might prove useful when considering ways to record dependency graph information.
RPM and LPP for AIX are two existing dependency management tools.
There are currently some evolved and powerful applications, such as Avid, Adobe Premiere and Apple FinalCut Pro which have brought video production and programme making away from large, heavily equipped studios into the small non-linear production company/freelancer domain.
However these applications have been "closed" systems and make it difficult where lots of external material is required.
This project will look into the possibility of providing a way to allow people to use the internet to combine all the separate sources - video, audio, titles, graphics and voiceovers - into a collaborative media production. A "merge" facility to allow worldwide participants to submit their content and for this to be assembled into production.Project Goals
Some or all of: