Interactive technologies seldom stand alone. They exist in networks, and they facilitate networked connections between people. Designing technologies for communications requires an understanding of networks. This course is a foundation in how networks work. Through weekly readings and class discussions and a series of short hands-on projects, students gain an understanding of network topologies, how the elements of a network are connected and addressed, what protocols hold them together, and what dynamics arise in networked environments. This class is intended to supplement the many network-centric classes at ITP. It is broad survey, both of contemporary thinking about networks, and of current technologies and methods used in creating them. Prerequisites: Students should have an understanding of basic programming (Intro to Computational Media or equivalent). Familiarity with physical computing (Intro to Physical Computing or equivalent) is helpful, but not essential. Some, though not all, production work in the class requires programming and possibly physical and electronic construction. There is a significant reading component to this class as well.

Topics include:

  • topologies: how to think about them (nodes and links), how few workable ones there are, and how there's no topology so stupid it isn't in use some place.
  • addressing and routing: what a namespace is, three ways to generate a name (nesting, serial uniqueness, random pseudo- uniqueness), the difference between smart and dumb networks, why the phone network and the internet differ even though they use the same wires
  • protocols: envelopes and contents, the stack and the reference lie, end-to-end principles, reliability vs. speed tradeoffs
  • scale: more is different, scale breaks otherwise workable systems, makes redundancy and degeneracy critical, tends to push systems
  • a discussion of security and its effects

Exercises include:

  • Basic socket communication, both software and embedded hardware versions
  • Client-server programming
  • An HTTP/RESTian model exercise

This class meets on Tuesdays, 9:30 AM - 12 PM

Week 1

September 6

Concepts:

  • Introductions
  • What do you think of when you think of networks?
  • Technological Metaphor as a way of seeing the world:
    • Medieval: Clock, gave rise to mechanical view of universe, Netwonian physics
    • Victorian: Steam engine, gave rise to thermodynamic view of universe (Boyle, et al)
    • Late 20th century: Computer, computational view of universe (Hawking et al)
    • Early 21st century: Network, network view of universe (Linked, et al)
  • Network dynamics
    • Centralized, distributed, and decentralized networks
    • Dyads, triads, and the links between them
    • Complete networks and incomplete networks
    • Link dynamics: Conversation, aggregation, broadcast, unicast, multicast, group (Clay)
    • Rings vs stars vs complete nets
    • Link direction and symmetry
    • Density of links and its effect on robustness
    • Some interesting math on links, Johannes Putzke,University of Cologne
  • Networks of all flavors
    • Internet, PSTN, power grid, transportation

Reading:

  • Linked introduction, Chapters 1 - 4
  • Making Things Talk introduction, Chapters 1 - 2

How networks can transform government and international relations(login is required, but free)

Week 2

September 13?

Concepts: From serial to sockets: A review and expansion of serial communication

  • How bits become data: layers of a serial protocol
    • voltage agreement
    • timing agreement
    • logic agreement
    • TTL vs RS-232 serial
    • RS-485, USB, DMX-512 and other differential signaling protocols
    • ASCII
  • The reference lie: the OSI stack as a metaphor for communications networks
    • Physical - connectors, wires, electrical protocols
    • Datalink - Ethernet
    • Network - IP
    • Transport - TCP, UDP
    • Session - telnet, http, ftp, etc
    • Presentation - html, xml, etc
    • Application - email, web, etc
    • The TCP socket: access to the internet.
  • Opening and closing sockets
  • What sockets can do:
    • HTTP
    • Mail
    • Socket-to-serial
    • Application-to-application

Technique: Processing net library chat client sockets

Assignment: Socket exercise: communicating in realtime. I will give you a game platform and the protocols to log in and communicate with it. Make a client to log in and play. Work in Processing, Flash, Arduino or whatever environment is comfortable to you. You will not play with your own client, but you'll show someone else how to use it. Making Things Talk Chapter 5 will be very helpful with this.

Reading:

Week 3:

September 20

  • Questions on the socket assignment

Concepts:

  • Packets vs. Circuits
  • Smart networks and dumb networks, end-to-end principles
  • How the Internet gets to you
    • Hubs, routers, switches, and endpoints
    • Addressing: IP, DNS, DHCP, etc.
    • Tiers of ISP -- turtles all the way down
    • IXPs
  • How the phone network gets to you:
    • What's the PSTN, what's POTS?
    • LATAs, LECs, RBOCs, and IXPs

Technique:

  • embedded net processors
  • Ethernet in Hardware: Arduino Ethernet shield
  • Arduino Ethernet library

Reading:

  • Making Things Talk Chapter 4

Week 4:

September 27

Presentation: Socket Project

Concepts: basic networking tools:

  • nslookup -- what's your name
  • ping -- are you alive and can I contact you? (wired only)
  • whois -- who owns you?
  • traceroute -- how do I get to you?
  • arp -- address resolution protocol: what MAC address is linked to what IP address?

Technique: Basic intro to PHP

Reading:

Assignment: HTTP outside of the browser. Use a RESTful structure as needed. Details will be announced.

Week 5:

October 4?

Concepts: Representational State Transfer

Technique: .htaccess files, and accessing environment variables in PHP

Reading:

  • Making Things Talk Chapter 10

Week 6:

October 18

Concepts: Voice, SIP

Technique: VoIP and voice servers using Twilio

Reading:

  • Making Things Talk Chapter 6, 7

Week 7:

October 25?

Presentation: HTTP outside the browser assignment

Concepts: Radio and how it changes network dynamics

Technique: Intro to XBee and Bluetooth

Reading:

  • Making Things Talk Chapter 8, 9

Week 8:

November 1

Concepts: Location and Identification

Technique: Intro to RFID and NFC

Assignment: Final project. As a class you will build a platform for gathering and presenting physical data about a location that matters to you. Decide on the activities you can see need to monitor, and design a system for gathering that data and disseminating it. Make your network technology-agnostic. Decide on the elements to be created, and we'll assign groups based on interest, ability, and need.

Week 9:

November 8

Working session in class. Begin discussion of network project as a group, define working groups, and divide into breakout groups to frame your group's task. Report back to the class as a whole at the end.

Assignment: In groups, prepare your group's interface to the rest of the system. Present it to the class next week for critique and discussion.

Reading: Review next week's speaker's work on design for democracy and Peer-to-Patent. Come in with questions and prepare to discuss. You may want to read her book Wiki Government as well.

Week 10:

November 15

Concepts: Guest speaker: Beth Noveck, NY Law School, talking about social networking tools for deliberation and organization

Present: APIs, wireframes, protocols, all details needed to build final system

Week 11:

November 22

Concepts: Corporate and working structures of the internet. ICANN, IANA, IETF, ITU, etc.

Week 12:

November 29

System test: in-class working session in which groups attempt to interface their work to that of other groups.

Week 13:

December 6?

Final presentations. Class will present and demonstrate a working system on this day.

Week 14:

December 13?

Discuss working system, critique, suggest improvements, review.

Reading

Required texts:

Linked: How Everything Is Connected to Everything Else and What It Means Albert-Laszlo Barabási ©Plume, 2003, ISBN: 978-0452284395
An introduction to the science of networks.

Making Things Talk 2nd Edition Tom Igoe ©O'Reilly Media/Make, 2011, Print ISBN:978-1-4493-9243-7. Ebook ISBN:978-1-4493-9244-4 PDF edition is on sale now, print edition goes on sale Sept 17 at Maker Faire, or Sept 23 on Amazon.
A lot of what I know about how to connect devices to networks. Chapters 1-3 are available in draft form for the class.

Recommended Reading:

Head First Networking Al Anderson; Ryan Benedetti ©O'Reilly Media, Inc., 2009, ISBN: 978-0-596-52155-4
If you like the Head First series, you'll find this introduction to networking helpful. It concentrates on OSI-based networks only, and gets at the low-level technical details very fast, but in a friendly way.

The Sustainable Network Sarah Sorensen ©O'Reilly Media, Inc., 2009. ISBN-13: 978-0-596-15703-6
This book approaches networking as a way to be more environmentally sustainable in your business dealings. Some points are valid and well-made, others are questionable. Whether you agree with the author's ideas or not, the explanations of network technologies are accurate and easy to digest for the general reader.

The Works: Anatomy of a City Kate Ascher ©Penguin, 2007, ISBN: 978-0143112709
Good illustrated explanation of city infrastructures, revealing the network nature of those infrastructures.

Six Degrees: The Science of a Connected Age, Duncan J. Watts. W.W. Norton & Company; ©2003. ISBN: 0393041425
A nice introduction to the science of networks, with a good bit of focus on the social angle.

Shaping Things Bruce Sterling, Boston, MIT Press, ©2005, ISBN 0-2626-9326-7. Bruce Sterling's take on a plausible future in which everything made has a network address, and therefore a documented and documentable history. He takes this vision to its extreme, showing how it changes everything from design to manufacturing to consumption to disposal of material goods. An inspiring read if you're interested in networks, material or information design, or sustainability.

The Future of Ideas: The Fate of the Commons in a Connected World, Lawrence Lessig. Vintage Books: ISBN 0-375-72644-6 ©2001
An excellent examination of the clash between the open-ended architecture of the early internet and the property-centric legal system in the US. Lessig puts forth the idea of the internet as an "innovation commons", and explains how current attempts to extend copyright and tighten intellectual property law threaten that commons.

The Victorian Internet : the remarkable story of the telegraph and the nineteenth century's on-line pioneers Tom Standage ©1999 Walker and Co. ISBN 0425171698.
A well-told story about the beginnings of telecommunications. Great inspiration if you're interested in networks.

Here Comes Everybody: The Power of Organizing Without Organizations, Clay Shirky ©Penguin, 2009. ISBN: 978-0143114949
Clay's introduction to the effects of networks on social, political, and commercial organization.

A longer list of books for inspiration and reference is available online at the books link.

Grading & Expectations

  • Participation & Attendance: 40%
  • Production Assignments: 40%
  • Documentation: 20%

Participation & Attendance

Showing up on time, engaging in the class discussion, and offering advice and critique on other projects in the class is a major part of your grade. Please be present and prompt. Class begins at 9:30 AM, and I expect everyone to be in place and ready to begin at 9:30 AM. Lateness will hurt your grade. If you're going to be late or absent, please email your instructor in advance. If you have an emergency, please let your instructor know as soon as you can. Please turn in assignments on time as well.

Production Assignments

For production assignments, you'll be expected to present your project in class on the day that it's due. If you're working in a group, all group members should be present, and should participate equally in the presentation.

Documentation

As with other classes at ITP, you should keep a record of your work, and you should document your projects. An online site for them is helpful, both to you as a reference to point to, and to others as a place to learn from.

Always cite the sources of your code, the places you learned techniques from, and the inspirations of your ideas. This is the equivalent to citing your sources in a written paper, and copying code or techniques without attribution is plagiarism. few ideas come out of the blue, and your readers can learn a lot from the sources you learned from or were inspired by.

Class Notes

We'll keep class notes on the class wiki. A different person will be assigned each week to take notes in the wiki during class. More than one person can take notes if you wish, but at the least, the person assigned should take notes for everyone's use. You may put your notes up after class if you wish, as long as you put them up before the following class. Your class note-taking day is an assignment, and will count toward your grade.

Networked Devices in Class

Though this is a class on networked devices, you should not let the use of them disrupt the class, or your direct participation in the discussion.

  • If it's a device where the outside world can contact you disruptively, don't let it disrupt the rest of the class.
  • If it's a device where you can initiate contact with the outside world, refrain from using it when others are presenting or a class discussion is in progress. The one exception to this is if you are taking notes for the class.