Why this? AP talks about the abstraction hierarchy. This page shows some level of detail, but also highlights the two crucial abstraction barriers: between hardware and software, and between the analog domain and the digital domain.
Why here? This page is sort of preview of coming attractions. It's a short page, with nothing really to do except read it and move on to the full story.
PG, on unit: This whole unit is a lot of reading and very little action. Of course, that's true of most school courses so, for better or for worse, kids are used to it. We've thought about it and (currently) have no solution. I very much like all the content. I equally much want the entire unit to be optional extra. To me, it feels like the second course in computer science, not the attract-students-in course. For those who want to see what's under the hood of the /computer/—the computer engineering interest—this should be available, but if it were not for CB, I'd leave it all optional.
BH, on lab: There's hardly anything to do in this lab, and if we could improve on that it'd be great, but I don't see how.
MF: lightly clean up to make the text more concise
In Unit 4 A Hierarchy of Open Protocols, you saw that the Internet software is arranged in several levels of abstraction, with application programs (like your email program) at the highest level and network hardware protocols such as WiFi and Ethernet at the lowest level. Recall that higher levels are closer to what users want to be thinking about; lower levels are closer to the way machines work.
Like the Internet, the way a computer works on the inside also has levels of abstraction.
In this lab, you will learn about the levels of abstraction in computer software and hardware.
On this page, you will learn get an overview of three groups (domains) of levels of abstraction.
There are a lot of levels of abstraction in how computers work. Here they are organized into three overarching domains:
The programs you write and use are software, but underneath these programs is more software that helps them work. In this lab, we'll look at four layers of abstraction in the software domain:
Software is an abstraction—a way of thinking about the computer without thinking about how it works.
In the software domain, each level of abstraction is a different piece of software, but the levels of abstraction in the digital domain are different ways of thinking about the same physical object. The circuitry inside a computer is complicated, and to make building it possible, engineers think about it at several different levels of abstraction:
Logic gates, which are the lowest abstraction level of the digital domain, operate on ones and zeros. In physical reality, those logic gates are built out of transistors, a type of circuit component. Transistors aren't like light switches that are either on or off. There can be in-between values (like "only 23% on"). So, electrical engineers have to think about the laws of electronics to design digital circuits so that in-between values don't happen.
Digital and analog are opposites. Digital means information that is represented as ones and zeros. Analog means information that is represented by signals that vary continuously (that is, including in-between values).