epopelka@gmu.edu

#### Interests

- Compiler design, especially within virtual machines such as the JRE and Microsoft's CLR.
- Parallel computing
- Approximation algorithms for NP-complete problems
- CS education (new topics such as distance education, etc.)
- Last, but certainly not least, computational geometry

#### Courses

##### Theoretical Computer Science

- CS583 - Analysis of Algorithms
- CS600 - Theory of Computation
- CS633 - Computational Geometry
- CS684 - Graph Algorithms
- CS695 - Approximation Algorithms
- Presented an approximation algorithm for the load balancing problem. My implementation averaged a running time of 20.25s with a competitive ratio of 1.02, versus a 890.2s running time for the brute force implementation.

##### Programming Languages and Software Engineering

- CS540 - Language Processors
- CS640 - Advanced Compilers
- Developed a compiler to optimize SPIM code. Details and source

##### Systems and Networks

- CS555 - Computer Communications and Networking
- CS635 - Introduction to Parallel Computation
- Used OpenMP to parallelize the Knuth-Morris-Pratt string matching algorithm. Given sufficiently large input, parallelization yielded speedups as large as 156%.

- CS658 - Networked Virtual Environments
- Xj3D was used to create a rudimentary 3D NVE.

##### Artificial Intelligence and Databases

#### Personal

Houston, Texas is where I was born and raised. I attended the University of Houston for my undergraduate studies. I now consider Northern Virginia to be my home. Go Nats, Go Caps, and, of course, Go Patriots.