A Learning Knowledge base system, with simple natural language parser, using Delphi on Windows environment for a Graduate course “Advanced Artificial Intelligence”. It was divided into two parts, a learning module, and a solution finder module. The first Module learns by being fed by natural language (English) Statements that the module parses, analyses, and stores its keywords specifying relations between them in a knowledge base, sorted by area of knowledge. Then, using the second module, a question can be asked (in English again), and gets analysed, to search for the answers, matching its keywords with those stored in the Knowledge base from the first module, then forms the complete sentence of the answer to the user.

A Distributed Crazy 8 game using C on UNIX platform, for Graduate Course “Advanced Distributed Systems”.

A phone dealer using C++ on Windows, for Graduate Course “Advanced Software Engineering”.

The following ideas are general descriptions for classes of applications that can be addressed using different technologies, and with varying scope.

A) Cloud Computing for Web-services & Parallel Processing

Consider any web services project of choice and running it on any available cloud such as the AWS EC2, and compare performance and cost with other stand alone or networked clusters of servers. This can be a web application hosted on normal web servers, and/or any parallel program comparing the performance on multi-core hardware, clusters of networked computers, and the EC2.

Measuring Webhosting, file-sharing, database availability, performance and cost on the different architectures.

Parallel processing performance and cost comparison on the different architectures.

Writing comparison report about positives and negatives of the different architectures, and suitability for the different applications.

B) GPU & CPU Parallel programming

Develop an image or video processing application like feature extraction, pattern recognition, or any graphics text book problem and implement it using CUDA toolkit on a GPU, and report the normal CPU performance compared to the GPU.

Learn CUDA GPU development toolkit, or OpenCL.

Compare GPU vs CPU performance, and work on load balance

Compare GPU vs other parallel architectures, like multi-core, clusters of computers, or any accessible High Performance Computers.

C) High Dimensional Data Analysis

Experimenting with any high dimensional dataset such as those from UCI (University of California, Irvine) datasets from the machine learning repository by the Centre for Machine Learning and Intelligent Systems, and apply various Multivariate Statistical methods from R or matlab, compare and report results.

D) Understanding Crowed Serviced Web Contents

Use web crawlers to download data available in the internet public domain, and apply natural language processing and learning techniques to extract information of interest to specific or general queries.

E) Automatic Traffic & Crowed Management

Build a traffic and crowds management system, using information collected from cell phone access points, street cameras, radar cameras, satellite images, online location tagged posts on twitter, facebook, or blogs, or any accessible information source, to estimate the number of people in a given location at a given time, and the exits and entries routes to that location. Features like safe entries and exits need to be estimated, emergency situation detection and intervention methods, controlling crowds and leading them out of hazards scenarios.