Teaching
American University
CSC 485/685: Introduction to Information Visualization
Information visualization helps people explore or explain data through interactive software that exploits the capabilities of the human perceptual system. A key challenge in information visualization is designing a useful spatial mapping of a dataset that is not inherently spatial and coupling that mapping to interaction techniques that allow people to intuitively explore the dataset. Information visualization draws on the intellectual history of several traditions, including computer graphics, human-computer interaction, cognitive psychology, semiotics, graphic design, statistical graphics, cartography, and art. The synthesis of relevant ideas from these fields with new methodologies and techniques made possible by interactive computation are critical for helping people keep pace with the torrents of data confronting them.
Instructor: Spring 2022, Spring 2021, Spring 2020, Spring 2019
CSC 484/684: Ethical and Legal Issues in Computing
Students discuss the models and systems that provide access to information, control our cars, create policy, and wage war. Students analyze arguments for and against systems with remarkable consequences in freedom of expression, privacy, intellectual property, contracts, and cybercrime. Through reading, in-class discussion, debate, and research, students learn to develop arguments in support or against the legal and ethical aspects of consequential data science systems. AU Core Integrative Requirement: Written Communication and Information Literacy II. Crosslist: CSC-684. Prerequisite: junior standing; and completion of Written Communication and Information Literacy I requirement. Note: No prior technical experience with data science or computing required.
Instructor: Spring 2022, Spring 2021
CSC 208: Introduction to Computer Science II
Students develop programming skills that serve as a foundation for further study in computer science. They learn object-oriented programming and design software that models real-world systems from our networked world and gain an appreciation for the role of algorithms and data structures in problem-solving and software design (e.g., objected-oriented design, lists, files, searching, and sorting). Elementary numerical methods and the construction of a simple graphical user interface (GUI) are also discussed.
Instructor: Fall 2021, Fall 2020, Fall 2019, Spring 2019, Fall 2018
CSC 450/650: Software Engineering
This course presents techniques and tools in software design and development and applies them to the design and implementation of a large software system. The discussion includes the software life cycle; analysis, design, implementation, testing and debugging; maintenance and documentation; software reliability, portability, and expandability; and user interface.
Instructor: Fall 2021, Fall 2020, Fall 2019
Georgia Institute of Technology
CS 4001: Computing, Society, and Professionalism
Examines the role and impact of information and communication technology in society, with emphasis on ethical, professional, and public policy issues.
Instructor: Fall 2017
CS 4460: Introduction to Information Visualization
Introduction to principles and techniques of information visualization, the presentation of primarily abstract data to help people understand, analyze and make sense of data.
Instructor: Summer 2015, 2017
CS 7450: Information Visualization
Study of computer visualization principles, techniques, and tools used for explaining and understanding symbolic, structured, and/or hierarchical information. Includes data and software visualization.
TA: Fall 2014
Central Piedmont Community College
SGD 113: Simulation and Game Programming
Introduction to programming concepts through topics in game design. A first-year introductory computer science course at the undergraduate level.
Instructor: Spring 2007
SGD 213: Simulation and Game Programming II
Introduction to programming concepts through topics in game design. A first-year advanced introductory computer science course at the undergraduate level.
Instructor: Spring 2007
SGD 125: Artificial Intelligence for Simulation and Games
Introduction to artificial intelligence concepts through topics in game design. A second-year elective undergraduate course.
Instructor: Spring 2007
SGD 126: Engine Design for Simulation and Games
Introduction to linear algebra and graphics concepts necessary for 3D rendering. A second-year elective undergraduate course.
Instructor: Spring 2007