Category Archives: Teaching

Accessibility Course: Centering Disabled Voices

Over the last six months, I led a team of students* in (re) designing an accessibility course focused on bringing together disability studies, disability justice, and advanced technologies and settings for accessibility technologies.

The course focused on three categories of learning goals: (1) Creating Accessible Media and Documents (2) Assessing and Addressing Accessibility Compliance in Apps and Websites and (3) Disability Awareness and Justice

It also was designed to itself center disability justice through its structure, by providing the following without requiring official accommodations: hybrid engagement options; competency based learning with unlimited revision allowed; and project deadlines with built in flexibility.

Throughout the class, we also tried to center themes and readings that did not just reflect or default to majority experiences of disability; and two assignments provided opportunities for direct service to the disability community.

Finally, the course explicitly included both traditional accessibility knowledge such as GUI and App focused accessibility work; and opportunities to explore newer settings for access work both from a technological perspective (such as VR/AR and Fabrication) and from a contextual perspective (such as accessibility and sustainability/disaster response and accessibility in the context of carceral (in)justice).

The class had four homework assignments and a final project, along with a number of in-class exercises. They included a disability justice analysis of a current events topic; finding and presenting first person accounts of accessibility technology; creating a website or app based accessibility evaluation (with the option to do this for a specific nonprofit hoping to improve the accessibility of their website or app) and creating a plain language summary highlighting some of the accessibility concerns and existing available accessibility solutions of a technology such as educational games; ar/vr; or information visualization tools.

As mentioned, this is the second iteration of this course. During the first one (which also included working on contributions to an open source screen reader), we learned that we needed to scale back the implementation requirements in the first half of the course and focus on learning best practices and practical skills; while increasing the length of time and depth of the final project. We still wanted to have some service featured in the course design, and the website or app accessibility evaluations served that role extremely well. In addition, the addition of disability justice analysis, along with discussions of topics like disability dongles, helped us to provide a better structure to students’ understanding of what we were looking for in their final projects. A learning from our second offering is to provide much more structure around plain language writing, which is very difficult to do properly, especially for longer articles. While there is still some iteration to be done, students reported taking lessons from the course back into their workplace, and engaged deeply with concepts such as disability advocacy and the importance of centering disabled voices.

The final projects were as varied as the students in the course, from browser extensions to contributions to the cache structure of an open source screen reader, Odilia. Here are some other examples of what students built:

Multiple projects focused on the accessibility of documents and other creative artifacts such as markdown, code tours and visualizations. These looked at a variety of issues from color contrast to header structure, proper labeling, and screen reader access. A special category I want to highlight in this group of projects is plain language. The Plain Language Checker highlights where plain language rules may be violated if you paste text into it; while Jargon(e) annotates jargon in documents based on community created dictionaries that provide definitions.

A couple of projects focused more on physical world settings. SafeRide is an accessible app that uses Apple Watch’s nonspeech audio recognition to alert a bicyclist about environmental sounds of interest, such as another cyclist ringing a bell. A project that bridges both documentation and physical world interaction focuses on tactile schematic production for people who are blind or low vision, based on the documentation at The project provides a tutorial and code for extending Fritzing to support tactile schematic

For better or for worse, I have made the decision in my accessibility courses to neither guarantee nor require that students work directly with individuals who are disabled in their projects. While I think it is incredibly important to ensure that project ideas are driven by real needs, I teach accessibility often enough, and to enough people, that it would not be sustainable to ask the disability community to support these student learners at the scale that would be necessary. To balance this, I have put a lot of thought into how to ensure that these projects center disabled needs and preferences. That is why we teach and require disability justice, and how to seek out first person accounts through blogs, vlogs, and in research papers in multiple assignments before the final project; and require that these are carried through into the final project.

In the end, four of these projects ended up having disabled customers; one other was based directly on careful work co-led by a disabled person and a researcher; and others were based on more remote information. In addition, as mentioned earlier, multiple students contributed to web and/or app assessments that were shared back to nonprofits associated with CREATE (one with a disability mission; one with a goal of increasing access for disabled people among their constituents).

The first two offerings of this course were taught in our professional masters program, which has mature students already in the workforce who can directly see the value of the content we are teaching. My next iteration will be for undergraduate computer science majors. I hope that students at all levels will benefit from this overall structure but I am sure it will evolve to meet the needs of each group in new ways.

*Thanks to the evolving cast of students who helped with this course including Dhruv Jain; Aashaka Desai; Ather Sharif; Venkatesh Potluri; Orson Xu and Kelly Mack.

The Data Pipeline

I’ve been teaching a course on using data for three years now, and it feels ‘finished’ enough that it is perhaps worth writing about. When I began the course, I had the goal of (1) exploring the human side of data, meaning the ways in which what we know about people impact our ability to make, process, interpret, and use data (2) make the course accessible to a broad variety of people (not just programmers) and (3) organize the course around modules that would produce nice portfolio items. The result is the course at  While it has evolved over the years, it’s always included at least a few beginner programmers, and the projects have been interesting opportunities for students to explore issues like interactive machine learning, data visualization, and topic areas they care a great deal about.

A big emphasis on the course is on data cleaning –understanding deeply the flaws in your data, from bias in data collection to missing values in data files. Many (hopefully most) of the projects below have significant sections documenting their sources and efforts / decision making around this topic.

Another big emphasis in the course is on understanding what the data will be used for, and by whom. Tied to this, we talk extensively about intelligibility in machine learning, the importance of narrative in visualization (and visualization in general), and the importance of defining the question you are answering.

Here are some of the highlights over the last three years:

Screen Shot 2016-05-09 at 12.51.04 PM

Bus bunching is a phenomenon that can impact bus wait times. One of my 2016 students has been collecting data and extensively studying the phenomenon. His final project in the class drew on this data set and explores visual representations of the phenomenon.


Screen Shot 2016-05-09 at 12.56.20 PMYelp data is always an area of interest. In 2014 … In 2015 students explored which state has the best pizza :). In 2016, the ‘Bon Yinzers‘ developed a wonderful series of visualizations of factors that affect popularity of Pittsburgh restaurants. They uncovered some interesting phenomena such as the unexpectedly off-cycle checkin times of the most active Yelp users in Pittsburgh.

Screen Shot 2016-05-09 at 1.00.13 PMSan Francisco Crime Alert explores the likelihood of different types of  Crime in different SF area neighborhoods. Their prediction algorithm gives you a way to explore the prevelance of major and minor crime in terms of time of year, time of day, and location.

Screen Shot 2016-05-09 at 1.03.50 PMIn 2015, a group collected and analyzed data set of tweets by potential ISIS supporters, with the goal of ultimately engaging others in helping to label such data and understand how ISIS supporter accounts differ from other accounts with sometimes similar tweets (e.g. news accounts or bloggers).

Screen Shot 2016-05-09 at 1.12.00 PMOften, a goal of class students is more about policy than about end users. In 2015 Healt$care explores the quality of healthcare and its relationship to dollars spent across the U.S. in a highly visual fashion.


Screen Shot 2016-05-09 at 1.17.31 PMIn 2014, a group asked what jobs are popular in what parts of the US?. Again a combination of data visualization and prediction supports exploration of the question. A similar approach was explored by a 2014 group that collected data about movie piracy and its relationship to DVD release strategies.

Sadly, not all of the older projects still work (web standards change so fast!). I wish I could provide links to work such as the Reddit AMA visualization pictured here.

Screen Shot 2015-05-04 at 4.08.56 PM