CPSC 1214, Introduction to Programming in C++, Fall 2006, Spring 2007, Department of Computer Science, University of North Carolina at Charlotte.
Instructor on record for a section of the 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.
CS:22:14, Introduction to Virtual Environments and Embodied Conversational Agents, Spring 2008, Spring 2009, Department of Computer Science, University of Iowa.
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.
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, School of Computing, Clemson University.
Instructor for the introductory course in the theory, technology, software, design, applications and human factors issues of contemporary VR/AR system. 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 papers of their applications at the IEEE VR conference.
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 School of Computing, Clemson University.
Taught the 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. 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.
HCC 8810, Fundamentals of Measurements and Evaluation of HCC Systems, Spring 2013, Spring 2015, School of Computing, Clemson University.
Designed and taught a course on quantitative research methods and reporting in empirical evaluation of computing systems for HCI and HCC research. It is a core course in the HCC 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 multiple regression analysis, univariate and multivariate analysis (ANOVA, MANOVA, ANCOVA), correlations, other common parametric and non-parametric analysis methods for HCC research.
DPA 4000/6000, Technical Fundamentals I – Python and C Programming, Fall 2013, Clemson University, School of Computing.
Taught 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 and image processing applications (interpolation, decimation, image enhancement and filtering). Created my own lectures, projects and other assessment materials.
DPA 4010/6010, Technical Foundations II – C and C++ (+OOP) Programming, Spring 2014, School of Computing, Clemson University.
Taught an introductory course in programming in C++ and object-oriented programming for students from non-computing background feeding to our DPA 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, image processing, and ray-tracing in computer graphics. Created all lectures, projects and assessments.
CPSC 1020, Introduction to Programming II, Spring 2014, School of Computing, Clemson University.
Taught a section of the course in programming in C/C++ and object-oriented programming 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.
CPSC 1070 Introduction to Programming Methodology (and CPSC 1071 Introduction to Programming Methodology laboratory), Spring 2020, Spring 2021 Clemson University, School of Computing.
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.
New Program Development
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
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.
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.