Teaching
CS110: Sociotechnical Dimensions of Computing in the Age of AI
(Fall 2024)
The rapid advancement of artificial intelligence (AI) is transforming the way we work, interact, and make decisions. AI is integrated into applications and devices that are woven into our daily lives. How does AI work? What impact will AI have on individuals, communities, and our global society? This course aims to provide students with the knowledge and skills to become informed digital citizens in the age of AI, ready to navigate the digital landscape. Students will gain fundamental technical understanding of how computers, the Web, and AI work, and will study three programming languages: HTML5, CSS, and JavaScript. Students will also examine and discuss societal and ethical issues related to the Web and AI technologies, and consider responsible and future use of these technologies. This course may be used to fulfill the introduction requirement for the MAS major.
CS366: Advanced Projects in Interactive Media
(Fall 2024, Fall 2023)
In this course, students with deep interest in interactive media drive cutting-edge research that shapes and examines novel user experiences with technology. Students work in small groups to identify a direction of research, explore and iterate over designs, prototype at varying fidelities, build working systems, consider ethical implications, conduct evaluative studies, and report findings. This course is designed for students who have experience in designing and implementing interactive media through either curricular activities or by working on projects of their own. Students will be expected to have moderate levels of experience with front-end web development. This course may be used to fulfill the capstone requirement for the MAS major.
CS220: Human-Computer Interaction (HCI)
(Summer 2024, Summer 2023, Fall 2022, Fall 2021, Fall and Spring 2020, Spring 2018, Fall 2017)
Human-Computer Interaction is one of the areas that have transformed the way we use computers in the last 30 years. Topics include methodology for designing and testing user interfaces, interaction styles (command line, menus, graphical user interfaces, virtual reality, tangible user interfaces), interaction techniques (including use of voice, gesture, eye movements), design guidelines, and user interface software tools. Students will design a user interface, program a prototype, and test the results for usability.
CS320: Tangible User Interfaces
(Spring 2025, Spring 2024, Spring 2023, Spring 2022, Fall 2021, Fall 2020, Fall 2018 )
Tangible user interfaces emerge as a novel human-computer interaction style that interlinks the physical and digital worlds. Extending beyond the limitations of the computer mouse, keyboard and monitor, tangible user interfaces allow users to take advantage of their natural spatial skills while supporting collaborative work. Students will be introduced to conceptual frameworks, the latest research, and a variety of techniques for designing and building these interfaces. Developing tangible interfaces requires creativity as well as an interdisciplinary perspective. Hence, students will work in teams to design, prototype and physically build tangible user interfaces.
CS230: Data Structures
(Spring 2022, Fall 2021, Spring 2019, Spring 2018, Fall 2015)
An introduction to techniques and building blocks for organizing large programs. Topics include: modules, abstract data types, recursion, algorithmic efficiency, and the use and implementation of standard data structures and algorithms, such as lists, trees, graphs, stacks, queues, priority queues, tables, sorting, and searching. Students become familiar with these concepts through weekly programming assignments using the Java programming language.
CS49H: Human Computer Interaction in the Age of Automation
(Spring 2021)
We are living in the age of automation, where artificial intelligence (AI) is integrated into apps and devices that are woven into our daily lives. Our dependency on automated systems such as expert systems, conversational agents, self-driving cars, and drones in daily tasks will increase in the near future, and will foster new forms of human-automation interaction. In this course we will explore the following questions related to designing human-automation interaction, inluding: How can we design human-automation interactions, which are intuitive, and promote safety, transparency, trust, productivity and wellbeing? How can we design automated systems that promote equity and dignity? What impact will automation have on individuals, communities, and our global society?
CS 115: Computing for the Socio-Techno Web
(Spring 2019, Fall 2018, Summer 2018)
A broad exposure to the fundamental concepts of computer science and Media Arts and Sciences (cross-listed as MAS115). Students get hands-on programming experience building Web applications using HTML, CSS and JavaScript. Given that most people experience the Web today using computer technologies from online networks (Facebook, Twitter, Wikipedia, etc), the technical topics are explored along with the social aspects of computing. We study the structure of the Social Web, and focus on a variety of cyberspace issues such as information availability, personal and group privacy, online security, critical thinking, online propaganda and manipulation, restricted resources, self-perception, and decision-making. No prior knowledge of computing is assumed.
CS 111: Computer Programming and Problem Solving
(Spring 2016, Fall 2011)
An introduction to problem solving through computer programming. Using the Java programming language, students learn how to read, modify, design, debug, and test algorithms that solve problems. Programming concepts include control structures, data structures, abstraction, recursion, modularity, and object-oriented design. Students explore these concepts in the context of interactive programs involving graphics and user interfaces.