% Class 27: Project Presentations
% David Evans
% 2013-12-05

## Action Items

<div class="startaction"></div>

- **Now:** Project Demos
- **7pm Tonight:** Lighting of the Lawn
- **Friday (11:49pm):** Individual Submissions Due (includes evaluation of your project teammates) 

<div class="endaction"></div>

## Requests

- When your project is ready, make your github repository public.

- Remember the Honor Pledge from the [Syllabus](http://rust-class.org/pages/syllabus.html):
<blockquote> 
<blockquote>
_**I will provide useful feedback.** I realize that this is the first time this course has been taught this way and it is important that I let the course staff know what they need to improve the course. I will not wait until the end of the course to make the course staff aware of any problems. I will provide feedback either anonymously or by contacting the course staff directly. I will fill out all course evaluation surveys honestly and thoroughly._
</blockquote>
</blockquote>
Please do this, especially on the individual submissions questions.  If
you want to submit them anonymously, just check the box, and separately
submit your answers to those questions.

- Recommend students for the Spring class.  If you know students
  currently waitlisted for the Spring cs4414 course, and can make a good
  case why you think they will contribute to the class, please do so.  A recommendation from a student who contributed well to this class will be considered heavily.

- Consider being an assistant for next semester's class.  If you are interested in this, email me to set up a meeting to discuss.


# Project Presentations and Demos

**[Norvigtorious](https://github.com/dsn5ft/Norvigtorious-App)** - Android Norvig Numbers
<div class="indented">
  Alex Fabian, Daniel Nizri, Renee Seaman, Casey Silver	<br>
  [Download from Play Store](https://play.google.com/store/apps/details?id=com.os.project.norvigtorious)<br>
  [Stats](http://plato.cs.virginia.edu/~res6tq/norvigtorious/benchmarkStats/home)
</div>

**[The Droids that You are Looking](https://github.com/rjb3vp/android_kernel_samsung_smdk4412)**
<div class="indented">
   Ryan Bates, Matthew Jenny, Zachary Brown
</div>

**[Rust Raytracer](https://github.com/iamkevinmcvey/rust-raytracer)**
<div class="indented">
   Jonathan Goss, Kelvin Green, Nathaniel Hart, Kevin McVey Kevin
</div>

**[Open Piazza](http://openpiazzacs4414.appspot.com)**
<div class="indented">
   Evan Boyle, Josh Lisko, Evan Teague	<br>
   [Code Repository](https://github.com/joshlisko/openpiazza)
</div>

**[tRustees](https://github.com/wbkostan/cs4414-ps4)** - True Random Number Generation
<div class="indented">
   Alex Mulchandani, Jeremy King, Liam Kostan, Samuel Ogbe
</div>

**[KrayDawg](https://github.com/bt3ze/cs4414-mst/releases/tag/v1.0)** - Parallel Minimum Spanning Tree for Face Recognition
<div class="indented">
    Ben Terner, Katy Williamson
</div>

**[Real Time Audio in Rust](https://github.com/victor-shepardson/rust-audio-experiments)**
<div class="indented">
   Victor Shepardson
</div>

**[graphUVA](https://github.com/BinRoot/graphUVA)**
<div class="indented">
  Nishant Shukla, Jasdev Singh
</div>

# Norvig's Speech to the Graduates

Peter Norvig's _Keynote Address_ at the U.C. Berkeley Computer Science
Commencement, 21 May 2006.

Congratulations, graduates.

Let me start with a story. Two new researchers on my team at Google
decided, for their starter project, to look at the way ads are matched
to search queries. They discovered an improvement that results in about
a 1% increase in revenue. Now the question is: is this a boring
development -- after all, what could be more routine than improving an
existing system by 1% -- or an exciting one: making progress on
something that a lot of smart people had already thought hard about, and
incidently bringing in an additional $100M a year in revenue to the
company, and many times that value to the advertisers and consumers. And
some larger questions: how many of these improvements do we need to keep
our society moving forward, and what should be the mix of incremental 1%
improvements versus revolutionary, 100% new ideas?

One way to look at it is that the World Gross Domestic Product is $60
trillion/yr, but let's concentrate on the US GDP, which is $12
trillion/yr (or $42,000 per person). Except for a dip in the 1930's
during the great depression, it has grown at a remarkably constant pace,
doubling every 20 years. Now, there are about 3.5 million scientists and
engineers in the US work force, of which computer scientists have the
largest chunk. If we take it upon ourselves as scientists and engineers
to deliver all of the doubling in the GDP, that works out to an increase
of $3.4M/yr that each of us needs to deliver in the next 20 years.

I should say that this model is highly simplified. As much as I respect
computer scientists and engineers, we don't actually deliver all the
increases. Just this month there was a Scientific American article that
says insects produce $57B/yr in free labor. Yet despite this, insects
are rarely chosen as commencement speakers, so I'll exercise my
chauvinistic prerogative and stick to us humans.

When doing back-of-the-envelope calculations, it is always a good idea
to verify them with a second approach. Another way to look at the
problem is to count scientific disciplines and figure out how much of
each discipline we 3.5M scientists will have to handle. So I looked at
the Dewey Decimal System. The 600s are technology. There are some
substantial disciplines like 610: Medical Sciences, but there are some
less extensive ones like 682: blacksmithing and 664: food technology,
along with 663: beverage technology. I count about a dozen substantial
disciplines. How substantial? Well the ACM categorization lists 857
subcategories within computer science. For example, my favorite
category, Information Search and Retrieval, has the 5 subcategories
Clustering, Query formulation, Retrieval models, Search process, and
Selection process. (They don't mention ads matching.) A dozen times 857
is about 10,000 subcategories across all of technology. So on average,
each of these 10,000 subcategories gets 350 scientists and engineers to
work on it, and each such team needs to bring in an additional $1.2B/yr
in the next twenty years.

Now let's go back to the two Google researchers from my first story. The
two of them had the original idea, but three others helped implement
it. According to my model, it takes 29 people to generate a $100M
increase, so that means if we want to maintain the average, the team of
5, along with 24 of you in the audience, can take the rest of the next
20 years off. But of course we don't want to be just average. We want to
excel; we're from Berkeley! How can we excel?

Before I answer that, let me return for the moment to Dewey Decimal 663:
beverage technology. It turns out that in my very first professional
job, as an intern thirty years ago, I had a colleague, a chemist, who
had worked in beverage technology. The summer before he had been an
intern and was given the task of figuring out if there was a particular
chemical that gave whisky the distinctive taste of being aged in an oak
cask. The company figured if they could isolate the chemical maybe they
could just mix it in, and skip five or ten years of aging. So my friend
went into the lab and isolated what he thought might be the right
compound. He ordered a small vial from a chemical supply company
(remember, this was before online shopping and email, so they had to
actually write words on paper) and mixed up a batch. It tasted pretty
good. (Why can't we computer scientists get research projects that
involve consuming alcohol?) My friend was duly congratulated, and he
wrote to the chemical supply company and asked for a 55 gallon drum of
the stuff. They wrote back, saying "we regret that we can not fill your
order because we are currently low on stock and, as I'm sure you know,
to produce this chemical we need to age it in oak casks for five years."

The point of this story is that if it had happened today, my friend
would not have had to spend months in the lab; he could have spent
minutes on Google instead. I searched for about three minutes and I'm
not sure exactly what chemical he isolated, but I do know that there is
a small body of literature on volatile oak extractives that would help
me find out, if only I understood a little more chemistry. Furthermore,
I was able to do this because of the many efforts of the computer
scientists working in category H.3.3: Information Search and Retrieval,
some of them making incremental 1% improvements, some making larger
leaps, but not one of them, I'm quite certain, thinking that their work
would one day be applicable to a 30-year old problem in Dewey Decimal
category 663: beverage technology.

So my advice to you is to pick one of the 10,000 categories, or invent
category number 10,001, and make some progress in it. Pick problems that
are ambitious enough that your expected value over the next 20 years is
at least your $3.4M/yr share. But worry about the value you produce, not
just the money. America's first great scientist, Ben Franklin, said "we
should be glad of an opportunity to serve others by any invention of
ours". So be happy and productive, don't be evil, and be glad of an
opportunity to serve others.









