Operating Systems

System Shell Project: Design and implementation of a C program (on Unix) that serves as limited replacement for the Unix C shell.

Computer Communication

Design and Implementation of a simple file transfer program (Data link, Network, Transport layers) using Turbo C++. The project involved programming the UART and PIC 8259.


Logic Analyzer: Design and implementation of a computer system that contains a MC68HC11, SRAM, and EPROM. The software developed includes a Monitor program that allows the testing of the system and application software that samples the input signals and sends the samples to a program running on PC for display. Communications take place through USB port (application) and serial port (Monitor).

Concurrent Software Design

Forest Fire: Design and implementation of Forest Fire Simulation with multiple processes computing the simulation in parallel using C (Unix). The processes were created as a chain with bi-directional communication between processes using unnamed pipes.
Tic-Tac-Toe: Design and implementation of a multiple client, multi-threaded Tic-Tac-Toe in Internet domain using C (Unix) and Socket programming.

Distributed Computing
Whiteboard: Implementation of a Client – Server White Board in a distributed environment. Four different versions of the Whiteboard were developed using C/RPC (Unix), Java/RMI (Linux), CORBA (Linux - using omniORB with IDL to C++ mapping) and JINI & JavaSpaces (Linux).
Note : These are four different, extensive projects designed and implemented over a span of six months and two graduate level courses. Looking back, installation of JINI and JavaSpaces was in itself a huge undertaking. It took a lot of time just to get a JINI "Hello World!" up and running. Lets not even talk about C/RPC.

Data Mining
Implementation of the Frequent-Pattern tree (Association) Mining method presented in the paper “Mining Frequent Patterns without Candidate Generation” (Han, Pei et al. - 2000) using C++ (Unix). The project included data preparation.

Evolutionary Computation
1. Implementation of a Genetic Algorithm based solution to the knapsack problem using VC++ (Win NT).
2. Implementation of a Genetic Programming based solution to a two-class pattern recognition problem using VC++ (Win NT).

Software Engineering
1. Object-Oriented Analysis, Design and implementation of Train Scheduling System using C++ (Unix).
2. Object-Oriented Analysis, Design and implementation of Virtual Hockey League using C++ (Unix).
3. S/W Architectures and Design Patterns: Object-Oriented Analysis, Design and implementation of TrafficIntersection Simulation based on Implicit-Invocation architecture using Java (Unix) and well-known design patterns.
4. Object-Oriented Analysis, Specification, Design and implementation of The Elevator Simulation using Java (Unix). The Graphical User Interface for the project was developed using AWT.
5. Object-Oriented Analysis, specification, Design and implementation of The Theme Park Train Simulation using Java (Win NT). The Graphical User Interface was developed using AWT and Swing.

Internet Security
Projects included Setting up a router(Linux), Studying the boot-up process(Linux), Configuring a system properly(Linux), Studying a Sniffer (Ethereal), TCP exploits (sniper, hijack, etc.), Port Scanning, Packet filtering, Buffer Overflow. Most work done on Linux.

Web Applications

Design and Implementation of a web-based java browser using PHP and Apache Web server (Unix).

Access and Visual Basic

1. Design and implementation of a student database using Access (Switchboard as Front end).
2. Design and implementation of an oscilloscope screen using Visual Basic.

Other projects

Java Parser: Design and implementation of a parser for a simple subset of Java programs using Java (Unix).
Scheme: Design and implementation of verbalize that verbalizes a given number using MIT-Scheme(Unix).
ElizaII: Design and implementation of ElizaII– a Natural Language Processing program using lisp (Unix).