A portfolio of the code I wrote in school (zip, 165 KB) has the AI, compilers, and graphics projects below. In more detail:
Networking
Along with a partner, I wrote a generic HTTP client and proxy using socket programming in Visual C++ and the cross-platform ACE middleware. With the same partner, I wrote a relatively robust implementation of the basic models for reliable transport-layer protocols, including stop-and-wait, go-back-n, and selective repeat, again in Visual C++ using ACE. I also worked on an implementation of a link-state and a distance-vector routing protocol, using threads as simulated network hosts.
Network security
As team leader of a group of 6, I designed and wrote a large portion of our project to add secure file-transfer functionality using RSA encryption and authentication from the NSS libraries to the existing gaim-encryption plugin for the instant-messaging client gaim. These modifications were written in C under Linux but should work on any platform that gaim and gaim-encryption run on. Here’s some supplementary material we created for the class to understand our design and implementation: the project report (PDF) and the project presentation (PowerPoint).
Artificial intelligence
In a group of 3 people, I helped write an alpha-beta pruning iterative deepening informed search algorithm for the game of Othello. Our AI performed extremely well, coming in first place in the class two years running. In the same group, we wrote a similar algorithm for the more complicated game of Backgammon with some optimizations made for speed. Both AIs were written in Common Lisp. The Othello player is in the portfolio zip.
Distributed artificial intelligence
FalloutBots: a multi-agent game in C++ with greedy, hoarding, and fictitious-learning agents, an auction mechanism, and a metagame layer. Deliverables 1, 2, 3, 4, and 5 (PDFs), the final report (PDF, 13 pages), and the code (zip).
Compilers
Along with a partner, I wrote most of a compiler (didn’t actually get time to finish code optimization) for the Cool language. I used flex and bison to do lexing and parsing and wrote an error checker, a type system with object-oriented capabilities, and compile-time optimizations. Written in C under Linux. The lexer, parser, and semantic analyzer are in the portfolio zip.
Computer graphics
By myself, I wrote a graphics program with the capability to read images in the TIFF format, display them, perform a number of transforms including resizing, blurring, and sharpening, and write them to a file, using OpenGL only for screen drawing routines. I also wrote a basic 3D engine with full rotation, perspective, and orthographic capabilities. Finally, I wrote a raytracer capable of rendering complex scenes involving triangles, boxes, and true spherical surfaces with physically-based lighting. All written in C with OpenGL/GLUT. Also in the portfolio zip.