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 to talk about your dreams, your discontents, and your computer. We’ll also use this time to set up your development environment.
- Afterward, complete Ian Milligan and James Baker, “Introduction to the Bash Command Line,” The Programming Historian 3 (2014), https://programminghistorian.org/en/lessons/intro-to-bash. This is an introduction to the Bash shell, which will serve well enough as an introduction to other shells like Zsh as well.
- For Windows users, skip the “Windows Only: Installing Git Bash” section - we’re going a different direction. Use the VSCode Terminal or Windows Terminal, as recommended in the Code Lab environment setup.
- 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 tech. 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:
- Section 1 and section 2 from Paul Ford’s What is Code? (2015)
- Donald Knuth’s “Computer Programming as an Art” (1974)
- Ben Schmidt’s “Do Digital Humanists Need to Understand Algorithms?” (2016)