Here you will find some of my more interesting projects I've done as an undergraduate of Computer Science at the University of Toronto.

Technical Assistance Request (TAR) System

(Source Not Available)

This project was done in partnership with Nelson Arruda. The purpose of this system was to give us a taste of what it is like programming large systems. Although, I wouldn't consider this anywhere near large, it was quite big for us second year newbies who only had a month and a half along with other courses, and very little experience in C++. Additionally, the fact that we had to implement a B+ Tree, hashing and event logging was quite a feat. Fortunately, we did get it done and even had some time to implement a rudimentary interface.

Stochastic Ray Tracer

Required Libraries:

Screenshots (click for full image):

RayTracer Thumbnail. Click for larger image. RayTracer Thumbnail. Click for larger image.

Again, this project was done in partnership with Nelson Arruda. This was the final project for our fourth year computer graphics course. The Ray Tracer was written in C++ using Microsoft Visual C++ 6 with OpenGL used as the rendering API. Our RayTracer supports the following:

  • Local Illumination Model for diffuse surfaces.
  • Reflection and refraction for mirror and transparent surfaces.
  • Shadows
  • Several kinds of primitives:
    • Spheres, Cylinders, Polygons, Cones
  • Transformation of individual primitives.

Reflection do not work perfectly, but considering this was done in three weeks amongst other projects, I'm quite proud of it.

Java Client/Server Application

This was one solo project (out of many) that was done in a matter of a week for the "programming for the web" course at the University of Toronto. It is a multithreaded client server application. The server waits on a given port for client the connections. The client, which is a scribble pad GUI app connects to the server and can pass images back and forth. For example, the server starts with no images. A client connects, draws an image and saves it to the server, another client can now connect and retrieve this image. The server supports a large list of images and allows clients to browse through them sequentially.

Javascript Concentration Game

Again, from the "programming for the web" course, here is a nice little version of the game concentration written entirely in JavaScript. An interesting note is that the bulk of this code is objected oriented. The game has many configuration options and even has a built-in strategy that wins the game in an minimal amount of steps.

Bulletin Board System

Finally, the last project from the "programming for the web" course (can you tell I really liked this course??). This is an employee/customer bulletin board system written in both Perl and Java Servlets. The system allows customers and the general public to view an employee's status and information, as well as send them messages. Employees can log in and update their status, read their messages and change their password. The servlet version has a lot more functionality because it uses a relational database backend accessed through JDBC. The perl version uses simple flat files to store it's data. To the left, you can try out the perl version, but unfortunately, I do not a servlet server running, so you will not be able to see the servlet version in action.