lessons learnt from teaching scratch sukie van zyl
TRANSCRIPT
Background to Scratch
• Designed in 2003 MIT Media Lab, Mitchel Resnick (TED Talk)
• The name Scratch• Scratch was designed to introduce
programming to every one, learn to think systematically, foster creative thinking, improve collaboration – 21st century skills
• Low floor, wide wall, high ceiling
Research questions
• How was Scratch taught in 2012?• How did teachers experience the transition to
Delphi?
Research method
• 10 North-West IT teachers selected randomly• Had to teach Scratch in grade 10 and Delphi in
grade 11• Interview 1: February 2013 – How did they
teach Scratch in 2012?• Interview 2: June 2013 – How did they
experience the transition to Delphi?
Teachers relied on text books
• Text books were not available• Teachers relied on text books for guidance• They followed books rigidly
Teachers felt inferior to learners
• The learners experimented with Scratch and learnt Scratch online and teachers felt inferior to learners
• Some teachers were led by what learners did with Scratch
Teaching of problem solving and algorithm design
• Initially, different opinions • Some teachers felt Scratch is easy enough, no
need to spend time on algorithm design• Others enforced algorithm design to create a
culture of planning and cultivate endurance• Complex and difficult for teachers to decide• Conclusion by teachers: Algorithm design has
to be done in Scratch
Teaching of variables
• Scratch is an ideal environment - variables are concrete and visual
• Only two teachers identified aspects in Scratch to introduce learners to variables and data types
In Scratch, variables is the principle that is very, very important
Data types• Teachers reported that learners grasp the
concepts of strings, numbers and types of numbers – most teachers did not teach data types in Scratch
Boolean
Number
String
Teaching of decision structures – If, Else If
• Relied on self-discovery• Limited to simple decision between two
choices IF-ELSE• Very little attention given to Boole conditions,
and operators (AND, OR, NOT)• Teachers assumed that learners will learn and
understand these concepts intuitively
Teaching of loop structures
• Agreed that loops can be taught by Scratch – easy to grasp because of animation
• Two teaching methods used– Teachers referred to loops in Delphi– Self-discovery and experimentation
Loop structures – what was missing?
• Different loop structures not explained• Difference between conditional and
unconditional loops not shown• Inner workings of loops, loop counters,
testing, invisible to learners• Result: Bad programming habits were formed
Teaching of object oriented concepts
• Only one teacher referred to introducing learners to the concepts of objects
• Scratch is an object based language– Sprites = objects– Sprites have properties: X, Y coordinates– Sprites have behavior: They can turn– Sprites can encapsulate their variables: For this
Sprite only
Teaching of text files and lists
• Only one teacher mentioned text files• None referred to lists• Learners recognised lists when teachers
taught arrays in Delphi and made associations themselves
Teaching strategies used
• Direct, traditional, explained, learners wrote down examples
By demonstration. I show them a program and I show them examples, then they can write it down
• Experimentation, self-discoverySelf-discovery, self-discovery. I will give them a problem and I will tell them to drag the blocks over and see what each block does, until they get the correct sequence. If they do not know, they have to use the help function
Teacher's opinions on teaching strategies used
• Learners enjoyed social interaction
My learners told met I do not even have to explain anything, I can just let them believe in themselvesFor me the important thing is to be creative, to let them exceed their limits
Conclusion – How was Scratch taught?
• Teachers focused on Scratch for logical thinking and problem solving
• Teachers did not teach/treat Scratch as a programming language
• Teachers relied on learners intuitive grasping of concepts• They did not deliberately teach programming concepts –
valuable teaching opportunities and time lost• No attention to error handling and testing• Did not plan teaching in view of transitioning to Delphi• Made references to Delphi and showed Delphi examples
How did teachers experience the transition to Delphi
• It was a shock• My grade 11's are not doing well. We are very
behind.• What we previous did in three years, is now
being squashed in two years • Integer, Boolean and those concepts I had to
teach from scratch
Transition to Delphi
• Mastering of Delphi environment (IDE) took longer than expected (3 weeks)
• Syntax was not seen as stumbling block – normal for beginner programmers
• No previous exposure to error handlingThey do not react, it is as if they are frozen when they experience errors
Transition to Delphi
• Teachers were very anxious, stressed• Learners have not mastered concepts that
CAPS assumed• Increased workload – concepts had to be
taught again
Teachers opinion on value of Scratch
Scratch helped learners to understand Delphi quickerPrevious years when teaching Delphi to grade 10's I had to teach everything. Now I realise that the grade 11's already know some conceptsYou only have to remind them quickly, it is not as if you have to teach it all over again. I see the value of Scratch.
What did learners know?
• Logical thinking and problem solving• Concept of simple IF-statement• Understood For- en Repeat loop where teachers
paid attention to these loops in Scratch• Boole expressions• Understood the concept of variables• Could relate to lists• Grasped concept of objects, properties and events
where it was taught by teachers in Scratch
What was difficult?
• Data types• "New words" Integer, Boolean, initialisation• Type conversion• Operators, e.g., MOD• Numeric operations• Using functions, e.g. ABS, ROUND• Forgot BEGIN and END
Teachers solutions for Scratch
• Focus more on variables and loop control variables with Scratch
• User variable naming conventions as in Delphii Integer, s String, b Boolean
• Focus on built in functions, ABS, ROUND• Focus on scope of variables• Do not use FOREVER loop
Recommendations – problem solving and algorithm design
• Integrate algorithm-design with each program.• Use exciting scenarios, applicable to learners'
frame of reference.• Test algorithms by using trace tables before
implementing solutions.
Error checking and maintenance
• Test programs with extreme input data.• Validate input.• Create situations where programs do not
execute – e.g. Division by zero• Use single stepping and monitors to solve
logical program errors.• Focus on writing effective programs.
Variables
• Use the same naming conventions as in Delphi
iCount, rPercentage, bFound.• Do not always choose the default scope For all
Sprites, but focus on the most effective scope to solve the problem.
• Use monitors and single stepping
Data types• Pay attention to data types (Number, String,
Boolean), by referring to the shapes of parameter slots
Boolean
Number
String
Decision structures
• Make use of more complex structures, e.g. IF-ELSE to write effective programs.
• Do not be satisfied only if a program works
Loop structures
• Do not only use the FOREVER-loop. • Draw flowcharts to explain inner workings of
loops.• Introduce learners to conditional and
unconditional loops. • Reflect on the use of different loops.• Use appropriate terminology to discuss loops,
e.g. loop control variable, initialisation
Object-oriented programming
• Refer to Sprites as objects with properties and behaviour
• Introduce learners to the concept of encapsulation, using the example For this Sprite only
Last word• Do not teach Scratch for the sake of Scratch• Enjoy the time with Scratch as long as possible• Find creative ways to teach programming
principles in Scratch• Build a solid foundation for Delphi• Speak the language of programming and use
the terminology