Slide 1 - Computer Science at Kent - School of Computing
Document Sample


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
• ~20 min presentation time
• 20min*60 sec=1200 -> 1 sec per digit
• Let‟s go ;-)
Schulte, Bennedsen ICER06 2
Focus of presentation
–topics–
• 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
Flow chart -wikipedia general picture of the execution”
Schulte, Bennedsen ICER06 3
Dimensions of learning programming
Du Boulay
Schulte, Bennedsen ICER06 4
Notional machine for OO?
1. Interaction with objects
The 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 structures
The 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 structures
The 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
structures
The 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).
Schulte, Bennedsen ICER06 5
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)
Schulte, Bennedsen ICER06 6
Population
• Participants: teachers at university,
college and high school, worldwide
• are attending educational
workshops or conferences
• are Experts for Teaching
Schulte, Bennedsen ICER06 7
Responders
Uni- College High Other Overall
versity school
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%
Overall 100%
56,9% 26,1% 14,1% 2,9%
348
Schulte, Bennedsen ICER06 8
OO included
100%
90%
80%
70%
60%
OO-concepts covered
50%
OO-first course
40%
30%
20%
10%
0%
University College High school overall
Schulte, Bennedsen ICER06 9
Important teaching topics
What topics to ask for…
• Result: list of 28 topics
• Difficulty
• Relevance
• Level
Schulte, Bennedsen ICER06 10
Difficulty of 28 topics, all teachers
Difficulty
4
3.5
3
2.5
2 All
1.5
1
0.5
0
E
r
ri
n
s
tr
cs
ax
ag
y
Ite
ID
io
ic
he
aS
nc
hi
nt
Di
er
rs
l&
In
cie
at
Et
Sy
cu
en
ss
Se
ly&
vD
ffi
la
Re
G
gE
Po
Ad
LC
Al
UM
Milne and Rowe: polymorphism, recursion, pointers
Scale: 1 – 5, left side: most;
CC2001: Recursion, AlgEfficiency, Generics,
right side: least Adv-Data-Str, Poly are part of CS2
Schulte, Bennedsen ICER06 11
Relevance of 28 topics, all teachers
Relevance
5
4.5
4
3.5
3
2.5 All
2
1.5
1
0.5
0
r
s
e
s
tr
s
s
cs
tr
y
Ite
rd
ic
op
er
as
aS
nc
aS
hi
er
ca
l&
et
Sc
Cl
cie
at
Et
at
en
Se
m
C-
&
vD
pD
ffi
ra
G
bj
CR
gE
Ad
Pa
O
m
Si
Al
We find that today‟s teaching faces the same problems
Scale: 1 – 5, left Nell Dale: Repetition, as noticed by [CC2001] and therefore students still
side: most; Selection, associate programming with coding and not with more
right side: least
Information Hiding abstract, design-oriented and intellectual challenging
activities.
Schulte, Bennedsen ICER06 12
Level of 28 topics, all teachers
Level
5
4.5
4
3.5
3
2.5 All
2
1.5
1
0.5
0
r
s
e
s
s
ss
cs
ct
tr
y
Ite
rd
ic
op
er
nc
aS
tr u
hi
la
er
ca
l&
et
Sc
cie
&C
Et
at
aS
en
Se
m
C-
pD
ffi
ra
G
at
bj
CR
gE
Pa
O
m
vD
Si
Al
Ad
Scale: 1 – 5, left side:
As before /Relevance): Focus on coding most; right side: least
Schulte, Bennedsen ICER06 13
Correlations between Difficulty, Relevance
and Level
Object communication
4,5
4,0
3,5
3,0
2,5 Relevance
2,0 Difficulty
1,5
1,0
0,5
0,0
Yes No
OO Concepts covered
Interpretation: Role of „time spend‟ to teach a topic?
Typical for OO-topics, not as typical for Non-OO (Selection..)
Schulte, Bennedsen ICER06 14
Subgroups: “OO Yes” vs “OO No”
OO concepts covered Topics that are seen as statistically significant more difficult
No Poly&Inheri, Obj&Class, ptr&refs, recursion, DesignClasses,
parameters and Encapsulation
Yes
OO concepts covered Topics that are seen as statistically significant more relevant
No Sel&Iter
Yes StatVsNonStat, AdvDataStr, ObjComm, Poly&Inheri, Generics,
Obj&Class, UMLClassDiag, VarTypes, DesignClasses,
DesignSglClass, CRC-cards, MethodDesign and Encapsulation
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
b
Schulte, Bennedsen ICER06 15
Areas of learning programming
Schulte, Bennedsen ICER06 16
Role of Areas
4.5 70%
4
60%
3.5
50%
3
2.5 All 40% All
OO Yes OOYes
2 OO No 30% OO No
1.5
20%
1
10%
0.5
0 0%
General notional notation structures pragmatics General Notional notation + structures pragmatics
orientation machine orientation machine
importance taught
Schulte, Bennedsen ICER06 17
Hierarchy of Object Interaction
5
4.5
4
3.5
All
3 Yes
no
2.5
2
1.5
All Scales:
1-5
Underst. & Use:
1
understandable+ useful+ level NOW+ level w anted
Lower=better
Level: Higher=better
Schulte, Bennedsen ICER06 18
Differences between paradigms
Teaching OO Teaching PROC
procedural topics
OO topics
Areas
Object Interaction
Overall: very similar
Schulte, Bennedsen ICER06 19
Topics assigned to Areas
(by the authors)
Topics Du Boulay area
Sel&Iter, Parameters, Scope, Syntax, Notation
UMLClassDiag, Ptr&Refs, Library
SimpDataStr, ProbSolStra, AdvDataStr, Recursion, Structures
Generics, Poly&Inher, Encapsulation
ObjComm, MentalModel, StatNonStat, VarTypes, Notional machine
Obj&Class
Debugging, IDE, CRC-cards, DesignSglClass, Pragmatics
DesignOfClasses, MethodDesign, AlgDesign,
Ethics, AlgEfficiency General Orientation
Schulte, Bennedsen ICER06 20
Areas Topics: relevance
4.5
4
3.5
3
2.5 All
OO Yes
2 OO No
1.5
1
0.5
0
General Notional Notation++ Structures Pragmatics
Orientation machine+
Schulte, Bennedsen ICER06 21
Areas compared
topics du Boulay
4.5 4.5
4 4
3.5 3.5
3 3
2.5 All 2.5 All
OO Yes OO Yes
2 OO No 2 OO No
1.5 1.5
1 1
0.5 0.5
0 0
General Notional Notation++ Structures Pragmatics General notional notation structures pragmatics
Orientation machine+ orientation machine
Schulte, Bennedsen ICER06 22
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)
Schulte, Bennedsen ICER06 23
Differences between paradigms
Teaching OO Teaching PROC
procedural topics
OO topics
Areas
Notional machine
Object Interaction
Schulte, Bennedsen ICER06 24
Thank you!
Schulte, Bennedsen ICER06 25
Get documents about "