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.