Virginia Tech

I began teaching classes in an adjunct instructor role for the Department of Computer Science in the Fall 2017 semester, transitioning to Visiting Assistant Professor in 2019 after finishing my PhD. The catalog description for each course I have taught are linked below.

  • Spring 2020
    • CS2064 – Intermediate Python — This course is a second level introduction to programming in Python, building on the computational problem-solving skills and Python language fundamentals introduced in the first course in the series. Topics include advanced uses of control flow and data processing, data structures, and computational techniques, as well as introducing object-oriented programming and modern data science pipelines. Learners will be able to create, interpret, and debug complex programs. Problems and projects in the course will be contextualized for scientists and engineers. By the end of the course, students should acquire the skills necessary to successfully implement Python programs in data science and production environments, produce object-oriented solutions to complex problems, and build a strong understanding the ethical implications of technological change.
    • CS2505 – Introduction to Computer Organization I — An introduction to the design and operation of digital computers. Works up from the logic gate level to combinational and sequential circuits, information representation, computer arithmetic, arithmetic/logic units, control unit design, basic computer organization, relationships between high level programming languages and instruction set architectures.
    • CS4784 – HCI Captone — The goal of CS4784 is to take you through the complete HCI design and implementation cycle for a significant team-based project. As you complete your project, you will work to identify design requirements, sketch wireframe design options, build and evaluate prototype systems, and cycle as necessary to refine your design and implementation. The goal is to optimize the experience of a user who interacts with your system. Remember: “It is easy to make things hard. It is hard to make things easy.”
  • Fall 2019
    • CS1064 – Introduction to Programming in Python — Developing computational problem solving skills and software solutions to a variety of multimedia, scientific, and engineering problems using the Python programming language. Statement sequencing, conditional program ow, iteration, functional decomposition, and recursion. Simple numeric data types, strings, lists, list comprehensions, sets, and dictionaries. Input/output of file-based data, content obtained from the web, and manipulation of digital images. Basic object-oriented concepts, classes, objects, and methods.
  • Spring 2019
    • CS1064 – Introduction to Programming in Python
  • Fall 2018
    • CS1064 – Introduction to Programming in Python
  • Spring 2018
    • CS2505 – Introduction to Computer Organization I
  • Fall 2017
    • CS2505 – Introduction to Computer Organization I