what do teachers teach in introductory programming? carsten schulte, jens bennedsen

25
What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Upload: orde

Post on 19-Mar-2016

29 views

Category:

Documents


1 download

DESCRIPTION

What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen. Introduction: Some statistics…. … on the statistics in the paper 28 items in three dimension on four different groups, plus some other issues ~400 numbers, each with 3 digits = 1200 digits - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

What do teachers teach in introductory programming?

Carsten Schulte, Jens Bennedsen

Page 2: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 2

Introduction: Some statistics…

• … on the statistics in the paper

• 28 items in three dimension on four different groups, plus some other issues ~400 numbers, each with 3 digits = 1200 digits

• ~20 min presentation time

• 20min*60 sec=1200 -> 1 sec per digit

• Let’s go ;-)

Page 3: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 3

Focus of presentation

• Teachers’ s opinions about what should be taught in CS1 (as an introductory programming course)

• What to teach besides topics• Milne and Rowe (2002, p. 55): “inability [of

students] to comprehend what is happening to their program in memory”

• Lathinen et al (2005, p. 15): “Students also have problems with understanding that each instruction is executed in the state that has been created by the previous instructions”

• Ragonis and Ben-Ari (2005, p. 214): “[high school] students find it hard to create a general picture of the execution”Flow chart -wikipedia

–topics–

Page 4: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 4

Dimensions of learning programming

Pragmatics

NotationStructures

General

orientationNotional

machine

Du Boulay

Page 5: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 5

Notional machine for OO?

Notional machine

1. Interaction with objectsThe student can understand simple forms of inter actions between a couple of objects, such as method calls and creation of objects. The student is aware that the results of method calls depend on the identity and state of the object(s) involved.

2. Interaction on object structuresThe student is able to comprehend interaction on more than a couple of objects, including iteration through object structu res and nested method calls. The structure is created and chang ed explicitly via creations, additions and deletions.

3. Interaction on dynamic object structuresThe student knows the dynamic nature of object structures, understands the overall state of the structure and that interaction on the structure or elements from it can lead to side-effects (e.g. implicit changes in the structure).

4. Interaction on dynamic polymorphic object structuresThe student takes into account polymorphism in dynamic object structures and is able to understand the effects of inheritance and late binding on dynamic changes in the object structure. The student takes into account side-effects of late binding (different method-implementations, different actual objects referred to by the same variable).

Page 6: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 6

Research Theme

• What do teachers teach in introductory programming?

• Topics• Imp. and/or OO

• Didactical perspective• Research from the eighties• Role of mental model for oo -> object interaction

• Descriptive (not Explanatory)

Page 7: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 7

Population

•Participants: teachers at university, college and high school, worldwide

•are attending educational workshops or conferences

•are Experts for Teaching

Page 8: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 8

Responders

Uni-versity

College Highschool

Other Overall

Denmark 5 49 1 3 16.7%

Germany 16 4 40 6 19.0%

USA 79 34 4 1 33.9%

Other 98 4 4 0 30.5%

Overall56,9% 26,1% 14,1% 2,9% 100%

348

Page 9: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 9

OO included

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

University College High school overall

OO-concepts covered

OO-first course

Page 10: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 10

Important teaching topics

What topics to ask for…

• Result: list of 28 topics

• Difficulty• Relevance• Level

Page 11: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 11

Difficulty of 28 topics, all teachersDifficulty

0

0.5

1

1.5

2

2.5

3

3.5

4

All

Scale: 1 – 5, left side: most; right side: least

Milne and Rowe: polymorphism, recursion, pointersCC2001: Recursion, AlgEfficiency, Generics, Adv Data Str, Poly are part of CS2

Page 12: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 12

Relevance

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

All

Relevance of 28 topics, all teachers

Scale: 1 – 5, left side: most;

right side: least

We find that today’s teaching faces the same problems as noticed by [CC2001] and therefore students still associate programming with coding and not with more abstract, design-oriented and intellectual challenging activities.

Nell Dale: Repetition, Selection, Information Hiding

Page 13: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 13

Level

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

All

Level of 28 topics, all teachers

Scale: 1 – 5, left side: most; right side: leastAs before /Relevance): Focus on coding

Page 14: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 14

Correlations between Difficulty, Relevance and Level

Object communication

0,00,51,01,52,02,53,03,54,04,5

Yes No

OO Concepts covered

Relevance

Difficulty

Interpretation: Role of ‘time spend’ to teach a topic? Typical for OO-topics, not as typical for Non-OO (Selection..)

Page 15: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 15

Subgroups: “OO Yes” vs “OO No”

OO concepts covered Topics that are seen as statistically significant to be taught on a higher level

No -

Yes AdvDataStr, ObjComm, Poly&Inheri, Obj&Class, UMLClassDiag, DesignClasses, DesignSglClass, CRC-Cards and Encapsulation

OO concepts covered Topics that are seen as statistically significant more difficultNo Poly&Inheri, Obj&Class, ptr&refs, recursion, DesignClasses,

parameters and Encapsulation

Yes

OO concepts covered Topics that are seen as statistically significant more relevantNo Sel&Iter

Yes StatVsNonStat, AdvDataStr, ObjComm, Poly&Inheri, Generics, Obj&Class, UMLClassDiag, VarTypes, DesignClasses,DesignSglClass, CRC-cards, MethodDesign and Encapsulation

b

Page 16: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 16

Areas of learning programming

Pragmatics

NotationStructures

General

orientationNotional

machine

Page 17: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 17

Role of Areas

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

Generalorientation

notionalmachine

notation structures pragmatics

All

OO Yes

OO No

0%

10%

20%

30%

40%

50%

60%

70%

Generalorientation

Notionalmachine

notation + structures pragmatics

All

OOYesOO No

importance taught

Page 18: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 18

Hierarchy of Object Interaction

All Scales:1-5Underst. & Use:Lower=betterLevel: Higher=better

1

1.5

2

2.5

3

3.5

4

4.5

5

understandable+ useful+ level NOW+ level w anted

All

Yes

no

Page 19: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 19

Differences between paradigms

procedural topics

OO topics

Areas

Object Interaction

Teaching OO Teaching PROC

Overall: very similar

Page 20: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 20

Topics assigned to Areas (by the authors)Topics Du Boulay area

Sel&Iter, Parameters, Scope, Syntax, UMLClassDiag, Ptr&Refs, Library

Notation

SimpDataStr, ProbSolStra, AdvDataStr, Recursion,Generics, Poly&Inher, Encapsulation

Structures

ObjComm, MentalModel, StatNonStat, VarTypes, Obj&Class

Notional machine

Debugging, IDE, CRC-cards, DesignSglClass,DesignOfClasses, MethodDesign, AlgDesign,

Pragmatics

Ethics, AlgEfficiency General Orientation

Page 21: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 21

Areas Topics: relevance

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

GeneralOrientation

Notionalmachine+

Notation++ Structures Pragmatics

All

OO Yes

OO No

Page 22: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 22

Areas compared

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

GeneralOrientation

Notionalmachine+

Notation++ Structures Pragmatics

All

OO Yes

OO No

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

Generalorientation

notionalmachine

notation structures pragmatics

All

OO Yes

OO No

topics du Boulay

Page 23: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 23

Summary / Conclusions• ‘Classic’ topics /iteration syntax) similar relevance, level

and difficulty regardless of “teaching-paradigm”• Including OO in CS1 seems to be an addition of topics• OO-topics are seen more difficult by those who do not

teach them• OO Teachers have a tendency to rate ‘abstract concepts’

as less difficult (table)

• Notional machine• Least relevant (areas)• More relevant in OO (topics, but…)

• Hidden curriculum (structures vs. notation)• Focus on coding in OO, too

(notation vs. notional machine)

Page 24: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 24

Differences between paradigms

procedural topics

OO topics

AreasNotional machine

Object Interaction

Teaching OO Teaching PROC

Page 25: What do teachers teach in introductory programming? Carsten Schulte, Jens Bennedsen

Schulte, Bennedsen ICER06 25

Thank you!