Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

2024 Participants: Hannah Ackermans * Sara Alsherif * Leonardo Aranda * Brian Arechiga * Jonathan Armoza * Stephanie E. August * Martin Bartelmus * Patsy Baudoin * Liat Berdugo * David Berry * Jason Boyd * Kevin Brock * Evan Buswell * Claire Carroll * John Cayley * Slavica Ceperkovic * Edmond Chang * Sarah Ciston * Lyr Colin * Daniel Cox * Christina Cuneo * Orla Delaney * Pierre Depaz * Ranjodh Singh Dhaliwal * Koundinya Dhulipalla * Samuel DiBella * Craig Dietrich * Quinn Dombrowski * Kevin Driscoll * Lai-Tze Fan * Max Feinstein * Meredith Finkelstein * Leonardo Flores * Cyril Focht * Gwen Foo * Federica Frabetti * Jordan Freitas * Erika FülöP * Sam Goree * Gulsen Guler * Anthony Hay * SHAWNÉ MICHAELAIN HOLLOWAY * Brendan Howell * Minh Hua * Amira Jarmakani * Dennis Jerz * Joey Jones * Ted Kafala * Titaÿna Kauffmann-Will * Darius Kazemi * andrea kim * Joey King * Ryan Leach * cynthia li * Judy Malloy * Zachary Mann * Marian Mazzone * Chris McGuinness * Yasemin Melek * Pablo Miranda Carranza * Jarah Moesch * Matt Nish-Lapidus * Yoehan Oh * Steven Oscherwitz * Stefano Penge * Marta Pérez-Campos * Jan-Christian Petersen * gripp prime * Rita Raley * Nicholas Raphael * Arpita Rathod * Amit Ray * Thorsten Ries * Abby Rinaldi * Mark Sample * Valérie Schafer * Carly Schnitzler * Arthur Schwarz * Lyle Skains * Rory Solomon * Winnie Soon * Harlin/Hayley Steele * Marylyn Tan * Daniel Temkin * Murielle Sandra Tiako Djomatchoua * Anna Tito * Introna Tommie * Fereshteh Toosi * Paige Treebridge * Lee Tusman * Joris J.van Zundert * Annette Vee * Dan Verständig * Yohanna Waliya * Shu Wan * Peggy WEIL * Jacque Wernimont * Katherine Yang * Zach Whalen * Elea Zhong * TengChao Zhou
CCSWG 2024 is coordinated by Lyr Colin (USC), Andrea Kim (USC), Elea Zhong (USC), Zachary Mann (USC), Jeremy Douglass (UCSB), and Mark C. Marino (USC) . Sponsored by the Humanities and Critical Code Studies Lab (USC), and the Digital Arts and Humanities Commons (UCSB).

"Are we ready for advanced Critical Code Studies?": Mapping CCS Resources and Pedagogical Needs

There is an excellent ongoing thread on Teaching Critical Code Studies this year. In the comments are many great sources for teaching critical code studies with most, if not all, chosen to help students learn the basics of coding and how concepts are applied and can be critiqued in different ways.

Copied from a comment by Mark Marino, useful teaching sources include:

  • Critical Code Studies, Marino
  • Aesthetic Programming, Cox and Soon
  • 10 PRINT CHR$(205.5+RND(1)); : GOTO 10, Montfort et al.
  • Travesty Generator, Bertram
  • Poetic Operations, Cardenas
  • Race After Technology, Benamin
  • If Hemingway Wrote JavaScript, Kroll
  • #!, Montfort

We have also seen many people reporting using programming languages including:

  • Python
  • JavaScript
  • P5 (JavaScript)

Every institution is different, and curriculum is always an ongoing conversation. However, a strong theme of many comments on their teaching experiences seem to fall into three general categories:

CCS as:

  • Paired with sister field (digital media, computational creativity, visual design, etc.)
  • Modules within a larger structure (a single week or multiple weeks on the topic of critical code studies)
  • Dedicated courses (i.e. Jeremy's and Mark's notes on teaching courses).

I'd like to try to promote discussion around an important question raised by these responses: are we ready for an advanced course on Critical Code Studies? What I mean by this question is trying to work through what objectives can be mapped to these different needs and then attempting to plan how an introductory course might be different from an advanced course on the same topic. If a two-course structure could be planned, what topics would come first, and which others could be used in the follow-up course?

Many years ago, I worked as part of faculty engagement. One of the best tools we used to help people understand the curriculum of their programs and departments was to create personas of the type of students they had within the program and then figure out what skills these personas would develop across sequences of courses or within a single course. Applying those processes to CCS and what comments I have seen this year, I'd like to propose some limited personas:

  • Undergraduate students with some digital literacy skills. In taking an introduction course with CCS content, these students would be shown introductory programming concepts, how to potentially read code they might encounter, and how to describe, at least in part, how concepts in code produce different potential outcomes or cultural effects.

  • Graduate students with mixed digital literacy and programming knowledge. For these students, the goal would be to demonstrate how cultural theories and frameworks can be paired with code analysis. Through engaging with critical code studies, these students would be better prepared to critically engage with existing tools, code libraries, and application workflows within their own work and potentially how to better help their own students.

Based on these limited personas, what might an advanced CCS course teach? Would a potential "second" course include greater programming knowledge, critical frameworks, research methods, or a mix of all three? What's the next step for us? Along with a discussion of existing courses, what might multiple modules or courses teach students? Within a longer sequence of courses, what might students learn?


  • Great topic, @dancox And it's exciting to think about what might go in a second level or advanced course. I guess in some ways, that might describe a good number of the people here in the Working Group. And using the WG as a model, one answer is to have the advanced course bring together more specialized students from all three of the areas you mention. When I think back to the experiences I have had collaborating on 10 PRINT, Reading Project, Entanglements, and most lately on ELIZA, the participants were not necessarily more versed in Critical Code Studies, but had more expertise in their particular field, allowing us to go further (or deeper) into the explorations those specialties offered.

    That said, I definitely see how a class of students who had more interdisciplinary training could go further. So humanities scholars with more programming knowledge and programmers with more philosophical training would be able to apply methods with a bit more alacrity. A lot of the introductory time is spent finding common language: what do we mean by "meaning" and "interpretation"; what are we looking for; what counts as knowledge? These kinds of questions need to be addressed but once they have been addressed at least in an initial way can open the kind of work we need to do.

    I'm eager to here what others think about these questions, particularly those who may feel like they are still trying to get their footing or foothold on what we're trying to do here. (Sometimes that is also me.)

  • Thanks for responding, @markcmarino! To refine my concerns slightly, I think we are stating we would all love to have more interdisciplinary training for students and scholars without addressing how we arrive at that point in a consistent or within a range of possible ways. And we are not alone in this struggle.

    I frequently see the discussion of "Should digital humanities scholars learn coding and, if so, how much?" question within the larger discipline. As a smaller field within DH more broadly defined, we are faced with the same issue: what amount of programming concepts should be taught, at what level, in what ways, and using what general types of sources? We are starting to see some answers to those questions, as highlighted by the experiences being shared in the other thread, but we are not necessarily moving toward what a refined future might look like beyond a collection of experiences -- and this is not a bad thing! We each have different course and curriculum concerns! What might work in one course designed as an introduction for visual artists might not work as well in a graduate course designed to engage students in critical making. That written, many resources can be shared and selection of larger or longer works used in an undergraduate or assigned in whole to graduate courses.

    In the hope of driving some comments, let me phrase these questions along different tracks:


    • Teaching with CCS (as module or part in larger course): How does CCS fit within your existing materials? Does it serve as a paired or compliment to existing modules such as part of an "Introduction to Digital Media" or "Creative Technologies for Visual Artists" course? If so, what are pedagogical gaps you have found or resources you would want? What would help you teach to your existing objectives easier?

    • Teaching CCS as course: What resources would you like to see? Is there a lack of readings? Examples? Where do you see your students struggle?


    • Teaching with CCS (as module or part in larger course): What readings or example would help your goals of your course? Would a greater focus on applying frameworks help? Emphasis on using different methods? Mixed methods approaches?

    • Teaching CCS as course: What skills would you want for incoming students? How should graduate students be trained? Would you expect more humanities backgrounds or those with mixed skillsets?

  • edited March 8

    In my experience teaching CCS, I find that we usually just hit our stride at the end of the term. Rather than proceeding to an "advanced" option, I think I would prefer a follow-up "workshop" course with the core CCS course as a pre-req. From a pedagogical perspective, this second course would support students applying CCS in different contexts to deepen their engagement and bring more of their individual research interests to the table. (For grad students, this could be a step toward incorporating CCS in a thesis/diss chapter.)

    I'm picturing an open-ended workshop format that would offer the flexibility to support a range of student interests, address technical needs, and bring in guest speakers. Some students would use that time to continue jamming on a project from the core course. Others would focus on sharpening their competency with a particular platform or language. And everyone could complete a CCSWG-style "Code Critique" as the culminating assignment.

  • Thank you @dancox for this Thread.

    let me try to share my thoughts on teaching CCS as graduate course:

    What skills would I want for incoming students?

    Although the question may seem concise, the answer to it is extensive and complex. So apologies for the long answer which I want to unfold in 4 (+1) aspects.

    1. Coding literacy: Students should have a solid understanding of at least one programming language, preferably a language commonly used in software development or digital humanities research such as Python, R or even JavaScript might be a good starting point. An essential aspect to consider is the ability to read code, which is vital for Critical Code Studies (CCS). I'm emphasizing coding literacy here, suggesting that it's not solely about functional programming, but rather encompasses a broader capacity for effective communication. Which brings me to the second skill set.
    2. Digital literacy: Coding is one thing, but navigating through digital tools and platforms for research and knowledge of version control systems (e.g., Git), text editors, command-line interfaces, and basic web technologies is also very important to me, since it helps students to do own research, structure data and organize code.
    3. Critical theory: Students should have a foundational understanding of critical theory, including concepts from fields such as literary theory, cultural studies, media studies, and philosophy. This means, that at least some approaches such as (post-)structuralism, feminism, postcolonialism, and critical race theory should be known/present.
    4. Close reading skills: CCS involves close reading and interpretation of code as cultural artefacts. Students should have and further develop skills in close reading techniques, including identifying patterns, analyzing syntax and semantics, and interpreting the socio-cultural context of code.

    Apart from these four perspectives, I think, as often stated these days, that an interdisciplinary perspective and openness is mandatory. CCS draws on insights from various disciplines, including computer science, humanities, social sciences, and arts. Students should be open to interdisciplinary approaches and comfortable navigating multiple disciplinary perspectives. Knowing that it could be hard to find a common ground in terms and language, interdisciplinary openness can unleash an incredible amount of potential.

    How should graduate students be trained?

    Well, same game.

    1. training basic programming skills, strengthen coding literacy: I think study programs or tutorials on basic programming proficiency might support both. Interest in digital technologies and critical thinking on cultural implications of code.
    2. digital literacy and knowledge of scientific research methods should be taught together. In today's digital world, skills in using digital tools and technologies are as important as understanding scientific methods and practices. By integrating both aspects into curricula, students can more effectively learn how to utilize digital resources to investigate research questions, collect and analyze data, and present findings. At the same time, they are trained in adhering to scientific standards and ethics, critically evaluating sources, and communicating research findings clearly and accurately.
    3. Creating pathways for engaging with critical theory: it's fair to say that there's no universally accepted stance on this matter. In fields like educational science and media studies, directing students to critical theory tends to be more straightforward compared to computer science, in my opinion.
    4. Close reading skills are necessary for all fields. Methods such as SQ3R can lead to a more efficient and active reading scientific paper and other texts.

    Considering an open-ended follow-up workshop is also a great idea, @driscoll! I was thinking of this in my recent course and I offered a block to get deeper into selected topics and interests defined by students, unfortunately, due to illness we had to cancel that approach. However, having a get-together and an in depth discussion, maybe even in a different setting, might be very fruitful.

    Whether or not we're ready for Advanced Critical Code Studies depends on these factors. I taught courses with and without students from digital humanities, computer science and computational visualistics. Most of my students come from educational science, teacher training (education in a digital world) and media studies. I heavily rely on computer science students who are willing to communicate and connect with philosophical theory. Particularly, skills in the first two areas mentioned are crucial, in my opinion.

Sign In or Register to comment.