Teaching Computer Programming in Elementary Schools A Pilot
Document Sample


Teaching Computer Programming
in Elementary Schools:
A Pilot Study
Janet Mei-Chuen Lin, Long-Yuen Yen, Mei-Ching Yang,
and Chiao-Fun Chen
Department of Information and Computer Education
National Taiwan Normal University
Taipei, Taiwan
Outline
Research Background
The Experiments
Data Collections
Results and Discussions
Conclusions
6/29/2005 NECC 2005 2
Research Background
National Research Council Committee
on Information Technology Literacy
(1999)
Some of the capabilities that are at the heart of
fluency with information technology rely explicitly
or implicitly on programming knowledge.
Programming concepts can even be applied to
non-information technology problems.
6/29/2005 NECC 2005 3
Research Background
The ACM Model Curriculum for K-12
Computer Science (2003)
Level 1 curriculum (recommended for grades K-8)
should provide students with foundational
concepts in computer science by integrating basic
skills in technology with simple ideas about
algorithmic thinking.
6/29/2005 NECC 2005 4
Research Background
Taiwan’s K-9 computer curriculum is
application-software-oriented.
Word, PowerPoint, PhotoImpact, FrontPage, Flash,
Swish, …
Lego Mindstorms is taught in a handful of schools.
Programming is part of the high school
computer curriculum.
16~18 hours per semester
Languages: Visual Basic (>95%), C language
6/29/2005 NECC 2005 5
The Experiments
Conducted in the summer of 2004 at
three elementary schools
Participants: mostly 5th and 6th graders
School A: 33 students
School B: 19 students
School C: 22 students
Each experiment lasted two weeks
(three hours a day, five days a week)
6/29/2005 NECC 2005 6
Programming Packages
Stagecast Creator (9 hours)
HANDS (6 hours)
Visual Basic (15 hours)
6/29/2005 NECC 2005 7
Stagecast Creator
From Stagecast Software, Inc.
A languageless programming system for
constructing simulations and games
Two technologies
Programming by demonstration (PBD)
Visual before-after rules
6/29/2005 NECC 2005 8
Stagecast Creator
A programming task involves creating stages,
characters and associating with each
character a set of visual rules.
6/29/2005 NECC 2005 9
HANDS
Human-centered Advances for the
Novice Development of Software
Developed by J.F. Pane at Carnegie
Mellon University
A programming system for children to
create interactive graphical programs
6/29/2005 NECC 2005 10
HANDS’
Programming Environment
6/29/2005 NECC 2005 11
Visual Basic
From Microsoft Inc.
For creating Windows applications with
graphical user interfaces
Programmers place custom controls (e.g.,
text boxes, command buttons, labels and
check boxes) within forms that the user
uses to control the application
6/29/2005 NECC 2005 12
Visual Basic’s
Programming Environment
form
property window
custom controls
6/29/2005 NECC 2005 13
VB Programs
6/29/2005 NECC 2005 14
VB’s Syntactic Features Covered
Constants and variables
Assignment statements
Arithmetic, logic and Boolean expressions
Control structures (if-else, select-case,
for-next)
Built-in functions (rnd, randomize, abs,
and val)
6/29/2005 NECC 2005 15
Data Collection
Students questionnaires
How did you like each of the three programming packages?
How easy/difficult was each package to learn and use?
Which package would you prefer to use again in the future?
…
Parents questionnaires
What had you observed about your child’s attitude toward
learning programming?
How much time had your child spent practicing programming at
home?
Are you for or against teaching programming in elementary
schools? Why?
...
6/29/2005 NECC 2005 16
Results and Discussions (1)
How much did you like each programming
package?
Stagecast Creator and Visual Basic: 4.18 (out of 5)
HANDS: 3.52
Which of the three is your favorite
programming package?
Visual Basic: 41 students (56.9%)
Stagecast Creator: 26 students (36.1%) chose
HANDS: 5 students (6.8%)
6/29/2005 NECC 2005 17
Results and Discussions (2)
How difficult was each programming package
to learn and use? (1 for very easy, 5 for very
difficult)
Stagecast Creator: 1.6
HANDS: 2.43
Visual Basic: 2.46
Which tool allowed you to express your design
idea most easily?
Visual Basic: 48 students (66.7%)
Stagecast Creator: 20 students (28%)
HANDS: 4 students (5.6%)
6/29/2005 NECC 2005 18
Results and Discussions (3)
Which programming tool would you prefer to
use if you want to program again?
Visual Basic: 64 students (88.9%)
Stagecast Creator: 61 students (84.7%)
HANDS: 44 students (61.1%)
How much did you enjoy programming?
Visual Basic: 34 students (46.58%)
Stagecast Creator: 33 students (45.21%)
HANDS: 5 students (6.85%)
6/29/2005 NECC 2005 19
Results and Discussions (4)
Why the reversal?
Stagecast Creator
Languageless – therefore easier to use, but it has
less options to express your design ideas
Visual Basic
More difficult to use , but it has more options to
express your design ideas
It is more popular and practical
6/29/2005 NECC 2005 20
Parents’ Observations (1)
Children looked forward to going to the
programming class every morning
(48 parents--87.3% of the respondents)
Children spent more than an hour
everyday working on programming
assignments at home
(50 parents--90.9%).
6/29/2005 NECC 2005 21
Parents’ Observations (2)
Children were eager to show them their
programming projects (36 parents--65.5%)
and all of these parents were very impressed
with their children’s work.
Programming difficulties that children had talked
about:
English-based interface
Slow typing speed
Lack of time to write more programs
6/29/2005 NECC 2005 22
Parents’ Opinions (1)
Forty-three parents (78.18%) strongly
or moderately supported the teaching of
computer programming in elementary
schools.
“It encouraged children to do logical thinking.”
“It developed children’s potential and sparked their
interest in computer science.”
“It enabled children to have a better understanding of
what was going on inside packaged applications and
computer games they use everyday.”
6/29/2005 NECC 2005 23
Parents’ Opinions (2)
One parent (1.8%) was against the
teaching of computer programming in
elementary schools.
“It was useless for elementary school
students to learn the basics of computer
programming if there would not be a follow-
up in the junior high schools.”
6/29/2005 NECC 2005 24
Our Observations
Students misspelled English words in their codes
frequently.
Many students’ programs contained extraneous rules
or codes.
Students had difficulties identifying sources of
programming errors.
Students tended to spend too much time on interface
design.
Students enjoyed working in teams.
Most students were proud to present their own or
their team’s work in front of the class.
6/29/2005 NECC 2005 25
Students’ Work (1a)
“Sea Battle” (Stagecast Creator)
control keys for control keys for
green boat white boat
z:← ← :←
x:↓ ↓ :↓
c:→ → :→
s:↑ ↑ :↑
b : fire o : fire
6/29/2005 NECC 2005 26
Students’ Work (1b)
“Crossing Streets” (Stagecast Creator)
← : left
↓ : down
→ : right
↑ : up
space: take
6/29/2005 NECC 2005 27
Students’ Work (2)
“A Jumping Ball” (HANDS)
6/29/2005 NECC 2005 28
Students’ Work (3)
“Guessing Numbers” (Visual Basic)
6/29/2005 NECC 2005 29
Conclusions
Children can learn and they enjoy learning
computer programming.
Most parents are positive about teaching
computer programming to their children.
Important issues to be addressed next:
What programming packages are suitable for our
children at different grade levels?
Can a set of criteria be established to help teachers
to determine if a programming package is suitable
for their students?
6/29/2005 NECC 2005 30
Appendix
The source rules for “Sea Battle” (Stagecast Creator)
8 character types
38 rules
2 stages
The sources rules for “Crossing Streets” (Stagecast Creator)
23 character types
66 rules
4 stages
The source codes for “A Jumping Ball” (HANDS)
The source codes for “A Jumping Ball” (HANDS)
ball x:400 y:300 back:balla.gif direction:308 speed:0;
bar x:570 y:400 back:bar1.gif direction:0 speed:0;
Card-1 x:685 y:61 back:score;
Card-2 x:745 y:378 back:L;
Card-3 x:245 y:382 back:K;
downwall x:197 y:475 back:topwall.gif;
leftwall x:197 y:13 back:sidewall.gif;
rightwall x:795 y:16 back:sidewall.gif;
score x:732 y:63 back:8;
topwall x:189 y:13 back:topwall.gif;
when anything happens
if bar's x < (leftwall's x + 15) then
set bar's speed to 0
set bar's x to leftwall's x + 15
end if
if (bar's x + 220) > rightwall's x then
set bar's speed to 0
set bar's x to rightwall's x - 220
end if
end when
The source codes for “A Jumping Ball” (HANDS)
when ball collides into bar
beep
set ball's direction to (360-ball's direction)
add 1 to score's back
end when
when ball collides into downwall
beep
set ball's speed to 0
tell "OK! Congratulations, your score is:", score's back
end when
when ball collides into leftwall
beep
add 1 to score's back
if (ball's direction > 180) and (ball's direction < 270) then
set ball's direction to (540-ball's direction)
end if
if (ball's direction < 181) and (ball's direction >90) then
set ball's direction to (180-ball's direction)
end if
end when
when ball collides into rightwall
beep
add 1 to score's back
if (ball's direction > 270) and (ball's direction < 360) then
set ball's direction to (540-ball's direction)
end if
if (ball's direction < 90) and (ball's direction > 0) then
set ball's direction to (180-ball's direction)
end if
end when
when ball collides into topwall when K is typed when L is typed
beep set bar's direction to 180 set bar's direction to 0
add 1 to score's back set bar's speed to 4 set bar's speed to 4
set ball's direction to (360-ball's direction) end when end when
end when
when bar collides into leftwall
beep when program starts running
set bar's speed to 0 set score's back to 0
end when set ball's x to 400
set ball's y to 200
when bar collides into rightwall set ball's direction to random 0 to 359
beep set ball's speed to ask "Please enter ball's speed (1-15) :"
set bar's speed to 0 end when
end when
6/29/2005 NECC 2005 37
The source codes for “Guessing Numbers” (Visual Basic)
program layout
The source codes for “Guessing Numbers” (Visual Basic)
Option Explicit
Dim TheNumber As Integer
Dim MyGuess As Integer
Private Sub cmdPick_Click()
If cmdPick.Caption = "Pick Number" Then
'Get new number and set controls
TheNumber = Int(Rnd * 101)
lblMessage.Caption = "I'm thinking of a number between 0 and 100"
hsbGuess.Enabled = True
cmdCheck.Enabled = True
cmdPick.Caption = "Show Answer"
Else
'Just show the answer and re-set controls
lblMessage.Caption = "The answer is" + Str(TheNumber)
hsbGuess.Enabled = False
cmdCheck.Enabled = False
cmdPick.Caption = "Pick Number"
End If
End Sub
The source codes for “Guessing Numbers” (Visual Basic)
Private Sub cmdExit_Click() Private Sub cmdCheck_Click()
End If MyGuess = TheNumber Then
End Sub 'Correct guess
lblMessage.Caption = "That's it!!"
Private Sub hsbGuess_Change() hsbGuess.Enabled = False
'Read MyGuess and display it cmdCheck.Enabled = False
MyGuess = hsbGuess.Value cmdPick.Caption = "Pick Number"
lblguess.Caption = Str(MyGuess) ElseIf MyGuess < TheNumber Then
End Sub 'Guess is too low
lblMessage.Caption = "Too low!"
Private Sub hsbGuess_Scroll() Else
'Read MyGuess and display it 'Guess is too high
MyGuess = hsbGuess.Value lblMessage.Caption = "Too high!"
lblguess.Caption = Str(MyGuess) End If
End Sub End Sub
Private Sub Form_Load()
Randomize
End Sub
Related docs
Get documents about "