Lectures‎ > ‎Week 1: May 30-June 5‎ > ‎

01-Welcome, Core Internet Architecture


  • Intro from Pito and Tim
  • Tour of the course web site
    • Organization
    • Daily schedule
      • 10:00am - Class starts
      • 12:00 - break for lunch
      • 1:00 - afternoon session starts
      • 4:00 - review what the homework assignment is for 'tomorrow'
    • Decorum
      • be present and ready to start at 10:00am
      • eating during class
      • only use your computer when you should
      • show respect for whoever is speaking with your attention
    • Learning objectives
    • Grading
    • Homework

Prework Review

  • How did it go with the homework? What class design did you come up with? What was hard?
  • Weekly Programming Assignments to develop individual coding skills in OO languages
    • PA1 - create a player strategy for a maze game with jewels and opponents
    • Today: work out the interfaces needed for the player strategy.
    • Next Monday: run a round-robin tournament of all strategies!


  • Brainstorm: What exactly happens when I type http://www.google.com into a browser address box?

IP & Protocols

  • Review for some, new for others. 
  • Basics. 
    • Need to understand this if you want to be successful debugging Rails and Android apps.
    • IP: "internetwork" protocol
    • Gets data between one 'host' (=computer or server) and another
    • Like the boxes, we need an address from and to: "IP address!"
    • what's a protocol? protocols are always layered, one on top of the other
    • lower level protocols are 'closer to the hardware', higher level protocols are 'closer to the user'
    • Discussion: could you call .mp3 or .jpg a protocol??

  • IP addresses and DNS
    • Decentralized 'distribution' of a key. I set up a new computer, where's the IP address come from?
    • Problem: I want to have a unique key that is guaranteed to be unique
    • But, I don't want to have to go to a central authority to get the key
    • Discussion: By the way, why not? Other examples of this principle? How might this work?
    • We don't want 'people' to remember Why? Any regular life examples of this?
    • Solution: Indirection. But now we need a directory. Why?
    • DNS: distributed name service

Shell Demo - DNS

$ dig <url> 
$ dig -x <ip address>                     ' reverse IP lookup

    • Also take a look at
    • More about IP
      • So the IP address is for 1 specific 'host' or server (as usual there are exceptions :)
      • IP is the way servers talk 'to each other' to get a packet of bits between them
      • Conceptually, 'send these bits to this ip address'
      • Problems: your client isn't attached to my server by a wire
      • So who is that message sent to?
Packet Switching
  • Packet switching, Contrast with POTS Was a big deal when first invented.
    • POTS
      • There was a 'connection' literally between my phone and yours
    • Packet Switching
      • Packet switching breaks message into pieces and sends them all on their way
      • Each one finds its own way to the target
      • Other components of the network? Routers

Shell Demo - Routing

$ traceroute

Core Web Architecture
  • Discussion. How does it all work?
  • Client's ask work to be done; server does it.
  • Web browser is an http 'client'
  • What does that mean?
  • Web server is an http 'server'
  • What does that mean?
WEB Architecture - Client
  • Web client: just a tcp/ip client that makes requests and displays results in a window
  • Default: HTTP protocol, port 80, expects to see html
  • But what other protocols and formats does it support?
WEB Architecture - Server
  • Web server: just a tcp/ip server that listens and responds to HTTP requests


  • Take a look at a url
  • Let's take it apart
  • What does it stand for?
  • What are the parts of a URL
    • http:// -> protocol
    • brandeis.edu -> where's the server
    • So the client -- your computer needs to be able to 'talk to' the server
    • Hm. So is http a protocol?
    • What about tcp/ip. What does that stand for?
    • So we have 3 protocols already: http, tcp and ip.

Shell commands

$ curl http://brandeis.edu 
$ curl http://www.brandeis.edu
$ curl -v http://www.brandeis.edu

  • What does curl do?
  • Why do brandeis.edu and www.brandeis.edu act differently?
  • Why does it act differently from in the browser?
  • Who handles HTTP result-codes?


  • Criteria to think about for products
    • 3-4 students REALLY excited about doing this product
    • Challenging problem for that size team, but not impossible (it's pretty big team)
    • Chance of going viral, paying for your tuition
    • Societal positive impact
  • Sponsoring of project ideas
    • Review which ones have been sponsored
    • See if we can add details to any that have not yet been sponsored, or delete them as uninteresting
    • Brainstorm on more ideas for projects, add details etc.
  • Git clinic
    • Install Git, Github
    • Git in 5-minutes
  • Intro to Eclipse
    • Demo and discussion
  • Screen Recording Clinic
    • How to and Discussion