Lab Assignment Week 2

Why (and How) Humanities Students Should (Conditionally) Learn to Code

My Position

I support the idea that humanities students can benefit from learning to program, but I have three important caveats. First, it shouldn’t be a mandatory requirement for every humanities major. Second, we shouldn’t assume all humanities students automatically must learn it. Finally, programming education for humanists should focus on areas that genuinely enhance or showcase humanistic inquiry—such as front-end web development for digital exhibits—rather than diving into specialized domains where the learning curve and relevance might be misaligned (e.g., advanced deep learning frameworks). As a Computer Science and Math major, I’ve seen firsthand how some development skills (like building web apps) are straightforward to pick up and extremely useful for cultural or scholarly projects. By contrast, some fields, such as advanced deep learning, may have limited utility for most humanities contexts and can be quite demanding. Instead, cross-disciplinary collaboration often makes more sense: if humanists have a great idea or set of requirements, they can partner with developers or digital labs to achieve results without each individual scholar having to master complex languages or machine-learning paradigms.

With Kirschenbaum’s Argument

Matthew Kirschenbaum notes that “many of us in the humanities miss the extent to which programming is a creative and generative activity”(Kirschenbaum, 2010), which underscores one reason I believe some coding knowledge can be valuable. If we consider coding less as a purely technical exercise (like writing a program to handle store inventory) and more as a method of modeling ideas or world-making, we see that it can enhance how we present and explore humanistic materials. However, I’d still argue that while familiarity with coding is beneficial, it isn’t mandatory for every scholar—especially not beyond a point that’s relevant to their domain.

My Coding Experience So Far

My own background is in Computer Science and Math, so I’ve done some web development work before. For example, I’ve helped an NGO build a website, ensuring the platform was accessible and user-friendly for their audience. Over winter break, I had an externship at Lytup Power Systems Inc., where I migrated an EMS (Energy Management System) web application from Svelte 4 to Svelte 5, improving both security and UI/UX. I’ve found coding to be an enjoyable and creative process overall—it feels rewarding to solve practical problems and see immediate results. Even returning to advanced tutorials in HTML, CSS, and JavaScript has been a pleasant refresher, reminding me just how essential these foundational skills are for building or improving digital tools in a humanistic context.

Sample code 1 (related to the humanities): A basic HTML structure for a webpage introducing digital humanities research projects.

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8" />
  <title>Humanities Research Showcase</title>
</head>
<body>
  <h1>Explore Our Humanities Research</h1>
  <p>Welcome to our collection of digital humanities projects!</p>
</body>
</html>

Sample code 2 (unrelated to the humanities): A snippet I grabbed and modified from my current work—a 3D convolutional encoder in PyTorch.

import torch
import torch.nn as nn

class GeneSGAN3D(nn.Module):
    def __init__(self, in_channels=1, base_filters=16, latent_dim=32):
        super().__init__()
        self.encoder = nn.Sequential(
            nn.Conv3d(in_channels, base_filters, kernel_size=3, stride=2, padding=1),
            nn.ReLU(inplace=True),
            nn.Conv3d(base_filters, base_filters*2, kernel_size=3, stride=2, padding=1),
            nn.ReLU(inplace=True),
        )
        self.fc = nn.Linear(base_filters*2 * 8 * 8 * 8, latent_dim) 

    def forward(self, x_3d, gene_input=None):
        x_encoded = self.encoder(x_3d)
        x_vec = x_encoded.flatten(start_dim=1)
        z_3d = self.fc(x_vec)
        if gene_input is not None:
            z_3d = torch.cat((z_3d, gene_input), dim=-1)
        return z_3d

Ultimately, I believe humanities students should be encouraged—but not forced—to learn code, provided the type of programming suits their particular goals and remains practical for presenting, interpreting, or analyzing humanistic materials. My two sample codes illustrate this balance: one directly supports humanistic inquiry, while the other showcases some techniques that might be less relevant for most humanities students. By recognizing this distinction, we can ensure that coding is a beneficial tool rather than an unnecessary burden.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

css.php