Document not found! Please try again

Programming Unplugged: Bridging CS Unplugged ...

4 downloads 0 Views 458KB Size Report
We gave the students a paper with set of instructions and a paper craft, which have the character of. Minecraft. The instructions were written as functions, shown.
2015 Fifth International Conference on e-Learning

Programming Unplugged: Bridging CS Unplugged Activities Gap for Learning Key Programming Concepts Reem A. AlAmer1, Wejdan A. Al-Doweesh2, Hend S. Al-Khalifa3 and Muna S. Al-Razgan4 Information Technology Department College of Computer and Information Sciences, King Saud University Riyadh, Saudi Arabia 1 [email protected], [email protected] {3hendk|[email protected]} teach key programming concepts; we named these activities "Programming Unplugged (PU)". While CS unplugged activities were initially created to attract students to CS major, our developed activities focus on simplifying programming for newcomers. The rest of the paper is organized as follows: Section 2 presents some of the related work that used CS unplugged activities in summer camps. Section 3 describes the design of new programming unplugged activities that we used on our summer camp. Section 4 puts programming unplugged activities into the context of the summer camp, where we talk about the camp organization and implemented projects. Section 5 presents the evaluation results of the summer camp and the tacit knowledge propagated to the students. Finally, section 6 concludes the paper with lessons learned from the camp and its limitation.

Abstract— Computer Science (CS) unplugged is a set of learning activities designed to explain CS concepts without using a computer. These activities have been used globally especially during CS outreach programs. It was used during these programs to attract middle and high school students to major in CS. With this knowledge in mind, we initiated a summer camp program involving local middle and high school girls using newly developed CS unplugged activities. The aim of these activities was to teach and simplify key programming concepts; we named these activities Programming Unplugged (PU). The set of activities developed focused on simplifying programming for newcomers. We had measured the success of the activities and the camp using surveys, and projects developed by the students. The result shows that the students have enjoyed the camp and will likely recommend it to their friends. Also, we noticed that most of the CS concepts introduced during PU activities were used in the student’s projects.

II. RELATED WORK CS unplugged activities have been employed in a number of computer science outreach programs worldwide. These programs examined the efficiency of using CS unplugged activities to attract middle and high school students to major in CS. Taub et al. [3] from Weizmann Institute of Science, for example, measured the impact of using eighteen CS unplugged activities on 13 middle school students to change their view to CS. The authors administered a prequestionnaire consisting of 22 Likert type statements, the results shows that students think that CS is focusing on “installing software” and it is for “nerd people”. Also they conduct a structured post interview for six students. The interviewer presented six images, and then asked students to rank these images according to which images represent CS more. Authors concluded that there is a partial positive processing on student’s view to CS after using CS unplugged activities. Feaster from Clemson University and Segars from UC Berkeley [4] reported their experience in initiating yearlong program based on the CS unplugged activities for high school students. They aim to evaluate the effect of the program on students’ attitudes about computer science and perceived content understanding. The program consisted of nine CS unplugged activities with ten 40-minute activities in each semester. Authors used a pre-/post-survey with 18 Likert style statements. Unfortunately the results indicated

Keywords- CS unplugged; Programming concepts; Activiites; Summer camp; Mobile game; App inventor

I. INTRODUCTION Computer Science unplugged is “an approach to communicating some of the great ideas of computer science without requiring students to use a computer” [1]. The main goal is to give a better understanding of what Computer Science is, by inspiring students with kinesthetic learning activities that illustrate number of CS concepts [2]. Also, motivating students to construct knowledge from their mind rather than take it directly from the teacher. CS unplugged was successfully implemented in many summer camps worldwide e.g. [6,7]. However, the problem of CS unplugged activities is in its focus. CS unplugged focus on wide spectrum of macro level activities such as: binary numbers, text compression, etc. and ignore micro level activities that focus on learning programming concepts per se, such as local and global variables, methods, conditional statements, etc. These detailed concepts are important to the success of any learner who is starting his/her programming journey. In this paper, we present our experience in a summer camp that teaches mobile game application development using App inventor. The focus of the paper will be on reporting the developed new CS unplugged activities to 978-1-4673-9431-4/15 $31.00 © 2015 IEEE DOI 10.1109/ECONF.2015.27

97

function was to Return the legs to the main table. This instruction illustrates the type of a return function. After working on all of the functions, the instructor asked each group to return their values to the group who has the Build _the_ Character function to execute the last function. This function explains the parameter-passing concept. It receives a set of parameters required to execute the function. The students understand that without these parameters the (legs, arms, head, and body) function cannot be executed. Since this function does not have a return value; it shows the void-function type.

that there was no change in the interest of CS among students. In order to help researchers develop appropriate teaching materials, Nishida from Osaka Gakuin University in Japan [5] collaborated with number of researchers to analyze the successful CS unplugged activities to produce a “CS Unplugged design pattern”. The pattern was based on identifying six stages to design a new CS unplugged activity. These stages were: problem, context, forces, solution, resulting context and rationale. They also used the pattern to evaluate and review other activities. To examine the efficiency of the pattern, they developed a new activity named “Telephone Game” to help students to understand the importance of error detection and correction. At the end of the semester, seven students out of nine chose the “Telephone Game” as the most interesting game in the CS unplugged activities. From the reporting of some of the previous work in the domain, we can see that CS unplugged aims to attract students to CS major as well as simplify CS concepts, however, to the best of our knowledge we have not seen any paper focusing on simplifying programming concepts to students. Given this gap in the domain, we introduce a set of seven activities that tackle key programming concepts. This will be introduced in the next section under the name "Programming unplugged". III. PROGRAMMING UNPLUGGED DESIGN One of the main goals of the summer camp is to give students a basic idea about key programming concepts in an interesting way by using self-created innovative activities. The camp instructors came up with new ideas and interesting activities that introduce students to programming concepts. The concepts that were taught to the students were: functions, local and global variables, lists, if else statement and loops. Next, we explain the design of each programming concept activity. A. Methods (Functions) To understand the concept of functions, students were asked to do a small activity. This activity illustrates the two functions types “return, void” and explains the parameterpassing concept. We gave the students a paper with set of instructions and a paper craft, which have the character of Minecraft. The instructions were written as functions, shown in Figure 1. The students were divided into groups, and then each group was given scissors, glues and sheets containing different functions (Legs (), Arms (), Head (), Body (), and Build _the_ Character (legs, arms, head, body)). Then, they were asked to do one function and return the resulted shape to the group who has the Build _the_ Character function. After that the instructor explains how the function executes. The instructor informed the students of the steps to follow to build the Minecraft character. In the beginning, the student need to do the first instruction (which is cut the leg) before the third instruction (glue the leg), this is how the computer executes functions “sequentially”. The end of the

Figure 1. Instructions for building the model of Minecraft (1) the paper craft (2) the execution of CUT instruction (3) the execution of GLUE instruction and (4) the result of Build_the_character function.

B. Local and Global Variables To understand the meaning of local and global variables in CS, we provided the students with a real world example as follows: We anticipated that a function is like an emergency room in a hospital, the global variable is the patient and the local variables are the tools in the emergency room e.g. scissors, scalpel, etc. (see Figure 2). As we know that each emergency room has its own tools, which is like each function has its own local variables; therefore, it cannot use a local variable

98

from another function in its scope. Also, we know that when the patient enters the emergency room and after the surgery, (s)he will leave with a new condition. The global variable will keep the changes on its real value.

Figure 4. Lists activity.

D. If Else An If else statement identifies which statements to run based on the value of a Boolean expression. To introduce the meaning of If else statements in CS and how it works, the students were given this activity: A paper containing either a number or shape, then the students were asked to move right or left based on the paper content. Figure 5 shows a sample of this activity with the following instructions: If (the paper contains number) Move right; Else Move Left;

Figure 2. A picture demonstrating local and global variables.

C. Lists A list is data that implements a collection of values that have the same type. To explain the meaning of lists and how each list consists of items with the same type and same properties, the students were given these three activities: 1) Activity 1: The Train Activity The students were divided into groups of 3-4 students; each group was given scissors, glues and sheets containing different trains and other sheets containing the vehicles of the trains. It was written on the sheets: the title of the train and their components. Then, students were asked to cut the list's title and its appropriate components and paste them on the train's vehicles as shown in Figure 3 (a).

Figure 5. If-Else activity.

E. Loops In programming, we have two types of loops: infinite and conditional loops. We gave the students the following activities, as shown in Figure 6, to introduce the role of loops in programming and explain how they work. 1) Activity 1: Infinite loop Activity The students were divided into groups of 3-4 students; each group was given a paper containing an example of an infinite loop from a real life, such as water cycle, recycling, blood cycle, etc. Then they were asked to write the title of the example and a brief description about it. 2) Activity 2: Conditional loop Activity The students were divided into groups; each group was given a paper containing an example of a conditional loop from a real life. For instance, the patient has to take the medicine every 3 or 6 hours until (s)he feels good, the student has the same routine until (s)he finishes school. Then they were asked to write the title of this example and a brief description about it.

Figure 3. Train activity (a) and Friends activity (b).

2) Activity 2: The Friends Activity The students were divided into groups of 3-4 students; each group was given glues and actors containing either letters or numbers. Then the students were asked to organize the actors into two groups: Letters and Numbers as shown in Figure 3 (b). 3) Activity 3: Make a list Activity The students were divided into groups of 3-4 students; each group was given pencils and a sheet containing an empty list. Then they were asked to create a list by writing its title and items (see Figure 4). These three activities explained that each list contains different number of elements with the same data type.

99

inventor.

Figure 6. (a) Infinite loop activity

(b) Conditional loop activity.

These two activities explained the meaning of infinite and conditional loops in programming, by using real life examples. IV. ORGANIZATION OF THE CAMP Our subjects in the summer camp were middle and high school students with little or no programming background. The students registered to the summer camp after finishing their final exams. The total number of students registered was 26 (13 in the first week and 13 in the second week) all of them were girls from different schools around the city. The two teachers were recent Information Technology graduates supervised by IT professors. A pre and post questionnaires were developed to determine students' opinion about computer majors and mobile development. The pre- questionnaire consists of 5 Likert type statements; and the post- questionnaire was 5 statements with 4 extra statements in order to check students’ feedback about the camp.

Tue

Lists

Wed

Arithmet ic operatio ns

Thu

How to install the apps on mobile phones

Variables & methods

Break

Working on the groups final projects

Boolean values & If statements

Break

Working on the groups final projects

Loops

Break

Working on the groups final projects

Projects competitio n

Break

Announce the winners

App Inventor Installatio n session

Introduce the app inventor interface & component s. Start using app

7:30 p.m – 8:00 p.m

7:00 p.m 7:30 p.m

6:00 p.m – 7:00 p.m

CAMP 'S SCHEDULE

6:00 p.m

5:30 p.m –

4:00 p.m 5:30 p.m

Day

Sun

Opening session & introduct ion about App inventor

Mon

B. App Inventor Projects In order to apply the given programming concepts in a simple and interesting way, students were asked to design and implement two main projects: (1) the camp project as individuals and (2) their own project as group of 3-4 students. 1) Camp project: Four Pictures One Word Game This project allows the students to design and build a game through step-by-step process in one week. The game consists of five screens: four screens for multiple-choice questions and one screen to show the result at the end of the game. This project allowed the students to apply four programming concepts learned during the camp. These concepts are: variables, arithmetic operations, lists, and if else statements; a screenshot of the game (Four Pictures One Word Game) is shown in Figure 7.

A. Camp Schedual The camp was divided into two sessions. The first session aimed at introducing programming concepts using programming unplugged activities; and then applying these concepts on App inventor program. In the second session, the participants were asked to develop their own projects using what they have learned in the first session. The participants were given a break between these two sessions. Table I shows the camp schedule and the programming concepts covered during the camp. TABLE I.

Applying an example about user inputs Start building the camp project Continue the implement ation the camp project

Introduc e the user inputs

with ideas for their own projects

Introduce the camp project. Break

Divide the students into groups & Ask them to come up

Figure 7. Four Pictures One Word Game.

100

2) Groups’ final projects Students were asked to design and implement an Android application using App Inventor as a final project. The application can be a game or any type of app. The final project activity was explained to the students on the first day. So they can choose an idea and discuss it with the instructors to find whether this idea can be done in one week or not. After gathering the creative and doable projects ideas from the students, the instructors listed these ideas on the board and asked each student to post her name next to the project that she wants to participate in. The maximum number of students involved in one project was four. Students started working on their projects by the fourth day and submitted the projects at the end of the fifth day. Table II lists brief description of all the developed apps and Figure 8 shows sample screenshots. TABLE II.

App Name A 1

Motion Ball

A 2

Learn French numbers

A 3

Catch Mickey App Name

A 4

Word steps

A 5

Child Nutrition

A 6

Animals sound

BRIEF DESCRIPTION OF STUDENTS' FINAL PROJECTS

Week 1 projects Description

Figure 8. Sample screenshots of students' final project.

A game where the player needs to control the ball movement in a maze according to the phone motion. An App that displays French numbers from 1 to 10. When someone clicks on a number its pronunciation plays twice. A game where Mickey is moving around the screen and the player needs to catch him. When the player catches Mickey the score increase and Mickey movements start to increase. Week 2 projects

V. EVALUATION Our main goal of this summer camp was to introduce the basic programming concepts to the students; and to teach them how to develop game apps using the App inventor. In order to know if our goals were achieved and to study the impact of the summer camp, we used the survey's results and the projects developed by students to evaluate the impact of our programming unplugged activities as well as our camp. A. Survey Results We used the results of the pre-camp and the post-camp surveys as a way to evaluate our camp. The results of the surveys are shown in the Table III and Table IV.

Description A game which displays a word and the player needs to change one letter in each step in order to reach the desired word. An app that allows the user to enter the child age and then displays the suggested nutrition suitable for the age of the child. An app that displays several animals' pictures when someone clicks on the animal a corresponding animal sound is played.

TABLE III. The Sentence

1. Computer majors are boring 2. It is hard to program mobile phone apps 3. It is hard to program mobile phone games 4. I am interested in a career in computing 5. I am interested in a career in game development

101

P RE-CAMP -SURVEY RESULT Strongl y agree

Agree

Some times

Rarely

4.16%

4.16%

54.16%

25%

8.33%

12.5%

41.66%

25%

45.83%

20.83 %

0

20.83%

Do not agree

12.5 % 12.5 % 12.5 %

37.5%

20.83%

20.83%

12.5%

8.33 %

37.5%

45.83%

8.33%

4.16%

4.16 %

TABLE IV.

The Sentence 1. Computer majors are boring 2. It is hard to program mobile phone apps 3. It is hard to program mobile phone games 4. I am interested in a career in computing 5. I am interested in a career in game development 6. I enjoyed the camp 7. I would recommend this camp to my friends 8. I learned a lot about game development 9. I learned a lot about programming games

Strongly agree

Agree

Some times

Rarely

Do not agree

0

13.64 %

50%

9.09%

27.27 %

4.54%

18.18 %

45.45 %

13.63 %

18.18 %

4.76%

9.52%

38.1 %

14.28 %

33.33 %

22.22%

22.22 %

22.22 %

11.11 %

22.22 %

27.27%

36.36 %

18.18 %

13.63 %

4.55 %

59.09%

36.36 %

4.54 %

0

0

40.90%

27.27 %

27.27 %

0

4.55 %

27.27 %

0

0

18.18 %

0

0

40.90%

40.90%

The previous results were interesting; they show how we met the goals of our camp. From sentence 1, 2 and 3 we can see that the students have positively changed their opinion about computer majors and phone development after knowing about what computer science actually means. We believe that the activities have a positive impact in simplifying the programming concepts to the students and changing their opinion about computer science. From sentence 4 and 5, it is clear that the percentage of students who were interested in a career in computing or game development has decreased after taking the workshop, this may lead us to conclude that the student had a clear idea about computing and game development after taking this workshop and had changed their opinion depending on that. Finally, the results of sentences 6, 7, 8, and 9 indicate that most of our participants enjoyed the camp and learned a lot about game development.

POST-CAMP -SURVEY

31.82 % 40.91 %

B. Programming Concepts Applied in the projects Appling the taught programming concepts in students’ projects were another way to evaluate the impact of our activities on students' understanding. Table V shows that most of the developed apps have used different programming concepts taught in this camp. This may indicate that the activities have helped the participants to quickly learn and understand programming concepts, and then apply them in their apps. TABLE V.

Apps A1 A2

From the survey results shown in Table III and IV we can discuss the following observations: 1. The percentage of students who did not agree with the sentence "Computer majors are boring" has increased from 12.5% to 27.27%. However, the percentage of students who rarely agree has decreased from 25% to 9.09%. 2. The percentage of students who did not agree with the sentence "It is hard to program mobile phone apps" has increased from 12.5% to 18.18%. On the other hand, the percentage of students who rarely agree has decreased from 25% to 13.63%. 3. The percentage of students who did not agree with the sentence "It is hard to program phone games" has increased from 12.5% to 33.33%; and the percentage of students who rarely agree has decreased from 20.38% to 13.28%. 4. The percentage of students who strongly agreed with the sentence "I am interested in a career in computing" has decrease from 37.5% to 22.22%. 5. The percentage of students who strongly agreed with the sentence "I am interested in a career in game development" has decrease from 37.5% to 27.27%.

A3

A4 A5 A6

CONCEPTS APPLIED IN THE APPS

Programming Concepts Applied • • •

Variables Arithmetic operations Boolean values



Boolean values

• • • • • • • • • •

Variables Arithmetic operations Boolean values If else statements Methods If else statements Lists Boolean values If else statements Boolean values



Boolean values

We can also notice from Table V that some of the programming concepts that were taught in this camp were applied more than once like: variables, and If else statements. The other activities were applied only once like: methods and lists. This indicates that some of the projects need to apply many concepts while others used only a few. However, the loop concept has not been applied in any project, which may indicate that the students did not need to use it to build their apps.

102

REFERENCES

VI. CONCLUSION From the surveys' result and applying the programming concepts in the students' projects, we can say that the activities have succeeded in simplifying key programming concepts to the students; and shaped their understanding of the domain of CS and programming. The students have successfully completed the activities and came up with their own examples and shared them with other groups. Generally, the results of the post-camp-survey indicated that the participants enjoyed the programming activities as well as the camp. One limitation of the summer camp, as we heard from the students, was the short time of the camp. The participants would like to have the camp spread across two-weeks to give them time to acquire the new knowledge and develop better projects. Even though the students own projects were introduced in the first day, the students could not start their own projects until the fourth day; after they understood all the activities. Hopefully next year, we will try to expand the length of the summer camp to give the students more time to work on their own projects

[1]

[2] [3] [4]

[5] [6] [7]

103

T.Bell and H.Newton. "USING COMPUTER SCIENCE UNPLUGGED AS A TEACHING TOOL." Accessed Online [5th Oct. 2014] http://nzacditt.org.nz/system/files/Bell,%20Newton%20%202013%20%20Using%20Computer%20Science%20Unplugged%20as%20a%20 teaching%20tool_0.pdf A.Begel, D.Garcia, and S.Wolfman. "Kinesthetic learning in the classroom." ACM SIGCSE Bulletin. vol. 36. no. 1. pp.183-184, 2004. R.Taub, M.Ben-Ari, and M.Armoni, "The effect of CS unplugged on middle-school students' views of CS." ACM SIGCSE Bulletin, vol.41, no. 3, pp. 99-103, 2009. Y.Feaster, L.Segars, S.Wahba, and J.Hallstrom, "Teaching CS unplugged in the high school (with limited success)." In Proceedings of the 16th annual joint conference on Innovation and technology in computer science education, pp. 248-252, 2011. T.Nishida, S.Kanemune, Y.Idosaka, M.Namiki, T.Bell, and Y.Kuno. "A CS unplugged design pattern." In ACM SIGCSE Bulletin, vol. 41, no. 1, pp. 231-235, 2009. Ericson, Barbara, and Tom McKlin. "Effective and sustainable computing summer camps." Proceedings of the 43rd ACM technical symposium on Computer Science Education. ACM, 2012. Urness, Timothy, and Eric D. Manley. "Generating interest in computer science through middle-school android summer camps." Journal of Computing Sciences in Colleges 28.5 (2013): 211-217.