This is the archived Fall 2013 version of the course. For the most recent version, see

Concluding Fall 2013

The final projects are now posted.

I've written up my thoughts on the course, as well as a more extended discussion about using Rust. You can also see the submitted surveys and course evaluations, along with my comments.

If you are interested in next semester's class, please visit Spring 2014 and submit either the UVa Student or Open Student form there.

Congratulations to the cs4414 Fall 2013 Graduates!
Peter Norvig's Keynote Address at the U.C. Berkeley Computer Science Commencement, 21 May 2006. PDF

Class 26: Invent the Future

Action Items

  • Tomorrow (4:59pm Wednesday): Team Project Submission Due (see below)
  • Thursday’s class: Project Demos
  • Friday (11:49pm): Individual Submissions Due (includes evaluation of your project teammates)

Team Submission Form

Making Predictions

»Det er svært at spå, især om fremtiden«.
   — Robert Storm Petersen

Correct attribution is hard, especially for the past
Google Translate may not quite be ready for legal contracts, but it does impressively well on Danish!

You Will

(but the company that brought it to you won't be AT&T)

1993-1994 AT&T Ad Campaign
Class Poll

Before we make fun of AT&T's commercials, let's not forget the momentous contributions Bell Labs made.
True Innovation, New York Times, 25 Feb 2012

Skype was created by three Estonians who were college students when the AT&T ads ran. It is now used 2 Billion minutes a day.
Sir Tim Berners-Lee envisioned the World Wide Web and built the first web server and browser in 1990. In mid-1993, there were 130 websites in the world. Today, there are over 785 million.
The web really took off when the NCSA Mosaic browser was released. It was built by Marc Andreesen, then a student at the University of Illinois, and Eric Bina, a staff member at NCSA. Andreesen went on to found Netscape and build the Netscape Navigator browser (but without using any source code from Mosaic). Navigator evolved into Mozilla's open source Firefox browser, used by over 450 million people.
GPS started as a military project to guide missiles, but quickly came to have civilian uses, and now is supported by billions of devices.
Amazon launched in 1995.
The 27% of you who think they haven't had a classmate from thousands of miles away have a very strict definition of "classmate".
Huon Wilson answering your questions from Australia!
Virtual and Artificial, but 58,000 Want Course, New York Times, 15 August 2011. (The course ended up closing registration once it hit 160,000 students.) Dave's story.
I don't carry my medical records in my wallet because my doctor is too primitive to have electronic records, but I do carry my genome (at least 1M markers of it) on my Android phone.
Everything involving computation should be expected to improve at "Moore's Law" rates — halving cost every 18 months. Genome sequencing is mostly about computation.
The dramatically faster improvements, are due mostly to better algorithms (which are harder to predict).
Lots of people are working on this! Not many things you buy have gone from costing $57M to ~~$1500 between 2007 and 2009.
23andME API
The last two are things I don't think people are frequently doing today, and we're not quite at the point where software can provide an assistant as good as a good executive assistant. But, it shouldn't take too much longer.

Ending World Poverty

Also see: Hans Roslin's Quiz

Pace of Progress

The 50 Greatest Breakthroughs Since the Wheel, The Atlantic, 23 October 2013.

List of Breakthroughs

There may be some bias because the survey was done today, but almost all the breakthroughs happened relatively recently!
Zooming in on the past 1000 years.
Breakthroughs begat other breakthroughs. The printine press enables rapid sharing and distribution of new knowledge. Electricity enabled light which extended working hours, and enabled semiconductors, which enabled personal computers and the Internet.
I can't predict which inventions will happen or have the biggest impact on our society, but I can predict there will be many that will have huge impacts.

If you weren't impressed by Amazon's drone delivery, check out the Matternet (it takes a while to get to the point):

The Matternet Vision

If you think the safety issues are insurmountable, check out

Science's Endless Golden Age

Neil DeGrasse Tyson, Science's Endless Golden Age - [Download PDF]

There's an unwritten rule in astrophysics: your computer simulation must end before you die.

Its not just astrophysics. Any scientific or technological field where new results can build on old ones, and where there do not appear to be any real limits to what can be done, has an endless golden age.

Being in a non-golden age field tends to make people bitter and anti-progress:

There follows this unforgettable observation: "Several university presidents and provosts have lamented to me that when a scientist comes into their office, it's to announce some exciting new research opportunity and demand the resources to pursue it. When a humanities scholar drops by, it’s to plead for respect for the way things have always been done.Crimes Against Humanities: Now science wants to invade the liberal arts. Don't let it happen, Leon Wieseltier's response to Steven Pinker's Science is Not Your Enemy.

In the end, we can’t lose, we have William Shakespeare. — Mark Edmundson, quoted in As Interest Fades in the Humanities, Colleges Worry, New York Times, 30 October 2013.

"Koomey's Law": Assessing Trends in the Electrical Efficiency of Computation Over Time
SEAS Strategic Plan: yes, the #1 goal of the School of Engineer's administration really is to not make progress!

(Note: the goal of not making progress does not apply to student tuition or the bloat of the Dean's office. Those things should continue to increase exponentially, its just the rest of progress the School wants to halt!)

Golden Ages or Golden Catastrophes?

About That Overpopulation Problem, Slate, 9 Jan 2013.

This looks pretty scary! But remember, population was increasing over this time period also.

(If you are wondering where wind and solar are on this graph, what they produce is so insignificant it doesn't show up.)
Per-capita looks a lot better, especially if you remember how much the quality of life has improved during the last 40 years, with fairly little increase in per-capita energy consumption. This is a strong sign that efficiency has improved dramatically.

And Chili’s is optimistic that the tablets will pay for themselves by bringing in extra revenue from impulse orders and at-the-table gaming. Not only will you not have to talk to a waiter when you want to order something, you won’t have to talk to your kids, either!
Of Course Applebee's Is Going to Replace Waiters With Tablets, Slate, 3 Dec 2013

If the ordinary wage-earner worked four hours a day, there would be enough for everybody and no unemployment -- assuming a certain very moderate amount of sensible organization. This idea shocks the well-to-do, because they are convinced that the poor would not know how to use so much leisure. In America men often work long hours even when they are well off; such men, naturally, are indignant at the idea of leisure for wage-earners, except as the grim punishment of unemployment; in fact, they dislike leisure even for their sons.
Bertrand Russell, In Praise of Idleness (1932)
Hopefully, we'll figure out a model that works for society before all wealth is concentrated in a very small fraction of the population that is doing the productive, creative work. Whether we will, and what it will be, is much harder to predict than the reality of technological progress automating nearly all tedious human work.

Modern methods of production have given us the possibility of ease and security for all; we have chosen, instead, to have overwork for some and starvation for others. Hitherto we have continued to be as energetic as we were before there were machines; in this we have been foolish, but there is no reason to go on being foolish forever.

Bertrand Russell, In Praise of Idleness (1932)
(Note: you should wait to adopt Russell's philosophy until after you finish your project and your other classes!)

Addendum: What About Software Developers?

Students asked some questions about whether or not there would be any jobs left for programmers. This is an important question, and not an easy one to answer. I expect there will always be great jobs for the most talented computer scientists who can envision and develop new things and create the platforms that will be used to build most software (and, fortunately, most of the students in this class should be among them!) But, there will be far fewer jobs for less creative and skilled software development, which will be increasingly automated to the point where most applications can be built in a few hours by people with minimal technical skills.

These trends are already well underway. To build a typical web application used to involve a large team with ~$10M in funding working for at least a year; something comparable can be built today by one or two people working over a weekend using open source tools. The change is apparent in the tiny number of employees needed to build even huge companies, and how quickly this is decreasing:

CompanyYear FoundedRevenuesEmployeesRevenue per EmployeeMarket CapMarket Cap per Employee
Instagram 2010~$0130 $1B $77M
Twitter 2006 $317M 2000 0.16M $24B $12M
Facebook 2004 1.2B $5.1B 5800 0.88M $20M
Google 1998 $50B 46000 1.09M $7.7M
eBay 1995 $14B 27700 0.51M $2.4M
Microsoft 1975 $78B 100518 $0.78M $3.2M
Hewlett-Packard 1939 $120B 331800 $360,000 $160,000
IBM 1911 $104B 435000 $240,000 $0.4M

Class 25: Tom Pinckney

Class 24: Storage

Class 23: Authentication Pitfalls

Class 22: Putting a Fork in Fork

Class 21: Virtual Memory

In-Depth Crypto Attacks

Class 20: Crossing into Kernel Space

Class 19: Making a Process

Class 18: SIM Card Exploitation

Class 17: Trick-or-Treat Protocols

Class 16: AppleFanning

Class 15: Benchmarking

Class 14: Web Server Scheduling

Class 13: Reflections on Rusting Rust?

Class 12: Synchronization

Class 11: Smarter Scheduling

Class 10: Scheduling

Class 9: Multi-Tasking Map

Class 8: Git Yer Pointers Here

Problem Set 1 Reference Solution

Class 7: What the &~#@? (Pointers in Rust)

Class 5: She Sells C Shells (by the Rust Shore)

Class 4: Once Upon a Process

Class 3: Zero to a Billion in 4.86 Years

Class 2: Getting Started with Rust

Class 1: What is an Operating System?

Class 0: Introduction


  • Challenges
  • Course Wrapup
  • Final Projects
  • Final Survey
  • Getting Started with Github
  • IRC
  • Problem Set 3 - Zhtta Server - Benchmarking
  • Project
  • Project Ideas
  • Problem Set 1 - zhttpto Web Server
  • Comments on PS1 Comments
  • Problem Set 1 Reference Solution
  • Problem Set 2 - The Good Auld Shell
  • Problem Set 3 - Zhtta Server
  • Page Removed
  • Schedule
  • Enrolling for Spring 2014
  • Syllabus
  • Using Materials
  • Using Rust for an Undergraduate OS Course
  • VirtualBox
  • Working on Github in cs4414