Selected Course Projects
 
Network ( in C )
*Spell cehcker: takes afile, compare every word in the file with a dictionary in a remote server, and prints out those words which are not in the directory.
* FTP directory copy: copy hte contents of an entire directory from server.
* Feeble file transfer protocol: exchange data using UDP datagrams. UDP transmits datagrams unreliably, so the key challenge in inplementing FFTP is putting in the features necessary to recover from errors, such as packet drop, overlap, delay, out of sequence, timeout, etc.
* RPC: implement the RPC layer for the client of a multi-user game--Robot Wars, int it, multiple robots (  the client programs ) meet in an arena ( the server ) and try to fire to each other..

Programming in JAVA
* Pencil me in: A program to read in file containing a calendar of events and generate a weekly schedule in HTML format (list and table).
* Whiteboard: A standalone whiteboard that allows single person to draw common shapes such as circles and squares to a window, cut and paste these shapes, and even save drawings to disk.
* Distributed Whiteboard: Allows multiple, geographically distributed users to communicate with each other by drawing to a common window.

Graphics (in C)
* Impressionistic paint system: The program will load a full color image, allow the user to create a painting by sweeping the mouse over the image. (OpenGL)
* Special Effects System: It is a set of plug-ins for a video-editing system and then to create a special-effects video that shows off the plug-ins. (OpenGL)
* Articulated Model: To Create an object in the Virtual Reality Modeling Language that will contain a number of animated movements that can be triggered by a user.(VRML)
* Shading and Texturing: It is a shading function that can illuminate and shade models used in computer graphics.(OpenGL)

Operating System ( Nachos Programming Project ) ( in C++ )
* Threads: Complete a working thread system and use it to solve sychronization problems.
* Multiprogramming: Implement system calls and exception handling, multiprogramming.
* Virtual Memory: Investigate the interaction between the TLB, the virtual memory system and the file system.
* Build a File System.

Distributed Systems( in C++)
* Consistent distributed shared memory: DSM read sharing, DSM server bypass, Lazy lock release, etc.
* A multiplayer computer game: Mazewar--a distributed, multiplayer game that allows each player to control a rat in a maze. A player receives points for tagging other rats with a projectile and loses points for being tagged.

Computer Architecture
* Fix the bugs in the Verilog model so that the test programs run correctly; modify the Verilog model to meet the execution requirements.
* Pipeline the verilog MIPS-Lite model, implement bypassing and interlocks.

Real-time Application of Mini and Micro Computers( in C++)
* Real time Robotics Control.
* Design of stepping motors.
* Design of control of servo motors.
* Use DC motor plus one stepping motor to emulate a plotter operation.

IC Design
* CMOS Fast Adder Module.
* Low power RAM Decoder.
* Operational Amplifier Design.