
Danica Savonick, Michael Dorsch and I presented some brief case studies while Cathy Davidson and Katina Rogers helped to guide the panel and the productive dialogue.
This past semester I taught Ethics in a Technological Society -- an upper-level Computer Science course at a small liberal arts college in the New York suburbs. Given the subject, there was a little more scope for humanities-driven work than there typically is in Computer Science courses. For example, we were able to consider a plethora of ethics-minded questions, including how to user-test a cat robot that hunts rodents but is affectionate toward humans. Classrooms for these CS courses were typically labs where computer monitors functioned as barriers for face-to-face engagement, and also served as ripe spaces for distraction -- all of the Internet beckons! As my learning goals were to foster collaborative discussion and critical thinking about issues surrounding ethics and computing, I actively avoided technology in the Computer Science classroom.
Logic, the foundation of computer programming, need not be located within Java-based algorithms after all. I therefore designed projects that could tap into some of the for-loops, if-else statements, and object instantiation outside of our machines. I could achieve this readily with Information System and UML class diagrams, a way to map computer programs prior to actual coding. These would be designed by hand and later polished with a digital tool, such as the open-source ArgoUML (with UML, we have objects, types, attributes, methods -- all of the algorithmic thinking required prior to writing code). And then blogged on HASTAC.
Think-pair-share with real paper and real pens (when my CS students brought them!) worked great in this course, and I also had students design their own software lifecycles prior to learning what lifecycles are used in the real development world -- a way for them to make sense of different software phases in a critical and results-driven way.
Finally, we also engaged in peer-driven learning, the results of which were posted on our HASTAC Computer Science Ethics group. Students worked on a topic of their choice to teach to fellow students, ranging from programming in PERL for bioinformatics, to cyberbullying, to virtual machines. Students decided not only how to deliver the content to fellow students -- but also how to construct their follow-up blogs for the web -- some chose to offer tutorials, while others were more reflective. These group-based skills are most applicable to their future roles as software developers who will be working and building skills in teams. Of course, we did use technology throughout the class, but I tried to keep it in a supplemental role that would not serve as a disruptor, but instead be integrated at key moments after students have already had time to think through the issues at hand.
1 comment
Computer Science Ethics Class
I must say, that this class was one of the best I've had at STAC. The ethics-minded questions/ topics that we pondered and debated over in class made it that much more interesting.