Everything I Needed to Know about Programming and Computer Science I Learned from my Teachers SIGCSE 2004

Download Report

Transcript Everything I Needed to Know about Programming and Computer Science I Learned from my Teachers SIGCSE 2004

Everything I Needed to Know about Programming and Computer Science I Learned from my Teachers

SIGCSE 2004 1

I teaching programming

2 SIGCSE 2004

What is Computer Science?

What is the central core of the subject? What is it that distinguishes it from the separate subjects with which it is related? 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. SIGCSE 2004 3

Why are you giving the keynote talk?

SIGCSE 2004 4

Moti Ben-Ari

SIGCSE 2004 5

Moti Ben-Ari It is interesting that even the new Computing Curricula 2001 explicitly address legitimacy: in discussing a functional-first style of teaching, they see as a disadvantage the fact that: “students may react skeptically to learning a language that they see as outside the mainstream” … (continued) SIGCSE 2004 6

Ben-Ari: who are our role models?

… I am sure that if we ask physics students who their heroes are, we will hear the names of qualified academic physicists like Albert Einstein and Richard Feynmann, while if we ask the same question of CS students, … SIGCSE 2004 7

Ben-Ari on role models … we will not hear the names of Edsger Dijkstra and Leslie Lamport, but rather of college dropouts Bill Gates and Michael Dell and of hacker extraordinaire Linus Torvalds. Until perceptions of the legitimacy of CS educators change, it will be difficult to resist efforts to turn CSE into training for fashionable skills.

8 SIGCSE 2004

What will I Talk About?

What Questions will I Ask?

What Answers will I Provide?

What did you learn

?

SIGCSE 2004 9

Questions If you gotta ask, you’ll never know Louis Armstrong: “What’s jazz?” If you gotta ask, you ain’t got it Fats Waller: “What’s rhythm?” What questions did you ask in school today?

Arno Penzias via Isaac Isadore Rabi 10 SIGCSE 2004

Who do you remember as your extraordinary teachers?

What did you learn

?

SIGCSE 2004 11

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. ...it is the greatest achievement of a teacher to enable his students to surpass him.

12 SIGCSE 2004

Who are your relatives?

Alonzo Church John Kemeny Alan Turing Martin Davis

SIGCSE 2004

Don Loveland Owen Astrachan Dave Reed

13

John Rassias “Nothing is real unless it touches something in me and I am aware of it.” Dr. Waters attributes the effectiveness of the Rassias Method to the high level of what she terms "teacher directed sensory motor stimulation." SIGCSE 2004 14

SSMCIS Columbia Teacher’s College, Howard Fehr Grades 7-12 Groups, Rings, Fields, Vector spaces, Probability, Calculus, Programming Bernard Robbins and Liza Metzler/Hufnagle 7-8 and 9-12 Boy, did I learn mathematics SIGCSE 2004 15

Learning from Great Works

Students, Teachers, Parents SIGCSE 2004 16

Fred Brooks Why is programming fun?

First is the sheer joy of making things. As the child delights in his mud pie, so the adult enjoys building things, especially things of his own design.

Second is the pleasure of making things that are useful to other people. Deep within, we want others to use our work and to find it helpful.

SIGCSE 2004 17

Fred Brooks: Esse Quam Videri Third is the fascination of fashioning complex puzzle like objects of interlocking moving parts and watching them work in subtle cycles, playing out the consequences of principals built in from the beginning.

Fourth is the joy of always learning. In one way or another the problem is ever new, and its solver learns something. SIGCSE 2004 18

Stephen Weiss Weiss puts teaching on par with his other passions -- trains, hiking and snorkeling - in the fun department. “One of the things I enjoy most is standing up in front of people and making them laugh, and trying to teach them something.” Weiss: 1997 NC teacher of year, UNC awards in 83 and 95 SIGCSE 2004 19

Don Stanat It is our view that a computer scientist must have substantial training in mathematics if he is to understand his tools and use them well.

Stanat and McAllister, 1977 SIGCSE 2004 20

David Parnas In this context "module" is considered to be a responsibility assignment rather than a subprogram. On the Criteria to be used in Decomposing Systems into Modules, CACM, V15, N12, 1972 We must not forget that the wheel is reinvented so often because it is a very good idea; I've learned to worry more about the soundness of ideas that were invented only once. 21 SIGCSE 2004

Seymour Papert SIGCSE 2004 The presence of technology in society is a major factor in changing the entire learning environment. School is lagging further and further behind the society it is intended to serve. Eventually it will transform itself deeply or breakdown and be replaced by new social structures. (1995) 22

Mindstorms Slowly I began to formulate what I still consider the fundamental fact about learning: Anything is easy if you can assimilate it to your collection of models. If you can't, anything can be painfully difficult.

SIGCSE 2004 23

Who wins and how do you win a teaching award in Computer Science?

SIGCSE 2004 24

Steve Wolfman “I feel there is a need to jar people at the beginning of each class to shift them from what they have been doing to what we are going to be doing,” explained Wolfman. “So I make a conscious effort to do crazy or silly or active or interesting things to start us off.” SIGCSE 2004 25

Lynn Andrea Stein Sequential abstraction was tremendously important -- it was Turing's abstraction and von Neuman's abstraction. It was essential historically, and tremendously enabling. The problem is that it was never quite true SIGCSE 2004 26

Mark Stehlik SIGCSE 2004 Mark Stehlik, 1997 CMU Herbert Simon Teaching award A cornerstone of my teaching philosophy is that I am a partner in the process with the students. A good teacher cannot just stand in front of the class and pontificate. Teaching is equal parts knowledge of the subject matter, enthusiasm both for the subject and for the craft of teaching, and stand up comedy.

27

Tim Long and Bruce Weide IEEE 2000 award "For innovative work in the content and pedagogy of introductory computer science education, linking research in software engineering with educational delivery of the material taught in the introductory courses." SIGCSE 2004 28

Stuart Reges Arizona 1998, Stanford 1991, Dinkelspiel 1985

Now I find myself sitting in on Java intro courses and I almost can't watch. It's like staring at a traffic accident. I have a morbid curiosity to know what's going on, but it's almost too painful to witness.

SIGCSE 2004 29

Margo Seltzer I want to continue to do interesting technical work, work with people, and help young people become skilled computer scientists and engineers. While I try to take pride in all my accomplishments, I think the biggest thrill still comes when someone tells me how wonderful my students are.

SIGCSE 2004 30

Peter Denning No amount of automation can displace the primary social function of a teacher: the expert, respected member of a professional community. Teachers are a community's representatives for the young and for others who seek recognition as a practicing member of that community.

31 SIGCSE 2004

How do you win a learning award?

How do you win a teaching for learning award?

SIGCSE 2004 32

On Teaching and Learning

Personally, I'm always ready to learn, although I do not always like being taught.

Winston Churchill SIGCSE 2004 33

Rich Pattis SIGCSE 2004 34

SIGCSE 2004 35

David Gries Science of Programming

{Q} S {R} public void traverse(Node tree) { Stack s = new Stack(); while (tree != null || ! s.empty()){ while (tree != null){ s.push(tree); tree = tree.left;

Loop invariants Formal derivations

} } tree = (Node) s.pop(); System.out.println(tree.info); tree = tree.right; Inorder in Copenhagen } Dinner with Peter Naur

Dijkstra was an autocrat when we were working on Algol 68 SIGCSE 2004 36

Learning from Role Models

How to be one?

SIGCSE 2004 37

Henry Walker Throughout my teaching, I have found that listening and watching have been vital qualities that have made me a better teacher. SIGCSE 2004 38

Laurie Williams Agile methodologies focus on being responsive to changing customer needs and market demands. If you ask a manager whether he wants to be extreme, you'll scare him off. If you ask a manager if he wants to be agile, it's pretty hard for him to say no.

39 SIGCSE 2004

SIGCSE 2004

Can you foster great learning while being a terrible teacher?

40

Professor X Professor Y

"If he insisted on being odd and peculiar we learned to be patient with it."

A master of logic and recursive function theory. I barely stayed awake through class but worked for 40 hours on a take-home exam that was more than temporally memorable.

Required a load-and-go compiler using VAX assembly-language and hand-written lexers and parsers --- grade based on speed and robustness in the face of incorrect source code.

Taught none of this. "Students don't know x"

41 SIGCSE 2004

Evaluating Teaching Assessing Teaching

Lies, Damned Lies, and … SIGCSE 2004 42

Constructive Activities Analyzed Computer Science Education (Van Gorp and Grissom) Collaborative, cooperative, constructive environment Use code walkthroughs: trace and explain Write code in class, before class, discuss Give code, ask for comments and vice versa Debug programs in groups, discuss Don't take notes, reconstruct lecture I really liked the ideas in this paper SIGCSE 2004 43

Analysis and Evaluation

Average [final exam] grades increased as the frequency of constructivist activities increases. Upon further analysis, we found that a slightly positive and significant correlation did exist (

p<.05, N=147

). Spearman's rho was used to test for correlation since we did not assume normality of underlying data (the scores of a few sections were slightly skewed). Thus, we chose the more reliable non-parametric test. To determine if a significant difference occurred between any of the sections, we used the non-parametric Kruskall Wallis test. …

SIGCSE 2004 44

Analysis and Evaluation

There was a large difference between a Never [use of constructive activities] section (60.44) and the Daily section (94.11), however, this difference was not statistically significant (

p=.146

). Thus, we could not statistically conclude that frequency of constructive activities did account for a difference in exam grades.

SIGCSE 2004 45

Pair Programming Explained

In order to create an environment where all students have the opportunity and the incentive to participate in assignments, we recommend that partners are assigned and are not static for the entire semester. Also, students should be provided the opportunity to report via a peer evaluation on the contributions of their partners; these peer evaluations should have significant weight in a student's grade .

SIGCSE 2004 46

Pair Programming Evaluated

An analysis of SAT-M scores revealed that the students were not uniformly distributed across groups. The students in the paired group had a mean SAT-M score of 662.10 while the solo group had a mean score of 625.43. The one-way ANOVA revealed that this difference was statistically significant

F

(1,101) = 5.19,

p

< .018. An ANCOVA further revealed a correlation between SAT-M scores and exam scores, when considered for each exam individually,

F

(1,98) = 36.32,

p

< .0001;

F

(1,98) =41.41,

p

< .0001.

47 SIGCSE 2004

Assessment Everything I Ever Needed to Know about Assessment I Can learn in Kindergarten, Science and Teaching, September, 1997, Ruth Martin Now that active learning is going on in more and more science classrooms across the country, the standard quizzes and tests can no longer be the sole assessment of our students' learning, nor of our teaching. It is a disservice to isolate learning into bits and pieces by requiring students to transfer it to rote memory and multiple-choice tests.

48 SIGCSE 2004

Why come to SIGCSE?

Rejuvenation and Enlightenment SIGCSE 2004 49

The Art of Changing the Brain

Enriching the Practice of Teaching by Exploring the Biology of Learning James Zull SIGCSE 2004 50

Is this Good Biology? Learning?

…the most powerful impact of exploring the biology of learning is not on what we do, but on how we feel about what we do. It is a change in attitude. That change in attitude comes because we feel enriched. Our understandings have greater value.

SIGCSE 2004 51

Learning theory/Brain theory Concrete Experience Active Testing Reflective Observation Abstract Hypothesis 52 SIGCSE 2004

What do we show and tell students?

“I see” “I understand” “I get the picture” and “I see the big picture” “I understand” Explain the idea, the algorithm, the pattern Show me the code!!

53 SIGCSE 2004

Producer and Consumer 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?

54 SIGCSE 2004

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!

SIGCSE 1974 55 SIGCSE 2004

Changing the Brain Feelings affect learning What's the amygdala?

".. Emotions tend to overpower cognition, rather than the reverse" 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. SIGCSE 2004 56

Teaching as … English is not history and history is not science and science is not art and art is not music, and … 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?) SIGCSE 2004 57

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

58 SIGCSE 2004

Changing the Brain Redux We are less inclined to spend so much time trying to transfer our ideas to our students and more inclined to find out how they can build their own experiences. We put more energy into understanding the learner and have deeper respect for her as an independent creature. That enriches our practice, because it encourages the learner to trust us when we provide challenges and support.

59 SIGCSE 2004

Nothing succeeds like success?

Using Topcoder to get success Similar to experience and epiphany with Junit Solving “weekly” problems SIGCSE 2004 60

The Present and Future:

Digital Libraries, Repositories, Blackboard, Web Dissemination SIGCSE 2004 61

Man bites dog: academic integrity you do not need to implement the rule that allows a player to split her hand when dealt two cards with the same value. On startup, the player should be able to choose which version of Black Jack she wants to play.

Thus your program must offer at least the basic rules given above and any two of the many variations given online here.

You do not need to implement the rule that allows a player to split her hand when dealt two cards with the same value (but this is available for extra credit). On startup, the player should be able to choose which version of Black Jack she wants to play.

Thus your program must offer at least the simplified rules given below or/and the basic rules above or any two of the many variations given online 62 SIGCSE 2004

go go gophers SIGCSE 2004 63

Derived, but attributed!

SIGCSE 2004 64

http://creativecommons.org

SIGCSE 2004 65

http://creativecommons.org

SIGCSE 2004 66

SIGCSE 2004 67

Shafi Goldwasser

 

Godel prize in theoretical computer science Grace Murray Hopper Award

"Work on what you like, what feels right, I now of no other way to end up doing creative work"

SIGCSE 2004 68

What's in store at SIGCSE?

Greater resources produce greater confidence and more creativity. A teacher enriched in these ways will be more optimistic and energized. She may begin to try new approaches and create change in her professional practice.

James Zull 69 SIGCSE 2004

One big Family … who can make hard things easy is the educator Emerson SIGCSE 2004 70

Images and Metaphors

Append/add to a vector, amortized cost?

 

Cost per slot/shelf?

How to buy shelves?

Hashing compared to binary search

Worst case?

SIGCSE 2004 71

SIGCSE 2004

History

Where is this talk going?

Where has it been?

72

LOC in O(n) and time constant?

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.

SIGCSE 2004 van Dam et al, 1973 73

Then and Now Ouchless I/O Bailey, SIGCSE 1972 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.

74 SIGCSE 2004

Now and Then Java IO and Testing Made Simple, Proulx and Rasala, SIGCSE 2004 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.

SIGCSE 2004 75

David Parnas I would advise students to pay more attention to the fundamental ideas rather than the latest technology. The technology will be out-of-date before they graduate. Fundamental ideas never get out of date. However, what worries me about what I just said is that some people would think of Turing machines and Goedel's theorem as fundamentals. I think those things are fundamental but they are also nearly irrelevant.

SIGCSE 2004 76

Learning and Teaching Literature Learning and Teaching Programming: A Review and Discussion Anthony Robins, Janet Rountree, and Nathan Rountree Computer Science Education, Vol 13, No 2, p 137-172, 2003 …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 77 SIGCSE 2004

Students as dogs

not licensed!

SIGCSE 2004 78