This page provides a summary of my education, lists my papers and publications, and describes some academic projects that I've worked on over the years.
EDUCATION HISTORY
|
|
starting September 2009:
Ph.D. Computer Science
(GPA TBD)
|
|
exp May 2009:
M.S. Computer Science
(3.9 GPA)
- Thesis Title: Implementation and Evaluation of Temporal Representations in XML
- Thesis Advisor: Dr. Richard T. Snodgrass
- RASP Scholarship recipient ( $6k )
- Graduate Tuition Scholarship recipient ( $3k )
- Member, ACM
- Member, IEEE
|
|
2006:
B.S. Computer Science
(3.6 overall, 4.0 in CS/Math courses)
2006:
Supplementary B.S. Applied Mathematics
(4.0)
- Crimson Scholar, 2004-2006
- Dean's List (5 times)
- Member, Pi Mu Epsilon (Math Honor Society)
- Member, Team SIGSEGV (Computer Science society)
- Lab Instructor, ET 262 Spring 2003 (Introduction to C++)
|
PUBLICATIONS AND WORKING PAPERS
These are more "working" than "published," but I am working to change that.
|
|
Faiz Currim, Sabah Currim, Curtis Dyreson, Shailesh Joshi, Richard T. Snodgrass,
Stephen W. Thomas, and Eric Roeder, "τXSchema- Support for Data- and Schema-Versioned
XML Documents," TimeCenter TR-90 (Working Paper), Spring 2009. (pdf)
|
|
Stephen W. Thomas,
"Learning to Track a Random-Walk Target Motion Using Markov Chain Monte Carlo,"
(Working Paper), Spring 2009.
(pdf)
|
|
Stephen W. Thomas, "The Implementation and Evaluation of Temporal Representations in XML,"
Master's Thesis, March 2009. (pdf)
|
|
Stephen W. Thomas,
"Independent Study Report: Gossamer,"
UA Independent Study (Dr. Gregory Andrews), December 2008.
(pdf)
|
OTHER ACADEMIC PROJECTS
This list is incomplete and out of date, but gives a general flavor.
|
|
|
With:
[Dr. Greg Andrews]
[Joe Roback]
For: UofA CSc 599: Independent Study
Technologies used: pthreads, Filaments package, huge multi-core machines
Gossamer is framework that aims to make it easy to parallelize
sequential programs and easy to implement parallel algorithms
while at the same time providing scalable performance
improvements on multicore machines. My contribution is to
to implement a set of sequential applications that contain
difficult-to-parallelize algorithms; then use Gossamer's annotations
and analyze the speedup achieved.
|
|
With:
[Dr. Richard T. Snodgrass]
[Dr. Curtis Dyreson]
[Dr. Faiz Currim]
[Dr. Sabah Currim]
For: UofA CSc 910: Master's Thesis
Technologies used: XML, XSchema, Java
In this work we consider how to accommodate and validate
time-varying data within XML Schema. We propose a system, called
Temporal XML Schema ( tXSchema ), for constructing and validating
temporal documents. Temporal XML Schema extends XML Schema with the ability
to define temporal element types. Visit the project wiki.
|
|
With:
[Dr. Jon Hartman]
For: UofA CSc 552: Operating Systems
Technologies used: C, C++, FUSE
The Single Instance File System (SIFS) is a file system designed to maximize storage efficiency
by storing only one copy of data, even if the data appear in multiple files. The semester project included
designing and implementing a complete filesystem. The system interfaced with the FUSE and Disk libraries
so that it could be easily mounted and used on top of any traditional filesystem. The result was a working
system that passed all of the test cases in an efficient matter.
|
|
With:
[Dr. Joe Pfeiffer]
[Michael Simmons]
[Brian Gaume]
For: NMSU CS 474: Operating Systems
Technologies used: C
Our team wrote a simple software-only Distributed Shared Memory system. It was implemented with a
Client-Server architecture, implementing a simplified version of the Alewife LimitLESS protocol. The
result was a system that allowed processes running on different machines to seamlessly share
memory segments.
|
|
With:
[Dr. Esther Steiner]
[Brian Gaume]
[Rodrigo Rojo]
For: NMSU CS 371: Object Oriented Software Engineering
Technologies used: Java, UML
Our team designed and implemented a multi-user environment to be used by local professionals in
performing collaborative information organization. This task included meeting with local field specialists
(customers), drafting requirements documents and use cases, authoring test cases, implementing
the system, and deploying to the customers. The result was an online system (mySQL back-end with a Java
applet front-end), with authentication, that was used to organize the customers' information.
|
|
With:
[Dr. Clint Jeffrey]
For: NMSU CS 370: Compilers and Automata Theory
Technologies used: C, gcc, yacc, lex
We designed and developed
a compiler for a subset of the C programming language (with some restrictions).
The result was a system capabile of taking simple C source files and,
after parsing the file and building a syntax tree, generating generic byte code.
|
|
With:
[Anthony Hyde]
For: M-TEC student research project
Technologies used: VB.NET
This task involved designing and implementing a system that could be used to reduce
the time and effect needed to design products. It implemented the idea knows as the
"Funnel Approach to Design" (FAD), which was developed by the director of M-TEC. The FAD process
involves enumerating the product requirements, some initial ideas, and brainstorming information;
then a clever technique is used to highlight the best possible designs for the product. The
result of this project was a VB.NET GUI application that performed the tasks described above.
|
|
With:
[Ryan Herbon]
For: M-TEC student project
Technologies used: VB.NET, MS Access
The project was to design and implement a system that allowed the users to
easily manage a large list of product parts and the relationships between them.
This was to address an industrial problem experienced by Darbyshire Equipment, a
manufacturer of large farm equipment. The result was a VB.NET GUI application (MS Access
back-end) that allowed the user to easily organize his working environment.
|
|
With:
[Anthony Hyde]
For: M-TEC student project
Technologies used: Assembly
The M-TEC Tech Mobile is a mobile center that showcases current technologies to students. It is used
for generating interest in young people in the engineering world. The project was to create interesting
displays/interactive workstations withing the Tech Mobile, and then to present the displays at a variety
of local elementary/middle/high schools. An example of a display I created was a robotic arm that sorted
a set of metal blocks based on color: the arm would pick up each block individually, determine its color,
and place it in the appropriate pile. The students enjoyed watching the arm in action and trying to determine
the arm's strategy for determining the color.
|
|
|