0% found this document useful (0 votes)
39 views

Unit 1 Review

This document provides a summary of lessons from a unit on the Internet. The first chapter explored how computers represent different types of information using binary signals and established communication protocols. The second chapter examined how the Internet allows widespread sharing of information by connecting billions of devices. Key topics included representing text and numbers digitally, developing protocols for sending messages and files over networks, and the collaborative work of engineers to build the Internet infrastructure. Later lessons focused on technical aspects like IP addressing and domain name systems.

Uploaded by

Aalaa Mady
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views

Unit 1 Review

This document provides a summary of lessons from a unit on the Internet. The first chapter explored how computers represent different types of information using binary signals and established communication protocols. The second chapter examined how the Internet allows widespread sharing of information by connecting billions of devices. Key topics included representing text and numbers digitally, developing protocols for sending messages and files over networks, and the collaborative work of engineers to build the Internet infrastructure. Later lessons focused on technical aspects like IP addressing and domain name systems.

Uploaded by

Aalaa Mady
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

Unit 1 – The Internet

In this unit you have learned how computers represent all kinds of information and how the Internet
allows that information to be shared with millions of people.

The first chapter explored the challenges and questions that arise when representing information in a
computer or sending it from one computer to another. It begins by investigating why on-off signals, also
known as binary signals, are used to represent information in a computer. It then introduces the way
common information types like text and numbers are represented using these binary signals. Finally, it
illustrates the importance of establishing shared communication rules, or protocols, for successfully
sending and receiving information.

In the second chapter, you learned how the design of the internet allows information to be shared
across billions of people and devices. Making frequent use of the Internet Simulator, they explore the
problems the original designers of the internet had to solve and then you “invented” solutions. To
conclude the unit, you will research a modern social dilemma driven by the ubiquity of internet and the
way it works.

Chapter 1: Representing and Transmitting Information

Lesson 1: Personal Innovations


This activity planted the initial seed for you to think about the ways in which you might be able to solve
some problems relevant to your life with technological innovations. The AP CS Principles framework
describes 6 Computational Thinking Practices that need to be evident in the course. This first lesson
was about beginning to engage with those practices - beginning to think, act, and behave like
computer scientists. In particular, the practices in which you should have be engaged in this lesson
were:

 P1: Connecting Computing: Describe connections between people and computing.


 P5: Communicating: Describe computation and the impact of technology and computation.
 P6: Collaborating: Foster a constructive, collaborative climate by facilitating the contributions of a
team member; exchange knowledge and feedback with a partner or team member.

Lesson 2: Sending Binary Messages


One of the least understood things about the internet is how it works as a physical system. Bits of
information physically travel from one place to another. On the “real” internet bits are transmitted
using a variety of different mediums, and most of the time a single bit physically travels over a variety
of systems to get where it’s going. You should see the issues in the physical transmission of bits as a
separate problem from interpreting and encoding the messages sent on top of those systems.

While you build and modified your "binary message devices" you should have recognized that it's easier
to invent a system of communication that uses combinations of binary signals with a simple device,
rather than making a new, or increasingly complex device for each new problem. This lays the
foundations for:

 encoding complex information in computers using combinations of bits


 developing clear communication protocols
Lesson 3: Sending Binary Messages with the Internet Simulator
The major purpose of this lesson was to engage you in a rather challenging problem of engineering a
physical network for digital communications. if you must communicate in binary by setting the state of
some object (such as a wire) to one of its two possible states, merely defining “State A” and “State B”
is insufficient because there is no way to distinguish between a single bit "A" and a string of "AAA" for
example. Some element of time must be incorporated into a communication protocol to make it
functional for exchanging bits. This time-per-bit leads naturally to calculating a bitrate for a given
device, or a measure of how quickly a system transmits digital data.

This is the first lesson in which you used the Internet Simulator which was designed to give you a
hands-on experience experimenting with (and solving) different kinds of problems associated with
networked computers and the Internet. A goal of using the internet simulator was put best by a student
near the conclusion of Unit 1 who said "Whoa, I feel like I just invented the Internet!"

Lesson 4: Number Systems


In computer science it’s common to move between different representations of numbers. Typically we
see numbers represented in decimal (base-10), binary (base-2), and hexadecimal (base-16). The
symbols of the decimal (base-10) number system - 0 1 2 3 4 5 6 7 8 9 - are so familiar that it can be
challenging to mentally separate the written symbols from the abstract values they represent. As a
result, using the digits 0 and 1 can be a distraction when learning binary initially, so we don't in this
lesson.

We want to expose the fact that numbers themselves (quantities) are laws of nature, but the symbols
we use to represent numbers are an arbitrary, man-made abstraction. Sometimes you memorize
conversions from one number system to another without really understanding why. By effectively
having invented your own base-3 number system in this lesson the goal is for you to see that all number
systems have similar properties and function the same way. As long as you have 1) a set of distinct
symbols 2) an agreement about how those symbols should be ordered, then you can represent any
number with them.

Lesson 5: Binary Numbers


Number systems help us express and reason about quantities. Early number systems were merely a
system of tallies that allowed humans to record and perform simple arithmetic with values. The number
system we use today uses the concept of place value to allow us to express any value we wish by
combining only 10 symbols (0, 1, 2 …). We therefore call it a “base 10” number system. When
developing a number system for a computer, we only have two symbols available to us, corresponding
with the two states of a single bit. However, the power of place value allows our binary or “base 2”
number system to express any value we wish.

When using this binary representation of numbers, certain values (1, 2, 4, 8, 16, etc.) are seen
repeatedly. When written in binary, these values are 1, 10, 100, 1000, 10000, and so on, and so are the
incremental place values in this binary number system.

Lesson 6: Sending Numbers


The main purpose of this lesson is to reveal that just because we now know how binary numbers work,
there are still challenges of information representation and communication. We used the Internet
Simulator to enforce some of the constraints imposed by real computers and systems. In particular we
were interested in developing a more robust protocol for sending a list of numbers over the internet.

You had to make choices about how to structure your messages in terms of number of bits to use for
each number and even how to communicate the beginning and end of the list. While the binary number
system can be used to represent any value we wish, in practice the range of values we are able to
represent is limited by the number of bits we use. Thus, protocols for exchanging binary information
must specify in advance how many bits will form a single number among other things. Without knowing
this information the receivers of a message have no way of determining how to break up an incoming
stream of bits into individual numbers; it will just appear to be a random string of 0s and 1s.
Lesson 7: Sending Text
This lesson concluded your initial study of data representation. After this lesson you should be able to
identify the most common types of information, text and numbers, which are stored using binary. More
importantly you should understand the challenges or principles that led to the creation of these
systems. For example, in the previous lesson you saw that representing more numbers means you need
more bits for each number. In this lesson you should have seen that needing to represent more symbols
(in this case characters), similarly necessitates using more bits.

You should also have seen the importance of shared protocols for communicating successfully with
bits. The only reason a pattern of bits represents the letter "A" for example, is that everyone agreed to
that system. You developed the important understanding that representation systems are somewhat
arbitrarily created to solve a shared problem, and they work not because there was "one right answer"
but because many people agreed to use them.

The wrap up discussion began to explore the concept of abstraction. This is a challenging concept to
understand and one that you will return to many times throughout the course. In this case your
understanding only need be that, while we know everything on a computer is represented with patterns
of binary electric symbols, we create abstractions (in this case decimal numbers) to allow us more
easily reason about what those patterns

Chapter 2: Inventing the Internet

Lesson 8: The Internet Is for Everyone


The purpose of this lesson was set up to help you be receptive to learning about some of the technical
aspects of how the Internet functions. We wanted the message to be clear that a huge part of being
able to solve these problems, or even to function as an informed citizen, is to be educated about how
the Internet actually works as a system that is built, engineered, and maintained by people.

It is both interesting and important to know that the protocols or rules by which Internet traffic is
governed are not owned or controlled by any government or business (at the moment). It’s a group of
well-meaning citizen-engineers dedicated to keeping the Internet free, open and robust for all.

The Internet Engineering Task Force (IETF) is the group of mostly volunteer citizens that proposes and
develops all of the standards and protocols that exist on the Internet. Request for Comments (RFC)
documents - like the one we use in the lesson - are how these standards and protocols are defined and
published for all to see on the IETF website. They are some of the best-written technical documents in
existence.

And with a little background in how bits work, what’s necessary for protocols to work when bits are
transferred over wires, they are relatively accessible reading. Here’s the full set:
https://www.ietf.org/rfc.html. RFC 000 (the first one) is related to what we ask students to do in the
next several lessons.

Lesson 9: The Need for Addressing


This lesson built up to you learning about the “Internet Protocol” addressing system, commonly known
as IP Addresses.

Up to this point in the course, the Internet Simulator has only assumed point-to-point communication.
The "protocols" you were inventing mostly had to do with encoding information in binary, rather than
also encoding communication information required for successful delivery of the message.

The lesson mimics a real problem that designers of the internet had to solve. Many computers are
connected together by networks. So if a computer sends some bits out, those bits pass through many
computers. How does a computer know who those bits are for? If a response is necessary, how does it
send it back? This is a complicated question, but the first part of the answer is that you need an
addressing system, and some kind of fixed structure for messages that everyone agrees on (a protocol)
so messages can be interpreted properly. (We'll get to routing later).

The Internet Simulator for this lesson was setup to “broadcast” every message to every person in the
group. Since everyone receives any bits that were sent by anyone else, a method for identifying the
intended sender and receiver of the message is needed. You had to invent a protocol for addressing
messages.

Many network systems, such as local Ethernet and WiFi, rely on addressing schemes to make sure bits
are received by the correct computer based on address and for other computers to simply ignore
messages not intended for them.

Lesson 10: Routers and Redundancy


The main purpose here was to use the Internet Simulator to dive into examining the network traffic
that's generated by the peers in your class. Seeing traffic like this in real life is very hard if not
impossible since only engineers of large networks have access to router data on a large scale, and it's
also more complicated to understand. While our network was simulated and provided a simple view,
the basics are the same, and quick investigations reveal interesting things. We wanted you to simply
get a taste for both the scale and the implications of what routers do.

CS Background: A router is a computer designed to receive and redirect packets of information based
upon the addressing information (e.g. an IP address) contained in the packet. Routers will either deliver
a packet to its final destination or forward it to one of several other routers it is connected to. By
monitoring current network conditions, a router can determine which of these will allow the packet to
reach its destination fastest. There will often be redundant paths between two locations on the
Internet, and so if one path is experiencing traffic or otherwise out of service, additional paths will be
available. This redundancy makes the Internet more reliable and also helps the Internet to scale,
accommodating new users (and routers!) as they are connected to the system.

Lesson 11: Packets and Making a Reliable Internet


This is a problem-solving lesson. On the real Internet packet sizes are limited, and transmission is
unreliable. In this lesson we have setup the Internet simulator to restrict packet-size to be very small -
16-bits for the to and from addresses plus only 8 ASCII characters. Also, the Simulator drops packets pretty
regularly. In a set of 10 messages it's very likely one or two will be dropped. You may have noticed the
restrictions of this simulation, but these types of constraints are a very real problem on the Internet.

The problem you had to solve was how to use the 8-ASCII-characters-worth of data to include both a
piece of message you were trying to send, as well as information about how many messages (packets)
there were in the whole message, and which number the packet was.

You invented or at least appreciated the need for something like the Transmission Control
Protocol TCP. TCP was designed to overcome the inherent unreliability of the Internet. A small but
non-negligible percentage of packets are lost in transmission because of faults in the infrastructure of
the Internet. In order to constrain the extent of these errors, larger messages are divided into many
packets which are individually routed to their recipient. The receiving computer will send an
acknowledgement confirming the receipt of that packet. If the sending computer does not receive an
acknowledgement, it will resend the packet until all packets have been acknowledged.
Since packets may arrive out of order, additional data must be included to indicate the order in which
the packets should be arranged. Thus, while individual packets cannot be guaranteed to arrive,
eventually an entire message can be accurately reconstructed.

Lesson 12: The Need for DNS


The basic purpose of this lesson was to show you in kinesthetic and interactive ways some of the
challenges solved, and created by, DNS. At its core, the DNS is "simply" a hierarchical system of
computers and databases, that maps IP addresses to domain names. It enables Internet users to
connect human-language locations on the Internet with numeric addresses used by IP. While
distributed and hierarchical, it can be treated in the abstract as a centralized registry of locations on
the Internet, allowing users to quickly find locations they are looking for and register themselves so
that others may find them.

Lesson 13: HTTP and Abstraction on the Internet


The main purpose of this lesson was around the understanding of one of the main Enduring
Understandings and associated Learning Objective of the CSP Framework:

 6.1 The Internet is a network of autonomous systems.


o 6.1.1 Explain the abstractions in the Internet and how the Internet functions. [P3]

There were two main purposes to this lesson:

First, simply getting a basic understanding of what HTTP is and what it's for. HTTP like DNS is an
ASCII-text based protocol - it's just two computers sending text messages to each other. What makes
it a protocol are the rules of the "conversation" the two machines are having. In the case of HTTP, it is
a call-and-response protocol for a client/server relationship, where a client requests a web page or
other content (image, sound, video, etc.) from a server. The server looks for it and sends it back.

Second and perhaps more importantly, is understanding HTTP as a "high level" protocol that sits on top
of all the other protocols and internet systems we've learned about in the course. That text message
conversation between the computers is being broken up into TCP/IP packets, and all the data gets sent
as bits over wires and airwaves, taking different paths, and it gets interpreted and reassembled at the
end.

We often talk about how the Internet works in "layers" and this is a perfect example of abstraction on
the Internet, as one layer makes use of the functionality provided by the layer below it, without
worrying about the details of how this functionality is achieved. And HTTP doesn't have to worry about
anything other than the text protocol of HTTP works. The network software and devices on your and
others' computers handle looking up addresses, breaking down data, packeting, routing, transmission
and interpretation and reassembly. It's really amazing.

What was intended for you to understand was to some degree the "Big Picture", to be able to recognize
that these layers exist and to reasonably explain how they work together for common web page
requests.

You might also like