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.