Teaching

Courses Taught

  1. CPSC 1210/1211, Computational Thinking (and Laboratory), Spring 2022, School of Computing, Clemson University.
    • This new course is a creative and engaging way to learn principles of computer science. Students learn to create and analyze programs using Snap!, a beginner friendly, graphical programming language that can be combined into complex programs and Python. The course is organized around the big ideas of computing, such as abstraction, design, recursion, concurrency, simulations, and limits of computing. Students learn how to apply these ideas to solve problems and critically reflect on how existing solutions impact people and society.
  2. CPSC 1070/1071, Introduction to Programming Methodology (and laboratory), Spring 2020, Spring 2021, School of Computing, Clemson University.
    • I taught an introductory core course for Freshmen/Sophomore BS Computer Science students in programming techniques and methodology in C and C++. Topics include structured programming, stepwise refinement, program design and implementation techniques, modularization criteria, program testing and verification, basic data structures, object-oriented programming and analysis of algorithms. I created lectures, assignments, quizzes and tests for both the lecture and laboratory sections of the course. Assignments had a visual computing and image processing focus and included 2D game development (using the SDL library), 2D scenario loading and computer animation.
  3. CPSC 4140/6140, Introduction to Human Computer Interaction, Spring 2011, Spring 2012, Spring 2013, Summer 2014, Spring 2015, Summer 2015, Spring 2016, Summer 2016, Spring 2017, Summer 2017, Spring 2019, Summer 2020, Spring 2021, Summer 2021, Spring 2022, Summer 2022, Spring 2023, Spring 2024, Summer 2024, School of Computing, Clemson University.
    • This is a course on the survey of human-computer interaction concepts, theory, practice and research. Covered the basic components of human-computer interaction, and interdisciplinary theoretical underpinnings. This is a core course for our Human Centered Computing PhD program. Informed and critical evaluation of computational systems. The course involved a user-oriented perspective, rather than system-oriented, with two thrusts: human (cognitive, social) and technological (input/output, interactions styles, devices). Course covered design guidelines, evaluation methods, participatory design, communication between users and system developers. Also, some basics principles of user centered design, usability evaluation, and quantitative/qualitative user analysis.
  4. CPSC 4110/6110, Virtual Reality Systems, Fall 2010, Fall 2011, Fall 2012, Fall 2014, Fall 2015, Fall 2016, Fall 2017, Fall 2018, Fall 2019, Fall 2020, Fall 2021, Fall 2022, Spring 2024, Fall 2024, School of Computing, Clemson University.
    • This is an introductory course in the theory, technology, software, design, applications and human factors issues of contemporary VR/AR system. This course is one of the senior electives for our BS/BA in computer science programs, an elective for the Master of Fine Arts in Digital Production Arts program, and one of the courses necessary to earn a concentration in Interactive Computing for MSCS students. Students learned the technical design and affordances of displays and tracking technologies; the technical aspects of geometry and image based virtual reality systems; to determine the basic requirements on interface, hardware, and software configurations of a VR/AR system; to design, implement and evaluate a VR/AR system. Groups of students work on designing, creating and evaluating an interactive VR experience. Some groups of students have also targeted the design and creation of applications for the 3D User Interface Contest at the annual IEEE International Conference on Virtual Reality (IEEE VR), with several students receiving authorships on peer-reviewed Demo and 3DUI Contest papers of their applications at the IEEE VR conference.
  5. HCC 8810, Fundamentals of Measurements and Evaluation of HCC Systems, Spring 2013, Spring 2014, Spring 2015, Spring 2016, School of Computing, Clemson University.
    • I designed and taught this course on quantitative research methods and reporting in empirical evaluation of computing systems for HCI and HCC research. It is a core course for our Human Centered Computing PhD program, and by the end of the semester provides students with knowledge and experience in applying parametric and non-parametric quantitative statistical evaluation methods to research data and reporting of the analysis results in HCI conferences and journal papers. The techniques include linear, non-linear and multiple regression analysis, univariate and multivariate analysis (ANOVA, MANOVA, ANCOVA), correlations, other common parametric and non-parametric analysis methods for HCC research. The course also covers best existing techniques for the reporting and visualization of the results for high impact publications in HCI and HCC research.
  6. DPA 4000/6000, Technical Fundamentals I – Python and C Programming, Fall 2013, School of Computing, Clemson University.
    • This is an introductory course in programming in Python and C for incoming graduate students from non-computing backgrounds to our DPA MFA and HCC PhD programs. The course involves syntax, semantics, algorithms, data structures and programming structures in Python and C programming languages with applications to visual computing problems: 2D game development, ray tracing, and image processing applications (interpolation, decimation, image enhancement and filtering). Created my own lectures, projects and other assessment materials.
  7. DPA 4010/6010, Technical Foundations II – C and C++ (+OOP) Programming, Spring 2014, School of Computing, Clemson University.
    • This is an introductory course in programming in C++ and object-oriented programming for students from non-computing background feeding to our Digital Production Arts MFA and HCC PhD programs. The course involves learning the syntax, semantics, algorithms, data structures and programming structures in C++ with applications to visual computing problems: 2D game development in OpenGL, 3D scene construction, image processing, and ray-tracing in computer graphics. Created all lectures, projects and assessments.
  8. CPSC 1020, Introduction to Programming II – C++ (+00P) Programming, Spring 2014, School of Computing, Clemson University.
    • This is a course in programming in C/C++ and object-oriented programming, which is a core course for incoming Freshmen and Sophomore students in our BS Computer Science program. The course involves learning the syntax, semantics, algorithms, data structures, and programming constructs in C/C++ including variables, pointers, classes, objects, functions, overloading /overriding, inheritance and polymorphism. Assignments involved visual computing and image processing problems such as scene geometry rendering, texturing, illumination, and a semester long project to create a ray tracer in a computer graphics scene.
  9. CS:22:14, Introduction to Virtual Environments and Embodied Conversational Agents, Spring 2008, Spring 2009, Department of Computer Science, University of Iowa.
    • For a first time at the University of Iowa, I designed and offered an introductory course in the theory, technology, software, design, application, and human factor issues in Virtual Environments. The course also covered the design and evaluation of Embodied Conversational Agents/Virtual Human Interfaces in Interactive Virtual Environments. The course also provides a general technical background and experience with computer graphics, user interface design, and computer vision. Topics on Virtual Humans included 3D modeling, rigging, and computer animation. This course is part theory and part application, with a semester long group project. Students created their own augmented and virtual environments. The topic was of their choosing.
  10. CPSC 1214, Introduction to Programming in C++, Fall 2006, Spring 2007, Department of Computer Science, University of North Carolina at Charlotte.
    • I served as the instructor on record for a core course for BS Computer Science students in object-oriented programming in C++. The course covers syntax and programming techniques, data structures, and basic algorithms in the C++ computer language and covered concepts such as function overloading, overriding, inheritance and polymorphism. I created instruction and assessment materials for students and as the instructor on record was fully responsible for teaching and grading the course.

New Program Development

  1. Human Centered Computing (HCC) PhD Program, Founding Member.
    • Starting in 2010, I worked alongside members of my Division to design, create and obtain approval for our Human Centered Computing PhD program. The program graduated its first PhD students in 2012, and today is among a select group of prestigious institutions offering the HCC PhD program. Designed and taught several core and elective courses as part of our newly established HCC PhD program, including VR Systems, HCI, Measurements and Evaluation of HCC Systems.

New Course Development

  1. HCC 8810, Fundamentals of Measurements and Evaluation of HCC Systems, School of Computing, Clemson University.
    • Founded the Measurements and Evaluation of HCC Systems course, designed and taught it as part of the Human Centered Computing PhD program, when the PhD program was conceived. It is now a core course for our HCC PhD students in quantitative methods and data analysis in HCC research.
  2. CPSC 4140/6140, Online Human-Computer Interaction (HCI) Course, School of Computing, Clemson University.
    • Created a novel course in offering the Human-Computer Interaction course online or remotely to appeal to a broader and diverse cohort of students from computing, non-computing and online graduate and undergraduate programs across Clemson University. As a result, since 2013, the online offering of the HCI course has garnered at least 40-50 students each semester it is offered. Besides students from the School of Computing, students from Psychology, Sociology, Communication, Human Factors, Industrial Engineering, Mechanical Engineering, Electrical Engineering as well as students from several online MS programs have successfully taken this course and learned the knowledge and skillsets to become usability and user experience engineers and consultants.