Slides - Computing At School

advertisement
Teaching Programming
Less Doing, More Understanding
Quintin Cutts
School of Computing Science
University of Glasgow
Beth Simon
Computer Science and Engineering Department
University of California at San Diego
Outline
•
•
•
•
•
Background and premise for the talk
An alternative instructional design
Trying it out live!
The effect on students
Is this how to introduce computing…?
Background
• 15 years teaching programming
• Never happy with "programming is an innate skill"
– increased engagement – interactive classrooms
– revised the instructional design
• skill development
• time-on-task, regular self-study
• regular timely feedback
– explored attitudes to learning
Background (2)
• Creating working programs still featured large
• Uncomfortable with assessment
– predominantly "marking programs"
• expensive in time
• limited quality feedback
• not assessing either process of programming or level of
understanding
Preliminaries
• Premise 1
– We want learners to understand deeply
programming concepts and skills, to properly
equip them for life-long use of technology and
programmable systems
• Premise 2
– We assess a learner’s understanding by measuring
the quality of the artifacts they produce
– Hence, we must assume that delivery of an
artifact == understanding
Preliminaries
• Premise 1
– We want learners to understand deeply
programming concepts and skills, to properly
equip them for life-long use of technology and
programmable systems
• Premise 2
– We assess a learner’s understanding by measuring
the quality of the artifacts they produce
– Hence, we must assume that delivery of an
artifact == understanding
Who produced the artifact?
• The learner
– Great. Our assumption is probably correct.
– Although, monkeys and typewriters?
• (my concern with drag-and-drop etc)
• Books / the web / a wizard
– Boiler-plate copying is common-place
• Teacher / tutor / friend
– Often in one ear, out the other
– But at least the code is working
Quick vote…
• To my premise that
– we rely too heavily on the assessment of artefacts in
programming, because this fails to assess understanding
• do you:
–
–
–
–
–
A: strongly agree
B: agree
C: neutral
D: disagree
E: strongly disagree
How to generate understanding?
• Engage students in questioning and discussion
• One-on-one is expensive – can we get peers
discussing and explaining?
• Growing body of instructional designs doing this
more efficiently:
– Peer Instruction
– Flip Teaching
– The Khan Academy
Example: General Education
Computing course
• Designed to promote computational thinking
– Led by Beth Simon at UCSD to 1000 students in 2010-11
– But also a pilot for a school-level course, CS Principles
• Basically, a programming course
– But programming very much a vehicle
– 7 weeks of Alice, 2 weeks of Excel
Exploratory
Homework
Lecture
Q
U
I
Z
Lab
Exam
Exploratory
Homework
Lecture
Lab
Exam
Q
U
I
Z
1) Individual Vote
2) Group Discussion (fixed 3 person)
Tutors actively engage groups in justifying/talking
3) Group Vote (consensus required)
4) Class-wide Discussion
Led by Students First – Explain WRONG answers
Final Cognitive Modeling by Instructor
"What does this code do?" question
• World with three “drivable” objects
– Rabbit, penguin, cow
– Forward,
– Turn by .12
revolutions
(1/8th of the way
around)
The scene:
When does a party happen?
A.
B.
C.
If any of the objects is near the palmtree
If all of the objects are near the palmtree
Something else (e.g. multiple parties…)
Feedback
Paraphrase
Justify
Let’s make the beetles do a dance…
• Here's the scene and an activity we want to
create:
One comes forward
All go around
Same one goes back
Next one comes forward
All go around
Same one goes back
And so on until all four
have come forward and back
Does this code correctly implement
our intended behavior?
A. Yes
B. No
C. I don’t know
And WHY!
One comes forward
All go around
Same one goes back
Next one comes forward
All go around
Same one goes back
And so on until all four
have come forward and back
What is new about this code?
• Nested “for all” loops
• A loop that “iterates” over all items in a list
– Inside that is another loop that goes over all the
items in a list
– In this case, happen to be the same list
• Wow, you can do complicated things now… 
By the way…
• How do we summatively assess the
understanding?
• More MCQs
• But also: “How would you explain why the
correct answer is correct?”
– Of course, this takes more marking – a bit like an
short essay question!
What are the students taking away?
We asked…
• Learning computing concepts may have opened many doors for you
in your future work. Although you may not ever use Alice again,
some of the concepts you have learned may become useful to you.
• Some examples include:
– Understanding that software applications sometimes don’t do what
you expect, and being able to figure out how to make it do what you
want.
– Being able to simulate large data sets to gain a deeper understanding
of the effects of the data.
– Understanding how software works and being able to learn any new
software application with more ease, i.e. Photoshop, Office,
MovieMaker, etc.
• Aside from the examples given, or enhancing the examples given,
please describe a situation in which you think the computing
concepts you have learned will help you in the future.
Transfer, Near – 64%
• Using new machinery like sound editing
equipment … will require the ability to manipulate
and design using the basic commands to form a
unique creation. Similar to Alice we will be
restricted to the amount of actions we can
perform sometimes but through our creativity we
can manipulate the basic commands of the music
program to create variations not standard to the
system. Like how we mad[e] frogs appear to be
hopping when in actuality the Alice program does
not have a specific method that makes frogs hop.
Personal Problem Solving Ability:
Debugging – 39%
• I have learned how to target problems when I
am working on a computer and use the
process of elimination to try to fix the problem
instead of just restarting the computer like I
used to.
Personal Problem Solving Ability:
Problem Design – 29%
• We learned in Alice that computers do exactly
what you have them do. Using this
knowledge, we can understand how programs
like Excel and Numbers work and learn that
when we are using these programs, we need
to specify and be exact with what we are
doing in order for the programs to meet our
needs and plans.
View of Technology – 25%
• Now, every time I find myself playing a video
game, I actually understand what makes it
work. That these games are not magically
produced, that it takes time, skill, and
sufficient funds to create these games. I
appreciate these games more than before
taking this class.
Transfer, Far – 23%
• I feel that learning the language of computing
definitely helps you understand dense reading
a lot more efficiently. I personally have
noticed that my in-depth understanding of
Computer Science wording has helped me
understand my mathematical theorems and
proofs more regularly than before.
Confidence – 21%
• The things I learned in Alice can help me not to be
so frightened in general when dealing with
technology. Although I am not certain I have
absolutely mastered every concept in Alice, I am
certain that I have learned enough to bring me
confidence to apply these ideas in the
technological world. This is a big deal for me, as I
do consider myself quite technologically
challenged. I think this class has given me tools
for life, that can be applied to both my life at
home, socially, and at work.
Communication – 7%
• In today’s technologically-centered world,
using a program like Alice gives us valuable
exposure to discussing things technically with
other people and explaining clearly what we
are trying to do.
From our own observations:
• We speculate that the students must now
have a critical understanding that computing
systems are:
– Deterministic
– Precise
– Understandable
To conclude
• We wrongly equate artifact production with
understanding
• We need instructional designs that properly
develop and assess skills and understanding
– One possible design has been presented
Should ICT training simply be a
programming course of this nature?
Or, in other words, are the skills/attitudes described
by the learners an essential underpinning for
living in the digital world and for further study in
CS?
Or, in yet more words, is it these skills that explain
the traditional double-hump in computing
classes?
Relevant research
• Repeated testing better than repeated study
– Roediger & Karpicke 2006
– Karpicke & Blunt 2011
And some more…
• Peer working while viewing expert tutors
– Craig, Chi & VanLehn 200
• Self-articulation vs. Peer discussion
– Teasley, 1993
– Also explores transactive discussion
• Situated Learning
– Brown, Collins, Duguid 1989
And some more…
• Isomorphic questions
– Smith et al, 2009
• Catalytic assessment
– Draper 2009
• Linked questions
– Russell, 2008
• PI in CS
– Simon & Cutts, SIGCSE 2010 & Tech Report
Download