Teaching & Curriculum
Active learning, open educational resources, lower-division computer science leadership, and pedagogical fellowships at the University of Georgia.
Teaching Philosophy
My teaching philosophy reflects a long-term goal to integrate open science, active open educational resources (OER), and peer-based active learning in a way that facilitates effective, low-anxiety computer science education at scale so that as many students as possible can actively engage in discipline-specific activities while learning.
Computer Science Undergraduate Assistant (CSUA) Program
Directs the departmental CSUA program, training and mentoring undergraduate teaching assistants to support active learning, lab facilitation, and peer tutoring across lower-division computer science courses.
Courses Taught
CSCI 1300: Introduction to Programming with Python
UndergraduateAn introduction to algorithmic problem solving using the Python programming language: objects, values, types, expressions, simple statements, compound statements, inputs, and outputs, intended for anyone interested in learning how to program.
CSCI 1301: Introduction to Computing and Programming
UndergraduateIntroduction to algorithmic problem solving, procedural and object-oriented programming in Java, fundamental data types, control structures, methods, arrays, classes, and software testing.
CSCI 1302: Software Development
UndergraduateSoftware development techniques in an object-oriented language (Java) emphasizing systems methods, top-down design, unit testing, modularity, GUI design, streams, and structured techniques.
CSCI 1730: Systems Programming
UndergraduateIntroduction to systems-level programming in C/C++ on UNIX/Linux platforms, process control, system calls, memory management, and socket programming.
CSCI 2610: Discrete Mathematics for Computer Science
UndergraduateFundamental mathematical tools used in computer science: sets, logic, inductive proofs, recurrences, combinatorics, discrete probability, and graph theory.
CSCI 3030 / 3030E: Computing, Ethics, and Society
UndergraduateSocial and ethical issues relating to computer science and information technology: privacy, intellectual property, open source, the digital divide, professional ethics, and current events.
CSCI 4300: Web Programming
UndergraduateClient-server web architectures, dynamic DOM manipulation, REST APIs, full-stack web applications, asynchronous JavaScript, and backend integration.
CSCI 4760 / 6760: Computer Networks
Undergraduate / GraduateIntroduction to computer networks, focusing on the Internet architecture, protocol layering, application-layer protocols, transport layer (TCP/UDP), network layer (IP routing), link layer protocols, local area networks, network security, and network programming.
CSCI 4800 / 6800: Human-Computer Interaction (HCI)
Undergraduate / GraduateDesign, development, and evaluation of user interfaces for computer systems. Concepts in human factors, usability, and interface design, and the effects of human capabilities and limitations on interaction.
Teaching Awards & Pedagogical Fellowships
Teaching Excellence in Computer Science Award
School of Computing, University of Georgia • Recognizing sustained instructional excellence and curricular leadership in computer science education.
Inducted Member, University of Georgia Teaching Academy
University of Georgia Teaching Academy • Inducted on November 9, 2023 as one of 16 university-wide faculty members in recognition of outstanding commitment to teaching and pedagogical leadership.
Teaching Academy Fellow
Teaching Academy, University of Georgia
Excellence in Undergraduate Teaching Award (Finalist)
Franklin College of Arts and Sciences, University of Georgia
Online Learning Fellow
Office of Online Learning, University of Georgia
Writing Fellow
Center for Teaching and Learning, University of Georgia
Teaching Excellence in Computer Science Award
Department of Computer Science, University of Georgia
Outstanding Faculty Teaching Award
Department of Computer Science, University of Georgia