Skip to content

Assoc. Professor of Computer Science
James Madison University.

Office Hours (Fall 2026)

Mon. 14:00-15:30
Tue. 10:00-11:00
Wed. 14:00-15:30
Th. 10:00-11:00

Fall 2026 Teaching

  • CS 227
    Discrete Structures I
  • CS 452
    Algorithm Design and Analysis

Contact

Useful CS Student Links

Social

GitHub Research Gate

Other Places

My Blog: The Obtuse Geometer

My Lab: Ars Geometrica

Teaching

Fall 2026:

  • Discrete Structures I (CS 227)
  • Algorithm Design and Analysis (CS 452)

Course materials: CS 227 interactive readings and a CS 227 proof checker (in development).

I was named the CISE Distinguished Teacher for 2022–23.

Prior Semesters

  • Spring '26. Applied Algorithms (CS 412)
  • Spring '26. Discrete Structures I (CS 227)
  • Fall '25. Algorithm Design and Analysis (CS 452)
  • Fall '25. Discrete Structures I (CS 227)
  • Summer '25. Rigidity Theory (CS 480) and CS 430, CS Rigidity Theory in the UK study abroad
  • Fall '24. Algorithm Design and Analysis (CS 452)
  • Fall '24. Discrete Structures II (CS 327)
  • Spring '24. Applied Algorithms (CS 412)
  • Spring '24. Discrete Structures I (CS 227)
  • Fall '23. Algorithm Design and Analysis (CS 452)
  • Fall '23. Data Structures and Algorithms (CS 240)
  • Summer '23. Rigidity Theory (CS 480) and CS 430, CS Rigidity Theory in the UK study abroad
  • Spring '23. Applied Algorithms (CS 412)
  • Spring '23. Discrete Structures I (CS 227)
  • Fall '22. Algorithm Design and Analysis (CS 452)
  • Fall '22. Discrete Structures I (CS 227)
  • Spring '22. Discrete Structures II (CS 327)
  • Spring '22. Programming Fundamentals (CS 149)
  • Fall '21. Algorithm Design and Analysis (CS 452)
  • Fall '21. Discrete Structures II (CS 327)
  • Spring '21. Applied Algorithms (CS 412)
  • Spring '21. Discrete Structures II (CS 327)
  • Fall '20. Algorithm Design and Analysis (CS 452)
  • Fall '20. Programming Fundamentals (CS 149)
  • Spring '19. Computational Geometry (CS 430)
  • Spring '19. Programming Languages (CS 430)
  • Fall '19. Algorithm Design and Analysis (CS 452)
  • Fall '19. Programming Fundamentals (CS 149)
  • Summer '19. Rigidity Theory (CS 480)
  • Spring '19. Discrete Structures II (CS 327)
  • Spring '19. Programming Languages (CS 430)
  • Fall '18. Programming Fundamentals (CS 149)
  • Fall '18. Algorithm Design and Analysis (CS 452)
  • Spring '18. Discrete Structures II (CS 327)
  • Spring '18. Programming Languages (CS 430)
  • Fall '17. Discrete Structures II (CS 327)
  • Fall '17. Programming Fundamentals (CS 149)
  • Spring '17. Programming Languages (CS 430)
  • Spring '17. Computational Geometry (CS 480)
  • Fall '16. Data Structures and Algorithms (CS 240)
  • Fall '16. Applied Complexity Theory (CS 552)
  • Spring '16. Discrete Structures II (CS 327)
  • Fall '15. Data Structures and Algorithms (CS 240)
  • Fall '15. Programming Fundamentals (CS 139)