Codelab / Chapter 01
Introduction to CodeLab

Outline
- Introduction
- A note about local environment setup
- What is Code?
- Exercises in Code thinking
- Why is Code?
- Code as utility
- Code as scholarship
- Code as labor
Welcome to CodeLab
Hi there. Welcome to CodeLab. This is Shane, writing from various times in the past (and very occasionally Zoe, writing generally from even longer ago). I’m a younger, slightly less experienced, probably slightly more handsome version of Shane from right now, so you’ll have to excuse me if I’m unclear or rambly or factually wrong. Don’t blame it on Shane Prime. I’m sure he knows better by now. The two of us (Shane and Zoe) and the Scholars’ Lab staff created Code Lab back in 2018 as a way to ensure that that year’s Praxis cohort would have a good technical foundation on which to build their DH projects and later humanities careers and I’ve been doing it ever since. Hopefully, you’ll be getting all this from a presentation that Shane Prime has given, is giving, or will shortly give.
We’re going to start off our Code Lab journey without actually writing any code. This first chapter we’ll be talking a little bit about what code is and a lot about a very long debate within the Digital Humanities community about the relationship between coding knowledge and practice and DH scholarship. It’s a debate that people are generally sick of having, but I’m going to keep at it because 1) I have strong feelings about it and 2) I am, in a lot of ways, on the losing side of the debate.
As part of this discussion, I’m going to encourage all of you to think about what computation is and how to “think” like a computer: in discreet and unambiguous steps. As we progress through the year, keep these ideas in mind; imagine how a computer does the kinds of things it does “under the hood” and try to get a feel for what kinds of problems might be easy or hard for a computer to do.
We’ll be spending the next few weeks on these sorts of more abstract discussions. To prepare the way for the coding part of CodeLab and for DesignLab, I’ll be helping everyone set up their development environments in this time.
CodeLab Resources
Homework for Chapter 1
- Schedule a 1 on 1 with me for some time in the next two weeks, to talk about your dreams, your discontents, and your computer. We’ll use this time to set up your development environment.
- Set up an account at Github and post your username on the Slack praxis channel.
Readings
Hopefully I’ll have passed out copies of Julia Evans’s lovely So You Want to be a Wizard zine. That’s something written for someone who is already a programmer, but it’ll be useful for you to skim through now to gleen some meta-strategies for navigating this world. Review it again once you have a few for loops under your belt.
For a bit of counter-programming, Miriam Posner’s “Some things to think about before you exhort everyone to code” is good to think about (and perhaps even to critique).
If you haven’t read through the pre-readings, now’s a good time to do that:
- There is no Software by Friedrich Kittler (Read this one lightly and impressionistically and don’t get bogged down in the technical details. Kittler may or may not be earnest in making his argument and the text is dense with self-indulgence, but it is still kind of amazing.)
- Justice for “Data Janitors” by Lilly Irani.
- “Computer Programming as an Art” (1974) by Donald Knuth (Knuth’s The Art of Computer Programming is a universally admired 4000 page comprehensive computer science magnum opus, but this talk is a light one about the “Art” in that title.)
- “Do Digital Humanists Need to Understand Algorithms?” (2016) by Ben Schmidt (here, again, don’t get too bogged down on the coding minutia).
