Teaching and Courses

Teaching Awards

2016 IEEE Computer Society Computer Science and Engineering Undergraduate Teaching Award
Citation: “For outstanding contributions to undergraduate computer science education through innovative teaching and commitment to increasing enrollment and diversity in computer science programs.”
2014 UVa All-University Teaching Award
2012 UVa ACM Professor of the Year
2011 Trigon Engineering Society Thomas E. Hutchinson Faculty Award Winner
2010 Hartfield-Jefferson Scholars Teaching Prize (first year ever awarded)
2010 UVa ACM Professor of the Year
2010 Trigon Engineering Society Thomas E. Hutchinson Faculty Award Finalist
Teaching Portfolio - Full Document

[PDF]
Personal Teaching Statement

[PDF]
Course Information

NOTE: Some links go to my latest iteration of each course. Numbers in parentheses represent overall instructor rating.
My Calendar - Google Calendar

Fall 2016 Courses

CS 1110 - Introduction to Computer Science
CS 4720 - Mobile Application Development

Spring 2016 Courses

CS 1110 - Introduction to Computer Science - Teaching Evaluations (4.59/5.0)
CS 4720 - Web and Mobile Systems - Teaching Evaluations (4.34/5.0)

Fall 2015 Courses

CS 1110 - Introduction to Computer Science - Teaching Evaluations (4.60/5.0)
CS 4720 - Web and Mobile Systems - Teaching Evaluations (4.20/5.0)

Summer 2015 Course

CS 4730 - Computer Game Design

Spring 2015 Courses

CS 1110 - Introduction to Computer Science - Teaching Evaluations (4.42/5.0)
CS 4730 - Computer Game Design - Teaching Evaluations (4.79/5.0)

Fall 2014 Courses

CS 1110 - Introduction to Computer Science - Teaching Evaluations (4.38/5.0)
CS 4720 - Web and Mobile Systems - Teaching Evaluations (4.22/5.0)

Spring 2014 Courses

CS 4720 - Web and Mobile Systems - Teaching Evaluations (4.64/5.0)
CS 4730 - Computer Game Design - Teaching Evaluations (4.57/5.0)

Fall 2013 Courses

CS 1110 - Introduction to Computer Science - Podcast (11:00 AM lecture) - Teaching Evaluations (4.69/5.0)
CS 4720 - Web and Mobile Systems - Podcast - Teaching Evaluations (4.68/5.0)

Summer 2013 Courses

CS 4730 - Computer Game Design

Spring 2013 Courses

CS 1110 - Introduction to Computer Science - Podcast (1:00 PM lecture) - Podcast (3:00 PM lecture) - Teaching Evaluations: Section 1 (4.57/5.0) | Section 2 (4.42/5.0)
CS 4750 - Database Systems - Podcast - Teaching Evaluations (4.34/5.0)

Fall 2012 Courses

CS 1110 - Introduction to Computer Science - Podcast (11:00 AM lecture) - Podcast (12:00 PM lecture) - Teaching Evaluations: Section 1 (4.66/5.0) | Section 2 (4.62/5.0)
CS 4720 - Web and Mobile Systems - Podcast - Teaching Evaluations (4.55/5.0)

Summer 2012 Courses

CS 2110 - Software Development Methods

Spring 2012 Courses

CS 1110 - Introduction to Computer Science - Podcast - Teaching Evaluations: Section 1 (4.55/5.0) | Section 2 (4.57/5.0)
CS 4501 - Service Learning Practicum - Teacher Overall Rating: 4.8/5.0 (Evaluations joint with Prof. Aaron Bloomfield
CS 4750 - Database Systems - Podcast - Teaching Evaluations (4.6/5.0)

Fall 2011 Courses

CS 1110 - Introduction to Computer Science - Podcast - Teaching Evaluations (4.64/5.0)
CS 4720 - Web and Mobile Systems - Podcast - Teaching Evaluations (4.69/5.0)

Summer 2011 Courses

CS 2110 - Software Development Methods

Spring 2011 Courses

CS 1110 - Introduction to Computer Science - Podcast - Teaching Evaluations: Section 1 (4.4/5.0) | Section 2 (4.43/5.0
CS 4750 - Database Systems - Podcast - Teaching Evaluations (4.68/5.0)

Fall 2010 Courses

CS 1110 - Introduction to Computer Science - Podcast - Teaching Evaluations (4.58/5.0)
CS 4501 - Web Information Systems Engineering - Podcast - Teaching Evaluations (4.56/5.0)

Summer 2010 Courses

CS 2110 - Software Development Methods

Spring 2010 Courses

CS 2110 - Software Development Methods - Podcast - Teaching Evaluations (4.63/5.0)
CS 3240 - Advanced Software Development - Podcast - Teaching Evaluations (4.43/5.0)

Fall 2009 Courses

CS 2110 - Software Development Methods - Teaching Evaluations: Section 1 (4.52/5.0) | Section 2 (4.51/5.0)
CS 4501 - Web Information Systems Engineering - Teaching Evaluations (4.61/5.0)

Summer 2009 Courses

CS 201 - Software Development Methods

Spring 2009 Courses

CS 201 - Software Development Methods - Teaching Evaluations (4.49/5.0)
CS 340 - Advanced Software Development - Teaching Evaluations (4.43/5.0)

Fall 2008 Courses

CS 201 - Software Development Methods - Teaching Evaluations: Section 1 (4.48/5.0) | Section 2 (4.35/5.0)
CS 462 - Database Systems - Teaching Evaluations (4.61/5.0)

Spring 2008 Courses

CS 150 - Computing: From Ada to the Web - Teaching Evaluations (4.15/5.0)
CS 201 - Software Development Methods - Teaching Evaluations (4.08/5.0)

Fall 2007 Courses

CS 201 - Software Development Methods - Teaching Evaluations (4.02/5.0)
CS 462 - Database Systems - Teaching Evaluations (4.54/5.0)

Teaching Background

NC State Outstanding Teaching Assistant Award - Spring 2005
Certificate of Accomplishment in Teaching Program Member
Coursework in EAC 786 - Teaching for College

Previous Courses

[Download teaching evaluations]
CSC 440 - Database Management Systems - Summer 2006
CSC 440 - Database Management Systems - Summer 2005
CSC 440 - Database Management Systems - Summer 2004
CSC 440 - Database Management Systems - Summer 2003

Teaching Assistant

CSC 326 - Software Engineering - Teaching Assistant for Dr. Laurie Williams - Fall 2005
CSC 326 - Software Engineering - Teaching Assistant for Dr. Purush Iyer - Spring 2005
CSC 326 - Software Engineering - Teaching Assistant for Dr. Laurie Williams - Fall 2004
CSC 326 - Software Engineering - Teaching Assistant for Dr. Laurie Williams - Fall 2002
Advising and Mentoring

Undergraduate Advisees

  • 2008-2009 - 28 Advisees (CS, BACS, First-Year SEAS)
  • 2009-2010 - 42 Advisees (CS, BACS, First-Year SEAS)
  • 2010-2011 - 40 Advisees (CS, BACS, First-Year SEAS)
  • 2011-2012 - 32 Advisees (CS, BACS, First-Year SEAS)
  • 2012-2013 - 44 Advisees (CS, BACS, First-Year SEAS)
  • 2013-2014 – 50 Advisees (CS, BACS, First-Year SEAS)
  • 2014-2015 – 52 Advisees (CS, BACS, First-Year SEAS)
  • 2015-2016 – 45 Advisees (CS, BACS, First-Year SEAS)
Also one of two primary contacts for all CS minors.

Senior Thesis Projects

Fall 2015 – Spring 2016
  • Members of Game Design Research Group with Prof. Mark Floryan
Fall 2014 – Spring 2015
  • Jennifer Lu – Gamification in Education
  • Anna Greene – Gamification in Education
  • (Also other members of the Game Design Research Group with Prof. Mark Floryan)
Fall 2013 – Spring 2014
  • Dru Knox – Software Maintenance Lifecycles with Non-Profit Software Systems
  • Travis Pennetti – Educational Video Games
  • Connie Xie – Automated Quadcopters with Android Devices
Fall 2012 - Spring 2013 (5)
  • Michael Legore - Software Maintenance Lifecycles with Non-Profit Software Systems
  • Daniel Miller - Visualizing UVa Enrollment Trends
  • Amanda Ray - Efficient User Interfaces for Aiding Students with Enrollment
  • Hunter Williams - Automated Quadcopters with Android Devices
  • Samuel Wilson - Automated Quadcopters with Android Devices
Fall 2011 - Spring 2012 (8)
  • Alex Johnson - Software for Non-Profit Organizations
  • Matt Russell - Software for Non-Profit Organizations
  • Erik Davis - An Evaluation of Python as an Effective CS1 Language
  • Harry Bowron - Open-source Software for Teaching Chemistry
  • Navid Hosseini - A More Cost-Effective Unattended Ground Sensor Using Commercial Off-the-Shelf Products
  • Manuel Cordovez (SIE)- A More Cost-Effective Unattended Ground Sensor Using Commercial Off-the-Shelf Products
  • Katie Hempenius (SIE)- A More Cost-Effective Unattended Ground Sensor Using Commercial Off-the-Shelf Products
  • Reed Wilson (ECE)- A More Cost-Effective Unattended Ground Sensor Using Commercial Off-the-Shelf Products
Fall 2010 - Spring 2011 (11)
  • Jared Harding - Mobile HCI for Course Selection
  • Calvin Li - Voice Interface for Portable Learning
  • George Washington - Voice Interface for Portable Learning
  • Bennett Sorbo - CavDaily Advertising
  • Nikhita Karki - Scheduling System for Student Volunteers at UVa Hospital
  • Daniel Magnusson - Motion Sickness with Video Games
  • Kevin Leach - Prescription Databases
  • Michael Devine - Generating Music and Art using Microsoft Kinect
  • Olex Ponomarenko - Generating Music and Art using Microsoft Kinect
  • Derrick Brameyer - Agile Development in Student Projects (Ind. Study)
  • Alan Kush - Agile Development in Student Projects (Ind. Study)
Fall 2009 - Spring 2010 (9)
  • Matt Beattie - Bluetooth Identification for Vehicles
  • Ryan Grigsy - Security for Emergency Announcement Systems
  • Joshua Joyner - Lego Mindstorm NXT Sensor Simulation
  • Seth Micalizzi - Mobile GPS Social Applications
  • Charles Plucker - Mobile Virtual Reality
  • Emma Rosenfeld - Teaching Time Concepts to Early Elementary Students
  • John Szmuski - Bluetooth Identification for Vehicles
  • Steven Trombetta - PairEval v2.0
  • Jessica Vasconcellos - Student timecard system for Newcomb Hall
Fall 2008 - Spring 2009 (4)
  • Jeffery Gaither - Web Software Source Control Management and Users
  • Michael Miller - An Analysis of Static Metrics in Open-Source Software Projects
  • Benjamin Plunkett - UVaCollab: Compliance with FERPA
  • Joshua Sennett - Compatibility of Partnered Students in Computer Science Education
Fall 2007 - Spring 2008 (4)
  • Eric Bradbury - A New Paradigm for Tutoring at the School of Engineering and Applied Science
  • Fred Dysart - PHP Based Automated Fix for SQL Injection Attacks
  • Maureen Maughn - Web-Based Kennel System in PHP and MySQL
  • Danny Shih - Integrated Querying in C# using Microsoft LINQ
Evidence of Self-Improvement

  • Podcasting of courses for self-review
  • Peer evaluators have watched me teach and have provided critiques (Profs. Horton, Bloomfield, and Humphrey)
  • Constant feedback from students through message boards and anonymous feedback (available by request)
  • Continued research in CS education
  • Continued participation in education conferences
Curriculum Efforts

Committees
  • Chair, CS Undergrad Curriculum Committee
  • Chair, SEAS Undergrad Curriculum Committee
  • Member, eText Pilot Advisory University Committee
  • SEAS Summer Advising
New Courses Created
  • CS 4720 - Web & Mobile Systems
  • CS 4970 and CS 4971 - Service Learning Practicum
Courses Revamped / Introduced New Technology
  • CS 1110 - Added second programming language, scaled to much larger size
  • CS 1120 - Introduced two new programming languages
  • CS 2110 - Introduced Android phone projects
  • CS 3240 - Introduced Lego MINDSTORM NXTs and Bluetooth projects
  • CS 4750 - Introduced cloud and distributed database systems
Letters of Support

  • Unsolicited letter of support from The Society of the Dawn, a secret society at UVa [PDF]