Lab 1: Computer Abstraction Hierarchy

People mostly take for granted the enormous behind-the-curtain technology that allows their favorite apps to work. Unit 4 gave a first glimpse at that technology for apps that rely on the Internet, with an abstraction hierarchy that includes application protocols, TCP, IP, and link layer (hardware interface) protocols. There are even more levels of abstraction inside your computer. The purpose of this lab is to tour these levels of abstraction, from high (application programs) to low (transistors).

Keep this entire lab light. Throughout the lab, there's much that can be expanded. Some students will want more, so additional interesting information is tucked away in optional reading sections that hide detail that's not needed for the AP exam but may appeal to student curiosity, like this:

Why tour that whole range of abstraction?

Most computer engineers specialize in one level of abstraction, spending their entire careers at that level. But the engineers who really change the nature of the technology are always aware of the latest developments at levels above and below their own work, because those other levels exert pressure on the design of any individual level.

For example at the start of the 1970s, computer architectures were mostly designed to provide a large and flexible set of machine language instructions. By the end of the decade, instruction sets were smaller and simpler. Why? Two reasons:

The details of this example aren't important for you or your students to learn; the point of the story is to motivate you in familiarizing students with the entire hierarchy from top to bottom.

Not all abstraction levels are equally important. We single out two: the software abstraction that allows a computer to solve different problems without having to be physically rewired for each one, and the digital abstraction that allows hardware designers to pretend that a transistor is always either fully on or fully off.

FOR NEXT YEAR: The abstraction commentary about "nuanced meanings" should really appear earlier in the year. We should change the next year, and what remains here should just be a nod to that ongoing discussion. --MF, 11/21/17 (with Brian)

Abstraction has many nuanced meanings in computer science. At the end of each page that deals with abstraction, ask students, "What does abstraction mean on this page?" and consider keeping a running log.

There is a lot of reading in this lab. Find a strategy that works for your class. You might have students take turns reading, or you might have all students read a section silently and then ask one or two students to summarize out loud.

Pacing

The 10 lab pages could be split across 4–8 days (180–360 minutes). Expected times to complete follow:

Prepare

Lab Pages

Solutions