Position Type
- Present

I teach courses across the computer science curriculum, although my specialty is in theory-related courses like Mathematical Foundations, Data Structures, and Algorithm Design and Analysis. I am also very interested in developing courses that explore connections between computer science and other disciplines, such as Computational Biology and Natural Language Processing. In 2009, I developed and started teaching a new introductory computer science course (CS 111: Discovering Computer Science) that introduces the principles of computer science in the context of scientific modeling and simulation. This led to a new textbook, Discovering Computer Science, first published in 2015. From 2016-2019, I served as the founding Director of Denison’s Data Analytics program, in which students learn from a variety of disciplines how to answer questions with data.

B.A., Bucknell University; M.S., Ph.D., College of William and Mary

Learning & Teaching

  • CS 111: Discovering Computer Science: Scientific Data and Dynamics
  • CS 112: Discovering Computer Science: Markets, Polls, and Social Networks
  • CS 173: Intermediate Computer Science
  • CS 234: Mathematical Foundations of Computer Science
  • CS 271: Data Structures
  • BIOL/CS 309: Computational Biology
  • CS/MATH 334: Theory of Computation
  • CS 371: Design and Analysis of Algorithms
  • CS 372: Operating Systems
  • CS 401: Natural Language Processing


I enjoy designing efficient online algorithms for network and scheduling problems. Like a market speculator, an online algorithm must respond to input as it arrives, without knowing the future. I am also interested in computational biology problems.

An online algorithm is one that processes its input one element at a time instead of all at once like a traditional algorithm. For example, an online room scheduling algorithm would have to assign a room to each event as it becomes known, without knowing what events might need to be scheduled later. Online algorithms usually cannot come up with optimal solutions due to their lack of knowledge about the future. Instead, we try to design algorithms that find solutions that are provably within some factor of optimal.

In computational biology, I worked on a system for detecting riboswitches in DNA sequences. A riboswitch is a segment of a messenger RNA molecule that can change its shape to regulate the expression of genes. I am currently working on methods to detect the presence of nonretroviral DNA integrated into the DNA of mosquitoes (Aedes aegypti).


  • Embracing the Liberal Arts in an Interdisciplinary Data Analytics Program. In Proceedings of the 50th ACM SIGCSE Technical Symposium on Computer Science Education, 2019.
  • CS 1: Beyond Programming (special session summary, with Douglas Baldwin, Valerie Barr, Amy Briggs, Bruce Maxwell, and Henry Walker). In Proceedings of the 48th ACM SIGCSE Technical Symposium on Computer Science Education, 2017.
  • Discovering Computer Science: Interdisciplinary Problems, Principles, and Python Programming. Chapman & Hall/CRC Textbooks in Computing, Taylor & Francis Group, 2015.
  • Improved Upper Bounds for Online Malleable Job Scheduling (with Nathaniel Kell ’13). Journal of Scheduling, 2014.
  • A New Approach for Detecting Riboswitches in DNA Sequences (with Chinmoy Bhatiya ’09, Steven M. Johnson ’13, Joseph D. Sheets ’12, and Jeffrey S. Thompson). Bioinformatics 30(21), pp. 3012-3019, 2014.
  • Optimal Online Ring Routing (with K. R. Hutson)
 Networks 57(2), pp. 187-197, 2011
  • Online Malleable Job Scheduling for m ≤ 3 Information Processing Letters111(1), pp. 31-35, 2010
  • Competitive Online Scheduling of Perfectly Malleable Jobs with Setup Times (with W. Mao)
 European Journal of Operational Research187(3), pp. 1126-1142, 2008


Professional Service (includes Denison Service)
  • Director, Data Analytics program (2016-2019)
  • Chair, Information Technology Committee (2015-2016)
  • Faculty representative to the Academic Affairs Committee of the Board of Trustees (2013-2015)
  • Chair, Ad-hoc Teaching Resources Working Group (2013-2014)
  • Chair, Academic Affairs Council (2012-2013)
  • University Honor Committee and Academic Integrity Board (2009-2011)
  • Chair, Department of Mathematics and Computer Science (2006-2009)


Honors & Awards
  • Charles A. Brickman Teaching Excellence Award (2013)
  • Benjamin Barney Chair of Mathematics (2014-2019)
Student Collaborations
  • Finding Unexpected Viral Integrations in Aedes aegypti Genomes, Pritam Basnet, Michelle Rowland, and Khanh Tran, Summer 2019.
  • Developing a Standalone Version of the Denison Riboswitch Detector, Mitchell Keller, Summer 2015.
  • Power Management for Online Malleable Job Scheduling, Andrew Quinn, Senior Research (with Recognition), 2013–2014.
  • A Disequilibrium Multi-Country Macroeconomic Model with Agent-Based Portfolio Investors, Edward Takahashi, Senior Research, Fall 2013.
  • Bringing Extinct Sponges to Life: Modeling Stromatoporoid Growth with OpenGL, Trevor Masters, Summer 2013 (co-advised with David Goodwin, Geosciences)
  • Improved Upper Bounds for Online Malleable Job Scheduling, Nathaniel Kell, 2012–2013
  • A Web Tool for Detecting Riboswitches in Genomic Sequences, Steven Johnson, Summer 2012
  • Towards a More Realistic Metric for Online Ring Routing, Andrew Quinn, Summer 2012
  • Using Computational Algorithms to Further Examine and Visualize Riboswitch Domains, Joseph Sheets, Summer 2011 (co-advised with Jeff Thompson, Biology)