Part 1-
a. Circle any of the following which offer persistent byte storage: CPU, Flash Memory, Hard Drive, Random Access Memory (RAM), Ethernet
b. How many distinct patterns can be stored with 3 bits?
c. Note that Firefox is written in C++. What is the predominant type of instruction stored in the Firefox.exe file?
d. Alice has 1000 images, each 400 KB in size. About how much space do they take up overall?
e. Suppose we have a video camera that records at a rate of 2 GB per hour. Recording for 15 minutes creates about how much data, expressed in MB?
Part 2-
a. Suppose computers A, B, C, and D are connected to an ethernet cable, similar to the setup shown in lecture. Computer A begins transmitting a packet on the cable, but it collides with another transmission, so A stops transmitting. What does computer A do next?
b. Suppose we are using the following checksum scheme: add up all the bytes, and take just the last two digits of the sum. What is the checksum of the following bytes: 101, 202, 103, 100, 210, 120
c. What problem is addressed by checksums? (one sentence answer)
d. A computer connected to the internet is identified by what kind of address (the specific name, not just "internet address"):
e. Circle any of the addresses below which are not valid internet addresses: 1.2.3.4, 11.250.3.4, 45.67.212.100, 42.257.99.11, 171.64.64.171
f. True or false. Routing on the internet from Nick's office to the east bay is about 15 hops, and to Poland is about 1000 hops.
g. The following is the output of a famous networking utility.
1 yoza-vlan70 (171.64.70.2) 2.039 ms
2 bbra-rtr-a (171.64.255.129) 0.932 ms
3 boundarya-rtr (172.20.4.2) 3.174 ms
4 dca-rtr (68.65.168.51) 27.085 ms
5 dc-svl-agg1--stanford-10ge.cenic.net (137.164.50.157) 2.485 ms
6 dc-oak-core1--svl-agg1-10ge.cenic.net (137.164.47.123) 3.262 ms
7 dc-paix-px1--oak-core1-ge.cenic.net (137.164.47.174) 4.046 ms
8 hurricane--paix-px1-ge.cenic.net (198.32.251.70) 14.252 ms
9 10gigabitethernet1-2.core1.fmt1.he.net (184.105.213.65) 9.117 ms
10 linode-llc.10gigabitethernet2-3.core1.fmt1.he.net (64.62.250.6) 4.975 ms
11 li229-70.members.linode.com (173.255.219.70) 4.761 ms
What does this output show?
h. You open your laptop and type "https://www.blah.com/news/today.html" into your browser and hit return. Three questions, 1-3 word answers:
What computer does your laptop contact to request this web page?
What is the content of the request?
What is the content of the response?
Part 3-
a. What does the above sound like?
b. Why is a digital signal more resistant to noise?
c. Suppose we have these 6 samples: 1000, 1001, 1010, 1005, 1006, 1002. Consider the compression scheme from lecture, recording the first sample followed by the local delta for each sample. Write out the encoding of the 6 samples using this scheme:
d. Is the above compression scheme lossy or lossless?
e. Suppose we have two versions of the same image, differing only in their JPEG compression level. Image A is compressed at q1 and is 100 KB. Image B is compressed at q5 and is 400 KB. Which of these two images is more likely to exhibit JPEG compression artifacts?
f. Circle any of the following which are video encoding formats: HTTP, PNG, H.264, JPEG, OGG VORBIS
g. "Network effect" means that users select among competing products based on what feature of each product?
h. Suppose Stanford is using the open source software YoYoMatic widely and is dependent on it. Describe an example scenario where Stanford would gain significant benefit from having access to the YoYoMatic source code.
i. Suppose there is a website foo.com and you have a password to log in to it. What are threedifferent, non-physical techniques a bad guy might use to obtain your password (non-physical meaning other than breaking in to your house and making you tell them):
j. Consider the brake pedal in a car -- what is the abstraction the brake pedal presents to the driver?
Part 4-
Write code to print all the girl rows where the rank is greater than 900.
table = new SimpleTable("baby-2010.csv");
for (row: table) {
Part 5-
Write code to count the number of people who identified "purple" as their favorite color and print the result in the following format.
purple: 5
table = new SimpleTable("survey-2012.csv"); for (row: table) {
Part 6-
Here is some code that does something.
image = new SimpleImage("flowers.jpg");
for (pixel: image) {
print("pixel");
}
print("image");
Suppose that flowers.jpg has 150,000 pixels. Describe the output of the above program:
Part 7-
This problem is similar to a bluescreen computation. As usual, we have two images -- image and back, and the back image is at least as large as the main image. Write code that for each pixel in image, if the red, green, or blue value is less than 60, then copy just the blue value from back to image.
image = new SimpleImage("image.jpg");
back = new SimpleImage("back.jpg");
for (pixel: image) {
Part 8-
Write code to print the rows of all names beginning with J, except do not print John or Jess.
table = new SimpleTable("baby-2010.csv");
for (row: table) {
Part 9-
Consider the people who identified "coke" as their favorite soda. Write code to count and print how many of them identified "red" or "blue" as their favorite color with output in the following format.
red: 6
blue: 8
table = new SimpleTable("survey-2012.csv");
table.convertToLowerCase();
for (row: table) {
Part 10-
We'll say that a pixel is intense if its red or green value is over 150. Write code below to count the number of intense pixels in flowers.jpg and print result in the following format.
intense: 12623
image = new SimpleImage("flowers.jpg"); for (pixel: image) {
Part 11-
We'll say that "A" names start with "A" and end with any letter other than "a". Likewise "B" names start with "B" and end with any letter other than "b". Count both types of name and print the result in the following format:
A: 123
B: 61
table = new SimpleTable("baby-2010.csv");
for (row: table) {