Student Projects of Professor Uday S. Reddy

Project topic suggestions

Business IT Systems

IT Systems of various kinds support organisations: Universities, Shops, Manufacturing concerns, e-Commerce companies, hospitals, and the Government. They are generally database-driven, i.e., they need analyse what kind of data needs to be stored, and how it should be processed, to deliver value to the organisation.

Finance applications

Personal finance systems, that allow individuals to manage their accounts and investments, are lightweight finance applications. Professional finance systems that implement on-line trading, perhaps for other clients, would be more advanced systems. I am happy to supervise any projects dealing with either kind of applications.

Email workflow management

The modern electronic workplace is increasingly dependent on email for individual as well as collaborative work. Projects in this area will devise and implement novel mechanisms for organizing workflow centered around email. Some of the ideas can be gleaned from the following study done at Microsoft Research.

Personal digital assistants and Mobile Devices

Palm/Blackberry devices, mobile phones and tablet computers run on low power requirements and can be networked either by wireless, mobile phone network or by docking into a workstation. A variety of software tools can be made for them such as financial management systems, personal diaries, meeting schedulers, email management systems, distributed games etc.

Programming languages and compilers

Microsoft's .NET platform consists of a virtual machine (similar to the Java Virtual Machine) that has been designed to support multiple different programming languages. It is possible to implement new programming languages to compile to the .NET run-time system, and it would be able to inter-operate with other programs and libraries running on .NET. Projects in this area would involve implementing small special-purpose programming languages in this way. (This type of project is recommended for Masters students including MSci/MEng students.)

Functional programming

I have a keen interest in functional programming languages, including Haskell, ML, F# and Scala. It is possible to build a number of interesting applications in such languages for dealing with graphical user interfaces, web-based systems, animations etc. Currently the finance industry finds these languages very valuable and graduates with functional programming expertise are in short supply. So, developing such expertise would be very valuable. For working on one of these ideas, you must have learnt Haskell or ML in your course.

Program Verification

Very sophisticated program verification tools are now becoming available for developers, especially from Microsoft. Microsoft's Code Contracts is a free verification tool that has witnessed a large number of downloads in recent months. Other tools in the development stage include Chalice, VCC, Verifast, jStar, HIP/SLEEK etc. Projects in this area would involve carrying out program verifications for interesting properties using one or more of these tools.

Computer Security: Capability-based security

Capabilities form an old paradigm in building secure systems, which have been overshadowed by Access Control Lists in last couple of decades. There is now new interest in capability-based systems, especially from Google, which wants to build them into Javascript. Projects in this area would involve investigating what is possible with the capability-based technology.

Your idea

I will also be glad to supervise projects based on a "cool idea" that you might have of your own. I have in the past supervised a variety of projects to do with database web-applications, distributed systems, on-line tutoring systems etc. that students have brought to me. Unless your idea involves specialized knowledge beyond general computer science, I am always ready to support interesting ideas.