This is the reading list for CSCI E45a. Do not be put off by the amount of material. The first thing to do is to read the first required reading for Module 01 and from it understand why we feel that it is not only OK but important to assign so much reading. The real world has far more reading that could be done when researching any particular topic than can reasonably be done so selective reading and remembering where a topic was discussed is more important than memorizing the details in a particular document.

This reading list and the weekly NYCU include many readings from online sources, some of which limit readers to a certain number of free articles per day, week, or month. To overcome that obstacle:

  1. If you do not already subscribe to the New York Times, Washington Post and the Wall Street Journal, take advantage of the free digital subscriptions offered to Harvard students by the Harvard Library. You will need a Harvard email account to subscribe, so sign up for a Harvard Gmail account if you don't already have one, then follow the library's instructions to sign up for New York Times, Washington Post, and Wall Street Journal accounts.
  2. If you can, support independent journalism by purchasing digital subscriptions to publications and websites you read regularly. Wired is one source frequently used in CSCI E-45.
  3. If all else fails, follow the instructions at RefreshYourCache.com to delete saved files in your web browser. This should allow you to see additional articles.

Module Reading: 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16


Module 01 - Introduction

Required Reading

How the mind works in the age of Google and why giving you so much reading is OK

Why some technologies succeed and some do not

Internet philosophy, the last two from a time when people thought the Internet was a different place

One view on 'does anyone control the Internet?'

Looking back to understand the present - a way to look at the impact of the Internet

A view of the current Cyberworld

Maybe the shape of things to come, legally

Optional Reading


Module 02 - Digital Technologies and Computing Devices

Required Reading

Moore’s Law from the original document:

Exploring some of important concepts, terms:

Interesting predictions from one of the important figures of computing:

A view of what personal computing might mean before it actually happened

And we are still pushing the limits of physics to keep Moore’s Law alive, including dinner-plate sized chips for computing hungry AI:

Optional Reading


Module 03 - Internet History and Concepts

Required Reading

The paper that introduced the concept of packet-switched networking (even if he did not call it a “packet”).

An introduction to the work of Louis Pouzin, the developer of the concept of the datagram, the most important single feature of Internet protocol.  The author has strong views, not all of which are universally shared, about the technology underpinning the Internet and the correctness of the path chosen.  See, especially, Mike O’Dell’s summary of the importance of datagrams - starting on page xiv.

Insider’s views on the underpinnings of what got us the Internet

A restating of some of the design principles for a general audience and some pushback

A history of the Internet written by those who where there and who made it happen

Economic theory but it applies to TCP

An opinion piece from one of the authors of the end to end principle

On the ongoing disagreement between the telephone companies and Internet engineers:

Scott’s reviews of how we got to today’s Internet:

Optional Reading

Oral history interviews from the Charles Babbage Institute Center for History of Information Technology, University of Minnesota:

Oral history interviews by James L. Pelkey at the Computer History Museum:


Module 04 - Internet Protocol

Required Reading

The Internet Protocol specifications

Private IPv4 Addresses

UDP specifications

TCP specifications and articles on congestion control

QUIC 

Optional Reading


Module 05 - Software - Simple Software

Required Reading

Learning about programming

Learning about programming languages

Hypercard was a major departure from how people thought of programming until then.  Programming with Hypercard was as much about writing code as it was about visually developing the interface.  And its language HyperTalk tried to bring programming as close as it could to natural language, making as easy as possible for non-programmers to build programs.  Many of these concepts live on in modern visual programming environments (e.g., native mobile applications development)

Lean thinking and its manifestation in the software development world: Agile

One example of an all-too-common software bug (and means of compromise), and a discussion of the seminal paper “trusting trust” (see optional reading).

Ethics in the technology space (and particularly in software development) is becoming more and more important and thus is more in the news these days.

Optional Reading


Module 06 - Network Technologies

Required Reading

A milestone in the history of Ethernet, the most ubiquitous wired networking technology

Descriptions of some of the other common networking technologies

Optional Reading


Module 07 - Distributed Software

Required Reading

Remote Procedure Calls is the underlying technology for distributed computing

An example of what you have to go through to design a complex distributed system

Blockchain is being touted as a unique, general purpose technology of the future... maybe it’s not.

Optional Reading


Module 08 - Middleware

Required Reading

Technical specifications of, and worries about middleboxes

Technical specifications of middleware

Optional Reading


Module 09 - Designing and Building the Infrastructure

Required Reading

Designing and building enterprise networks and data centers:


Module 10 - The Cloud

Required Reading

A generic model for looking at cloud services

Security and privacy considerations in public cloud services

One vendor’s views and offerings for cloud services


Module 11 - Routing

Required Reading

Routing issues

Technical descriptions of routing protocols

A sample ISP peering policy

Optional Reading


Module 12 - Security Fundamentals

Required Reading

Securing the Internet

A market in badness

The human in the loop

An approach to understanding risk

An old but valuable guide

What the feds say (and sometimes do)

An examination of one of the more devastating cyber attacks

Fed plans – (skim to understand the topics/goals)

Optional Reading

 

Module 12b - Advanced Security Tools

Optional Reading


Module 13 - Encryption

Required Reading

Why good encryption is good, sayeth the IETF

When good enough security is OK

Technology standards for security

Why security is hard

A look at some bad history

An approach to thinking about the conflict between encryption and law enforcement

An attack method

Optional Reading


Module 14 - Managing the Infrastructure

Required Reading


Module 15 - Internet Regulation and Governance

Required Reading

International approaches

Key U.S. legal or regulatory decisions

One columnist’s opinion

Optional Reading


Module 16 - Technical Standards

Required Reading