Teaching

CPSCI 410
Senior Seminar: HCI for Social Good

Fall 2023

This course introduces methods and tools used in Human Computer Interaction to design software that meets user needs. Students will work in teams to design, implement, and evaluate systems for clients with the goal of developing software that furthers social good. Students will work in teams of 3-4 to develop custom software for non-profits in the Central New York Area with a focus on aiding organizations that support underrepresented minorities. Key concepts include user research, design, coding, iterative design, prototyping, documentation, user evaluation, and computing for social good.

CPSCI 360
Developing Accessible User Interfaces

Fall 2022 & 2023

Introduction to access technology and the development of accessible systems. In this course, students build and evaluate various access technologies. Topics include text-to-speech, speech recognition, screen readers, screen magnification, alternative input, tactile displays, and web transformation. This course teaches students the deep inner workings of today’s user interface technology and serves as a guide for building the user interfaces of the future. Please note that there are some differences between this course (taught at Hamilton College) and the version taught at Barnard.

CPSCI 101
Computer Science for All

Spring 2023

The first course in computer science is an introduction to algorithmic problem-solving using the Python programming language. Topics include primitive data types, mathematical operations, structured programming with conditional and iterative idioms, functional abstraction, and objects. Students apply these skills in writing programs to solve problems in domains across the liberal arts. No previous programming experience necessary.

How to enroll: This class is enrolled on a first-come/first-served basis through the registrar. If you are interested in joining the class but it is full, please join the wait list and attend the first week of classes. Students who do not attend the first week of classes will be dropped as per Hamilton’s policy. Students will get off the wait list on a first-come/first-served basis with priority given to students who attend class. The number of spots in this course is limited by the physical number of chairs in the mandatory labs, and cannot be increased over the cap. Please do not email me requesting a spot in the class.

CPSCI 220
Principles of Programming Languages

Fall 2022

Investigation into the nature, features, design, and implementation of programming languages. Students will gain experience with a wide variety of programming languages through programming exercises. Topics will include, among others, object-oriented programming, functional programming, higher-order functions, type systems, and polymorphism. Prerequisites, 102 or 111 or 112; or, senior standing and permission of instructor.

COMS BC3162:
Developing Accessible User Interfaces

Spring 2020, 2021, 2022

Introduction to access technology and the development of accessible systems. In this course, students build and evaluate various access technologies. Topics include text-to-speech, speech recognition, screen readers, screen magnification, alternative input, tactile displays, and web transformation. This course teaches students the deep inner workings of today’s user interface technology and serves as a guide for building the user interfaces of the future. Taught at Barnard College.

How to enroll: I am managing the waitlist for this class as an instructor-controlled waitlist. To be considered for being let into the class, please fill out the form at (https://forms.gle/8aaDHp8azWphF37s8), which asks a few questions about your interest in the class. Priority will be given to seniors, with about half of the slots reserved for Barnard students, as well as consideration of your answers to these questions. I will make an initial round of enrollments from the waitlist on November 30th, considering all responses that have been received by 9 am ET on November 30th. You can see the syllabus for the class below. Please do not email me requesting a spot in the class.

COMS BC3364:
Introduction to Contextual Design for Technology

Fall 2019, 2020, 2021

This is an undergraduate course that introduces students to the methods and tools used in Contextual Inquiry (CI), User Experience (UX), and User Interface (UI) design. This course focuses on the early design stages of a product’s lifecycle, and aims to ensure the product will meet user needs; some example tools and methods to be covered include personas, scenarios, storyboards, interviews, wireframing, prototyping, InVision, Axure, Balsamiq, etc.

This class will serve as an introduction to these methods; no prior design experience is necessary. In this course, students will work on group projects covering one or more of the CI methods for products designed for today’s world of ubiquitous and mobile technology. Students will also participate in a final group project designing for a real context: the students will work with a local client to define their needs and requirements, with the end goal that the students’ design will be incorporated into the client’s real product. Developers with experience in UX/UI design methods are in high demand in today’s software industry, and the projects students work on in this course will strengthen their portfolios. Taught at Barnard College.

How to enroll: This class is enrolled on a first-come/first-served basis on SSOL. Please do not email me requesting a spot in the class.

The first few assignments for the course can be found in intro-assignments.zip.

COMS W3998 / COMS 4901:
Projects in Computer Science

Available Fall, Spring, Summer A, and Summer B

This is an independent project involving laboratory work, computer programming, analytical investigation, or engineering design. This course may be repeated for credit, but not for a total of more than 3 points of degree credit. Consult the department for section assignment. Taught at Barnard College.

Pre-College Program: Accessibility in the World and on the Web

Summer 2021

This is a summer course that introduces students to Access Technology (AT) and web accessibility. This class is based on the belief that everyone has the capability to design effective technology. Access technology, technology that makes accessible what otherwise isn’t, has the potential to increase autonomy and improve millions of people’s ability to live independently. This potential is currently under-realized because the expertise needed to create the right AT is in short supply and the custom nature of AT makes it difficult to deliver inexpensively. Taught at Barnard College.

This course teaches how AT is built to work within the tough technical and human constraints in which it must operate. As early adopters, people with disabilities have inspired a host of future user interface technologies, e.g., conversational assistants, text-to-speech, speech recognition, optical character recognition, predictive typing, tactile displays, etc. People with disabilities continue to be the first users of interface next-generation technologies that are gradually adopted widely. This course does not only teaches you the deep inner workings of today’s user interface technology but also serves as a guide for building the user interfaces of the future. Topics include: web accessibility, screen readers, alternative input, technology for language disorders, and ethics.

In this class, you’ll be exposed to a wide range of interactive accessible technology, learn how it is built, and practice building accessible web pages using HTML and CSS. This is directly beneficial if you want to have an impact in this important area, and broadly beneficial to anyone who wants to build interactive systems.  No prior experience with HTML, CSS, or JavaScript is necessary, though it is beneficial.

How to enroll: I am managing the waitlist for this class as an instructor-controlled waitlist. To be considered for being let into the class, please fill out the form at https://forms.gle/Z68kRF4XoJBSCS9z5 which asks a few questions about your interest in the class. Please write no more than 100 words per question. Priority will be given to seniors, with about half of the slots reserved for Barnard students, as well as consideration of your answers to these questions.

I will make an initial round of enrollments from the waitlist on December 11 after pre-registration ends, considering all responses that have been received by 10 am ET on December 11. Please do not email me requesting a spot in the class.

Pre-College Program:
User Experience Design for Technology

Summer 2020

This is a summer course that introduces students to the methods and tools used in User Experience (UX), and User Interface (UI) design. This course focuses on the early design stages of a product’s lifecycle, and aims to ensure the product will meet user needs; some example tools and methods to be covered include personas, scenarios, storyboards, wireframing, Balsamiq. Taught at Barnard College.

COP3502:
Introduction to Programming Fundamentals I

Summer 2019

This is the first course in a two-semester introductory sequence for students with no prior programming experience. It explores major concepts of computer science and the process of computer programming, including object-oriented programming, procedural and data abstraction, and program modularity. Taught at the University of Florida.