Hi I'm Casey, I'm an information science professor and one of my areas of research
is technology ethics. And in recent years i've been thinking a lot about how we teach ethics,
especially to computer science students. So this video is an overview of how i think about ethics
in computer science education. I'm also going to talk about a few research studies that have come
from myself and my collaborators and most notably a paper that is published at the ACM conference on
computer science education SIGCSE this year 2021. So first let's talk about ethics in computing.
Hardly a day passes without some new controversy about ethics in the tech industry right? Sometimes
I joke that being a tech ethics researcher just means making slides that look like this
over and over again until I retire. Much of my research has involved deep diving into
controversies like these, especially with respect to understanding the reactions of the general
public. If you're interested in learning more about these I'll link down in the description
below to some papers that I've written specifically about things like data sharing
controversies, the facebook emotional contagion study. And also if you like this video you should
definitely watch this entire video essay that i have about zoombombing and how I think it suggests
ways that we should think about ethical design for technology. But take for example the Cambridge
Analytica scandal. Now it's unlikely you haven't heard of that at all but as a very short reminder,
data from millions of facebook users was used without their consent to create
models that could be used to micro target political advertisements for facebook users.
In the wake of that scandal a former google engineer wrote this great op-ed where there was
a line that really resonated with me: software engineers continue to treat safety and ethics
as specialties rather than the foundation of all design. And I thought
yes yes that's exactly it. But why is this the case? Why do technologists so often treat ethics
as a specialty rather than something that should be part of everything we do? And my theory
is that this has to do in part with how we often teach ethics in computing education.
So I wrote an entire op-ed about this at the time that I would love for you to read but as you can
see from my pithy tagline I think that if you work in technology and you don't think about ethics
you're bad at your job. Or rather this is what i think the attitude should be. This is what I
would like to see the cultural shift move towards. And let me put this another way using a metaphor:
on a construction site there is someone whose job it is to be a safety engineer it's something
you train to do, to be a specialist in safety but that doesn't mean that the person putting up the
drywall sees a live wire and thinks oh that's the safety engineer's job to worry about. You have to
at least know enough to recognize a problem, care about it, and then seek further expertise when
it's needed. In the mid 90s the national science foundation funded a task force to figure out
how we should teach ethics and social impact in computer science. They pointed to two approaches:
one, required standalone ethics classes for CS majors and two, integrating ethics into every
class but if you could only do one of those things the latter is preferable they wrote an article for
Communications of the ACM in which they argued for this tenth strand in computing education
and in response there was a letter to the editor written by a computer science professor.
This is an excerpt.In it they argued that this proposed subject matter isn't computer science,
that they couldn't imagine a computer science instructor teaching these things, and that even
though it might be important discussing the social and ethical impacts of computing is not doing
computer science. I disagree. I think that this is doing computer science and I think the fact
that so many people think it isn't doing computer science is the problem. Even though this letter
was written two decades ago I still hear the same kind of argument, mostly from people on Twitter.
And I still constantly hear from students who say that they're not learning anything about ethics
at all. If we want to get towards ethics being part of the foundation of all design we need to
start teaching it that way. In the united states in order for a computer science program to be
accredited by abet they have to provide students with, let me make sure i'm reading this verbatim,
an understanding of professional ethical legal security and social issues and responsibilities
and an ability to analyze the local and global impact of computing on individuals
organizations and society. Now how these things are actually accomplished varies widely but
despite this requirement I hear frequently from computer science majors that they're not
getting this as part of their curriculum that they don't hear about ethics even students who are in
extremely prestigious programs of course sometimes even if they do a really common model for this
is a required computer science ethics class that often comes towards the end of your degree program
i taught one of these classes when i was a phd student in a computer science department it was
a really great class however i definitely had the feeling that for some students they just spent the
last three years learning how to be computer scientists and then suddenly right at the very
end right before you graduate oh here's something that you should have been thinking about all along
what about a different approach what if you are thinking about it all along in every
class right now this is not a common approach a few years ago myself and some collaborators
analyzed a set of artificial intelligence machine learning and data science classes
taught at the top computer science undergraduate programs in the united states and with a
very generous definition we coded for whether their course descriptions or syllabi when
available mentioned anything that could be broadly construed as ethics social impact privacy etc
though there were also a number of standalone classes for example ai ethics only 12%
of the technical classes had anything like this mentioned now it's entirely possible that these
topics did come up especially in the classes where we didn't have syllabi however we at
least know that it wasn't important enough to be in the course description and anecdotally
this is what i've heard from a lot of students who have taken classes like this that maybe they
get some of this content in a different class but that ethics is not part of their technical classes
in things like ai and machine learning and these are some of the topics where ethics
should be the most relevant of a lot of different things one can study in computer science so now
i want to lay out a case for ethics integration and in every computing class first it emphasizes
ethics as part of technical practice it's not a specialization or an add-on it's not just for
the safety engineer i often hear an argument along the lines of well product development teams just
need to hire philosophers which like great i am very here for more jobs for philosophers and it's
great to have specialists but in addition to those specialists everyone needs to be thinking about it
everyone needs to be able to recognize that live wire know why it's a problem and then talk to the
safety engineer if they need to and also to not take the regular wire and strip it down on purpose
why that would be a bad thing so not everyone needs to be a total expert on ethics
but you do need to know some and you need to be thinking about it
this means that when you take a machine learning class it should be emphasized that if you are not
learning how to understand the bias in your training data if you're not
learning about the social implications of classification if you haven't considered
how that classifier might be used you have done a bad job building that classifier
that those things are an essential part of the process which means you need to learn them as part
of the process not in a class that you take two years later and that's the second problem which is
that teaching ethics siloed divorces it from its context you need to get the lesson at the right
time it needs to be contextualized into the thing that you're learning to do and finally the third
really big benefit of integration is that it ensures that everyone who takes a technical class
is exposed to this content a lot of people take a cs class or two but don't major in it i mean some
of the most famous tech ceos out of there dropped out of college before they finish their degree
maybe before they got to their required ethics class but you can do a lot of damage with a little
bit of code and so for that reason anyone who learns to do anything
in computing needs to learn that thinking about ethics is part of that and so especially with
this in mind we piloted a program to integrate ethics into introductory programming classes
this was funded by the responsible computer science challenge which i will talk
about a bit at the end we started with intro programming because it has the benefits both
of reaching a large number of students who may not go on to take further computing classes
and it emphasizes even for computer science majors that ethics is an integral part of computer
science from the very first class that you take and we did this in three different classes
in the computer science and information science department they were for a mixture of majors and
non-majors these different classes now there are a lot of different approaches that we could have
taken with this but we decided to start with the one that would be the least amount of work for
the instructors who are often overburdened with very large classes and limited time
to do assessment and to rework material so what we did was we took assignments that already existed
in these classes and we recontextualized them so that they were teaching the same technical
concepts but were recontextualized to inherently bring up ethical issues and current ethical
dilemmas in tech so you can go to this website to find copies of these assignments and we're
continuing to put together more material videos slide decks etc to help people who might want to
use these so depending on when you're watching this video there might be more or less there
but as a preview here's some brief descriptions of the two assignments that we used in this
pilot study the first one was about personalized ads the technical concepts that it covered
were conditionals and booleans essentially if then statements the student was put in a position
of writing an algorithm that would determine what ads were being served to a user on a
social networking platform for example if the user has a dog advertise dog food to them very simple
and then there were some more complicated aspects to this including determining whether they might
be an introvert or an extrovert depending on the number of friends that they had and then serving
them a certain kind of ad or using information about zip code to proxy for income and using
that to determine how ads were served so this assignment was designed to emphasize how someone's
data on a social media platform might be used to determine advertisement how inferences can be
drawn from data even if you don't explicitly tell a social media platform something about yourself
and how information about you can determine not only what is advertised to you but how
it is advertised to you and this tees up a conversation about ethical controversies like
cambridge analytica the second assignment was about college admissions algorithms
which i think is a great example because many people are taking intro programming classes
as freshmen and this is a very fresh important context for them and so this assignment covered
technical concepts like iterating through a list and doing mathematical transformations
and reading and writing to a file they were provided with lists of student data that
included things like gpa sat score a demonstrated interest score the assignment asked students to
to write a function that would create an overall score for each student that could then be used
to have cutoffs for admission into the university but importantly the assignment walked them through
additional kinds of transformations that could identify certain kinds of outliers for example
what if a student has a zero demonstrated interest score because they don't use social media or don't
have a home computer where they could constantly open emails from that university what if a student
had one bad semester that pulled down their gpa so they wrote functions that looked for outliers
in the data and then we had a discussion about the kinds of decisions that algorithms should or
should not make the kinds of false positives and false negatives they might have and how this could
impact things like students who are admitted into college in the paper published at 60 we report on
a lightweight evaluation as well as the perceived benefits and challenges of this approach from the
instructors and teaching assistants in the class but overall we feel like this was really promising
and that it went well we also hope that you'll check out our materials if you're interested
in using some of this yourself and there's also a lot of other great resources and on our website
we have link to things from other people as well in particular i'd like to point you to
some assignments that have been shared by evan peck a computer science professor at
bucknell university he also does ethics based assignments in an intro programming class
and i love these about the trolley problem using mit's moral machine experiment and
job hiring algorithms another benefit of intro programming in the context of integrating ethics
is that a lot of people learn to code before they get to college one of the things we're hoping to
do next is translate what we're doing into the k-12 space and if you are in the k-12 space you
might be interested in this ai ethics curriculum for middle schoolers that comes out of a project
at mit i also maintain a crowd-sourced spreadsheet of tech ethics syllabi that are openly available
there's 250 by now we also have a paper where we analyze these syllabi and so if you're wondering
what do you even teach if you want to teach tech ethics this gives you the answer and if you're
teaching a technical class it might give you ideas for the kinds of topics that you could integrate
into that class and i am so happy about all the work that's being done on ethics integration
particularly just in the last couple of years a lot of this is because of the responsible
computer science challenge which is funded by mozilla omidyar network craig newmark
philanthropies and schmidt futures thanks to this challenge as this work wraps up
we're going to see a lot more open resources to help everyone else do this kind of thing
i will link down below to some more information about that i would also like to add that one of
the reasons why this is so important is not just because computer scientists have a lot of power
and therefore a lot of responsibility but also because if we love this field then it needs to
be the best that it possibly can be if you haven't seen it i would like to point you to
this communications of the acm article written by Amy Ko and collaborators which makes an argument
for more critical cs education i spend so much of my time thinking about the harms of technology
and what we can do about that but the reason is because i think it's so amazing and i think that
if our students are going to go out and build the technologies of the future then we need to give
them all of the tools that we possibly can to make sure that they are making the world better
through what they're doing and i think that rethinking the role of ethics responsibility
and justice in computing education is the right path forward this is one of my favorite topics so
feel free to reach out to learn more and i'm casey thanks for watching