Scratch and  pair programming Irena   Nančovska Šerbec Jože Rugelj University of Ljubljana Faculty of Education Dep. for math. and comp. {Irena.Nancovska, Joze.Rugelj}@pef.uni-lj.si
Scratch 1 part
S ources Scratch download:  http://scratch.mit.edu/ ScratchEd:  http://scratched.media.mit.edu/   Scratch Lesson Plans:   http://wiki.classroom20.com/Scratch+Lesson+Plans   Resources for parents and teachers to teach children Scratch programming :  http://scratch.redware.com/ Web WORKSHOP:  http://learnscratch.org/ Scratch Beginner's Guide - A Scratch Tutorial :  http://www.scratchguide.com/index.php?page=scratch-programming-tutorial-2 Marija Oblak, PROGRAMSKA ORODJA V POMOC UČENJU PROGRAMIRANJA, diplomsko delo, PEF UL, 2009. Scratch and pair programming
Papers Resnick, M., at all (2009). Scratch : Programming for all, Communications on ACM, Vol. 52, Iss. 11; 60. (retrieved from  http://web.media.mit.edu/~mres/papers/Scratch-CACM-final.pdf ) Resnick, M. (2007). All I really need to know (about creative thinking) I learned (by studying how children learn) in kindergarten.  Proceedings of the 6th ACM SIGCHI conference on Creativity & cognition - C&C '07 , 1-6. New York, New York, USA: ACM Press. doi: 10.1145/1254960.1254961.(retrieved form  http://web.media.mit.edu/~mres/papers/kindergarten-learning-approach.pdf  ) Scratch and pair programming
Scratch and pair programming
There are only 10 types of people in the world — those who understand binary, and those who don't.  Scratch and pair programming
Endless Loop: n., see Loop, Endless. Loop, Endless: n., see Endless Loop. Scratch and pair programming From Data   Processing Dictionary
Raise Your Hand If You Have heard of Scratch other than at this lesson Have downloaded Scratch ?...  but not gotten around to playing with it yet Have played around with it Use it in your teaching Scratch and pair programming
Agenda What  is Scratch? Scratch and  … 21 Century Learning Skills the classroom Programming Scratch and pair programming sprite  is a two-dimensional image or animation that is integrated into a larger scene.
What is Scratch? A new graphical media rich programming language that allows users to  make games animations interactive stories music art “ Digital fluency” should mean designing, creating, and remixing, not just browsing, chatting, and interacting.   Resnick Scratch and pair programming
What is  Scratch It is intended especially for 8- to  16-year-olds (peaking   at 12 ) Engaging  and  intuitive Collaborative Scratch offers: low floor  (easy to get started) high ceiling  (ability to create complex projects) wide walls  (support for a wide diversity of projects) Scratch and pair programming
What is  Scratch Scratch and pair programming imagine • program • share
What is Scratch Last version 1.4 Translation: Available i n  Slovene It is developed by the Lifelong Kindergarten group at the  MIT Media Lab by a team led by Mitchel Resnick  first appeared in the may 2007  Scratch and pair programming
The name Scratch is derived  from the turntablist technique of scratching refers to both the  language  and its  implementation .  The similarity to musical "scratching”: usability the objects, graphics, sounds, and scripts can be easily imported usability of projects Interpreted  dynamic visual programming language Scratch and pair programming
Scratch and … 21 century skills Students learn to : select, create and manage multiple forms of media. create media analyze media express themselves creatively and persuasively. Scratch and pair programming
Scratch  and  21  century Scratch and pair programming
Scratch and … 21 century skills Thinking and Problem Solving Skills Students learn : critical reasoning and systems thinking coordinate timings and interactions between multiple sprites identify new problems and creative solutions break problems up into steps Immediate  feedback Scratch and pair programming
Scratch and … 21 century skills Interpersonal and Self-Directional Skills The visual nature of the programming  => sharablility  They create with an audience in mind and  =>  able to make easy changes based on feedback of others. Social responsibility as they  =>  interact with others through the scratch website   Scratch and pair programming
Scratch  and the Classroom Scratch and pair programming
School At Faculty of Education: An Introduction to programming (1 year study: Two - subject teachers: Computer science and *) 7 th  Grade Computer Literacy Curriculum  ( Computer Science Curriculum ) . 12 years old children  Scratch and pair programming
Scratch and pair programming motion control   looks
Scratch and pair programming sensing sound operations
Scratch and pair programming pen variables
Day 1 Day One – Discuss types of games (ex. role-playing game, shooters, mazes,  skill, sports …) Explore Environment and Use  Scratch Cards  (12) With partners start planning game using  workshop design guide Scratch and pair programming
Scratch and pair programming
Scratch and pair programming Move, Clone, Cut, Change Shape Sprite List Stage Sprite Position Full Screen Stage Create, Find or Surprise Sprite Start and Stop Game
Scratch and pair programming Scripts Area
Scratch and pair programming Blocks
Scratch and pair programming
Day 1 Programming concepts that students will be introduced to: Loops  If/Then conditions Sequences Variables Threads coordination and synchronization Boolean logic random numbers Trial and Error Scratch and pair programming
Day 2 Students begin programming  ( individually ) Examples Scratch and pair programming
Example - guess Elephant imagines a number between 1 and 100. Guess which one. If you guess the number, it changes its colour and stretche s  trunk. If the imputed number is lower than his, he said, "My number is bigger." If imputed number is greater than his, he said, "My number is smaller." Learning Objective: Understanding conditional sentences, reading input  Example:  GUESS _number.sb Scratch and pair programming
Example – ball and  stick Creating their own sprites: stick and ball. Stick, we put it next to the edge, move vertically with the aim to hit the ball. The ball is bouncing off the edges at random. Learning Objective  : Creating game Examples:  igra_palica_zoga.sb  in  igra_palica_zoga_zadetki.sb Scratch and pair programming
Day 3 Explore  http://scratch.mit.edu Set up an account Pair programming  concepts introduction Download three games that are similar to the ones that you want to create See how these games are coded Save a game to your web account Scratch and pair programming
Day 4 Set up pair programming Discuss the use of broadcasting to go to another level Constant Student Interaction – Ask 3 before me. Scratch and pair programming
Day 5 Troubleshoot and peer review Scratch and pair programming
Pair Programming   2 part
Papers Williams, L., & Kessler, R. (2000). All I really need to know about pair programming I learned in kindergarten.  Communications of the ACM ,  3 (5), 108-114. ACM. Retrieved from  http://portal.acm.org/citation.cfm?id=332833.332848 .  Nančovska Šerbec, I., Kaučič, B., & Rugelj, J. (2008). Pair programming as a modern method of teaching computer science.  Int. j.: emerg. technol. learn. , vol. 3, s2, 45-49.  Scratch and pair programming
Scratch and pair programming Williams, L., & Kessler, R.:  All I really need to know  about pair programming  I learned in kindergarten . Resnick, M. :   All I really need to know  (about creative thinking)  I learned  (by studying how children learn)  in kindergarten
Scratch and pair programming http://www.hanoulle.be/2009/11/pairprogramming-is-like-sex/
Agenda Terms Motivation/inspiration Instructions “ All I Ever Need to Know about Pair Programming I Learned in Kindergarten” Advantages and disadvantages  Pair programming experiment Survey on the experience Conclusions Scratch and pair programming
Terms Pair programming   (PP)  is a practice where two programmers work together at one computer, collaborating on the same design, algorithm, code, or test  Extreme Programming  ( XP ) is a software engineering methodology (and a form of agile software development)  Collaborative learning  refers to methodologies and environments in which learners engage in a common task in which each individual depends on and is accountable to each other Scratch and pair programming
Motivation Experiences from teaching programming - students implicitly practiced PP without being aware of that  Modern studies confirmed the advantages of the method: novice–novice pairs  against novice solos experience significantly greater productivity gains than expert–expert pairs against expert solos  Related to collaborative work Preparing for project work Questionable story about XP Scratch and pair programming
Scenario The pair is made up of a  driver  and  navigator ,  driver  actively types at the computer or records a design navigator  watches the work of the driver and attentively identifies problems and makes suggestions Both are also continuous brainstorming partners.  Rules of behavior are defined: PP relationship is very active: communicate, at least every 45 to 60 seconds.  switching roles every 30-45 minutes or after the task is finished Scratch and pair programming
If PP “works” or  it  doesn’t work? L. Williams (2000): coupled programmers in the average are 15 % slower then solo programmers but they produce 15 % less errors  Arisholm (2007): 48% increase in correctness but no significant difference in time Lui, Chan (2006): methodology is better for novices Testing and debugging are expensive Scratch and pair programming
All I Really Need to Know I Learned in Kindergarten ( By Robert Fulghum, 1988  ) Share everything. Play fair. Don’t hit people. Put things back where you found them. Clean up your own mess. Don’t take things that aren’t yours. Say you’re sorry when you hurt somebody. Wash your hands before you eat. Flush. Warm cookies and cold milk are   good for you. Live a balanced life – learn some and think some and draw and paint and sing and dance and play and work every day some. Take a nap every afternoon . When you go out into the world, watch out for traffic, hold hands and stick together. Be aware of wonder. Scratch and pair programming
Advantages More discipline Better code (less errors, easier to understand) Flexible software development Knowledge interchange between the partners Pleasant atmosphere  Mutual ownership of the sources Supervision Cohesion in the team of two (in the pair participants became more familiar) Pair is less sensitive on disturbances from environment  We need less computers (PC-s or workstations )  Scratch and pair programming
Disadvantages Giving instructions to the less experienced is tiring Experienced programmers rather work independently and they fill uncomfortable in the pair Experienced programmer produces code without (or with less) bugs and it is purposeless to be paired Is difficult to compare pair with solos empirically Differences in the programming styles cause conflicts Par could program less hour/day in comparison with solos which influence the deadline  In the SW enterprises where programmers work at home PP is difficult to realize   Scratch and pair programming
Scratch and pair programming
Experience  (1)–  novices At Faculty of Education: An Introduction to programming (1 year study: Two - subject teachers: Computer science and *) Background knowledge: From flow-chars to working program e s The last month in the semester Scratch and pair programming
Experience – time table Students are sent URL with longer test on programming  Homework, reading the paper: All I Really Need to Know I Learned in Kindergarten  30 min  discussion  on the rules in the pair Divide into pairs, who chose their names Each pair is randomly given programming exercise Pairs are presenting their programs and presenting their experience with pro et contra debate Students fulfill web-poll Scratch and pair programming
Web-poll   and test Time framework of PP? Which positive experience with PP would you put out?  Which negative experience with PP would you put out? Please, take few minutes to solve the web adaptive test  in Moodle environment .  Is you result better/equal/ worse then the former, wider test? Scratch and pair programming
Scratch and pair programming
Scratch and pair programming
Scratch and pair programming
Web poll results 3/4 and even more said that the experience  was  positive 9 of 16 were more or equally successful in solving the second (quick) test Suitable for novice programmers  We   continue d  with the PP practice Scratch and pair programming
Experience (2) course Computer science practice – generation  started  200 7 /0 8 We exclude the influence of the teacher The same learning materials as in the Experience (1) Scratch and pair programming
Experience ( 3 ) Course Programming  contents : dynamical structures (pointers) in Pascal 2 school hours 2 exercises 2 groups: PP,  collective  solving the examples Exercises of different  level of difficulty Pairs need less time for  adjustment Pairs achieved better results then the group, which  collectively solved the examples Scratch and pair programming
Experience ( 4) Course Programming  Contents: programming language C 2 groups :  opposite with experience 2 Knowledge assessment with short test Scratch and pair programming
4  years experience  PP 8 2  % had positive experience with PP or they founded PP good or excellent 63 % of the students who participated the PP experiment showed better results on the testing after the PP  which could mean that better understanding of programming concepts was achieved Scratch and pair programming
Conclusion Modern form of collaborative work Knowledge improvement We will continue with the PP  and Scratch   Scratch and pair programming
Scratch and pair programming

Scratch and pair programming

  • 1.
    Scratch and pair programming Irena Nančovska Šerbec Jože Rugelj University of Ljubljana Faculty of Education Dep. for math. and comp. {Irena.Nancovska, Joze.Rugelj}@pef.uni-lj.si
  • 2.
  • 3.
    S ources Scratchdownload: http://scratch.mit.edu/ ScratchEd: http://scratched.media.mit.edu/ Scratch Lesson Plans: http://wiki.classroom20.com/Scratch+Lesson+Plans Resources for parents and teachers to teach children Scratch programming : http://scratch.redware.com/ Web WORKSHOP: http://learnscratch.org/ Scratch Beginner's Guide - A Scratch Tutorial : http://www.scratchguide.com/index.php?page=scratch-programming-tutorial-2 Marija Oblak, PROGRAMSKA ORODJA V POMOC UČENJU PROGRAMIRANJA, diplomsko delo, PEF UL, 2009. Scratch and pair programming
  • 4.
    Papers Resnick, M.,at all (2009). Scratch : Programming for all, Communications on ACM, Vol. 52, Iss. 11; 60. (retrieved from http://web.media.mit.edu/~mres/papers/Scratch-CACM-final.pdf ) Resnick, M. (2007). All I really need to know (about creative thinking) I learned (by studying how children learn) in kindergarten. Proceedings of the 6th ACM SIGCHI conference on Creativity & cognition - C&C '07 , 1-6. New York, New York, USA: ACM Press. doi: 10.1145/1254960.1254961.(retrieved form http://web.media.mit.edu/~mres/papers/kindergarten-learning-approach.pdf ) Scratch and pair programming
  • 5.
    Scratch and pairprogramming
  • 6.
    There are only10 types of people in the world — those who understand binary, and those who don't. Scratch and pair programming
  • 7.
    Endless Loop: n.,see Loop, Endless. Loop, Endless: n., see Endless Loop. Scratch and pair programming From Data Processing Dictionary
  • 8.
    Raise Your HandIf You Have heard of Scratch other than at this lesson Have downloaded Scratch ?... but not gotten around to playing with it yet Have played around with it Use it in your teaching Scratch and pair programming
  • 9.
    Agenda What is Scratch? Scratch and … 21 Century Learning Skills the classroom Programming Scratch and pair programming sprite is a two-dimensional image or animation that is integrated into a larger scene.
  • 10.
    What is Scratch?A new graphical media rich programming language that allows users to make games animations interactive stories music art “ Digital fluency” should mean designing, creating, and remixing, not just browsing, chatting, and interacting. Resnick Scratch and pair programming
  • 11.
    What is Scratch It is intended especially for 8- to 16-year-olds (peaking at 12 ) Engaging and intuitive Collaborative Scratch offers: low floor (easy to get started) high ceiling (ability to create complex projects) wide walls (support for a wide diversity of projects) Scratch and pair programming
  • 12.
    What is Scratch Scratch and pair programming imagine • program • share
  • 13.
    What is ScratchLast version 1.4 Translation: Available i n Slovene It is developed by the Lifelong Kindergarten group at the MIT Media Lab by a team led by Mitchel Resnick first appeared in the may 2007 Scratch and pair programming
  • 14.
    The name Scratchis derived from the turntablist technique of scratching refers to both the language and its implementation . The similarity to musical "scratching”: usability the objects, graphics, sounds, and scripts can be easily imported usability of projects Interpreted dynamic visual programming language Scratch and pair programming
  • 15.
    Scratch and …21 century skills Students learn to : select, create and manage multiple forms of media. create media analyze media express themselves creatively and persuasively. Scratch and pair programming
  • 16.
    Scratch and 21 century Scratch and pair programming
  • 17.
    Scratch and …21 century skills Thinking and Problem Solving Skills Students learn : critical reasoning and systems thinking coordinate timings and interactions between multiple sprites identify new problems and creative solutions break problems up into steps Immediate feedback Scratch and pair programming
  • 18.
    Scratch and …21 century skills Interpersonal and Self-Directional Skills The visual nature of the programming => sharablility They create with an audience in mind and => able to make easy changes based on feedback of others. Social responsibility as they => interact with others through the scratch website Scratch and pair programming
  • 19.
    Scratch andthe Classroom Scratch and pair programming
  • 20.
    School At Facultyof Education: An Introduction to programming (1 year study: Two - subject teachers: Computer science and *) 7 th Grade Computer Literacy Curriculum ( Computer Science Curriculum ) . 12 years old children Scratch and pair programming
  • 21.
    Scratch and pairprogramming motion control looks
  • 22.
    Scratch and pairprogramming sensing sound operations
  • 23.
    Scratch and pairprogramming pen variables
  • 24.
    Day 1 DayOne – Discuss types of games (ex. role-playing game, shooters, mazes, skill, sports …) Explore Environment and Use Scratch Cards (12) With partners start planning game using workshop design guide Scratch and pair programming
  • 25.
    Scratch and pairprogramming
  • 26.
    Scratch and pairprogramming Move, Clone, Cut, Change Shape Sprite List Stage Sprite Position Full Screen Stage Create, Find or Surprise Sprite Start and Stop Game
  • 27.
    Scratch and pairprogramming Scripts Area
  • 28.
    Scratch and pairprogramming Blocks
  • 29.
    Scratch and pairprogramming
  • 30.
    Day 1 Programmingconcepts that students will be introduced to: Loops If/Then conditions Sequences Variables Threads coordination and synchronization Boolean logic random numbers Trial and Error Scratch and pair programming
  • 31.
    Day 2 Studentsbegin programming ( individually ) Examples Scratch and pair programming
  • 32.
    Example - guessElephant imagines a number between 1 and 100. Guess which one. If you guess the number, it changes its colour and stretche s trunk. If the imputed number is lower than his, he said, "My number is bigger." If imputed number is greater than his, he said, "My number is smaller." Learning Objective: Understanding conditional sentences, reading input Example: GUESS _number.sb Scratch and pair programming
  • 33.
    Example – balland stick Creating their own sprites: stick and ball. Stick, we put it next to the edge, move vertically with the aim to hit the ball. The ball is bouncing off the edges at random. Learning Objective : Creating game Examples: igra_palica_zoga.sb in igra_palica_zoga_zadetki.sb Scratch and pair programming
  • 34.
    Day 3 Explore http://scratch.mit.edu Set up an account Pair programming concepts introduction Download three games that are similar to the ones that you want to create See how these games are coded Save a game to your web account Scratch and pair programming
  • 35.
    Day 4 Setup pair programming Discuss the use of broadcasting to go to another level Constant Student Interaction – Ask 3 before me. Scratch and pair programming
  • 36.
    Day 5 Troubleshootand peer review Scratch and pair programming
  • 37.
  • 38.
    Papers Williams, L.,& Kessler, R. (2000). All I really need to know about pair programming I learned in kindergarten. Communications of the ACM , 3 (5), 108-114. ACM. Retrieved from http://portal.acm.org/citation.cfm?id=332833.332848 . Nančovska Šerbec, I., Kaučič, B., & Rugelj, J. (2008). Pair programming as a modern method of teaching computer science. Int. j.: emerg. technol. learn. , vol. 3, s2, 45-49. Scratch and pair programming
  • 39.
    Scratch and pairprogramming Williams, L., & Kessler, R.: All I really need to know about pair programming I learned in kindergarten . Resnick, M. : All I really need to know (about creative thinking) I learned (by studying how children learn) in kindergarten
  • 40.
    Scratch and pairprogramming http://www.hanoulle.be/2009/11/pairprogramming-is-like-sex/
  • 41.
    Agenda Terms Motivation/inspirationInstructions “ All I Ever Need to Know about Pair Programming I Learned in Kindergarten” Advantages and disadvantages Pair programming experiment Survey on the experience Conclusions Scratch and pair programming
  • 42.
    Terms Pair programming (PP) is a practice where two programmers work together at one computer, collaborating on the same design, algorithm, code, or test Extreme Programming ( XP ) is a software engineering methodology (and a form of agile software development) Collaborative learning refers to methodologies and environments in which learners engage in a common task in which each individual depends on and is accountable to each other Scratch and pair programming
  • 43.
    Motivation Experiences fromteaching programming - students implicitly practiced PP without being aware of that Modern studies confirmed the advantages of the method: novice–novice pairs against novice solos experience significantly greater productivity gains than expert–expert pairs against expert solos Related to collaborative work Preparing for project work Questionable story about XP Scratch and pair programming
  • 44.
    Scenario The pairis made up of a driver and navigator , driver actively types at the computer or records a design navigator watches the work of the driver and attentively identifies problems and makes suggestions Both are also continuous brainstorming partners. Rules of behavior are defined: PP relationship is very active: communicate, at least every 45 to 60 seconds. switching roles every 30-45 minutes or after the task is finished Scratch and pair programming
  • 45.
    If PP “works”or it doesn’t work? L. Williams (2000): coupled programmers in the average are 15 % slower then solo programmers but they produce 15 % less errors Arisholm (2007): 48% increase in correctness but no significant difference in time Lui, Chan (2006): methodology is better for novices Testing and debugging are expensive Scratch and pair programming
  • 46.
    All I ReallyNeed to Know I Learned in Kindergarten ( By Robert Fulghum, 1988 ) Share everything. Play fair. Don’t hit people. Put things back where you found them. Clean up your own mess. Don’t take things that aren’t yours. Say you’re sorry when you hurt somebody. Wash your hands before you eat. Flush. Warm cookies and cold milk are good for you. Live a balanced life – learn some and think some and draw and paint and sing and dance and play and work every day some. Take a nap every afternoon . When you go out into the world, watch out for traffic, hold hands and stick together. Be aware of wonder. Scratch and pair programming
  • 47.
    Advantages More disciplineBetter code (less errors, easier to understand) Flexible software development Knowledge interchange between the partners Pleasant atmosphere Mutual ownership of the sources Supervision Cohesion in the team of two (in the pair participants became more familiar) Pair is less sensitive on disturbances from environment We need less computers (PC-s or workstations ) Scratch and pair programming
  • 48.
    Disadvantages Giving instructionsto the less experienced is tiring Experienced programmers rather work independently and they fill uncomfortable in the pair Experienced programmer produces code without (or with less) bugs and it is purposeless to be paired Is difficult to compare pair with solos empirically Differences in the programming styles cause conflicts Par could program less hour/day in comparison with solos which influence the deadline In the SW enterprises where programmers work at home PP is difficult to realize Scratch and pair programming
  • 49.
    Scratch and pairprogramming
  • 50.
    Experience (1)– novices At Faculty of Education: An Introduction to programming (1 year study: Two - subject teachers: Computer science and *) Background knowledge: From flow-chars to working program e s The last month in the semester Scratch and pair programming
  • 51.
    Experience – timetable Students are sent URL with longer test on programming Homework, reading the paper: All I Really Need to Know I Learned in Kindergarten 30 min discussion on the rules in the pair Divide into pairs, who chose their names Each pair is randomly given programming exercise Pairs are presenting their programs and presenting their experience with pro et contra debate Students fulfill web-poll Scratch and pair programming
  • 52.
    Web-poll and test Time framework of PP? Which positive experience with PP would you put out? Which negative experience with PP would you put out? Please, take few minutes to solve the web adaptive test in Moodle environment . Is you result better/equal/ worse then the former, wider test? Scratch and pair programming
  • 53.
    Scratch and pairprogramming
  • 54.
    Scratch and pairprogramming
  • 55.
    Scratch and pairprogramming
  • 56.
    Web poll results3/4 and even more said that the experience was positive 9 of 16 were more or equally successful in solving the second (quick) test Suitable for novice programmers We continue d with the PP practice Scratch and pair programming
  • 57.
    Experience (2) courseComputer science practice – generation started 200 7 /0 8 We exclude the influence of the teacher The same learning materials as in the Experience (1) Scratch and pair programming
  • 58.
    Experience ( 3) Course Programming contents : dynamical structures (pointers) in Pascal 2 school hours 2 exercises 2 groups: PP, collective solving the examples Exercises of different level of difficulty Pairs need less time for adjustment Pairs achieved better results then the group, which collectively solved the examples Scratch and pair programming
  • 59.
    Experience ( 4)Course Programming Contents: programming language C 2 groups : opposite with experience 2 Knowledge assessment with short test Scratch and pair programming
  • 60.
    4 yearsexperience PP 8 2 % had positive experience with PP or they founded PP good or excellent 63 % of the students who participated the PP experiment showed better results on the testing after the PP which could mean that better understanding of programming concepts was achieved Scratch and pair programming
  • 61.
    Conclusion Modern formof collaborative work Knowledge improvement We will continue with the PP and Scratch Scratch and pair programming
  • 62.
    Scratch and pairprogramming