Paper Title (use style: paper title)

2 downloads 248394 Views 804KB Size Report
iPads have been used in classes to better engage students in the .... helped them in many ways during programming classes. Adobe reader is a handy tool that ...
Using the iPad as a Pedagogical Tool to Enhance the Learning Experience for Novice Programing Students Hoda Amer

Walid Ibrahim

College of Engineering United Arab Emirates University Al Ain, UAE [email protected]

College of Information Technology United Arab Emirates University Al Ain, UAE [email protected]

Abstract—Teaching programming skills to novice students is very challenging. They usually have to deal with many difficulties including learning the syntax of the programming language along with the logic of devising a solution to an existing problem. They also need to develop many skills to enable them building an abstract mental model of a certain problem, device a solution for it, then implement and test the solution in a correct way. Moreover, they need to understand how programs are compiled and executed. This paper presents our experience of introducing the iPad as a pedagogical tool in our introductory C programming course. The aim was to help students overcome some of their difficulties, and to improve their learning experience. The results of two surveys as well as the official student evaluation of teaching scores show that it was a positive experience in general. The iPad was integrated into the classroom with minimal effort, and provided a friendly environment that facilitated group work, creativity, and independent learning. Keywords—Teaching; programming; iPad; novice students; pedagogical tools, mobile learning, SAMR model.

I.

INTRODUCTION

With the vast improvement in information and computer technologies the world around us has changed. New high-tech products and gadgets are introduced every day changing our day to day life. Consequently, programming skills are becoming more and more important. Software engineering was the best job for 2011, and 2012, while it came in the third place for 2013 [1]. Software developers and engineers jobs took the second spot on the in-demand list for 2012 [2]. However, learning to program can be very challenging especially for students in introductory programming courses. McGettrick et al. [3] considered teaching programming skills to novice students as one of seven grand challenges in computing education in addition to the perception of computing, innovation, and competencies to mention few. Novice programmers face many challenges learning the syntax of the new programming language along with the logic of devising a solution to an existing problem. They need to develop many skills to enable them to build a mental model of a certain problem, device a solution for it, then implement and test the solution in a correct way. They also need to understand how programs are compiled and executed. The distinction between expert and novice programmers was studied in [4]. The authors classified the novice programmers further into

effective and ineffective. Effective students can learn to program without excessive effort or assistance. The authors argued that it may be more productive to explicitly focus on trying to create and foster effective novices and let them learn by themselves. Cooper et al. [5] believes that the change by most computer science departments from imperative languages to objectoriented languages has added more to the above difficulties. In addition to mastering all the imperative language concepts, object oriented languages add the concepts of class, object, information hiding, inheritance, and polymorphism. They also believes that this new change gave students with prior programming experience an advantage and increased their chances to complete a computer science degree program. The novice programming challenges seem to be universal. A study on 216 students at four universities in four countries showed that the problem is independent of country and educational system [6]. The study investigated if students in introductory computing courses know how to program at the expected skill level. The results of the study showed that the students performed much worse than expected. The average score was 22.89 out of 110 points on general evaluation criteria. The study also showed that the most difficult part for students seemed to be abstracting the problem to be solved from the exercise description. This finding was also confirmed by another study on 559 students from 6 different universities in Finland [7]. The study results showed that abstract concepts like pointers and memory handling are difficult to learn. The study showed also that both students and teachers agreed that the practical learning situations and learning by doing were the most useful. This highlights the importance of students’ participation and engagement in the classroom and the group work sessions. Another study on the various concepts and topics of objectoriented programming [8] also showed that a clear understanding of pointers and memory-related concepts prove to be the most difficult part. The study highlighted the student’s inability to create a clear mental model of the program execution. The study argued that a clearer approach to teaching these topics would be beneficial to students. A similar conclusion was drawn by Mow [9] who pointed out that the students’ lack of problem solving skills is mainly due to the deficiencies in the instructional approaches. He argued that effective instructional strategies and optimal support

mechanisms should be developed to provide students of computer programming with the optimal learning environment that they need. Interested readers may refer to [10] for a comprehensive survey on the teaching of introductory programming courses. To overcome the above challenges, Kelleher et al. [11] presented taxonomy of languages and environments designed to make programming more accessible to novice programmers of all ages. They mentioned that the majority of the support systems have focused on the mechanics of programming, while there are a variety of sociological issues that can inhibit students from learning to program. They believe that creating environments that address these sociological factors is needed. These environments could lower the barriers to programming by stimulating students and motivating them to program. They could also help attract diverse groups of students to programming classes. Mobile learning refers to the adaptation of the latest generation of mobile phones and tablet computers in the learning process. Such mobile devices have a great potential to create the proper teaching environment to tackle some of the aforementioned programming challenges. An intense and continuous study on the use of iPad in a range of teaching activities over a period of 15 months was reported in [12]. The iPad was used as a means to engage, inspire and motivate students through high-level presentation and communication tools. The study showed that while learning outcomes were not significantly improved, student convenience and flexibility were enhanced, along with aspects of environmental sustainability. Two years ago, iPads have been introduced at our institute as a pedagogical tool in the first year general education classes. iPads have been used in classes to better engage students in the learning process. Many iPad applications have been provided by the university for both the students and the educators. The aim is to enhance the ways that learning and teaching are conducted, greatly favoring collaborative approaches to learning, and flexible and adaptive approaches to teaching. This paper presents our experience in utilizing the iPad as a pedagogical tool in our introductory C programming classes. Utilizing the iPad in the classroom allowed us to change both the pedagogical design of the course and the teaching environment. The reset of the paper is organized as follows: the programming difficulties in our classes are explained in Section II followed by the SAMR model in Section III. The introduction of the iPad in our introductory C programming course is detailed in Section IV along with a discussion on how our approach fits into the SAMR model. The effects of introducing the iPad on the learning experience of the novice students are detailed in Section V followed by concluding remarks in Section IV. II.

PROGRAMMING DIFFICULTIES IN OUR CLASSES

Learning programming skills for the first time could be challenging for some students. We have identified three main areas of difficulties in our introductory C programming classes offered for engineering students at their freshman year. We believe that our students usually struggle to grasp abstract

ideas, to learn programming syntax, and to use nowadays complicated development environments. The first area where our students struggle is the ability to grasp some abstract concepts. For novice programming students, the meaning of a program is usually obscure. They have difficulty understanding what is an algorithm and how to device an algorithm in order to solve a specific problem. When introducing the concept of a function for the first time, for example, students usually have difficulties understanding the meaning of it and why it may be needed in a program. The same struggle is also identified when the students deal with the concept of repetition using for, while and do-while loops as well as in selection structures using if-statements. The second problem they face is learning the syntax of the programming language. As it is their first experience learning a programming language, novice programmers find it difficult to understand and implement the syntax of a programming language. In our C programming classes, students often confuse the usage of a comma and a semi-colon. They have difficulty following the syntax of forward declaration of functions. They also find many difficulties in writing input/output statement using the complicated syntax of the “scanf” and “printf” standard library functions. Facing many challenges when learning the new syntax of the C programming language distracts novice students from focusing on understanding the problem they need to solve and devising a solution for it. The third area where students find difficulties is using unfriendly development environments. The available tools to write and compile C language programs are very unfriendly and complicated. A lot of knowledge about the tools is required before using them effectively. Not only the tools and technology used is affecting the learning environment, but also the way a programming class is conducted. The classical model of programming classes where classes are divided into a lecture time and a lab time seems to be less effective when teaching a new programming language. Merely listening to a 90 minute lecture will not build the required skills for writing code for the first time. III.

THE SAMR MODEL

One way to overcome some of the aforementioned problems and enhance the learning experience of novice students is to take advantage of the new vast improvements in computer and information technologies. A suitable model to consider when integrating technologies into classrooms is the SAMR model (Substitute, Augmentation, Modification, Redefinition) [13]. The SAMR model is used to gauge the extent to which technologies are integrated in a classroom. This degree of integration could spread from the use of technologies to enhance the current material to the development and creation of new tasks and practices (see Fig. 1). Substitution occurs when technologies are used to replace existing classroom practices. For example, students can use the iPad to take notes during the class instead of the traditional pen and paper. Moving up to the augmentation level requires that the new practice should have some sort of functional improvement over the replaced one. For example, the instructor

Fig. 1. The SAMR model.

can use web-based applications to administer online quizzes instead of the traditional paper based ones. Using online quizzes with automatic marking has the benefit of providing students with instant performance feedback. It is important to mention that at the augmentation level the same task still exist (taking a quiz), but it has been improved over the traditional one. At the modification level, new tasks are introduced. Technologies are used to re-design part of the task and to transform students learning. This could involve playing relevant online video from YouTube as an example. It could also include student collaborating and working in a group on a single document. Finally, redefinition is introducing a new task that was impossible without using information and computer technologies. This level requires the involvement of students in the creation of new tasks. For example, asking students to create a movie that explains a topic covered in the classroom. IV.

USING IPAD IN INTRODUCTORY PROGRAMMING CLASSES

In this section we try to answer the question: what can we do to enhance the learning experience of novice programmingstudents? In general, improving the learning experience can be done by improving the content (what we teach), the pedagogical design (how we teach), and/or the teaching environment [14]. Our answer to the above question is to introduce the iPad as a pedagogical tool in programming classes. While the content is still the same, we used the iPad to help us improve the pedagogical design and the teaching environment in our classes. The wide variety of applications available on the iPad provides potential solutions to many of the previously discussed challenges facing novice students. Some iPad applications help students visualize many of the abstract ideas and mental models they struggle to grasp. Others provide handy tools to learn the syntax of the new language by writing small pieces of code and immediately seeing the results. Most of the iPad tools are very intuitive to use and hardly need any time or effort to learn. They provide a convenient environment for students, especially when it comes to group work.

To tackle the abstraction difficulty, we introduced some logic games in our programming classes. These logic games, such as Robo-Logic Lite, Cargo-Bot and Hopscotch, help students visualize many of the abstract concepts they struggle to understand. For example, in the Robo-Logic Lite game, a robot is manipulated around many obstacles with the objective of lighting a light bulb. The students are asked to play the game during their first programming class. They write the steps needed to move the robot and to avoid the obstacles on its path. They also need to group some related steps into functions to be used by the main program repeatedly. With minimal effort, the students get to understand what is an algorithm and how to device one to solve a specific problem. They also get to know the concept of a function and why one is needed in a program. Another example is Cargo-Bot, where an algorithm is needed to move some cargo blocks from one platform to another. Repetition and conditional structures have to be used in order to move the cargo blocks successfully. After playing these games, the concepts of loops and if-statements become easy to understand. Hopscotch is another game, where characters can be created and manipulated in a certain algorithm. These characters either act according to their specific scenario or in reaction to a certain event. They may interact with other characters, or act as a result of a specific user gesture. Hopscotch is an interesting game that enables students to build their own simple games. All the above logic games where given to students either in class or as homework to enhance their understanding of basic programming concepts. Our programming classes were redesigned to include small exercises during each class. Each of these exercises focuses on a certain concept and introduces the proper syntax for the basic language constructs. Code-to-Go is an online compiler that was used in our classes to try and run these small exercises during class. It is a handy tool that does not need any previous knowledge about installing different C compilers and linkers. The user of Code-to-Go can write small C programs and run it without the troubles of setting up a development environment. Other online compilers where also used that are found on codepad.org and ideone.com. These online compilers make compiling and running small pieces of code easy and fast. Students were encouraged to try these in-class exercises to get to know the proper syntax using Code-to-Go or other online compilers. During the exercise time the class instructor was available to pinpoint their mistakes and highlight the most common errors students usually encounter. Before writing any C code, students were encouraged to draw a flowchart for the program they are about to write. Flowcharts help in organizing the students’ thoughts before actually falling into the details of writing the syntax. Pure-Flow is another iPad application that was used by our students to draw flowcharts for programs before implementing the corresponding codes. Working in a friendly environment was made easy when using the iPad. Students had so many iPad applications that helped them in many ways during programming classes. Adobe reader is a handy tool that was used by students to take notes and annotate already distributed PDF files with lecture notes. Edmodo and Blackboard are very helpful in giving online quizzes and assignments. Nearpod is another interesting tool that we used to poll students’ opinion about a certain problem.

TABLE I. THE RESUTLS IPAD APPLICATIONS SURVEY AFTER ELIMANTING THE “NEVER USED IT” RESPONSES.

Fig. 2. The collected resutls for the iPad application survey.

It is used to post a question to all students. Each student is capable of providing a response or opinion using his/her iPad. The application then projects statistics about the students’ votes and responses to the whole class. Nearpod was used successfully, especially in revision classes, to pinpoint some of the common issues and mistakes. Group work is facilitated using iPad applications. Students were asked to work in groups of two to three students on inclass exercises. They were asked to submit one answer after discussing it among themselves. Since iPads are easy to carry around and to share data, working in groups was made easy in class. Applications such as Dropbox and Google drive were used to facilitate sharing files and folders among group members, as well as between the students and their instructor, especially if the shared file sizes are too big to send by email or upload to Blackboard. Motivating students is done with unconventional methods such as making movies. Students were asked to make small tutorial movies on programming or on the best approach to solve a specific problem as one of their homework assignments. The iPad has so many applications that can help make this kind of short movies possible such as iMovie, Explain-Everything, and Educreations. The same tools were used by the instructor to provide students with short lessons and tutorials on specific concepts and problems in the form of movies. Students were encouraged to watch the lessons movies before coming to class. This also facilitated learning independently outside the classroom. A. Our Solution and the SAMR Model The SAMR model is a measure on how effective technology is used in education. We believe that our solution fits into the different levels of the SAMR model as follows: 1) Substitution Students annotating PDF files instead of taking notes using pen and paper with Adobe-Reader fits in the substitution level. Instead of using traditional ways in taking notes during the lecture, using the iPad makes is easy to annotate already distributed lecture notes PDF files.

Like it

Neutral

Hate it

Code to Go

65.5%

30.9%

3.6%

Pure flow

78.0%

22.0%

0.0%

Adobe Reader

61.1%

38.9%

0.0%

Blackboard

85.2%

14.8%

0.0%

Edmodo

44.4%

51.1%

4.4%

iBook

83.3%

16.7%

0.0%

Dropbox

56.3%

39.6%

4.2%

iMovie

82.1%

15.4%

2.6%

iTunes U

60.0%

33.3%

6.7%

Robo logic

53.3%

44.4%

2.2%

Cargo bot

25.5%

59.6%

14.9%

Hopscotch

25.0%

54.5%

20.5%

2) Augmentation Students taking online quizzes and seeing feedback immediately using Blackboard or Edmodo can be classified in the augmentation level. Writing code with Code-to-Go and designing flowcharts with Pure-Flow then submitting results electronically fits into the augmentation level as well. This is where technology adds some functional improvement to the traditional methods of taking quizzes and submitting homework. 3) Modification The modification level may include students taking revision classes as a group discussion, sharing work in groups and playing logic games. This is where technology allows for significant task redesign. Working in groups is facilitated by applications such as Nearpod and Dropbox. Logic games take a new turn in introducing abstract concepts and devising algorithms that are needed as a basic ability for writing programs. 4) Redefinition The redefinition level is where the creativity of students is unleashed. It is where they are given the opportunity to share their creations with the world. When students become the teachers and start making movies to share their experience in learning programming with all students around the world, we can see how much they really learned. V.

SURVEYS DESIGN AND RESULTS

Students who took the “Introduction to Programming” course during Spring 2013 and Fall 2013 with the iPad as a pedagogical tool were asked to fill two online surveys. These surveys were designed to measure the students’ satisfaction level when using the iPad in class. The first survey was about how much they liked or hated the applications suggested in class, while the second was about the use of the iPad in general. The second survey had questions about the iPad’s usability, convenience, learning effort, and ease of integration between its applications. It also asked whether students find themselves engaged during classes, stimulated, and encouraged

TABLE II.

THE COLLECTED RSUILTS OF THE IPAD EXPERINCE SUREVY . Strongly agree

Agree

Neutral

Disagree

Strongly disagree

The iPad is easy to use

54.39%

I feel comfortable using the iPad in my programming class

56.14%

38.60%

7.02%

0.00%

0.00%

31.58%

10.53%

1.75%

It takes a lot of time and effort to learn how to use an iPad

0.00%

7.14%

14.29%

16.07%

46.43%

16.07%

Using the iPad in programming classes is fun and interesting

43.86%

35.09%

19.30%

1.75%

0.00%

I can move data easily from one application to another on the iPad

38.60%

33.33%

22.81%

5.26%

0.00%

I enjoy the video and the graphics we watch in class

45.61%

36.84%

14.04%

3.51%

0.00%

I participate better in class because I am using the iPad

22.81%

35.09%

29.82%

12.28%

0.00%

I am more distracted in class because I am using the iPad

5.26%

15.79%

31.58%

31.58%

15.79%

I understand the material better in class because I am using the iPad

19.64%

46.43%

30.36%

3.57%

0.00%

I do more activities in class because I am using the iPad

26.67%

33.33%

35.56%

2.22%

2.22%

I prefer taking notes using iPad

22.81%

15.79%

29.82%

21.05%

10.53%

I prefer taking quizzes on the iPad rather than taking them on paper

26.67%

11.11%

28.89%

20.00%

13.33%

I prefer submitting homework using the iPad rather than submitting it on paper

28.89%

26.67%

31.11%

8.89%

4.44%

I can learn on my own outside the class with the help of the iPad

39.29%

37.50%

17.86%

1.79%

3.57%

iPads make working in groups much easier

36.84%

38.60%

22.81%

1.75%

0.00%

Using the iPad stimulates my creativity

28.07%

40.35%

29.82%

1.75%

0.00%

to be more creative. They were also asked about how their comprehension level, their ability to learn independently, and their ability to work in groups were affected after using the iPad. Fig. 2 shows the results obtained from 56 students who took the first survey. Table I shows the percentages of the “like it”, the “neutral”, and the “hate it” students after eliminating the number of “never used it” students. The applications used in the survey can be categorized into three groups: 1. 2. 3.

Applications used to write C code and flow charts, such as (Code-to-Go, Pure-Flow) Applications used to enhance the learning environment (Blackboard, Edmodo, Adobe Reader, Nearpod, iBook, Dropbox, iMovie) Applications used as logic games for teaching programming (Robo-logic, Cargo-bot, Hopscotch)

For the first group of applications, Table I shows that 65.5% of students liked Code-to-Go, 30.9% were neutral, and only 3.6% hated the application. For Pure-Flow, 78% liked it, 22% were neutral, and 0% hated the application. This shows that the iPad applications that we used in our classes to implement and design C code are popular among students. For the second group, the survey results show that no one hated iBook, Adobe-Reader, or Blackboard. Hardly anyone hated Edmodo, Dropbox, or iMovie. The group “hate” percentage fell under 7%. These results show clearly that the applications that enhance the learning environment are also popular. However, moving to the third group of applications, we find that the “hate” percentage jumped to 14.9% for the CargoBot and to 20.5% in the Hopscotch logic games. With only 25% “like” percentage, the Hopscotch was the least praised

among all the applications we used in the classroom. This is an indication that the logic games that are addressing logic and abstraction problems were the most difficult ones to use and understand. The applications have a very easy interface and hardly any effort to learn. However, the users of these applications need a good ability for devising logical solutions and algorithms as well as the ability for abstracting some concepts such as functions, selection, and repetitions. The second survey focused on the iPad experience in general. The survey’s questions and collected results are presented in Table II. The survey is divided into four main groups of questions. The first group focuses on the ease of use of the iPad in the classroom. Table II shows that most students find the iPad easy to use, that they feel comfortable using the iPad in programming classes, and that it does not take any time or effort to learn how to use the iPad. Most students agree that using the iPad is fun and interesting, and that they enjoy the videos and the graphics they watch in class. When it comes to engagement, the collected results for the second group of questions show that although somewhat distracting, students are more engaged in class when using the iPad. About 58% agree or strongly agree that they participate better in class because they are using the iPad and 66% agree or strongly agree that they understand the material better in class, while 60% feel they do more activities in class because they are using the iPad. However, 20% feel more distracted in class because of the use of the iPad. Nonetheless, looking closer at this group of students who feel more distracted in class, more than 90% of them still believe that using the iPad is fun and that it stimulates their creativity. This feeling of distraction could be simply because they still struggle with how to use the iPad, as more than 70% of them feel that it takes lots of time and effort

VI. TABLE III. OFFCIAL STUDENT EVALAUTION OF TEACHING FOR TWO CONSECTIVE SEMSETERS (BEFORE AND AFTER INTRODUCING THE IPAD). Traditional

iPad Improvement

Course materials were presented in an organized manner.

4.25

4.465

5.06%

Students were invited to share their ideas and knowledge.

3.975

4.34

9.18%

The general climate in this course was good for learning.

4.25

4.535

6.71%

In general, the level of difficulty in this course was appropriate.

3.87

4.07

5.17%

The instructor stimulated my interest in the course.

4.465

4.535

1.57%

The instructor conducted class sessions in an organized manner.

4.25

4.655

9.53%

The instructor used teaching technology (e.g., Blackboard, audiovisual presentations) in an effective and appropriate way.

4.53

4.87

7.51%

Overall, the instructor’s explanations were clear and understandable.

4.395

4.59

4.44%

to learn how to use it, and only 66% of them can move files easily between applications. The third group of questions polled the students’ opinion regarding taking notes and taking quizzes on paper or online. The collected results show that there is no strong preference for one way to the other. 38.6% prefer taking notes using the iPad while 31.58% prefer the traditional notes on paper. Also, 37.78% like taking quizzes online, while 33.33% like the traditional paper way. This is understandable in light of their fear of missing deadlines of timed quizzes that are strict when using the technology. When it comes to homework, where the time limit is less strict, 55.56% prefer submitting homework online to submitting it on paper, while only 13% prefer the paper method. The last group of questions focused on the effect of the iPad on the students’ creativity and group work. The survey results show that independent learning and working in groups is clearly enhanced by using the iPad as more than 75% of students agree that the iPad has helped them to learn independently and to work in groups. More importantly, 68.42% agreed that the iPad stimulated their creativity. Table III shows the results for 8 relevant questions extracted from the official course student evaluation of teaching before and after introducing the iPad. The score of the questions ranges from 1 for strongly disagree to 5 for strongly agree. It shows a significant improvement in the student engagements as the students felt that they were more invited to share their ideas and knowledge. The students also believed that the class is more organized, the climate in the course was good for learning, and the instructor explanations were clear and understandable. Moreover, the students felt that the instructor used the learning technology more effectively. Finally, using iPad improved the students’ comprehension as they felt that the level of difficulty in the course is more appropriate.

CONCLUSIONS

Learning how to program is challenging. Novice programming students face a variety of difficulties that they need to overcome. These difficulties include grasping new abstract concepts, learning the new syntax of the programming language, and working in non-friendly environments. In this paper, the iPad was introduced as a pedagogical tool to solve these challenges in introductory C programming classes. Three surveys were conducted to measure the success of this solution. The results of the surveys show clearly that it was a positive experience. The iPad was integrated into the classroom with minimal effort. The iPad provided a friendly environment that facilitated group work, creativity, and independent learning. It also helped in solving some of the difficulties faced with learning the syntax of the C language. Although logic games were used to help overcome the difficulties in grasping some new abstract concepts, more work need to be done in this area, as students still find these games hard to understand. When measuring the students experience regarding the programming course in general, it was found that iPad has enhanced their overall learning experience. REFERENCES [1] [2]

[3] [4] [5] [6] [7] [8] [9] [10]

[11] [12] [13] [14]

K. Kensing, “The best jobs of 2013,” available on line at: http://www.careercast.com/jobs-rated/best-jobs-2013 L. Whitney, “Programmers in Top Demand for 2012,” Info Tech, Jan. 2012, available on line at: http://it.tmcnet.com/topics/it/articles/2012/01/11/253931-programmerstop-demand-2012.htm A. McGettrick, R. Boyle, R. Ibbett, and J Lioyd, “Grand challenges in computing education,” British Computer Society, Newcastle, UK, 2004. A. Robins, J. Rountree, and N. Rountree, “Learning and teaching programming: A review and discussion, “Comp. Sci Edu,vol. 12, no. 2, 2003, pp. 137–172. S. Cooper, W. Dann, and R. Pausch, “Using animated 3d graphics to prepare novices for CS1,”. Comp. Sci. Edu., vol. 13, 2003, pp. 3–30. M. McCracken, et al. “A multi-national, multi-institutional study of assessment of programming skills of first-year CS students,” ACM SIGCSE Bulletin, vol. 33, Dec. 2001, pp. 125–180. E. Lahtinen, K. Ala-Mutka, and H-M Järvinen, “A Study of the difficulties of novice programmers, ACM SIGCSE Bulletin, vol. 37, Sep. 2007, pp. 14–18. I. Milne, and G. Rowe, “Difficulties in learning and teaching programming—views of students and tutors,” Education and Information Technologies, vol. 7, Mar. 2002, pp. 55–66. I.T.C. Mow, “Issues and difficulties in teaching novice computer programming,” Innovative Techniques in Instruction Technology, Elearning, E-assessment, and Education, 2008, pp. 199–204. A. Pears, S. Seidman, L. Malmi, L. Mannila, E. Adams, J. Bennedsen, M. Devlin, and J. Paterson, “A survey of literature on the teaching of introductory programming,” ACM SIGCSE Bulletin, vol. 39, Dec. 2007, pp. 204–223. C. Kelleher, and R. Pausch, “Lowering the Barriers to Programming: a survey of programming environments and languages for novice programmers,” ACM Comp. Surveys, vol. 37, Jun. 2005, pp. 83–137. M. Manuguerra, and P. Petocz, “Promoting student engagement by integrating new technology into tertiary education: the role of the iPad,” Asian social Science, vol. 7, Nov. 2011, pp. 61-65. R. R. Puentedura, “SAMR: A breif introduction,” avaialble on line: www.hippasus.com/rrpweblog/archives/2013/10/02/SAMR_ABriefIntro duction.pdf J. Bennedsen, and M. Caspersen, “Optimists have more fun, but do they learn better? On the influence of emotional and social factors on learning introductory computer science,” Comp. Sci. Edu., vol. 18, 2008, pp. 1– 16.