Coding

My computer science career started on an impulse, taking Intro to Computer Science to fulfill a distribution requirement in my freshman year. I was quickly fascinated by everything about it — the nearly comprehensible languages, the strict logic, the building of small blocks that slot together like Lego bricks to make a cohesive and unique whole. Over the course of my time at Carleton, I’ve learned Python, Java, HTML, CSS, and even a little bit of SQL in Software Design. In the future, I’m hoping to learn more, with Ruby as first on my list.


Putting the Digital in Digital Humanities

Perhaps the thing that most colors my work as a programmer is my experiences in the humanities. While I was taking my second computer science course, I was also taking a class called Digital Cinema Cultures, where I learned about how certain design elements come from human assumptions, certain human habits come from technological affordances, and how the way we perceive technology shapes the way we use it.

This means that I work self-reflexively, examining my process and why it is the way it is. What assumptions am I making about my deliverables? What assumptions am I making about my end user? How can I smooth the experience for them?

Programming’s brought a lot of structure to how I approach non-digital projects as well. Modular design affects the way I break down a project into tasks, thinking through each step as its own entity in addition to where it fits into the whole.


Games

Setting Out with Settlers

A quick look at the gameboard, command line and instructions card for World Building.

The first largely self-directed coding project I ever undertook was for my Intro class. Our final project was to choose a pre-existing game and adapt or recreate it and, being young and full of hubris, I decided to turn Settlers of Catan into a single-player Python game titled World Building.

It wasn’t, perhaps, the cleanest code I ever wrote, but it ran. I converted the standard hexagonal grid into an easier-to-design three-by-three square board, and implemented a three-tier system of upgrading villages to cities to capitals in order to decide a win condition.

Sadly, I wrote it in a now outdated version of Python, which means that it’s no longer fit for public gameplay. Still, it’s one of the projects I’m most proud of at Carleton. This was the first fully planned and executed project I ever completed on my own.


inTransigent – Making It Personal

A screencap from the first minigame of inTransigent.

inTransigent is a Twine game which I created for a class called Video Games and Identity, which explored the way user interactivity could influence and communicate various human experiences, whether political, social, or personal. This game, composed of seven minigames, walks the player through various anecdotal scenarios that come up in the day-to-day life of a nonbinary trans person. Not every game has to do with gender identity, because not everything has to do with gender identity. But, you know, sometimes it does.

I didn’t program this game in any specific language, but I consider it an important example of my digital humanities work. inTransigent is an milestone in how I think about people’s digital experience, and what they take away.

If you’d like to play it, it’s available here.


The Moving Pieces of Minesweeper

Minesweeper, the inspiration for our final project.
Image taken from Wikimedia Commons.

Minesweeper was a partner project created in my junior year, for my Software Design class. Like in CS 111, adapting a game was an option for our final project. However, this time we had to use the Model-View-Controller design pattern. My partner was responsible for the back-end programming, working out how we would store the data and communicate moves. My job, meanwhile, was to make the interface, figuring out how to collect information about the player’s choices and use the responses from the back end of the game to show the board change for the player. This involved thinking about the most efficient way to store and use the status information about the board, and considering what ways a player might act during the game.

css.php