Senior Project Topics for
2007-2008 Academic Year
·
E-Faculty: A
Software Package for Automating The Faculty Management at a University (3
students)
In this
project, we will design and implement several tools to automate the tasks
involved in the management of a faculty. All tools are going to communicate with
an underlying database (either created by you or provided as a remote data source)
and implement the necessary logic to achieve the required tasks on a Web-based
platform.
In
particular, we plan to develop the following tools:
o Summer Training Tracking System (SuTTS): This is similar to
the system that is currently deployed at our faculty, but will probably have
enhanced features. The module would involve issues like allowing students apply
for the internship at the companies, allowing admins
assign students to companies, and resolving several details involved.
o Graduation Candidates Determination System (GraDS): This system is intended to determine the students who
are at the fourth year of the college and candidates for graduation (just like
you!). To achieve this, for each fourth year student, the system should first
obtain the curriculum which applies to that particular student, and then obtain
the student’s transcript to see whether all necessary courses are taken.
Several subtle details (such as a restrictive course allowed until a particular
year is not allowed by the department afterwards, or a must course is replaced
by two other must courses, etc.) should be carefully handled.
o Faculty Members’ Scientific Visits (FM-Vis): This tool is intended to automate the entire process
of a faculty member to ask for the scientific visit permissions. In particular,
the tool would allow authenticated users (faculty members) to fill an on-line
form for their visit requirements, which will be then presented to the
department chair and the dean (in order), for approval. The requestor will be
then notified (by an e-mail) about the status of his application (e.g.,
approved, rejected, approved with modifications, etc.).
Notice that, the
aim of this project is providing a real-life software development experience
for you and real-life usable products for us! So, it is not a simple course
project where we can easily make assumptions; but indeed have to adhere to the
requirements of the potential users and design/re-evaluate all details
carefully.
All the tools in
the package should work as Web applications and connect to underlying
databases. The selection of the platform, programming language and DBMS will be
left to you, but should be approved by the supervisor, as well.
·
Index Partitioning
& Pruning Methods for Very Large
Scale Text Retrieval Systems (3 students)
This is a research
oriented project which involves several core issues related to the
state-of-the-art search engine technology. Thus, it would allow you to learn
and investigate the essential ideas and techniques underlying a text retrieval
engine, and implement some known and some new methods in this field. This is a
good opportunity to learn insights of text retrieval systems and Web search
engines, while
implementing some core components of the system. It would also give you the
flavor of conducting research on this hot topic.
Text retrieval
systems allow users to make keyword-based (or, sometimes more advanced
searches) over large bodies of text documents. A typical example of such a
system is a Web search engine, which indexes billions of documents and answers
millions of keyword queries daily. To achieve this, underlying document index,
usually an inverted index, should be somehow split to
several machines. Then, a query broker gets the initial query, sends it to the
indexer machines, obtains partial results, merges them and finally displays to
the user.
This project will
investigate the efficiency of several different index partitioning schemes. Roughly,
you should first obtain an inverted index of a large scale collection (our
typical collection involves a few million text documents) by using one of the
existing indexing tools (with modifications, if necessary). Next, a simulation
should be implemented to create an environment with several PCs and apply the
partitioning techniques, and finally their performance should be evaluated
using real life query logs. That is, while the simulation works, several parameters
like communication volume, load imbalance, etc. will be measured for systems
with the different index partitioning schemes, as they repond
to the query stream that is obtained from the log.
The further stages
of the project will involve index pruning, i.e., cutting some (potentially)
useless parts of index for improving storage efficiency and responses time.
We will develop the modules of a video database system
to be able to handle complex person queries by name on videos (e.g.,
"retrieve video segments in which Bush is to the right of Putin").
This will require the detection, tracking and (automatic or manual labelling by
person names) of faces and storing them into a database. The system will be
built on our video database system, BilVideo. Existing C++ code for face
detection and tracking will be utilized.
Language: C++
Open source libraries to be utilized: OpenCV, FFmpeg
Platform: Linux/Windows
Video Object Segmentation is the process of extracting
objects from video streams or still images (e.g., extracting a walking man, a
flying airplane, etc.). We will develop a video/image object segmentation
library in C++ to include the implementations of state-of-the art algorithms in
the field. There are numerous algorithms developed for this purpose. We will combine
some of the state-of-the-art segmentation algorithms (the code for some of the
is freely available) by utilizing the OpenCV and FFmpeg libraries.
Language: C++
Open source libraries to be utilized: OpenCV, FFmpeg, (maybe QT for GUI)
Platform: Linux/Windows
We have a system for visual surveillance video
processing written mostly in Java. The system first processes video files
recorded by a static video camera where people are moving (e.g., walking,
meeting, etc.). The main idea is to detect the events in these videos and
enable a querying mechanism for a later access to the event details. There has
to be an efficient yet powerful query specification gui to allow users query
the system based on the event details basically based on the motions of the
people and the objects appearing in the event. The system currently identifies
three basic types of events: CROSSOVER, ENTER, LEAVE. These event types also
lead to handling APPEAR type of object queries. The senior project is on
developing an efficient and powerful graphical user interface to this existing
visual surveillance querying system. The gui will also include query result
displaying component to enable users visualize the query results. The
programming language is planned to be Java, and the required libraries and/or
algorithm suggestions will be provided throughout the project.
VOLUNTEER PROJECTS
These projects are designated
as volunteer projects (but not senior projects) for those students who want to
participate in a research project.