Professional Documents
Culture Documents
Problem: They didnt teach computer science when I went to school. Why this is a big problem for schools:
The general population knows no computer science. School boards and administrators dont fully appreciate the importance of computer science. Pioneering teachers must pick up a new discipline. Parents are unable to help their children at home. This is a self-perpetuating cycle.
Skepticism:
Why does my kid need computer science? I get along just fine without it! Technology changes so fast. Kids should learn things for the long term.
Fear:
I dont want my kid to be a hacker. All the jobs are going overseas.
Isolation:
There is often only one Computer Science teacher per building or district.
3
Computer Science = Programming Computer Scientists work alone Computer Science is not a deep discipline
Facts:
Computer Science is about algorithmic thinking, creative problem solving, system design, and implementation. Computer Scientists work with each other and with people of other disciplines. Computer Science has a deep intellectual foundation and is rapidly changing the world.
5
Whats in a name?
The field is somewhat misnamed:
Computer Science
Is not really science, And its not really about computers.
Computer science is not about tools Its about ideas. In particular, its about ideas concerning process.
Streams decouple the sender and the receiver, but they do need to agree on a communication protocol.
13
14
17
18
Remember
Your protocol must transmit the entire message accurately even though some packets may be delivered incorrectly or not at all. The receiver can packets to the sender to provide it with feedback on how things are going. Your protocol must allow the receiver to
detect garbled packets (changed letter or digit). deal with out-of-order packets.
19
Latency - the amount of time it takes for one character to be successfully transferred from the sender to the receiver.
In this simulation, can measure average latency by having the sender and receiver write the times at which they first send and receive each packet. Then take the differences and compute the average.
20
Optional Extensions
Reducing message size: Use only 2 digits in each packet, instead of 3. Private communication: Prevent the message channel from being able to reconstruct the message, even if it knows the protocol. (Sender and receiver can share a secret number.)
21
22
A sliding window is used so that the sender doesnt have to wait for an acknowledgement before sending the next packet. That way, data can be sent at a faster rate. (The window size is the number of packets that are allowed to be in transit simultaneously. The window size increases slowly over time. Eventually, if no ACK is received, data is retransmitted and the window size decreases by half.)
Packet 3 4 ACK 4
H I
H E
23