Résumé: Projects: EZRequistion:
an electronic requisition system Powered
by Microsoft Visual Studio .NET, this project was a migration of
standalone windows application written in Visual Basic 6.0 to Web-based
application using .NET technologies. Key
techniques: ASP.NET, VB.NET/C#.NET, ADO.NET, Crystal
Reports, and SQL Server 2000. Sample
run (user: rvb; password: rvb) Source
code documenation Database:
Graduate Student Management System (GMS) Powered
by Oracle8i Enterprise Edition Release 8.1.6.1.0 and JServer Release 8.1.6.0.0, the
system was designed to help the people (students, faculty, and
department administrator) involved in the Computer Science Department to
systematically organize their activities. Through the system:
students can check their class schedule, grades, view professor's
research activities (if he/she needs research assistants, for instance),
and particularly, get warning messages about the important paperwork
which needs to be submitted once they are ready to graduate; faculty can
view the students' information, publish recruiting announcements, and
check and modify his/her teaching schedule; and department administrator
can be far more easily than ever to administrate the department's
activities (adding/removing classes offered, managing people's
information, and recruiting new faculty and students and so on.) Key
techniques: entity-relationship (E/R) diagram; conversion of E/R design to
relations; creation of SQL schema; web-based interaction with
the database, including selection, deletion, and updates; PL/SQL
packages; and stored procedures. More
details can be found
here (in PDF) Tool:
Software Quality Toolkit - A Defect Tracking System (Webpage) Powered
by Java and MySQL, the Software Quality Toolkit provides users
at all ends of the software spectrum the ability to report and track the
quality of any software project. For the user of the software, the
toolkit provides the ability to report software defects to the software
developer from their desktop. The software tester has the ability to
report detailed software problems to the developers. Management can use
the toolkit to track software defects and compile statistics. For the
software developers, the toolkit provides a tool to track and maintain
software defects, centralizing the defect – reporting process. Key
techniques: 3-tier Architecture, Java Swing, RMI, JDBC,
MySQL On-line
Bookstore: Bookone
Powered
by Apache Web Server, Tomcat 3.1, and MySQL, this project was designed
to implement an on-line web store in the CS class of Web Technologies
and E-Commerce. Some popular features of B2C, such as search,
personalization, and persistent catalogs, were successfully carried out. Key
techniques: HTML, JavaScript, Java Servlets, JDBC, and MySQL. Source code:
bookone.tar.gz
User Guide in PDF
The Game: "Triangle of Zinthar" is a 'Long Fun' game designed and built based on a common infrastructure called TheGame('TG'). TG is a simple client-server
internet infrastructure for grid-based multiplayer games, supporting run
and shoot styles of play as well as exploration and logical puzzles style.
TG contains a server program called 'tgs' and a human-interface client
program called 'tgc'. The server 'tgs' accepts network connections and
performs all the mechanics of running TG play; the client 'tgc' connects
to some TG server through the network, and performs all the mechanics
interacting with a human player, rendering game messages as they are
received, and interpreting the human's commands as messages to send up
to the server for execution. The communications between 'tgs' and 'tgc' are based on a protocol called 'The Game Wire Protocol' ('TGWP'). Our system is using the latest version of TGWP, TGWP2. Source code & spec:
Nicer Doxygen view
Download
Huegene: A software to conduct the artificial life research:
individual efficiency and ecological stability. It involves tracing
the lives of simple simulated creatures called Pops and Mibs as they
live and die and evolve over time on a two-dimensional grid of 'location.'
A Model-View-Controller architecture is utilized in the implementation
of HueGene. Source code & spec:
Nicer Doxygen view
Download
NGRAM, a markov chain text generator: NGRAM is a program for generating text using a Markov model
inferred from a sequence of bytes; it makes extensive use of the
Hash template class that is also included in this package. The hash table is built from scratch, based on "open-addressing" scheme. Source code & spec:
Nicer Doxygen view
Download
Modeling
the World Wide Web: The
World Wide Web (WWW) is generally viewed as one of very complex
networks. It is believed that the WWW follows a scale-free
power-law distribution of links. There are lots of models
which have been developed to simulate this feature. In
this project, I fully implemented the Barabasi-Albert Model and
the Steady State Model and gave a detailed comparison between
these two models based on the numerical results. Source
code: BAmodel
SSmodel
report in PDF
Arbitrary
precision arithmetic on integers: The built-in C++ integer type is 32-bit
wide -- thus the maximum unsigned number is 2^32 or roughly
4,000,000,000 (4 billion). This is far too small in applications such as cryptography.
We implemented a LongInt class to represent a huge integer with
several hundreds of digits. The comparison and other
traditional operations such as addition, subtraction,
multiplication, exponentiation, division, and modulo are
supported. Source
code: Postfix
Calculator: It
supports the following operators: +, -, *, /; ~ (sign change);
c (clear top of stack); Game:
Blocks World There have 10 blocks which all start off on the "floor." The user has
three commands (here i and j are numbers from 0 to 9): p i j - put block i on block j;
t i - take block i off whatever it's on and put it on the floor;
q - quit. Each block only has room for one block on top of it, but they can make
"towers" with 1 on top of 4, 5 on top of 1, and so on. When we
move a block, all the blocks above it should come with it. If we try to put
something on top of a block that already has something on it, the program
should refuse. Measuring
system call time: This
small project develops a means to use gettimeofday to
measure the time taken for a repeatable operation, such as the getpid
system call, in milliseconds, to an accuracy of two decimal
places. Report
and Source code
(pdf) Measuring
process creation time: In
this project, we measured the number of the processes the system
can create and the time taken by each fork + wait in either case
that each child process exits immediately or executes a very
simple program before exiting. Report
and Source code (pdf) Timing
a single request-reply interaction on intra- and inter-
machines: A
server and a client process are created and used to measure the
time taken by a single request-reply interaction. Report
and Source code
(pdf) The tool FLOW is used to simulate the interface advance of liquid helium near the critical temperature T{lambda}. Report in PDF: userguid.pdf A Disassembler for PowerPC ISA: Implemented in Java. Source
code: disassember Pure lambda calculus interpreter: A lambda calculus interpreter based on Beta and
Eta conversion and substitution rules. Source
code: click here Implementation
of Martelli-Montanari unification algorithm: The
algorithm is implemented using SML. Source
code: unify.sml Implementation
of Grammar Specification Language: Specification
Source code: part1
part2 |