GRADUATE PROJECT WORK (selected)
Operating Systems
System Shell Project: Design and implementation of a C program (on Unix)
that serves as limited replacement for the Unix C shell.
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.
Microprocessor
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.
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).
Note to visitors:
A lot of these projects are very complex and involved. The single line descriptions are for potential
employers who have the experience to gauge the effort involved. Also, this list is by no means
comprehensive. In addition to the above, I have done lots of programming assignments/projects (in lisp,
C, C++ and Java) - most of them on Unix.
Ever since Google indexed this page, I have been receiving emails from students
from different corners of the world asking me for the source code of these projects. I have
spent a lot of time in creating the above programs (and ofcourse, enjoyed every minute of it). Many
a Friday night was spent in contemplation, meditation, frustration and ... elation. So, it is bit saddening
to see them rot away on (already obsolete!) Zip disks and CDs. I
don't mind distributing the code freely. But at the same time, I dont want to give the code to
students because I would then be helping them cheat. It would give "Code reuse" an entirely different meaning. So, please don't ask me for the source code. But for those sincere students who are genuinely interested in learning and want some advice as to how to proceed with
the projects, please understand that I would love to help you but am extremely busy with several projects right now and may
not be able to reply to your emails. But when I find some time, I will write detailed descriptions
of the projects and put them up on the Web. My advise to students is to spend some time on the
problem. The answer will definitely come to you ...
Good Luck!