This year I have been very lucky to be a very small part of an incredibly impressive international team revamping the IBDP Information Technology in a Global Society course. As a part of that work I have been giving much thought to how important it is to understand the workings of digital technology in order to understand–and hopefully shape–their impacts on our social societies and world.
I have explored different methods of understanding the ecology of digital technologies and specifically the platforms that are so quickly remaking our world. Here, I wanted to write up some of my preliminary thoughts on what the base line knowledge should be. Starting with what exactly “digital” is, and then how it exists and impacts our worlds.
To my mind educated commentators on the social impacts digital technologies should have at base have a solid conceptual understanding of the following:
- Properties of Digital Data
- Function of Symbolic Languages (Coding, Programming, aAlgorithms, etc.)
- Uses and Limits of Abstraction
- Basic Operation of IT Systems (Input -> Processing+Storage -> Output)
- Critical Role of Interfaces, Databases, and Networks
- Ecologies of Digital technologies (& Systems Thinking)
- Digital Platforms are Products of Specific Places and Cultures
The first four are technical, but essential in my view to understanding the later three. Now this is not to say that one can’t comment intelligently on digital technologies while not know all of the above. In fact their are many astute commentators who do so regularly. However if we truly want to know the limits and possibilities of these technologies we should know more. We may be able to comment on their impacts but it will be difficult to impossible to accurately assess, redesign, or regulate these technologies and platforms without a strong conceptual base.
Digital data is numerical. It is produced and shared using numerical values. Real information is abstracted, or symbolically modeled to the point where it can be represented by a series of symbols which themselves ultimately are represented as “on” or “off” 1 or a 0s (i.e. Binary Language). Therefore all digital systems are approximations of reality. They are only numerical/symbolic maps, not actually reality and there is inevitably something lost or errors introduced in the approximations required for digitalization (find examples). Numerical information is ordered sequentially and requires a symbolic language in order to provide meaning. Digital information is modular; it is made up of collections of discrete parts which can be isolated, moved, rearranged, and copied. Digital information is programable and can be changed, transformed, and manipulated by algorithmic operations. Therefore, digital information processes can be automated. Digital information is Variable. It can be copied or rearranged to exist in potentially infinite numbers of forms. (This last point is particularly important in the context of understanding issues of intellectual property, open source innovation, and how microeconomic rules differ for digital properties).
Since all digital data is ultimately just strings of numerals, it requires a symbolic language to translate, order, process, and create outputs. Code is the system of rules to convert information—such as a letter, word, sound, image, or gesture—into another form or representation. Programming languages consist of symbolic instructions for a computer. Programming languages contain abstractions for defining and manipulating modular data structures or controlling the sequence or flow of execution. Programming languages can be used to create programs that implement specific algorithms.
Algorithms are a set of specific instructions for carrying out a computational process or solving problems. Algorithms can perform calculation, data processing, and other automated tasks. Generally computer algorithms take an inputted variable and apply a certain order of specific and unique manipulations to arrive at with a specific output. (Ideally also include discussion of logic/comp. thinking).
Generally, algorithms are composed of four types of steps: Variables, functions, conditionals, and loops. Variables are stored values. Functions are repeatable tasks such as a calculation that is performed on the stored value (Variable). Conditionals are decision points in the sequence of operation (e.g. If this, then do that). Loops can repeat tasks until an outcome that satisfies the condition is derived thus ending the algorithm. Programming languages are also built out of the these basic fundamental building blocks). These also form the basis of automation (of robotics, drones, even AI)
Multiple levels of abstraction are used throughout digital processing. Abstractions are simplified models that can contain logical hierarchies or can have errors. They also can often omit important information. Sequential ordering, or controlling the flow of processes, necessarily establishes structural hierarchies. Some processes will happen before others and might change those that follow. From the beginning Inputs are abstracted into numerical form. Programming languages use modular symbolic pieces as tools to process further information. More complex languages use more complex abstractions. Software programs are platforms designed with specific conceptual schemas to manipulate data in particular ways. (For example cutting and pasting in a word processing program). Hardware is also built using multiple levels of abstractions, such as transistors, logic gates, chips, memory, motherboards, special purpose cards, and storage devices. Applications and systems are designed, developed, and analyzed using levels of hardware, software, and conceptual abstractions.
Garbage In, Garbage Out
If inputs are wrong, or the system design is flawed or has biases, than the output will reflect that. Hence it is important to constantly validate inputs and reassess systems. Computer models, systems, and programs are indispensable tools for understanding and controlling our modern societies, but they are built on simplifications and therefore require constant vigilance.
Information technologies are the machines and platforms we use to store, retrieve, transmit and manipulate (process) data. An IT system is generally composed of physical hardware interfacing with a Operating system that interfaces with specific applications (Software). IT systems also have storage, or memory. In this section we would quickly review the basics of IT systems. We would quickly run through brief descriptions and examples of hardware (computers, smart phones, servers, tablets, modems, routers, printers, and on). Hardware is built with components out of materials with specific properties conducive to computing. I would include lists as references but NOT expect or assess mastery. We would define the function of software, operating systems, etc. and again give lists of examples. (I would expect that most students would already know most of examples).
Interfaces convert information from users into digital form allowing it to be processed, stored, shared, or manipulated. Because interfaces are the transmission platforms where the real world meets data it is critical to understand how their designs and functions interpet and digitized real world inputs. Interfaces can be designed to be simple, enhance user control, or nudge users towards certain actions. (Understanding interfaces is critical to understanding issues of power and agency).
A database is an organized collection of data. Databases are structured to facilitate the storage, retrieval, modification, and deletion of data. Simple databases (e.g flat or spreadsheets) order data sequentially. Data can also be arranged in hierarchies (tree-like), networks, relationally, or object oriented. Students should understand each of these and the importance of addressing structures. I would explore basic data mining and data science techniques. Conceptual understandings of databases and networks are closely linked; for example the internet is essentially a vast distributed database of websites (records) queried by search engines. Databases have ontologies with inherent hierarchies that have real world impacts.
Computer networks connect different devices together through wires, cables, fiber-optics, or wirelessly. But networks also refer to groups of people or organizations that are closely connected. Networks are composed of nodes and edges. Networks allow information to move across time and space. Network effects are major drivers of platform success/failure, while networks also allow stocks to accumulate. Network analyses are critical tools for understanding digital societies.
Now the fun begins. This is where we begin to piece together how the digital world fits into our “real” world. That is understanding how our digital platforms interact with our physical, social, cultural, economic, and legal worlds. In my view this requires introducing different scales of analysis (ala Geography) Here I find Bratton’s Stack model to be especially helpful in conceptionally understanding how our digital technologies function at different levels in our world.
Bratton defines a platform as “an entity that pulls things together into temporary higher order aggregations that, in principle, add value to both what is brought to the platform and the platform itself. They can be physical technical apparatus, an alphanumeric system; they can be software or hardware, or various combinations.” Platforms traverse the stack in a U shaped, connecting users together by traveling down the layers and then back up the layers.
Bratton’s model provides an understandable framework for thinking about how digitalization, and particularly, platforms exist in our physical and social systems. Now there is a lot here. Every single linkages and feedback loops among the layers—as well as stocks compiled or reduced (of data/money/power/etc.)—can have books written on their social economical impacts. However for understanding the basic scales at which our digital platforms operate I think Bratton’s model is invaluable.
Next up would involve the detailed studying of the interactions of these systems is where the social scientist jump in and thrive. Digital technologies—and the data it processes—exists in real physical, social, legal, economical, and environmental systems; they have distinct values/logical hierarchies/system design/other characteristics reflective of those places and cultures.
This post will be followed up later this the summer with a survey of some of the many amazing books I have read in the course of this process. (Additionally, I hope to write up more on the importance of systems thinking in both technical sciences but also social sciences–particularly interdisciplinary systems thinking). All credit for my deeper understandings should go to these authors. (For this post principally Bratton, Manovich, Gere and some coding textbooks; See sources).
To be continued!
Bratton, Benjamin (2015) The Stack. Soverignity & Software. MIT Press
Brynjolfsson, Erik, and Andrew McAfee. (2016) Machines, Platforms, Crowds. W.Wl Norton & Company
Lessig, Lawrence (2006). Code: And Other Laws of the Internet (v2). Basic Books.
Manovich, Lev.. (1998) The Language of New Media. MIT Press
Manovich, Lev. (2013) Software Takes Command. MIT Press
Pasquale, Frank (2015) The Black Box Society. The Secret Algorithms That Control Money and Information