In lieu of an abstract, here is a brief excerpt of the content:

Structures Structure Data The concept of the algorithm has been pressed into service in recent years for thinking through processes that would not at first blush be considered to have any of the features that computer scientists normally associate with their core area of expertise: the dynamics of particular kinds of cultural forms, social networking, or brand behavior, for example. Extended in this way, the algorithm, as an idea, thus becomes an “analyzer ” of social relations, particularly for processes that do not appear to have any obvious, explicit implementation in computational systems as such. The algorithmic qualities of particular kinds of social relation, gray media objects and the interfaces they have with the everyday world, are readily evident in a number of fields. The filtering of social-housing hopefuls, nightclub bouncers operating a door policy, putting together a burger, or sorting a mate all attest to the algorithmicity of social life, as do the routine work-arounds used to deal with poor software. And the algorithm has a particularly seductive quality: the effectiveness of a finite set of steps for solving problems, along with the tacit assumption that the specification of an algorithm can change, points to a certain desired formal level of control. Sociologists, media and cultural theorists, and the like have paid considerably less attention to the near-indispensable correlate of the algorithm, that without which— actual, explicit, and formal or virtual, implicit, and informal—an algorithm would have little to work with: the data structure, or, more simply put, a way of storing and arranging data. Part of the interest of considering things algorithmically has to do with their imitability, their replicability (in the sense that an algorithm extracts an identical, often apparently optimized set of steps from a process), and the inexorability of their finite progress toward a termination point. Imitate. Replicate. Terminate. Optimally. An algorithm is sometimes considered the sum of logic and control. But 84 Structures equally, a program may be considered the sum of algorithms and data structures. If a controllable universe is a sum of programs, a summa programmae, then data structures are essential to the effective operation of processes of control and as such represent an equivalently important stratagematic analyzer of social relations, perhaps even more so. Other stratagems in this book have drawn on the complex interplay of the formal and the empirical evident with the diffusion of programmable mediation throughout culture, and have attended in particular to the tacitly prescriptive nature of specific media forms (e.g., the process of regularizing expression, which forms a way of ensuring the existence of parseable, structured pattern). The requirement that data be structured extends this interplay into the more general abstract architecture of social and cultural practices organized by, for, and as information. If algorithms work most efficiently with well-designed data structures, then the organization of people and things in a manner commensurate with these structural forms will facilitate the smooth flow and control of data. Consider the most basic operation of an algorithm, one for sorting, say, as discussed in the previous essay, in the stratagem “Know Your Sorts.” Sorting algorithms are typically used to arrange lists of data such as numbers, names, credit codes, or other intimacies. Many programming languages natively provide the array data structure, which allows you to store collections of elements in one contiguous set of spaces in memory (so you might declare an array of type integer or float, for example). If your sorting algorithm was for sorting whole numbers, you might pass it an array of integers to work with. However, the array might not be the best data structure to use in a specific case. Arrays allocate memory in advance, so you need to be able to say how big your list will be. What if you don’t know how big the list is going to be, or if its size will change? It would be like renting a warehouse for a business without any clear idea of the amount of stock you need to hold. Too big, and you have excessive overheads. Too small, and your stock has no home. Instead you might choose to use a linked list, which is a bit like an array except that it can grow or shrink as needs require, and does not require the advance allocation of contiguous blocks of memory. The point is that data structures help optimize the operations of algorithms by providing a way of organizing memory—computational, living, or material...

Share