Why Computer Science and Government Belong Together

This summer, I have been discussing and sharing Thomas Friedman's recent article Two Codes Your Kids Need to Know. Friedman makes the case that high school students should develop an in-depth understanding of two types of code: the U.S. Constitution, and computer code, i.e., programming and computer science. As AP teachers, we are always looking for parallels and tie-ins that will enhance the experience of students in both of these courses.

My daughter celebrated her 19th birthday with some of her college friends recently and I had a front-row seat as they played a game popular with college students called Secret Hitler. Like other popular college games such as Cards Against Humanity, and Exploding Kittens, I am sure that part of its appeal is the shock value of its title. However, it is a deceptively well-designed and well-balanced game in which one of the players has a secret identity that they try to conceal from the other players through a combination of lying, bluffing, and gamesmanship.

My daughter has not studied AP U.S. Government and Politics, but she has taken computer science. I was pleased to see how she was using logic to convince other players. At one point she pointed out that if three different players were giving the same story, then logically they must all be telling the truth—or all three must be lying. This kind of reasoning made perfect sense to her, and all she needed to do was to convince the other players that she was correct in order for her to win. However, much to our mutual surprise, she was wrong, in the end. Her logic was absolutely correct, but only if all players were acting rationally. Some of the players in the game acted against their own best interests, or perhaps did not entirely understand the rules of the game. "It makes no sense," she admitted later. "Why would someone do that?"

There are many ways to integrate computer science into the study of government. I have been following James Grimmelmann's work to bring together computer science and law ever since I was a graduate student. He pointed out the similarities in designing legal arguments and designing well-organized code hierarchies, and that meant quite a lot to me as someone who is both a writer and a programmer. I am fascinated by how GitHub can be used to do version tracking and branching from a repository of code. In today's remix culture, how might we use tools such as GitHub to track the evolution of ideas or memes?

The points Thomas Friedman raises in his article are well taken. Computer science gives students a logical framework through which to analyze the many problems that face our world. It develops critical thinking skills, incorporates collaborative design, and builds resilience and just plain stick-to-it-iveness when the problems get tough. But an accompanying study of AP Government that takes into account human nature, history, and our stubborn tendency to both strive for innovation and get in our own way, is needed to balance out the place of logic and idealism where computer science might lead us. In an ideal world, everyone acts rationally and in their own self-interest. But the real world, with all its imperfection and irrationality, leaves room for optimism, for altruism, and ultimately, for humanity. Understanding how the structures of our government work is just as important as knowing how to construct the digital levers that make everything happen.

© Douglas Kiang 2020