Lessons learnt from teaching Scratch Sukie van Zyl.

37
Lessons learnt from teaching Scratch Sukie van Zyl

Transcript of Lessons learnt from teaching Scratch Sukie van Zyl.

Lessons learnt from teaching Scratch

Sukie van Zyl

The research

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?

Findings

Teacher's uncertainty

• Teachers were uncertain on how to teach this new programming language

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