Overview
This page has information for students wishing to do their Master’s Thesis under my supervision. Other faculty members will have different requirements. Our department does not yet offer the Ph.D. degree in Computer Science or Artificial Intelligence, although many of our graduates have gone on to that degree at other institutions.
While primarily a degree that is supposed to be an affidavit of mastery of a wide breadth of computer science, the M.S. degree also requires a thesis in which some new ground is broken in some chosen subject area. The thesis is required to be of publishable quality, and must demonstrate the student’s ability to perform and adequately disseminate research.
Students should not undertake a thesis project in an unfamiliar subject area. If necessary, students are welcome, and encouraged, to take a one semester independent studies course in such an area before undertaking the thesis.
Requirements
Before you begin, generate a proposal. It must contain:
- A proposed title
- The subject area you are working in
- Why it is interesting
- Goals and objectives
- Any hypotheses you might have now
- What you think you can come up with that we don’t know now
- Tools you will use, if any in your research
Discuss the proposal, and your background and qualifications, with me before you begin your research.
Initially, generate:
- A reading list, in bibliography format, of 40 or so
sources that are important in your area. You do not have
to read all of them, but you do have to put together a useful
list. I assume you will acquaint yourself with at least
some of them. (Don’t stuff this list exclusively with
blog posts. Ensure most are peer-reviewed papers, books,
vendor publications, or other expert-validated sources.)
During the preparation:
- Each week, end me a very short email with a bullet-point summary
of what you did all week (a progress report of sorts). If you
prefer, you may keep a blog instead, as long as it is updated
frequently.
- Meet with me every two weeks to discuss your progress.
The paper should be organized, roughly, as follows:
- Title Page
- Table of Contents
- List of Figures
- List of Tables
- Abstract
- Section 1: Introduction, whose last paragraph says something
like “The rest of this thesis is organized as follows....”
- Section 2: Background, covering previous work
- Section 3: Theory behind the work you are doing
- Section 4: Implementation, technical details, measurements,
results. etc.
- Section 5: Conclusions and Future Research
- Appendices, which might contain additional detailed tables, charts, longer source code snippets, full language grammars, and similar artifacts.
- Annotated Bibliography
Number the sections 1, 1.1, 1.1.1, etc., and number the appendices A, A.1, B, etc. Do not number the abstract or bibliography.
Official RequirementsThe above guidelines are simply informative.The official structure and formatting guidelines, together with a LaTeX template that you must use, are found in this private GitHub Repository.
Please ask for membership in the organization owning the repository to access the guidelines and the template.
Some Past Theses Supervised
This list is not complete. If I missed any one’s work, I’m so sorry. If you know of any I missed,
let me know. Thanks!
- Spring, 2026
- Gray von Goetz und Schwanenfliess, A Formal Ontology of Combat Feel
- CJ Phillips, Comparing Goal-Oriented Action Planning and Flocking Behavior for Multi-Agent Combat AI
- Matthew Lee, Hybrid Rendering: Combining Ray-Tracing with Static Techniques as Applied to Rendering Stained Glass
- Spring, 2025
- Natalie Lau, An Argument against Gradual Type Systems in Programming Language Semantics
- Spring, 2024
- Julian Gonzalez, Investigating the Efficacy of Persistent Data Structures on Asymmetric Scheduling Algorithms for Heterogeneous CPU Architectures
- Spring, 2022
- Marco Berardini, On the Pragmatics of Web Application Frameworks
- Louis Kane, Towards Quantum Machine Learning with Sequence-to-Image Data
- Fall, 2008
- Brian Orr, The Platform Virtualization Threat Environment
- Fall, 2006
- Joey Barrett, YAKIT: Your Awareness Kit
- Spring, 2006
- Joephy Hoang, Content-Based Image Retrieval
- Fall, 2005
- Rául Aguilar, Mixed Language Spam Detection
- Spring, 2005
- Prabhu Anabananthan, Job Manager Extensions for Grid Computing Frameworks
- Amit Desai, The Effect of Divergent Implementations on Application Design in Real-Time Environments
- Dale Kohler, Minnow: Multicast Networked Object-Based Data Store
- Sinu Ranasinghe, Domain Gateway Address-Based DOS Detection Protocol
- Fall, 2004
- Criag Ward, Implications of Programming Language Selection on the Construction of Secure Software Systems
- Akin Ajayi, Insight: A Framework for Shallow Text Mining
- Spring, 2004
- David Chu, Network Analysis for Distributed Denial of Service Attacks
- Fall, 2003
- Kholoud Khateeb, Creative Author: A Visual Programming Language for Creative Multimedia Authoring
- Ihimu Ukpo, Image Compression Applications of Sector Key Compression
- Spring, 2002
- Debbie Spiegel, Comparative Analysis of Peer-to-Peer Systems
- Mike Chang, A Refined Design Pattern Classification Scheme
- Fall, 2001
- Wei Michael Sun, Smart Answering Management System (SAMS)
- Dale Raymond P. Borja, Software Reliability: Assessment and Assurance
- Sanford Weinberg, Solving the Internet Bandwidth Problem
- Fall, 2000
- Shouki Souri, Design and Implementation of a Framework for Visual Document Structure Editing
- Robert G. Hayes, Real-time Java
- Spring, 2000
- Ernest Murillo, VRML Storyboarding
- Fall, 1999
- Arthur F. del Rosario, ?
- Herng-Yi Chen, Data Compression
- Fall, 1998
- Cesar A. Atehortua, The Internet Access Bottleneck—Is DSL the best solution?
- Chuang Kuan-Shih, Speech Technology
- Fall, 1997
- Mike A. Malgeri, Specification for the Addition of a Persistent File Replication Service To CORBAservices
- Ray A. Bala II, Load Balancing Web Traffic on An Intranet
- Neal C. Smith, Animated Application Development Under Direct3D and OpenGL
- Robert T. Bauer, Demonstrating the Undecidability and Incompleteness of Peano Arithmetic with a Higher Order Logic Theorem Prover
- Fall, 1996
- Christine Ng, Image Recognition to Detect Cervical Cancer Cells
- Spring, 1996
- Baha-din Khasawneh, The Utilization of the Arabic Language in Information Systems
- Daniel Cowles, An Adaptive Derivation of the LZW Compression Algorithm
- Spring, 1995
- Eric Shulman, Utilizing Ada Code in a Constrained Environment
- Revital Elitzur, A Uniform Database Interface for Object and Schema Versioning
- David Lacey, Natural Language Interface for Object Oriented Databases
- Fall, 1994
- Janet Howard, An Implementation of the ART-1 Neural Network of Carpenter and Grossberg
- Spring, 1994
- David Coca, A Fuzzy Logic Approach to Database Searching
- Scott Karlin, C++ Classes for Embedded System Development
- Fall, 1993
- Nils Sandoy, Object Oriented Modeling and Design of Fractals
- Spring, 1993
- Kurt Harms, Interactive Simulator for Quasi-Static Shortest Path Routing Algorithms using Ada Concurrent Tasking
- John Ralston, Use of Self-Enhancing Databases for Address Matching Systems
- Fall, 1992
- Alberto Velez, Real-Time System Software for Visor Displays
- Robert Greayer, Separate Compilation in Language Design and Program Optimization
- Teial Starks, DB++: A Language for Small-Scale Object-Oriented Databases
- Dean Allingham, The Design of the Language L
- Fall, 1991
- Mukesh Patel, Intel 80387 Floating Point Emulation
Prior to Fall, 1990, comprehensive examinations were given in lieu of the thesis requirement.