Designing a More Critical CS Education

April 2

Welcome to the course! Let's get to know each other and understand how and why we are meeting here.

Our initial thoughts and reasons for engaging in this course focus on the challenges of designing a more critical computing education. (So we're all in the right place!) Painting in broad strokes, these ideas include:

  1. What we teach in our CS courses/curriculum, and what it would mean to integrate critical perspectives that include (but are not limited to) ethics, accessibility, equity, social justice, and cultural competency as learning objectives. What does this mean in practice for our approaches to evaluation and assessment?
  2. How we teach all of the above. Particularly, how do we attend to cultural differences between students as we teach this material in STEM spaces that have traditionally emphasized dualism—the idea that you can separate your logical thinking mind from emotional thinking.
  3. A key end goal of these efforts is to restory computing disciplinary identity—to engage critically with what it means to be a computer scientist or for a student to see themselves as a computer scientist.

April 9

The goal I'd like to set for this week is to chart a course for the rest of the quarter. That could mean we have a structured activity each week that we all commit to doing. Alternatively, I could image each of us could go in different directions and turn our weekly meetings into opportunities for connection and learning. I'd like to narrow down some of these different directions, so for this week, please engage with as many of these resources as you can before meeting on Friday. I think you could get a lot from spending 15–30 minutes on each of these three points.

  1. Learn about the ComputingEd@UW and broader Sound CS Ed communities. Review the research directions and goals of the Code and Cognition LabNiral ShahSucheta Ghoshal, and Code.org. Consider attending two interesting upcoming events: the Sound CS Ed meetup 5–6pm April 15 and the DUB Seminar featuring Sucheta 12–1pm May 19.
  2. Reimagine our computing role models and course syllabi. Look into citeHER, the blackcomputeHER bibliography, with the goal of identifying researchers and their work that we could integrate directly into our courses. How about computing current event "news you can use"—I could imagine creating a repository of culturally-responsive narratives for discussing these events in CSE courses.
  3. Learn about the 3C Fellows and participate in our change planning. Several UW CSE faculty and graduate students are cohort 1 fellows (including myself), and we're currently wrapping up our "learning" phase and transitioning to organizational change. Two reads: the Deliverable Design Checklist (What would you like to see us design next year?) and Broadening Participation Beyond Diversity.

April 16

We're most excited to work in area 2: focusing on designing a more critical CS education at the level of restorying CSE courses and curricula, but also including and involving broader efforts in the K–12 CS education space. I can see these activities including design of course syllabi, grassroots efforts to educate our Allen School community, and engaging stakeholders in both processes.

  1. Survey the Allen School Justice, Equity, and DEI focused classes. Which classes are most interesting to you? What about classes not on this list (see the full CSE courses list)? Do your interests span multiple classes? Or maybe your interests are more in outreach. Think about the different dimensions of pedagogy, content, and assessment that we might want to reshape, speaking either from your personal experience taking the course in the Allen School or elsewhere.
  2. Learn more about critical pedagogy (how we teach), content (what we teach), and assessment (what we define as success). Feel free to research what you're most interested in with respect to point 1, or see some of these resources that I've been thinking about recently: Challenging Cultural Deficit Approaches in Communities & Schools, Introduction to CS through a Social History of Computing (attached) + CS ed in higher education (presentation for Microsoft but useful context and historical background), and our CS Ed seminar discussions (CSE login): 1, 2, 3.
  3. By our meeting on Friday, bring at least 5 ideas for how you want to impact courses or efforts in CSE. We'll take these ideas and turn them into action plans for this quarter. If you plan to make it to the Sound CS Ed meetup this week, reflect on one thing to share with everyone!

I encourage everyone to attend the IEEE Conference on Research in Equity and Sustained Participation in Engineering, Computing, and Technology (RESPECT 2021) May 23–27. Registration opens April 15. RESPECT is the primary equity-centered computing education research conference. The school can cover the $50 student registration fee for everyone interested in attending. Meeting people and integrating ideas from RESPECT 2021 would be a great way to round-out and reflect on our work toward the end of the quarter.

April 23

We proposed a possible structure for directing our work in the next half of the course: reviewing syllabi through the lenses of rubrics, objectives, pedagogy, etc—different slices of the course. In particular, we've roughly organized efforts into three curriculum areas.

  1. Introductory programming sequence. Read Infrastructures of abstraction: how computer science education produces anti-political subjects and process our current course syllabi.
  2. Systems curriculum. An idea that's been on my mind is to think about the affordances of models of computation. We could say that some systems are designed around centralizing data and processing—working against marginalized communities. How do these designs and this educational focus on these designs reflect the interest of a small group of technosocial elites? Consider the parallel comparison between nuclear power and solar power in Do Artifacts Have Politics?
  3. Theory curriculum. Robbie's been doing some interesting work in CSE 417—ethics assignments. Another thread that came to mind was to explore CS theory with a historical perspective—maybe by applying Pentecost's Social History of Computing syllabus ideas.

April 30

Resources from today's workshop:

  • Antiracist Writing Assessment Ecologies by Asao B. Inoue
  • Let's teach for mastery, not test scores. School is fixed time, fixed learning. What might an alternative structure look like? Join the Mastery Grading conference.
  • Teaching design in CS courses as imaginative futures. Preparing students for designing future technologies means looking at different kinds of end-user applications. Afrofuturism.
  • Humanities CS1 on Reddit. Malazita, Resetar 2019. Section materials on GitHub. "Similarly, ethical and social interventions in CS education become framed as valuable in application-centered classes, like data visualization or applied machine learning, but not in 'core' technical classes like Computer Science I." "It's like a larger question of how to create a culture towards these issues - seeing CS in relation to social responsibility. The creation of this culture comes from each individual exercising their agency in this direction. Professors who begin these changes, students who demonstrate interest and involvement, etc.

May 7

The instructor's perspective informs their grading policies and ecologies:

  • A systems or ecological perspective. Can apply some more economic theories here? The idea of normative curves for grading distributions might fall more in this perspective.
  • A human relationships perspective. Especially for ungrading and the role of evaluating effort and progress in grades.
  • A learning objectives perspective. How does grading support or undermine the goals of a course and the university as a whole?

Plus one on developing and focusing on human relationships in our discussions of how to design more critical CS education. We need to value students' whole identities. A few links from today: Embedded Ethics at Harvard, How Professors Develop as Teachers (1994)—an artifact of its time, Ungrading FAQ, Casey Fiesler (blog post), RESPECT 2021 conference program, Through laughter and through tears: emotional narratives to antiracist pedagogy.

May 21

Prepare to attend the Annual Conference on Research in Equity and Sustained Participation in Engineering, Computing, and Technology (RESPECT). Identify a few presentations and events that you're most looking forward to attending and share them with us!

May 28

So a lot of the ideas in this seminar we've discussed the problem from an educator's perspective—and all of us in this seminar want to be here. In autumn, I taught the "Restorying Computing" seminar with students from CSE 142 and CSE 143, and it went well, but again, students signed up because they wanted to be there. One of the big differences in a "required" or "technical" course will be working with students who don't all share the same understanding of issues, differ in reasons for taking the course, and prior experiences that they bring into the classroom.

What has been helpful though is to bring in students' experiences and keep the contexts and examples as local as possible. I think back to the "Centering the Margins" podcast which has episodes dealing with this challenge in the classroom: in one episode, an instructor wanted to use the example of the Berlin wall and the cultural context of post-WW2 society but students didn't even know about the Berlin wall. But bringing the examples closer to home helped bridge that gap and still uncover something interesting though not what the instructor initially had in mind. I think we have to be able to embrace the unexpected and adapt our lessons much more so than with "technical" content that we traditionally frame as objective.

I think a lot of explicit and implicit framing will be necessary for establishing the connections. Here's my plan for CSE 373.

  1. Fireside chats. In a fireside chat, a few TAs and I discuss our cultural backgrounds and lead-by-example to show what it means to engage with the social context in this class, both at the level of individuals (learning more about who we are) and as a society (learning about how our technology impacts the world and encodes structures).
  2. Teach affordance analysis. Computer systems encode ideas about the way the world should work. Though these abstractions tend to erase context, when we bring the context to the foreground, we can start to see how the design of software can lead to inequitable outcomes.
  3. Integrate social history. Computing doesn't exist in a void. There's a history surrounding not only the abstractions themselves but the preceding world around them. For example, when teaching image processing algorithms, we can discuss how they serve as an example of the "New Jim Code" as they reproduce ideas about who images were designed to capture. (Also in the news, "Google is trying to make its image processing more inclusive".)

Doing only fireside chats alone and calling out the power structures in the classroom in CSE 163 this quarter has had a pretty strong impact—the fact that students from marginalized identities in computing are coming up to talk to me about it is a positive sign. In comparison, I actually think my winter offering of CSE 373 which focused primarily on teaching affordance analysis did not achieve as strong as an effect and alienated some students.

June 4

Appreciation and connection between everyone!

CC Attribution Non-Commercial Share Alike This course content is offered under a CC Attribution Non-Commercial Share Alike license. Content in this course can be considered under this license unless otherwise noted.