This section of the site contains some of the more interesting course projects and assignments that I have worked on while attending PSUT. Of course, these were all "come up with a relevant idea and implement it" projects, rather than "implement what I tell you" ones.
None of these are very complex, all hovering around the 1k-3k LoC range, but they are quite varied and may be of interest to students taking similar courses in the future.
As most of these are proof of concept projects, both user-friendliness and maintainability has been sacrificed for simplicity and ease of implementation. The UIs are far from perfect, and (except for DrawTime) the code has few comments - perhaps I'll revisit it at some point in the future to correct these problem.
The projects displayed in this section are:
- Crystal is a semantically-aware open domain natural language Q/A system built using DRT techniques. It is currently very basic and has narrow coverage, but it illustrates some aspects of practical implementation of classic NLP theories.
- DrawTime is a basic timing diagram editor written in Python 3 using PyQt4. It provides a trivial language to describe timing diagrams, a syntax-highlighting text editor for this language and a live preview for the diagram.
- Billiards Hall is a simple OpenGL simulation of a room with a usable billiards table, created entirely from OpenGL/GLUT primitives.
- Mano Compiler is a proof-of-concept compiler that converts a very simple high-level language into Mano Machine assembly.
- Automata Editor is a GUI application that allows you to create, edit, graph, evaluate and optimize deterministic and non-deterministic finite automata. It can also convert from (classic) regular expressions to automata and back.
- ALife is an artificial life simulator that uses back-propagated perceptron networks and genetic algorithms to breed simplistic agents.
- Maze Generator is, surprisingly enough, a maze generator that creates and solves connected mazes using several different algorithms.