introducing programming to elementary students

0 downloads 0 Views 324KB Size Report
Python and after that using game programming tasks in Scratch. .... In this research 5th grade students (11 to 12 years old) have participated taking ... 14. 8. 6. The same teacher was giving the lectures lectures in both schools and all classes.
https://library.iated.org/view/MLADENOVIC2016INT

INTRODUCING PROGRAMMING TO ELEMENTARY STUDENTS NOVICES BY USING GAME DEVELOPMENT IN PYTHON AND SCRATCH Monika Mladenović1, Divna Krpan2, Saša Mladenović3 1 2, 3

Elementary school “Blatine-Škrape” (Croatia) University of Split, Faculty of science (Croatia)

Abstract Most modern jobs rely on informatics. Jobs requiring the knowledge and skills associated to computers programming are one of most wanted occupations today. Despite that fact, there is enrolment crisis in computing, and programming courses are the least favored by students. Students should be introduced to programming as early as possible. Question is what programming language is appropriate for that age? It is possible that “classical” approach for teaching programming, which includes procedural programming language with solving math problems, is strange and repulsive to students? Many researches showed that visual programming languages like Scratch and programming games instead of solving math problems have positive effect on motivation for programming. Motivation is important but do students actually learn programming concepts by programming games in Scratch? Problem solving skill is crucial for programming but does it affect success and motivation for programming? To answer these questions, we have conducted a research th and used quantitative and qualitative analysis. The population sample consisted of 5 grade students belonging to 4 classes of two different elementary schools in year 2014/2015. Students didn’t have any previous programming experience. Students’ problem solving skills were measured before any programming lectures. Students were introduced to programming using procedural programming in Python and after that using game programming tasks in Scratch. Keywords: programming, python, scratch, games, elementary school.

1

INTRODUCTION

Main feature of future jobs will be (and already is) high use of technology, solving problems and complex communication[1]. Glue for all mentioned is computer science and programming as part of it. Programming is kind of computer assisted problem solving which can be transferred to areas of interest outside computer science [2], therefore children should have a chance to learn programming, not to become future programmers but to practice problem solving.[3] Programming is hard and in the last decade there is enrolment crisis in computing, and programming courses that are the least favored by students. Possible problems are: 

Students encounter programming concepts to late, since students often decide to pursue a career in the sciences by eighth grade [4],



Most programming curricula still rely on textual programming languages used to solve math problems [5].



Children of the 21th century often called “digital natives” [6] prefer learning by gaming and their main characteristic is multitasking and visual intelligence [7].

Classic approach to teaching programming is based on using textual programming language and solving math problems, which is repulsive and hard for digital natives. Programming in textual languages demands precise and error free syntax that can be very frustrating for children even when creating small programs. Beside that most syllabuses are based on math. Since programming is correlated with problem solving ability while math problems used in agendas also necessitates student’s initial high problem solving ability, the result is obvious students not acquainted with problem solving are discouraged to get a grip on programming. In the last decade some visual programming languages like Scratch were created as answer to enrollment decline in Computer science classes. These languages eliminate syntax error problems so the student is able to focus on problem solving while programming becomes more attractive to student

https://library.iated.org/view/MLADENOVIC2016INT

since they allow programming of games, storytelling, animations etc. Many researches showed that visual programming languages like Scratch and programming games instead of solving math problems have positive affect on motivation for programming. Motivation is important but do students actually acquire programming concepts by programming games in Scratch? Problem solving skill is crucial for programming but does it affect success and motivation for programming? To propose an th answer to aforementioned questions in this paper we have analyzed data collected from 5 grade elementary school students participating in elective course Informatics in two schools. Students have used textual programming for math problem solving by using Python and they have been exposed to games programming tasks by using Scratch. Students didn’t have any previous programming experience and problem solving abilities were tested before introducing them to programming. To examine correlation between problem solving abilities and success in Python as text based programming language and Scratch as visual programming language we have tested students in Python and Scratch after respective lectures. This paper describes research design and presents results of the quantitative analysis of collected data trying to provide an answer to research questions.

2 2.1

BACKGROUND Problem solving and programming

Problem Solving (PS) is the process of confronting a novel situation, formulating connections between given facts, identifying the goal, and exploring possible strategies for reaching the goal [8]. PS is a central aspect of computer science and programming that requires some abstract thinking and providing a creative solution to a given problem. Problems do not always have straightforward solutions. Some problems have a set of possible solutions called algorithmic solutions. Chosen solution that seems the best for given problem is called algorithm [12]. While solving problems on the computer, one of the most difficult tasks for the problem solver is writing the code. It’s reported that programming requires high PS ability [19] but also that by programming PS ability can be practiced [9][2][10][11]. This is a little bit contradictory since if someone doesn’t have high PS ability programming is hard and frustrating therefore will probably give up of it. Even with high PS ability with classic approach to programming most of digital natives will probably give up. We can deduce that high PS ability students will have more success in any programming language and students with lower PS abilities will struggle with programming regardless of the teaching approach. With the different type of languages, such as visual programming languages, we could improve motivation for students with high PS since they will have success in any learning approach, but for students with lower PS we could achieve far more benefits besides the motivation.

2.2

Programming languages in education

Programming is hard and “real” programming languages are very complicated for novices. Programming languages for novices should be simple so the learner wouldn’t be overloaded with tool and syntax complexity. Novice should focus on problem and algorithm instead on tool and syntax. Programming languages used for educational purpose, especially when used to introduce children to programming, should be based on the idea of mini languages. The idea of the mini-language approach is to design a small and simple language to support the first steps in learning programming [12]. According to the fact that most programming curricula still rely on textual programming languages used to solve math problems we have decided to use Python programming language as “real” programming language. Python meets all requirements for mini-language and is indicated as one of the most appropriate starting textual programming languages [13]. Visual programming environments instead of relying on typed instructions are based on visual instructions therefore eliminating syntax complexity problems allowing students to focus on the problem itself. The most known visual programming languages are Scratch, Alice and Greenfoot. Furthermore those languages provide new programming context so we are not limited to solving math problems, and we can move to context of games, storytelling, animations etc. [14] that should match

https://library.iated.org/view/MLADENOVIC2016INT

digital natives expectations. For the purpose of this research Scratch is chosen as the most appropriate visual programming language for elementary school children [15][16].

2.3

Programming games

Visual programming languages allow the user programming experience leading them from concrete to abstract concepts in specific context [17]. Furthermore, such languages meet the needs of digital natives’ interaction with the computer, they are visually attractive and allow context programming. Context is especially important since one’s existing high problem solving skill does not imply programming motivation. Due to the uninteresting context chosen while learning programming it is possible that the student will drop out regardless of the present level of problem solving skill. Programming context needs to shift from activities that are less attractive to digital natives to creativity enabling environment used to develop more than mathematical abilities and to use multiple intelligences instead on relying on logical-mathematical intelligence exclusively. Scratch is appropriate for games programming in elementary schools and makes the programming more engaging to students. Shifting the focus from syntax to semantic structure of the program, students are not aware that they are actually practicing problem solving skills, error detection and correction, scenario creation, but are convinced that they are “just making computer games”. Encouraging students to learn one thing while they are convinced that they are learning something completely different Pauch has called “head fake”[18].

3 3.1

RESEARCH Research question

Based on theoretical background we stated the following research questions: H1 Does problem solving abilities have direct influence on textual programming in Python? H2 Does problem solving abilities have direct influence on programming games in Scratch? H3 Are results in Python after “real” programming related to results in Scratch after programming games?

3.2

Research design th

In this research 5 grade students (11 to 12 years old) have participated taking elective Informatics th course in two elementary schools in Split, Republic of Croatia. As 5 grade is the first year of learning Informatics in school students didn’t have any programming experience. Of the totall of 54 students that were involved in lectures 50 students participated in all tests so the final number of participans for this research is 50. Non-probability, purposive sampling [20] was used, since our goal was to target students with no previous programming experience in elementary school. The research population is shown in Table 1. Table 1. Research population Class

School

5a

S1

5b

Students

Boys

Girls

10

5

5

S1

16

13

3

5c

S1

10

8

2

5b

S2

14

8

6

The same teacher was giving the lectures lectures in both schools and all classes. That is the first author of this paper with 5 years computer science elementary school teaching experience, 4 years of computer science teaching experience at undergraduate level, 8 years of professional programming experience and PhD candidate for educational research in CS field.

https://library.iated.org/view/MLADENOVIC2016INT

3.3

Research tools

As some researches reported that programming is related to problem solving skill and there is positive correlation between math and programming [19] as form of pre-test we conducted problem solving test so we could properly compare programming results. Problem solving test was taken before exposure to programming. Test was composed of 8 tasks comparable to tasks for lower grades in Kangaroo Math Competition [22] which is apropiate for children of age 10 to 11. Tasks didn’t require high math abilities instead they required problem solving abilities with emphasis on choosing the right algorithm. Tasks included recognition of paterns, sorting, sequencing, conditional, repeating. Tasks are shown in The Table 2. Table 2. Problem solving tasks

Task T1

T2

T3 T4

T5

Continue the series with next three letters: A B A C A D A E __ __ __

Continue the series with two combinations of letters: JKLMNO JKLMON JKLOMN JKOLMN ___________ ___________ If a robot got instructions to repeat 3 times: “go 3 steps forward”, how many steps will robot do? If word RECENICA (meaning sentence in Croatian language) contains less than 9 letters and more than 3 syllables, write the first syllable, else write the last consonant placed the most right In the sentence. If a Friday was a 3 days before yesterday what day will be tomorrow?

problem sequencing , pattern recognition, Sequencing, series pattern recognition, repeat conditional

sequencing

T6

Ivan is heavier than Martina, but lighter than Ante. Write their names in order from lightest to heaviest.

sequencing, sorting

T7

Christmas is celebrated on December 25th. Imagine that Christmas is 2 days before Thursday. Which day is Christmas, which day will be 4 days after Christmas and on what date?

sequencing

T8

Drazen, Ana and Ivana are teacher, salesman and chef. Drazen is lower than Ana, but taller than Ivana. Salesman is the lowest, chef is the highest. Define What are the occupations of Drazen, Ana and Ivana? Who is the tallest and who is the lowest?

sequencing , sorting

For motivational purposes problem solving test is made easer than it should be. If test was harder students with lower PS abilities would feel uncomfortable and demotivated so they had the chance to solve at least 2 tasks. After problem solving test, students were first exposed to Python programming for four weeks with two hours per week which makes a total of 8 hours. Programming concepts that were included in lectures were variables, input, print, sequencing and conditional. After that they were tested for programming concepts understanding in Python. Before programming in Scratch there were three week christmas holidays. After holitays students were learning programming in Scratch by programming simple games guided by the teacher during three weeks period. Programming concepts they were learning are basic algorithms like sequencing, conditional and iteration. After three weeks they were tested for programming concepts understanding in Scratch.

3.4

Data analysis

Results were analyzed by using qualitative techniques. Kolmogorov-Smirnov test is used for determining normality of data. Parametric independent t-test and non-parametric Mann Whitney U test are used for comparing results between groups. Parametric test paired t-test and non-parametric Wilcoxon Signed Ranks Test are used to compare students results in different tests. Pearson

https://library.iated.org/view/MLADENOVIC2016INT

correlation coefficient was used to measure correlation. Non-parametric tests are used for data that doesn’t meet requirements for using parametric tests.

4 4.1

RESULTS AND DISCUSSION Normality of data

Three tests were conducted: problem-solving test (pre-test), python test (posttest) and Scratch test (posttest). For analyzing data percentage of test success is used. Descriptive statistic and result of Kolmogorov-Smirnov test are presented in Table 3. Table 3 Descriptive Statistics and normality test for tests results Mean

SD

Kolmogorov-Smirnov p-value

problem-solving test (n=50)

58,710

26,8982

0,000

Python test (n=50)

57,140

27,7324

0,197

Scratch test (n=50)

68,150

20,6559

0,069

As we stated before, problem solving test was easer than it should be for motivational purposes so it’s not a surprise that data is not normally distributed, which was showed by Kolmogorov-Smirnov test results (p=0.000). Test had total 14 points (100%), most common number of points is 10 so the curve is right shifted. For testing these results non-parametric Mann-Whitney U and Wilcoxon Signed Ranks tests was used. Kolmogorov-Smirnov test results for Python (p=0,197) and Scratch (p=0,069) are normally distributed therefore parametric paired t-test will be used for these data sets.

4.2

Problem solving test

Descriptive statistic for problem solving test is shown in Table 4 Table 4. Descriptice statistic for problem solving test Task(max. Point number)

T1 (1)

T2 (2)

T3 (1)

T4 (1)

T5 (1)

T6 (1)

T7(3)

T8 (4)

Total (14)

Mean

0,80

0,88

0,84

0,37

0,46

0,84

1,42

2,76

8,22

%

80%

44%

84%

37%

46%

84%

47%

69%

58,71%

By analyzing descriptive statistic it’s obvious that student had the most problems with T4 which refers to conditional. Students had most success with sorting (T6) and repeat (T3) tasks. Task T8 that seemed that is going to be the hardest because is complex and included double sorting was 69% correctly solved by students. When it comes to pattern recognition (T1, T2), simple task (T1) had high percentage of correct solutions, but when a series of data was included in pattern recognition task results were much lower (44%). Students had problem with prediction of days (T5, T7) that refers to sequencing and sorting. Surprisingly, students had more success with more complex task (T7) than with simpler one (T5).

4.3

Differences between the groups

To treat groups as one first we tested differences between groups. Those groups are gender (boys n=34, girls n=16) and school (school S1 n=36, school S2 n=14). Since problem solving data are not normally distributed Mann-Whitney U test was used to see is there a differences between students from two schools and between genders. Tests didn’t show statistically significant difference neither by schools (U=187.5, p=0.158), neither by gender (U=268.0, p=0.933). Independent-samples t-test is used for finding differences between groups for Python and Scratch tests. Results showed no statistically significant differences between genders in Python test (t(48)=-

https://library.iated.org/view/MLADENOVIC2016INT

1.312, p=0.196) and Scratch test (t(48)=-1.283, p=0.205) and also between schools for Python test (t(48)=0.42, p=0.677) and Scratch test (t(48)=0.864, p=0.392). Tests didn’t find any statistically significant differences between groups so we can treat the groups as one.

4.4

Problem solving abilities and Python

In H1we assumed that problem solving ability is correlated with Python programing because Python programming is learned in “classic way”, by solving math problems with programming. Based on that we assumed that problem solving test and Python test results would be similar. Since problem solving test results are not normally distributed we used non-parametric Wilcoxon Signed Ranks Test to determine our hypothesis. Wilcoxon Signed Ranks Test indicated that Python test results were not statistically significantly higher than problem solving test results (Z=-0.265, p=0.791) and there is positive correlation between tests (r=0.623, p=0.000) so we can accept H1 and conclude that stronger students have more success in Python programming in proportion to problem solving abilities than weaker students.

4.5

Problem solving abilities and Scratch

In H2 we assumed that problem solving test and Scratch test results will be similar and that problem solving ability is also correlated with Scratch programing. Instead of learning programming with “classic” approach, students were learning programming concepts by programming games in Scratch. Since problem solving test results are not normally distributed we used non-parametric Wilcoxon Signed Ranks Test to determine our hypothesis. Wilcoxon Signed Ranks Test indicated that Scratch test results are statistically significantly higher than problem solving test results (Z=-2.351, p=0.019) and there is positive correlation between tests (r=0.566, p=0.000) so we must reject H2 and conclude that learning programming by programming games in Scratch is not dependent on problem solving ability. Weaker students can achieve better results in Scratch programming then in procedural Python programming.

4.6

Python vs Scratch

In H3 we assumed that weaker students would have more success in Scratch programming than in Python programming. As Python and Scratch tests results are normally distributed paired-samples ttest was used to compare Python test results and Scratch test results. Results showed statistically significant differences (t (49)=-2.475, p=0.017) between results achieved in Python (M=59.72, SD=27.732) and Scratch (M=66.714, SD=20.656) although there is positive correlation between Python and Scratch tests (r=0.628, p=0.000). These results suggest that results in Python and Scratch tests are in correlation but weaker students achieved better results in Scratch than in Python so we can accept H3.

5

CONCLUSION

Programming is hard and programming courses are the least favored by students. One of the reasons is the fact that programming curriculums are based on solving math problems by using “real” programming languages. It’s very important to make a “gentle” introduction to programming especially when it comes to elementary school children. There are several new visual programming languages like Scratch based on visual instructions therefore eliminating syntax problems and allowing students to focus on the problem. Beside that they enable placing programming in context offering approach from concrete to abstract experience when learning. With these programming languages we have the opportunity to shift from math problems world context, appropriate for digital emigrants, to digital natives’ world context like game programming. There is no doubt that programming requires problem solving ability but also that by programming, problem solving ability can be practiced. As we mentioned this is a little bit contradictory since if someone doesn’t have high PS ability programming is hard and frustrating therefore will probably give up of it. It’s not enough to have high problem solving ability to become a programmer, so motivation can be crucial. Putting programming in context of children’s interests can also upkeep motivation.

https://library.iated.org/view/MLADENOVIC2016INT

The results of this research showed that when it comes to programming in “real” programming th language, Python, 5 grade students with higher problem solving abilities achieve better results, but when it comes to programming in visual programming language, Scratch, that is not the case. When we compared students Python and Scratch results we got similar result, students accomplish better results in Scratch than in Python. These results showed that we can minimize impact on giving-up of programming due to students’ lower problem solving abilities.

6

FUTURE WORK

With these results new questions arise. By shifting programming context of to game programming in visual programming languages: Can we affect the “middle third” students to achieve better results in programming? Can we motivate the “higher third” students to take programming class? Can we measure the motivational factor of these languages? We will try to provide an answer to posed questions in our future work by using the same dataset in a new research.

7

REFERENCES

[1] F. Levy and R. J. Murnane, The New Division of Labor: How Computers Are Creating the Next Job Market, Princeton University Press, 2012. [2] M. Hassinen and H. Mäyrä, "Learning programming by programming: a case study," in Baltic Sea '06, Koli, Finland, 2006. [3] P. J. Casey, "Computer Programming - A Medium for Teaching Problem Solving," Computers in the Schools: Interdisciplinary Journal of Practice, Theory, and Applied Research, vol. 13, no. 1-2, pp. 41-51, 1997. [4] R. H. Tai, C. Q. Liu, A. V. Maltese and X. Fan, "Planning Early for Careers in Science," Science, vol. 312, no. 5777, pp. 1143-1144, 2006. [5] M. Resnick, J. Maloney, M. Hernández, N. Rusk, E. Eastmond, K. Brennan, A. Millner, E. Rosenbaum, J. Silver, B. Silverman and Y. Kafai, "Scratch: Programming for all," Communications of the acm, vol. 52, no. 11, pp. 60-57, 2009. [6] M. Prensky, "Digital natives, digital immigrants.," On the Horizon, pp. 1-6, 2001. [7] M. C. Carlisle, T. A. Wilson, J. W. Humphries and S. M. Hadfield, "RAPTOR: a visual programming environment for teaching algorithmic problem solving," in SIGCSE '05, New York, 2005. [8] W. Szetela and C. Nicol, "Evaluating problem solving in mathematics," Educational Leadership, vol. 49, no. 8, pp. 42-45, 1992. [9] M. Sprankle and J. Hubbard, "Problem Solving and Programming Concepts," in General ProblemSolving Concepts, Pearson, 2012, pp. 3-6. [10] G. White and M. Sivitanides, "An empirical investigation of the relationship between success in mathematics and visual programming courses," Journal of Information Systems Education, vol. 14, no. 4, pp. 409--416, 2003. [11] S. Papert, Mindstorms: children, computers, and powerful ideas, New York: ACM, 1980.

https://library.iated.org/view/MLADENOVIC2016INT

[12] G. Fesakis and E. Mavroudi, "Problem solving by 5–6 years old kindergarten children in a computer programming environment: A case study," Computers & Education, vol. 63, pp. 87-97, 2013. [13] Y.-k. C. Liao and G. W. Bright, "Effects of Computer Programming on Cognitive Outcomes: A Meta-Analysis," Journal of Educational Computing Research, vol. 7, no. 3, pp. 251-266, 1991. [14] P. Brusilovsky, E. Calabrese, J. Hvorecky, A. Kouchnirenko and P. Miller, Education and Information Technologies, vol. 2, no. 1, pp. 65-83, 1997. [15] L. Mannila and M. de Raadt, "An Objective Comparison of Languages for Teaching Introductory Programming," in Proceedings of the 6th Baltic Sea conference on Computing education research: Koli Calling 2006, 2006. [16] Fincher and Utting, "Machines for Thinking," vol. 10, no. 4, 2010. [17] C. K. M. Fincher, "Comparing Alice, Greenfoot & Scratch," New York, 2010. [18] P. K. R. R. Maloney, "Programming by choice: urban youth learning programming with scratch," Portland, 2008. [19] W. Dann and S. Cooper, "Alice 3: Concrete to Abstract," Communications of the ACM , vol. 52, no. 8, pp. 27-29, 2009. [20] R. Pausch and J. Zaslow, The Last Lecture, New York: Hyperion, 2008. [21] L. Cohen, L. Manion and K. Morrison, Research Methods in Education citation, London: Routledge, 2011. [22] Hrvatsko matematičko društvo, "http://www.matematika.hr/klokan/," Hrvatsko matematičko društvo, [Online]. Available: http://www.matematika.hr/klokan/. [Accessed 10 5 2016]. [23] Ministarstvo znanosti obrazovanja i športa, "Hrvatski nacionalni obrazovni standard," Ministarstvo znanosti obrazovanja i športa, Zagreb, 2006. [24] J. Bruner, The Process of Education, Cambridge: Harvard University Press, 1960. [25] Cooper, "The Design of Alice," vol. 10, no. 4, 2010. [26] R. Pausch and J. Zaslow, The Last Lecture, New York: Hyperion, 2008.