I think it's time for me to start developing a CS Ethics class.

An ethics course isn't a replacement for having teachers that live and model good behavior and weave ethical issues throughout the curriculum but still, adding a separate course on top of that has its merits.

I'm not in a rush to create this course. I might be done in a month or it might take a couple of years. When I'm done, I'll add it as an option in my CS Teacher education programs but hopefully it will be an attractive course for undergrad CS majors as well.

While it's easy enough to come up with possible topics - privacy, moral responsibilities, biased algorithms, net neutrality and on and on I'm looking for this course to have a serious coding component. I want the students to build things to really understand the implications of what they're studying.

One topic I definitely want to cover is anonimity. I'd love to find the right combination of data sets and have the class discover that some hidden information in the sets isn't nearly as hidden as it seems to be. When I was at Stuy, I was thinking about having the kids give me permission to use their class schedules since even with names removed we could probably identify many kids by electives and overlapping classes. I have no idea what I'll be able to do at Hunter. If I can come up with something good I think this will form the basis of a pretty amazing part of the class.

Another project I'd love to put together is something dealing with a biased algorithm. Again, I don't know where this will go, maybe something where I can seed the class so that different groups implement some project differently and we can then analyze each groups biases, hidden or otherwise.

Beyond these two, I'm not sure.

How about you? Anyone out there have any good ideas for programming projects for an ethical CS course? If so, please share. It might be a while but when I do finish putting this together I'll be sure to publish whatever the end result is.