Search On!

The concept of SEARCHING has been on my mind a lot lately. Aren’t we all searching for something? (In my case, what I’m searching for right now is mostly a job. But also, you know, fulfillment and community and all of that.)

Luckily for me, the first half of my Artificial Intelligence class is all about searching. In computer science, you can represent a lot of different kinds of problems as search problems. There are also a lot of different methods for performing a search. You can create search agents, the entities that perform the search, that use up more or less memory, that find what they’re looking for faster or slower or with more reliability – depending on the problem. You can create agents that are more “intelligent” (ones that have some information about the problem that they use to make decisions) or less “intelligent” (ones that stumble blindly through their world in predetermined patterns).

This may not speak well of me, but even the least “intelligent” forms of search remind me of my own life and how I move through the world. For example, let’s say you come to Swarthmore and your goal is to find a class where you can read Judith Butler. In this hypothetical situation, the professors won’t give you the syllabi before you take a given class (by the way, this is not my experience at Swarthmore), so the only way to find out if a class will fulfill your goal is to actually take it. Some classes also have prerequisites.  We could represent the problem using a graph, made of nodes (the Swarthmore courses), and links between them. The only way to get to a course is through these links; in our hypothetical world, you can’t take “American Popular Culture” without having taken “Modern China.” The courses highlighted in blue are the ones where (unbeknownst to freshman-year you), you’ll end up reading Judith Butler:


NOTE: This graph is not actually a realistic representation of the prerequisite structure at Swarthmore (or of where Judith Butler is read)!


How are you going to find your way to Judith Butler? One option would be to try a course in each discipline first; each one would unlock more advanced courses. If you don’t find Judith Butler, you move on to these mid-level classes in each discipline, unlocking the next layer of classes. This is called BREADTH-FIRST SEARCH. (The screen turns purple when you’ve found your goal!)



Another option is to arbitrarily choose a discipline (e.g. history) and move down that path until you find Judith Butler. If you don’t end up finding her on a given path, you backtrack and try a new one. This is called DEPTH-FIRST SEARCH.



In real life, the problem of finding your way to a Judith Butler class can be a bit more complex. There are limits on your time; you can only take 4 or 5 credits per semester, and many of those credits will have to go toward fulfilling distribution requirements or pursuing a major. Even more complicated, particular classes may only be offered during certain semesters. (And in the meantime, the professors might change the syllabi!) Then there’s the fact that as you move through these different classes, your goals and preferences might change. Maybe you take “Writing China, Picturing Chineseness” and give up on Judith Butler – all you care about is taking more Asian Studies classes! It turns out humans are pretty fickle.

It also turns out that most people come to Swarthmore with more amorphous goals than “read Judith Butler in class.” We come searching for a discipline we love or a set of skills with which we can make an impact in the world. We want balance: coursework that is rigorous enough to transform our thinking, but gentle enough to give us room for other parts of ourselves. We want to find teams and groups where we can get support and do great things. We want Friday nights off.

Yes, graphs and search algorithms can be used to represent a lot of complex situations in computer science. But I’m bewildered imagining the sprawling graph that would represent my life at Swarthmore, and all the decisions I’ve made about how to move through this world. That graph would have arrows for enrolling in my first classics class, and joining the fencing team. For asking the girl I met in the fencing cage, now one of my best friends, on a picnic. For choosing to stay up until 3am with a friend, discussing our pasts. For joining Quidditch, enrolling in and un-enrolling from the honors program, going abroad. And there would be arrows for all the choices I didn’t make but could have: the clubs I thought about joining but didn’t, the anthropology minor I never pursued. The nodes would be all the ways – infinite! – my life could have been here. I don’t even want to imagine representing the goals of the “search.”


One tiny piece of the huge and bewildering graph that could represent my life at Swarthmore. This represents my morning since waking up. Here, each “node” represents a “state” – a way the world could be. The links that connect them are the actions I could take.

It’s a graph that’s too big to imagine. So I’ll just say this: weirdly, as I sit coding in the computer lab, I identify with the “search agent” I’m creating. Like me, that search agent is going to have to traverse a lot of territory. It’s going to take action after action after action before finding what it “wants.” If I make it perform depth-first search, it will go down many paths and meet many apparent dead ends. If I make it perform breadth-first search, it will trudge through its world trying everything before moving forward with anything. There are some hard times in store for that little search agent. And some exciting ones!

I think that overwhelmingly I’ve been a depth-first searcher at Swarthmore. I took all the Arabic classes I could before realizing I didn’t want to go to grad school in Arabic literature. I pursued Greek with a passion until I realized I didn’t want to go grad school in classics, either. I jumped into History and went all out with that until I realized that this discipline, too, was not my One True Academic Love. But unlike that simple search agent, which “remembers” such fascinating information as “have I been there before?” and “wait, so where am I trying to go?” — I’ve been changed in complicated ways by where I’ve been. Every path I’ve pursued has transformed my sensibilities, my approaches to problems, and where I want to go next.

I go to my anthropology seminar and hear myself talking like a historian. Studying history is a path that has changed me. I prep for job interviews and realize I’m the kind of person, now, who doesn’t want to go straight to grad school. All those academic paths have changed me. I sit down to write my admissions blog and find myself imagining my life in computer data structures. My recent plunge into computer science, too, is a path that’s changed me.

So to any prospective Swatties reading this blog: keep searching – across breadth and depth – and keep changing. And maybe, if you want it, and if things work out, your search will take you to Swarthmore.

One thought on “Search On!

Leave a Reply