Teaching

  • CPSCI 410: Senior Seminar

    Hamilton College, Spring 2025 Welcome to software development, a field riddled with challenges, including planning, problem solving, execution, and client needs. It also calls for ethical and equity mindfulness due to diverse software user communities. In this course, you’ll undertake a software project for a local client. Through this project, you will engage in standard software engineering practices, draw on your existing computer science knowledge, expand into new frontiers of computing, and complete a project of significance that may even stand the test of time. This course is designed to follow as closely as possible the experience of a software…

    Read more…


  • CPSCI 410: HCI for Social Good

    Hamilton College, 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. Continue reading “CPSCI 410: HCI for Social Good”…

    Read more…


  • CPSCI 360: Developing Accessible User Interfaces

    Hamilton College, Fall 2022, 2023, 2024 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. Continue reading “CPSCI 360: Developing Accessible User Interfaces”…

    Read more…


  • CPSCI 102: Design Principles

    Hamilton College, Fall 2024 A second course in programming, concentrating on principled software design techniques. Topics include class design, effective functional decomposition, recursion, and structured data. Students will continue to develop programming proficiency by writing programs in the C++ programming language. Course discussion will emphasize efficient implementations in terms of memory space and running time, computational complexity of algorithms, and an introduction to data structures Continue reading “CPSCI 102: Design Principles”…

    Read more…


  • CPSCI 101: Computer Science for All

    Hamilton College, Spring 2023, Spring 2024 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.…

    Read more…


  • COMS BC3162: Developing Accessible User Interfaces

    Barnard College, 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. Continue reading “COMS BC3162: Developing Accessible User Interfaces”…

    Read more…


  • COMS BC3364: Introduction to Contextual Design for Technology

    Barnard College, 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…

    Read more…


  • COMS W3998 / COMS 4901: Projects in Computer Science

    Barnard College, 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. Continue reading “COMS W3998 / COMS 4901: Projects in Computer Science”…

    Read more…


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

    Barnard College, 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…

    Read more…


  • Pre-College Program: User Experience Design for Technology

    Barnard College, 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. Continue reading “Pre-College Program: User Experience Design for Technology”…

    Read more…


  • COP3502: Introduction to Programming Fundamentals I

    University of Florida, 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. Continue reading “COP3502: Introduction to Programming Fundamentals I”…

    Read more…