Sample projects & code 
  
  
  

I would like to show you some of my code. These projects, with code, are nearly all from my university years.

College Projects
 
Favorite projects
 
CS 4013 Project I
 
CS 4013 - AI - Project I: 4-D Tic Tac Toe using the minimax algorithm (and with alpha beta pruning too).
Java applet page: oxapplet.html
Source code
 
Graph Matrix Applet
 
I thought of an algorithm to find the largest complete subgraph of a graph in polynomial time, but I was not sure if it would work so I wrote this applet to test it out.
Java applet page: applet.html
Source code
 
Madazula
 
Program to take stereo pictures from a web cam and then attempt to do depth perception by triangulation. It sounds easy, but it isn't. I tried a few different approaches to stereo vision - each of the TriangulatorImpls classes are my different tries. Since this program was written in java - it uses the Java Media Framework (JMF) API to grab the pictures from the web cam, so it is unlikely that you could test this program without a big hassle. However, you can download JMF from http://java.sun.com/products/java-media/jmf/2.1.1/download.html if you want.

Also worth mentioning is that I built a device that plugs into the USB port of my computer to move the web cam from left and then to the right. However, it was too shaky to get even pictures.
Additional info page: computer_vision.html
Source code
 
Stock Chart Applet
 
-- (currently not plotting stocks)

Java applet used for testing stock market forcasting algorithms. Only keeps track of some stock symbols, like AAPL, MSFT, YHOO, LOGI, TMEG, INTC, CCE, and a few others. NOTE: Ameritrade has been changing their website format recently, and I have not had time to update my stockgetting program, so you may need to go back several days or weeks to see some stock data :)

There is a server-side program behind this one that actually runs all the time, grabbing all the stock data from the internet. This applet connects to my server-side program to get the data and run the analysis.
Java applet page: stockapplet2.html
Source code
 
 

 

School projects
 
CS 1323
 
CS 1323 - Programming I
all my programming I project files stashed into one sloppy directory.
Source code
 
CS 1333 Project 1
 
CS 1333 - Programming II - Project 1: Simple project to count the number of words and lines in a file.
Source code
 
CS 1333 Project 2
 
CS 1333 - Programming II - Project 2:
Converts java source code to colorful html files.
Source code
 
CS 1333 Project 3
 
CS 1333 - Programming II - Project 3:
Games using java interfaces.
Source code
 
CS 1333 Project 4
 
CS 1333 - Programming II - Project 4:
Test efficiency of linked lists versus arrays in sorting and searching.
Source code
 
CS 1333 Project 5
 
CS 1333 - Programming II - Project 5:
Accounting program or something like that...
Source code
 
CS 1333 Project 6
 
CS 1333 - Programming II - Project 6:
Binary Tree and Traversals.
Source code
 
CS 2413 Project 1
 
CS 2413 - Data Structures - Project 1: Big Decimal Integer, each digit is an int.
Source code
 
CS 2413 - Project 2
 
CS 2413 - Data Structures - Project 2:
C++ exception handling or something like that...
Source code
 
CS 2413 - Project 3
 
CS 2413 - Data Structures - Project 3:
Sparse Matrix.
Source code
 
CS 2413 - Project 4
 
CS 2413 - Data Structures - Project 4:
Wierd linked lists of linked lists.
Source code
 
CS 2413 - Project 5
 
CS 2413 - Data Structures - Project 5:
Wierd binary trees.
Source code
 
CS 2613 Extra Credit
 
CS 2613 - Computer Orginization - Extra Credit:
Write a simple calculator in assembly code. The assembly code is for a fictional computer, but was run by a java implementation of the fictional computer for testing.
Additional info page: README.html
Source code
 
CS 3053
 
CS 3053 - GUI - Projects 1 and 2:
Project one was just making a specified layout of GUI components, project two was making a GUI send SQL queries to a database to get some song information.
Source code
 
CS 3113 Project 1
 
CS 3113 - Operating Systems - Project 1:
Interupts in unix.
Additional info page: writeup.pdf
Source code
 
CS 3113 Project 2
 
CS 3113 - Operating Systems - Project 2:
Forking unix processes - with image processing software.
Additional info page: writeup.pdf
Source code
 
CS 3113 Project 3
 
CS 3113 - Operating Systems - Project 3:
file stuff in unix - safe copy and safe remove
Additional info page: writeup.pdf
Source code
 
CS 3113 Project 4
 
CS 3113 - Operating Systems - Project 4:
Pipes in unix - chat program.
Additional info page: writeup.pdf
Source code
 
CS 3313 Project 1
 
CS 3313 - Compilers - Project 1:
The scanner component of a compiler.
Source code
 
CS 4013 Project I
 
CS 4013 - AI - Project I: 4-D Tic Tac Toe using the minimax algorithm (and with alpha beta pruning too).
Java applet page: oxapplet.html
Source code
 
CS 4013 Project II
 
CS 4013 - AI - Project II: A theorem prover - uses the forward chaining algorithm to substitute constants in for variables in definite clauses. The forward chaining algorithm works, but I also planned on adding in the backward chaining algorithm, which was not functioning correctly when I turned it in.
Additional info page: index.html
Source code
 
CS 4263 Projects
 
CS 4263 - Software Engineering I:
All the projects I did from Software Engineering I
Additional info page: /
Source code
 
CS 4273 Projects
 
CS 4273 - Software Engineering II:
All the projects I did from Software Engineering I
Additional info page: /
Source code
 
CS 4313 Project 1
 
CS 4313 - Programming Languages - Project 1:
Parse some tokens and execute the parsed expression. Does error checking.
Additional info page: proj.pdf
Source code
 
CS 4313 Project 2
 
CS 4313 - Programming Languages - Project 2:
Parse some tokens and execute the parsed expression. Does no error checking.
Additional info page: proj.pdf
Source code
 
CS 4323 Project 1
 
CS 4323 - Compilers - Project 1:
Scanner
Source code
 
CS 4323 Project 2
 
CS 4323 - Compilers - Project 2:
Parser
Source code
 
CS 4970 Projects
 
CS 4970 - Robotics - Projects I, II, and III: three robotics source code files for three projects.
Additional info page: index.html
Source code
 
House Applet
 
My first applet ever, written for my programming I class.
Java applet page: HouseApplet.html
Source code
 
 

 

Other projects
 
Animate
 
Uses my uigui classes, which I use in a lot of projects, to make a slide show. Its fun, but takes too long to load for big pictures.
Java applet page: SanAntonio.html
Source code
 
CGI Morf
 
This is the program that takes a file of html, and compiles it into a CGI program. It links "subroutines" into the CGI program from <subroutine> tags in the source html, where the actual subroutine code is in a header file (.h) specified by an "href" attribute in the tag. The subroutine code will get slices of source html between the opening and closing <subroutine> </subroutine> tags, and other special tags within them. If you ask me, this is a pretty good programming interface, which is why I wrote all this code.
Source code
 
Exam Study Guide
 
For my Chinese Civilization class, which I took during my programming I class, I was so addicted to programming that I could not stop programming. This was my main struggle throughout college actually - studying versus programming. I thought I could kill two birds with one stone if I wrote a program to study. Didn't help much though, and I felt like a real wierdo studying with this lame program.
JAR file: chinesefinal.jar
Source code
 
Proof Engine 0
 
Written to prove formulas for my discrete math class. I wrote this a long time ago, and as a result, I did not write very efficient code despite my best efforts. The problem space therefore takes way too much time to search beyond a depth of 3 or 4.
Source code
 
Eudoxus' Model
 
Uses the simple 3-D engine I wrote to display some of Eudoxus' Planetary Spheres. I think it would kick ass if they sold these planetary spheres as a paperweight.
Java applet page: eudoxus.html
Source code
 
Cheezy Eyes
 
Trying to find a way to do good graphics in java!!! Tried Antialaising - too slow, tried image processing - didn't fit need. Java is just too freaking slow to do graphics without good native support.
Java applet page: test.html
Source code
 
File Tree
 
Displays a tree of files on the system. Yellow squares are directories, green squares are files. Double click directories to open. Be extremely careful because it also has ability to move and delete files. If you triple click the background, hover circles show up which help navigate.
JAR file: filetree.jar
Source code
 
Float Matrix
 
Just a handy matrix class.
Source code
 
Foomail
 
This is an email program that I wrote for both the OU Robotics Club and the OU Association for Computing Machinery used to send out emails. The problem with the old robotics club mail program was that the OU mail server adhered to the maximum of 100 email recipients per email, and the ACM needed a program to send emails to multiple lists without sending the same email to the same recipient. This project solved both of those problems.
Additional info page: docs/index.html
Source code
 
FTP Client
 
FTP Client I wrote for a couple of other programs to an FTP server.
Source code
 
Grammatical Inference
 
Today, I will try to write a simple DFA editor (2004-12-01)
Java applet page: index.html
JAR file: grainf.jar
Source code
 
Graph Matrix Applet
 
I thought of an algorithm to find the largest complete subgraph of a graph in polynomial time, but I was not sure if it would work so I wrote this applet to test it out.
Java applet page: applet.html
Source code
 
HTA Edit
 
While working at CAPS, I made a couple of HTA diagrams, each taking several hours to make and then revise (using MS Paint). So I got it in my head to make an HTA Editor program, and this is the (incomplete) result. I wrote this in the summer of 2001.
Java applet page: htaeditor.html
Source code
 
HTML Utils
 
Reads an HTML page from a java.io.Reader, and has some methods for accessing certain elements in the html. This is, like most of my projects, a work under progress meaning that it will be updated next time I need additional functionality.
Source code
 
HTTP Client
 
HTTP Client that I wrote so that I could access web pages, and use my HTML package to parse those HTML pages however I need. This is a work under progress, meaning that I update it if I need additional functionality. The major benifit of implementing this in java is that it can make use of the secure socket libraries of java. This is used mostly in my server-side stock quote getting program, which monitors stocks on the Stock Market.
Source code
 
Calculus Illusions
 
Wrote these little applets for my sister's birthday - kind of like a birthday card.
Java applet page: feb4.html
Source code
 
Image Web Crawler
 
This project is intended to crawl the internet to download images and find the histograms for each page. This way, the most popular color-schemes on the Internet can be found.
Source code
 
Image Processing Applet
 
I was curious about graphics in java so I studied image processing. This is a little app I wrote to test the different kernals and stuff, back in 2001.
Java applet page: applet.html
Additional info page: index.html
JAR file: image_processing_frame.jar
Source code
 
IP Tracker
 
Want to find geographic information about any IP address. So the idea is to go to http://www.iana.org and find a list of the Regional Internet Registries, and then ask each one for whois information about that IP and somehow parse the best results for display.
Source code
 
Jedit
 
I wrote this because the java TextArea sucks! Whenever a lot of data is being output to it, it always starts getting slow - probably because they use a vector to store lines or maybe because they try to display every line and just let the graphics library clip it out. Who knows, but it sucks. This JeditTextArea has two main weaknesses - it does not store the lines above and below the screen to a file, and it does not come with scrollbars. Other than that, I beleive my JeditTextArea is a fine peice of code.
Java applet page: TestJedit.html
Documentation page: docs/index.html
JAR file: jedit.jar
Source code
 
Madazula
 
Program to take stereo pictures from a web cam and then attempt to do depth perception by triangulation. It sounds easy, but it isn't. I tried a few different approaches to stereo vision - each of the TriangulatorImpls classes are my different tries. Since this program was written in java - it uses the Java Media Framework (JMF) API to grab the pictures from the web cam, so it is unlikely that you could test this program without a big hassle. However, you can download JMF from http://java.sun.com/products/java-media/jmf/2.1.1/download.html if you want.

Also worth mentioning is that I built a device that plugs into the USB port of my computer to move the web cam from left and then to the right. However, it was too shaky to get even pictures.
Additional info page: computer_vision.html
Source code
 
BaPaMaFa Quiz
 
This applet is a quiz for learning the Taiwanese bapamafa, which is a phonetic alphabet that the Taiwanese use to teach mandarin, and type, and some other stuff too I guess. The buttons don't look good because I had not yet discovered the beauty of using images in the gui at the time of writing.
Java applet page: index.html
Source code
 
3-D Engine
 
When I first started programming, I did not realize the utter slowness of java. So I wrote a (very simple) 3-D graphics engine in java. This applet is a butterfly that I made for my sister.
Java applet page: butterfly.html
Source code
 
Lame Moving Eyes
 
I thought it would look kind of spiffy.
Java applet page: eyes.html
Source code
 
Neural Net Test
 
I wrote this applet to help me imagine the reversability of recall in a neural network, during my Programming I class in 2000.
Java applet page: nn.html
Additional info page: testNN.html
Source code
 
Pkg
 
Takes as input a set of java files, and either puts a package statement at the top of them, or removes the package statements from them.
Source code
 
Recog2D
 
Project to recognize real world objects from the input from a 2-D camera. This Project used the Java Media Framework (JMF) API to interface with a web cam and do its processing. This was basically just some try-out code, getting some basic concepts down etc... JMF is a pain to install, and it is super duper slow, so don't worry about it.
Source code
 
Recog Bot
 
This program is a prototype for tracking the color patterns on the top of little robots. From the color patterns, this program can deduce the position and direction of the robots. The final version is done in C++. This version uses the Java Media Framework (JMF) API, so it is unlikely that you will get it to work in your browser with your web cam.
Java applet page: track_applet.html
Source code
 
Server Alarm Server
 
This project consists of both hardware and software - the hardware is an alarm that connects anywhere on the internet, and the software is the alarm code, and some server code. If for some reason a program on the server goes into an alarm state, it can signal the alarm to start sounding immediately, no matter where it is. The alarm also has the option to be turned off, or to start sounding in the event that it cannot connect to the server.
Source code
 
Java Email Client
 
Java email client that does not abide by the line-length limits set by SMTP, nor does it look at what the server sais in reply. I recently wrote a email client in C++ that is much better - error logs and everything.
Source code
 
Space Vector
 
Handy class to have around to do calculations with a 3-D vector.
Documentation page: SpaceVector.html
Source code
 
Static Field Applet
 
I was curious about electricity, so I made this applet after reading a few extra chapters of my physics book to help me imagine how static fields behave.
Java applet page: static_field_applet.html
Source code
 
Stock Chart Applet
 
-- (currently not plotting stocks)

Java applet used for testing stock market forcasting algorithms. Only keeps track of some stock symbols, like AAPL, MSFT, YHOO, LOGI, TMEG, INTC, CCE, and a few others. NOTE: Ameritrade has been changing their website format recently, and I have not had time to update my stockgetting program, so you may need to go back several days or weeks to see some stock data :)

There is a server-side program behind this one that actually runs all the time, grabbing all the stock data from the internet. This applet connects to my server-side program to get the data and run the analysis.
Java applet page: stockapplet2.html
Source code
 
Tiger Face Applet
 
I wrote this with the intent of putting as an entrance page to my web site. It did not turn out to look exactly as I planned though. But oh well. Made during the spring break of my sophomore year, this is the first medium-sized program I wrote.
Java applet page: index.html
Source code
 
Traversibility Index
 
This project is the implementation of some strange fuzzy logic stuff written by a guy that works at the Jet Propulsion Laboratory (JPL). It does not work in this program though. Basically, it is supposed to be the fusion, or fission, or whatever of robot behaviors. When the "seek goal" behavior is combined with the "traverse terrain" behavior, the robot is supposed to go towards the goal while not hitting too many rocks. But the fusion doesn't work for some reason.

Right click on the rover to change its function.
Java applet page: traversibility_index_applet.html
Source code
 
Turtle Stat
 
User Interface to a program written for the biology department at UCO (University of Central Oklahoma). I volunteered to help my brother out with this because it sounds like a cool project. Work is still under progress.
Java applet page: index.html
JAR file: turtlestat.jar
Source code
 
UIGUI
 
This is a set of classes that I use in some of my projects. Instead of hopping on the javax.swing train, I wrote my own lightweight gui components, down to the java.awt.Graphics and java.awt.Image layers of the java API. If you've noticed, some of the other projects listed here use the same classes, and some use an uigui.jar file. That's because that was just the easiest way to use the uigui classes at the time.
Additional info page: uigui.html
Source code
 
Misc. Utils
 
These are just some miscellaneous utils which I use. Most notably the cstring.h, which I use a lot, just cause I prefer writing my own code to using someone elses library, if practical.
Source code
 
Via
 
Package to manage multiple network connections between two computers that may or may not be able to connect directly to each other through the internet. This is done by designating a server to use so that each may find the other through the server, and establish as many connections as needed through that server, if they cannot connect directly.
Source code
 
Vistory - Visitor History
 
To show the history of the accesses of my web site per visitor, using the http referer cgi header. Visitors will be listed by their IP address in a table (once per visit). And from that table will be a link to open up another window which will contain a cgi generated diagram of the history of the particular visit.
Additional info page: vtab.cgi?logfile=jolash.log
Source code
 
Web Cam Frame Grabber
 
Just a little wrapper class that provides a simple and efficient interface to web cams on windows. Class Img also has a bit of image processing methods in it, such as homogenous transforms, morphological filtering, laplace transforms, and other kernals too. These 3 classes here were a part of a much larger library that I wrote for windows, which were all accidentally deleted by the way - thanks for caring - which means that code referencing the larger library must be updated before these 3 classes can be compiled.
Source code
 
Zooz Applet
 
Based on gravity between particles that never collide, I just wanted to see what it would look like.
Java applet page: zooz.html
Source code