Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer...

81
Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan http://www.cs.duke.edu/~ola

Transcript of Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer...

Page 1: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 1

On The Cruelty of Really Teaching Computer Science Redux

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

Page 2: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 2

Shoulders of Giants, Thanks

“… it is a tale

Told by an idiot, full of sound and fury,

Signifying nothing.”

Macbeth, V,v,19

Page 3: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 3

Where are we going … Questions What should our concerns be for those

choosing to major in Computer Science? courses, research, jobs, …

Should we be concerned by the precipitous decline in those taking our courses? majors, technical students, non-

technical …

What can we do to ensure the ongoing success of our academic discipline? Look inward, look to others

Page 4: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 4

Page 5: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 5

WWDD?

Page 6: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 6

Questions

If you gotta ask, you’ll never knowLouis Armstrong: “What’s jazz?”

If you gotta ask, you ain’t got itFats Waller: “What’s rhythm?”

What questions did you ask in school

today?Arno Penzias via Isaac Isadore Rabi

Page 7: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 7

Questions and Answers

Judge a man by his questions rather than by his answers

Page 8: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 8

Don’t know much about history

We are doomed if we don’t pay attention

Page 9: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 9

Who, when?

“No stretching … is required to envision computer consoles installed in every home.

Everyone will have better access to the Library of Congress than the librarian himself now has.

Full reports on current events, whether baseball scores, the smog index in Los Angles or the minutes of the 178th Korean Truce Commission will be available for the asking.”John, McCarthy, Information, Chapter

1, 1966

Page 10: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 10

You win some, you lose some

People will soon become discontented with the “canned” programs available; they will want to write their own. The ability to write a computer program will be as widespread as the ability to drive a car.

Not knowing how to program will be like living in a house full of servants and not speaking their language.

Many people can write simple programs after an hour or two of instruction. … Programming is far easier to learn than a foreign language or algebra.

Page 11: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 11

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 12: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 12

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 13: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 13

1984

Page 14: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 14

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 15: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 15

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 16: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 16

What has changed in 20 years?

Machines Characteristics and Availability

Internet Availability, IM, web, Google, …

Students Comfort with technology,

Expectations

Page 17: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 17

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 18: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 18

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 19: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 19

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 20: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 20

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 21: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 21

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 22: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 22

Changes in Computer Science?

Page 23: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 23

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 24: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 24

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 25: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 25

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 26: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 26

2004, AP, Question 1

public class WordList { ArrayList myList;

public void removeWordsOfLength(int len) { // you write this }

}

Page 27: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 27

Details of Question Revisited

Write the WordList method removeWordsOfLength. Method removeWordsOfLength removes all words from the WordList that are exactly len lettters long leaving the order of the remaining words unchanged.

For example assume that the instance variable myList of the WordList animals contains the following:

{“cat”, “mouse”, “frog”, “dog”, “dog”}

After the call animals.removeWordsOfLength(3) {“mouse”, “frog”}

Page 28: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 28

What about trends today?

Page 29: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 29

Page 30: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 30

What is CS? Why study it?

Do we have Physics (Math, …) Envy?

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

Does familiarity breed contempt? What was different in 1984 than

today?

Page 31: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 31

Page 32: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 32

Page 33: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 33

Cause for comfort or concern?

Source: CRA

Page 34: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 34

Page 35: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 35

Page 36: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 36

COHFE

Amherst College, Barnard College, Brown University, Bryn Mawr College, Carleton College, Columbia University, Cornell University, Dartmouth College, Duke University, Georgetown University, Harvard University, Johns Hopkins University, Massachusetts Institute of Technology, Mount Holyoke College, Northwestern University, Oberlin College, Pomona College, Princeton University, Rice University, Smith College, Stanford University, Swarthmore College, Trinity College, University of Chicago, University of Pennsylvania, University of Rochester, Washington University in St. Louis, Wellesley College, Wesleyan University, Williams College, Yale University

Page 37: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 37

Page 38: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 38

What’s wrong with this picture?

Why is the first year different from all other years?

Page 39: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 39

Algorithm

Arch OS AI

CMU

MIT

Stanford

Berkeley

UIUC

Cornell

UTexas

UW

Cal Tech

Wisc

G. Tech

Maryland

Brown

UCLA

Michigan

UNC

Penn

Duke

Harvard

Purdue

UCSD

Page 40: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 40

Books and Approaches Used

Page 41: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 41

Page 42: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 42

Page 43: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 43

If you don’t take a course in CS, you won’t major in it.

Why is the first year different from all other years?

Page 44: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 44

Who's going to College?

Page 45: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 45

Who's going to College?

Page 46: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 46

Who's going to College?

Page 47: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 47

Interdisciplinary minors At Duke it is difficult to double major in sciences

Too many requirements, 17 courses in biology

Students are interested in credentials No business major/minor, certificate program

(requires intro, capstone, six courses)

Minor requires five courses, double counting ok Three courses in CS, two in econ or biology From gene to social networks, data mining, …

Page 48: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 48

Genome Revolution Focus Course Arts in Contemporay Society, Exploring the

Mind, Evolution and Humankind, 20th Century Europe, Visions of Freedom, The Genome Revolution and its Impact on Society, … Three of four courses, one writing, two

others. Interdisciplinary 0.5 credit seminar P/F

Seminars, students live in same dorm 600+ out of 1600 in FOCUS course

For Genome, 80 applicants for 30 slots, 65% women In CS Genomics course 8 women, 9 men

Page 49: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 49

Simple examples Given strand of DNA, calculate CG ratio

Potential source of proteins “CGGATTATC”

Given protein “HLVWW” calculate number of different DNA strands that could code for it 64 codons, 20 amino acids

Find heaviest protein in array of proteins Given atomic mass of amino acids

Interpret ORF data from NCBI website

Page 50: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 50

Read DNA assumed to be in 5’ to 3’ orientation Use BioJava to read via http

Construct reverse complement (3’ to 5’) From CAATT produce AATTG

How big is the human genome? Runtime of algorithm O(1)

From Algorithms to Objects

Page 51: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 51

Computer Science is filled with real-world examples.

Why is the first year different from all other years?

Page 52: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 52

A picture is worth …

Page 53: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 53

A thousand words

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

Page 54: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 54

How do we teach CS?

Page 55: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 55

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 56: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 56

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 57: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 57

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 58: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 58

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 59: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 59

What is CS? Who wants to study it? Why do they want to?

Page 60: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 60

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 61: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 61

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 62: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 62

Why Arguments are a Good Thing

Bubblesort, An Archeological

Algorithm Analysis

Page 63: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 63

11/08/77

Page 64: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 64

17 Nov 75

Not needed

Can be tightened considerably

Page 65: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 65

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 66: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 66

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 67: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 67

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 68: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 68

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 69: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 69

Back to the Future

How will we know when we get there?

Page 70: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 70

A Future for Computer Science?

Page 71: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 71

What does the Internet look like?

Page 72: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 72

Page 73: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 73

Page 74: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 74

Is there a Science of Networks?

From Erdos numbers to random graphs to Internet From FOAF to Selfish Routing Modeling, simulation, and hypotheses Computer Science?

From the facebook to tomogravity How do we model networks, measure

them? What mathematics is necessary? Will the real-world intrude?

Page 75: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 75

Network Models (Barabasi) Differences between Internet, Kazaa,

Chord Building, modeling, predicting

Static networks, Dynamic networks Modeling and simulation

Random and Scale-free Implications?

Structure and Evolution Modeling via Touchgraph

Page 76: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 76

My recommendations at Amazon

Page 77: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 77

And again…

Page 78: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 78

Finally, …

Page 79: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 79

From Pigou to Braess Roughgarden

terminology Selfish Routing Cost as measure of

social welfare Non-cooperative

agents Nash flows

Optimality Game Theoretic

SCH

T(x)=x 1

1T(x

)=x

0

Page 80: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 80

Alan Kay

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

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

Page 81: Cruelty of Teaching Computer Science Redux, Fall 2005 1 On The Cruelty of Really Teaching Computer Science Redux Owen Astrachan ola.

Cruelty of Teaching Computer Science Redux, Fall 2005 81

Who else is similar?