Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer...

77
Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan http://www.cs.duke.edu/~ola

Transcript of Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer...

Page 1: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 1

Where are we going ?Where have we been? Twenty years of Computer Science and Programming

Owen Astrachanhttp://www.cs.duke.edu/~ola

Page 2: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 2

I

programmingteaching

Page 3: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 3

What is Computer Science?

What is the linking thread which gathers these disparate branches into a single discipline? My answer to these questions is simple --- it is the art of programming a computer.

What is the central core of the subject? What is it that distinguishes it from the separate subjects with which it is related?

Page 4: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 4

Programming != Computer Science It is the interplay between such

fundamental challenges and the human condition that makes computer science so interesting. The results from even the most esoteric computer science research programs often have widespread practical impact. Computer security depends upon the innovations in mathematics. Your Google search for a friend depends on state-of-the-art distributed computing systems, algorithms, and artificial intelligence.

http://www.post-gazette.com/pg/pp/04186/341012.stm

Page 5: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 5

Don’t know much about history

We are doomed if we don’t pay attention

Page 6: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 6

11/08/77

Page 7: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 7

17 Nov 75

Not needed

Can be tightened considerably

Page 8: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 8

Jim Gray (Turing 1998) Bubble sort is a good

argument for analyzing algorithm performance. It is a perfectly correct algorithm. But it's performance is among the worst imaginable. So, it crisply shows the difference between correct algorithms and good algorithms.

(italics mine)

Page 9: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 9

Brian Reid (Hopper Award 1982)

Feah. I love bubble sort, and I grow weary of people who have nothing better to do than to preach about it. Universities are good places to keep such people, so that they don't scare the general public.

(continued)

Page 10: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 10

Brian Reid (Hopper 1982) I am quite capable of squaring N with or

without a calculator, and I know how long my sorts will bubble. I can type every form of bubble sort into a text editor from memory. If I am writing some quick code and I need a sort quick, as opposed to a quick sort, I just type in the bubble sort as if it were a statement. I'm done with it before I could look up the data type of the third argument to the quicksort library.

I have a dual-processor 1.2 GHz Powermac and it sneers at your N squared for most interesting values of N. And my source code is smaller than yours.

Page 11: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 11

Niklaus Wirth (Turing award 1984)

I share your view that Bubble Sort has hardly any merits. I think that it is so often mentioned, because it illustrates quite well the principle of sorting by exchanging.

I think BS is popular, because it fits well into a systematic development of sorting algorithms. But it plays no role in actual applications. Quite in contrast to C, also without merit (and its derivative Java), among programming codes.

Page 12: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 12

Past, Present, Future

Page 13: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 13

Learned Hand

“the First Amendment presupposes that right conclusions are more likely to be gathered out of a multitude of tongues, than through any kind of authoritative selection. To many this is, and always will be, folly; but we have staked upon it our all.”

Page 14: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 14

Cause for comfort or concern?

Source: CRA

Page 15: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 15

Page 16: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 16

What is CS? Why study it?

“It's hard for voice over Internet Protocol or e-commerce to compete with finding the age of the universe,”

Peter Lee, Associate Dean/Professor CMU

We should compete, we cannot compete, we should join What’s the right strategy?

Page 17: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 17

Page 18: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 18

Who's going to College?

Page 19: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 19

Who's going to College?

Page 20: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 20

Who's going to College?

Page 21: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 21

1984

Page 22: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 22

Richard Stallman’s quest In January 1984 I quit my job at MIT and

began writing GNU software. Leaving MIT was necessary so that MIT would not be able to interfere with distributing GNU as free software. If I had remained on the staff, MIT could have claimed to own the work, and could have imposed their own distribution terms, …. I had no intention of doing a large amount of work only to see it become useless for its intended purpose: creating a new software-sharing community.

Page 23: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 23

From software to politics?

Help change the world

Page 24: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 24

Teaching Compsci in 1984 64K memory, 128K

extended 8-bit, 1 Mhz 6502

processor 5Mb drive: $3500 UCSD Pascal: >$100 Owen's machine:

$3000 $677.80 in 1984 has

$1200 "purchase power" in 2003

http://eh.net/hmit/ppowerusd/

Page 25: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 25

Typical machine in 2004?

1 Gb memory 3+ GHz, 32-bit chip

Cache, … 160 Gb disk Lots of free

resources Good academic

pricing Under $1000

Page 26: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 26

What has changed in 20 years?

Machines Characteristics and Availability

Internet Availability, IM, web, Google, …

Students Comfort with technology,

Expectations

Page 27: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 27

The more things change…?

Assume I took your first course(s) in 1984 and understood the concepts so completely that I could still get a 100 on the final from 1984 if I took it today (e.g., I've been in a cryogenic chamber). How would I do on the 2004 final exam?

Page 28: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 28

What has changed in Physics?

"You'd get a 100 plus or minus sigma. Intro classical physics hasn't really changed that much over the last 100 years. In graduate level e.g. E&M or quantum classes I think ditto, although sigma would be bigger (and might depend more on the instructor variation than on any real variation in the material). The main difference is, I think, that your chances of GETTING 100 now would be much higher."

Rob Brown, Poohbah of Physics Instruction

Page 29: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 29

What has changed in Biology?

"The basic principles and concepts of biology haven't changed much in 20 years.  What has changed relates to specific content, and in this arena the changes have been enormous.  20 years ago, we barely knew how to sequence DNA; today information of this kind has had a major impact on just about every topic in the biological sciences.  Thus, some questions on an exam today would address topics that would be completely unfamiliar to a 1984 time-traveller. "

Greg Wray, Director of Undergraduate Studies, Biology

Page 30: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 30

What hasn't changed in Biology?

"How many electrons shift during photosynthesis?  Which protein works with myosin? etc.  Who, how many, what, and where but never any why questions. High school biology is driven by the advanced exams. College biology is driven by the MCATS.  Many still see biology as a content driven field of thought.  OK, I'm a crank."

Sherryl Broverman, Department of Biology

Senior Research Fellow - Health Inequalities Program

Page 31: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 31

What has changed in Economics?

"… we now cover material that was only introduced in an advanced or intermediate course in 1984. In 1984 we spent the bulk of the time dealing with the Keynesian model and virtually no dialogue about supply side policies. Now the Keynesian stuff is a small subset of a much broader exposure to Aggregate demand and supply… Also there is more international coverage now - as opposed to 20 years ago for obvious reasons."

Lori Leachman, Director of Undergraduate Studies, Economics

Page 32: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 32

What has changed in Calculus?

We have two varieties of calculus courses, the lab courses and the traditional ...  The latter two have not changed significantly in decades, and I think that a student who fared well on the 1984 exam in those courses would do well today, and vice versa.

[In the lab courses] You would ace about half the exam.  The other half would be unfamiliar to you.  For example, you would probably not know how to answer a problem on modeling a set of data, creating an approximation using Euler's method, interpreting derivatives in the context of applications in other fields, or giving explanations of ideas …

Lewis Blake,Supervisor of First-year Instruction

Page 33: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 33

Changes in Computer Science?

Page 34: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 34

Changing CS? Rock, Hard place

If Computer Science has changed drastically is it to keep up with fads and stylistic changes or because of fundamental changes in the discipline?

Are we leveraging the technological and intellectual resources at our disposal

If we haven’t changed, is it because of a solid bedrock of principles that endures? Or because we’re lazy, good-for-nothing, …

Page 35: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 35

1984, AP Computer Science, Q1 Write a program to read eight integers

from the terminal, display them in reverse order, and display the number of negative integers read. For example, given the input:

-4 3 -2 1 -18 -20 5 -7

The program should produce the output:

-7 5 -20 -18 1 -2 3 -45 of the integers are negative

Page 36: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 36

What concepts does this test?

Reading from standard input, terminal In today’s programming we don’t do

this?

What is special about the number eight? Why not thirty?

Fundamental programming? What would today’s question be?

Page 37: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 37

1985, AP Computer Science, Q2

Write a procedure Compact that eliminates all elements with value 0 from its argument, a list. Compact leaves the order of the other elements unchanged. For example, if list is

(0,9,7,0,0,23,4,0) When the procedure is called, it should be (9,7,23,4) After the procedure executes. All local

variables should be scalar.

(declaration for Pascal record with array and count)

Page 38: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 38

Concepts and Solutions

Why the restriction to use only scalar variables? Force an expected solution? Punish students? What is expected solution, O(n) or O(n2)

What if I make a new array?

What does this look like today? (to appear)

Page 39: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 39

2004, AP Computer Science A1 I can’t cut/paste from the online PDF

document without a password, why? Who owns the copyright? What about face-to-face teaching

purposes? What is duration of copyright?

How is the question similar to 1984 and 1985 questions? How is it different? Has more than just the language changed? Is a change in language warranted? How often do we change? What do we

change?

Page 40: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 40

A picture is worth …

Page 41: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 41

A thousand words

Write class Cat that says 'meow' Write LoudDog that says 'bark-bark' when Dog says 'bark'

Page 42: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 42

What teachers are memorable?

The good, the bad, and the …?

Page 43: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 43

John Kemeny If you have a large number of unrelated ideas, you have to get quite a distance away from them to get a view of all of them, and this is the role of abstraction. If you look at each too closely you see too many details. If you get far away things may appear simpler because you can only see the large, broad outlines; you do not get lost in petty details.

Page 44: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 44

Great Teachers

QuickTime™ and aH.263 decompressor

are needed to see this picture.

Page 45: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 45

A Survey of Introductory Courses The principal course goal is for the students to

become proficient in a single programming language.

To achieve the course's objective each student must write about 300 total lines of code. This coding represents about 6 different programming assignments. At least one assignment requires writing over 75 lines of code. We estimate that a student averages over 10 hours per week on the course even though the usual turnaround time is less than ½ hour.

van Dam et al, 1973

Page 46: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 46

Then and NowOuchless I/O

Bailey, SIGCSE 1972

All of the Fortran statements were to be introduced as the need arose within the context of a problem-solving situation—that is, a here-is-what-we-want-how-can-we-do-it approach…the overall objective of the course was to make the instruction as interesting and informative as possible.

It is remarkable that the majority of students can indeed handle fairly complex I/O by the end of the first six lessons, even though they have not actually been formally taught how to do it.

Page 47: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 47

Now and ThenJava IO and Testing Made Simple, Proulx and Rasala, SIGCSE 2004

We believe that the combination of the well-designed tools with well-designed abstractions presented here provide a solid foundation for introducing input processing to novice programmers.

In addition to making the input from the user an integral part of student's programs, students learn from seeing and using abstractions that provide tangible and significant benefits.

Page 48: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 48

Gries on Teaching Programming

“Suppose you attend a course in cabinet making. The instructor briefly shows you a saw, a plane, a hammer, and a few other tools, letting you use each one for a few minutes. He next shows you a beautifully-finished cabinet. Finally, he tells you to design and build your own cabinet and bring him the finished product in a few weeks. You would think he was crazy!”

1974

Page 49: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 49

Putting it all together …

…we conclude that students are not given sufficient instruction in how to "put the pieces together." Focusing explicitly on specific strategies for carrying out the coordination and integration of the goals and plans that underlie program code may help to reverse this trend.

Sporher and Soloway, Novice mistakes: Are the folks wisdoms correct? Studying

the Novice Programmer, 1989

Page 50: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 50

Changing Data into Knowledge We provide an unjust education if we

do not give every student the maximum opportunity for learning. Depending on their natural abilities, imbalance in education deprives some students of learning more than others. Those who are naturally more creative, or have better memories, or are more reflective, or are more active have different opportunities if we do not provide balance. That is unjust.

James Zull: The Art of Changing the Brain

Page 51: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 51

Changing Data into Knowledge

As teachers we are on the outside, but we have great influence by the way we manipulate, mold, and enrich the information our students need. For balance, we must give equal thought to how students take ownership of that information. How it is transformed from “ours” to “theirs”? How does the learner move from receiver to producer?

Page 52: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 52

Changing the Brain

Feelings affect learning What's the amygdala? ".. Emotions tend to overpower cognition,

rather than the reverse" Some sensory signals get to the amygdala

before we are even aware of them, signals come from concrete experiences When we want to help someone learn, we

should be aware that our learner will be quickly and subconsciously monitoring the situation through her amygdala. This isn't something she decides to do. It just happens.

Page 53: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 53

What do programmers do?

What do artists do?

What do computer scientists do?

What do engineers do?

What do scientists do?

What can we do about this?

Page 54: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 54

Teaching as … English is not history and

history is not science and science is not art and art is not music, and art and music are minor subjects and English, history and science major subjects, and a subject is something you 'take' and when you have taken it, you have 'had' it, and if you have 'had' it, you are immune and need not take it again." (The Vaccination Theory of Education?)

Page 55: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 55

Teaching as a Subversive Activity

"The inquiry method is not designed to do better what older environments try to do. It works you over in entirely different ways. It activates different senses, attitudes, and perceptions; it generates a different, bolder, and more potent kind of intelligence. Thus, it will cause teachers and their tests, and their grading systems, and their curriculum to change. It will cause college admissions requirements to change. It will cause everything to change."

italics mine

Page 56: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 56

Walking Randomly to the Future

It’s the examples, stupid

Page 57: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 57

Page 58: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 58

Christopher Alexander, OOPSLA 96

What I am proposing here is something a little bit different from that. It is a view of programming as the natural genetic infrastructure of a living world which you/we are capable of creating, managing, making available, …. That would be remarkable. It would turn the world around, and make living structure the norm once again, throughout society, and make the world worth living in again.

Page 59: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 59

Is this Computer Science?

public static void stuff(int n){doit(n,0,1,2);

}public static void doit(int n,int f, int t, int a){ if (n == 1) move(n,f,t); else { doit(n-1,f,a,t); move(n,f,t); doit(n-1,a,t,f); }}

Page 60: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 60

Is this interesting?

Page 61: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 61

What is random? What does java.util.Random guarantee?

What about nextInt()? What about really, really random?

What is java.security.SecureRandom How can we use this in a program? Why would we want to use it in a program?

What about random.org What is pseudo-random and do we care? What’s the stuff about the European

Union?

Page 62: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 62

Random, Linear, Non-linear

Can we fake the source of data from random.org? How is this source certified? Is this a curiousity or a useful tool?

What about Las Vegas, slot machines, and poker? What about electronic voting? Why is regulation the way it is?

Page 63: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 63

Beg, Borrow, Steal

Page 64: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 64

go go gophers

Page 65: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 65

Derived, but attributed!

Page 66: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 66

http://creativecommons.org

Page 67: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 67

http://creativecommons.org

Page 68: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 68

Page 69: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 69

Back to the Future

How will we know when we get there?

Page 70: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 70

A Future for Computer Science?

Page 71: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 71

What does the Internet look like?

Page 72: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 72

Page 73: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 73

Page 74: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 74

Implications of the 80/20 Rule What is the 80/20 rule?

Applications to programming? Pareto’ Law or Principle

What is a power law and what does it model? Distribution of human heights Distribution of city populations Normal v Log-log linear From Zipf to the Web

Page 75: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 75

What is a scale-free network

From Erdos numbers to random graphs to Internet What happened with Strogatz and

Barabasi? Modeling and predicting Computer Science?

Growth and Preferential Attachment Networks grow The rich get richer Science and Politics?

Page 76: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 76

Network Models (Barabasi) Differences between Internet, Kazaa,

Chord Building, modeling, predicting

Static networks, Dynamic networks Modeling and predicting

Random and Scale-free Implications?

Structure and Evolution Product and process

Page 77: Reflections/Projections 2004 1 Where are we going ? Where have we been? Twenty years of Computer Science and Programming Owen Astrachan ola.

Reflections/Projections 2004 77

Alan Kay: Turing Award 2004

"Simple things should be simple. Complex things should be possible".

"The best way to predict the future is to invent it"

SCH