[PDF] [PDF] Strengths and weaknesses of a visual programming language in a

15 jui 2017 · Also, the visual programming language did not help the students learn how to plan and troubleshoot their the object-oriented programming paradigm Object- There are many limitations [in Scratch], but it is a good thing



Previous PDF Next PDF





[PDF] Advantages and Disadvantages of Object-Oriented Programming

Some other well-known object-oriented programming languages include Objective C, Perl, Python, Javascript, Simula, Modula, Ada, Smalltalk, and the Common 



[PDF] CHAPTER-2 OBJECT ORIENTED PROGRAMMING - TechPrevue

Ans Following are the general OOP concepts: 1 What are the shortcomings of procedural and modular programming approaches? In, Object-Oriented Programming (OOP), the program is organized Ans OOP provides the following advantages to overcome the shortcomings of traditional programming approaches:



[PDF] Strengths and weaknesses of a visual programming language in a

15 jui 2017 · Also, the visual programming language did not help the students learn how to plan and troubleshoot their the object-oriented programming paradigm Object- There are many limitations [in Scratch], but it is a good thing



[PDF] OCR A Level Computer Science Delivery Guide: 124 Types of

e) Object-oriented languages (see appendix 5d for pseudocode style) with an understanding of classes, objects, methods There are many different types of programming language A big advantage of OOP over traditional programming is:



The Advantages and Disadvantages of Computer Assisted

Keywords: Computer assisted language learning and teaching; foreign language the educational tasks, all procedures and situations, as well as all auxiliary means the advantages and disadvantages of using computers so that they can make the most of efficiency of modern contingency, and goal-oriented activity"



[PDF] Why C++ isnt just an object-oriented programming language

may or may not be object oriented and discuss their advantages and disadvantages 2 Defining ''Object-oriented'' To be useful and intellectually honest, 

[PDF] advantages and disadvantages of round robin scheduling

[PDF] advantages and disadvantages of techniques used for wastewater treatment

[PDF] advantages and disadvantages of water treatment

[PDF] advantages of 3 tier architecture in .net

[PDF] advantages of 3 tier architecture in asp.net

[PDF] advantages of 3 tier architecture in c#.net

[PDF] advantages of 3 tier architecture in dbms

[PDF] advantages of 3 tier architecture in java

[PDF] advantages of 3 tier network architecture

[PDF] advantages of administrative law

[PDF] advantages of asexual reproduction in plants

[PDF] advantages of borrowing in foreign currency

[PDF] advantages of community dialogue

[PDF] advantages of conflict theory in sociology of education

[PDF] advantages of distance education

IN DEGREE PROJECT TECHNOLOGY AND LEARNING,

SECOND CYCLE, 30 CREDITS

, STOCKHOLMSWEDEN2017Strengths and weaknesses of a visual programming language in a learning context with children

MARIA HJORTH

KTH ROYAL INSTITUTE OF TECHNOLOGY

SCHOOL OF COMPUTER SCIENCE AND COMMUNICATION

Strengths and weaknesses of a visual programming language in a learning context with children

ABSTRACT

In a world where computers are a part of most people's everyday life, learning how to instruct one to perform time consuming

and/or complex tasks is beneficial. Visual programming languages aim to make the experience for people programming

computers the best it can be by bypassing some of the issues of syntax and translation from mental plan to executable

program. However, text-based languages come out on top when it comes to the programming languages most used. This

paper aims at finding the strengths and weaknesses of teaching a visual programming language to novices in order to

contribute to the otherwise lacking empirical evidence within the field of teaching computer programming. The methods used

in order to collect data and answer the research question took inspiration from methods used in ethnomethodology. These

methods were: observation through participation within a group of programming novices and semi-structured interviews with

programming tutors. What can be seen from the study is that visual programming languages offer a quick introduction to the

world of programming that in many ways plays down the difficulties within the area by making programming playful and

creative. On the other hand, the boundaries of the language are quickly reached and require the students to switch to a text-

based language. Also, the visual programming language did not help the students learn how to plan and troubleshoot their

programs. When progressing to a text-based programming language where planning and troubleshooting are required steps of

the process this may become troublesome. Styrkor och svagheter hos ett visuellt programmeringsspråk

SAMMANFATTNING

TABLE OF CONTENTS

1. INTRODUCTION .......................................................................................................................................................... 1

1.1. Research question ................................................................................................................................................... 2

1.2. Purpose ................................................................................................................................................................... 2

1.3. Scratch .................................................................................................................................................................... 2

2. THEORY & LITERATURE STUDY ............................................................................................................................ 2

2.1. Definition of a Visual programming language ........................................................................................................ 2

2.2. Education and programming ................................................................................................................................... 2

2.2.1. Skill acquisition ............................................................................................................................................. 3

2.2.2. Learning styles .............................................................................................................................................. 3

2.2.3. Learning programming .................................................................................................................................. 3

2.2.4. Gender and emotions ..................................................................................................................................... 4

2.2.5. Teaching styles .............................................................................................................................................. 4

2.2.6. Teaching programming ................................................................................................................................. 4

3. METHODS..................................................................................................................................................................... 5

3.1. Inspiration from ethnomethodology ........................................................................................................................ 5

3.2. Participant observations .......................................................................................................................................... 5

3.3. Interviews ............................................................................................................................................................... 5

3.4. Data analysis method .............................................................................................................................................. 5

3.5. Method discussion .................................................................................................................................................. 5

4. RESULTS....................................................................................................................................................................... 6

4.1. Research Participants .............................................................................................................................................. 6

4.2. First contact............................................................................................................................................................. 6

4.3. Design first, function later ...................................................................................................................................... 6

4.4. Boundaries of the language ..................................................................................................................................... 7

4.5. Common problems & Questions ............................................................................................................................. 7

4.5.1. Interface......................................................................................................................................................... 7

4.5.2. Troubleshooting ............................................................................................................................................ 7

4.5.3. Need of other types of knowledge ................................................................................................................. 8

4.6. Learning curve ........................................................................................................................................................ 8

4.7. Scratch accepting redundancy & the Trial/Error Method ........................................................................................ 8

5. DISCUSSION ................................................................................................................................................................ 9

5.1. From novice to advanced beginner ......................................................................................................................... 9

5.2. The importance of feedback when problem-solving ............................................................................................... 9

5.3. Positive reinforcement & learning styles .............................................................................................................. 10

5.4. Gender differences ................................................................................................................................................ 10

5.5. From a tutor perspective ....................................................................................................................................... 10

5.6. Future research ...................................................................................................................................................... 11

6. CONCLUSIONS .......................................................................................................................................................... 11

7. REFERENCES ............................................................................................................................................................. 11

1 Visual programming languages in a learning context with children

Name: Maria Hjorth

E-post: mariahjo@kth.se

KTH Royal Institute of Technology

School of Computer Science and

Communication

Supervisor at CSC: Rebekah Cupitt

Commisioned by: NOX Academy AB

Submitted: 15th June 2017

ABSTRACT

In a world where computers are a part of most people's everyday life, learning how to instruct one to perform time consuming and/or complex tasks is beneficial. Visual programming languages aim to make the experience for people programming computers the best it can be by bypassing some of the issues of syntax and translation from mental plan to executable program. However, text-based languages come out on top when it comes to the programming languages most used. This paper aims at finding the strengths and weaknesses of teaching a visual programming language to novices in order to contribute to the otherwise lacking empirical evidence within the field of teaching computer programming. The methods used in order to collect data and answer the research question took inspiration from methods used in ethnomethodology. These methods were: observation through participation within a group of programming novices and semi-structured interviews with programming tutors. What can be seen from the study is that visual programming languages offer a quick introduction to the world of programming that in many ways plays down the difficulties within the area by making programming playful and creative. On the other hand, the boundaries of the language are quickly reached and require the students to switch to a text-based language. Also, the visual programming language did not help the students learn how to plan and troubleshoot their programs. When progressing to a text-based programming language where planning and troubleshooting are required steps of the process this may become troublesome.

Keywords

Learning, Teaching, Visual programming languages, Scratch

1. INTRODUCTION

Humans have since ancient times utilized technology in order to expand cognition and gain knowledge [1]. Before spoken languages arose, humans expressed themselves using symbols and drawings in caves, a form of visual communication and cognitive technology expanding knowledge [1] [2]. New forms of communication are something that humans continuously engage in and

communication with computers is something that has become increasingly important in our society. Computers

have taken a natural place ito aid us as a problem-solving tool. Future social sustainability may rely on developing a society where more people are able to communicate with computers using programming languages and that these become as natural to humans as the written word [1]. A constant striving for better communication with computers over the years has led to new computer programming languages and in 2016 the languages C, Java and Python were the most used according to Cass [3]. These formal, constructed languages, in contrast to natural, spoken, languages, such as English, have been consciously created to solve different problems and to instruct computers to calculate and perform tasks for us [2]. When it comes to programming languages, learning and teaching them is notoriously hard and may be caused by the differences between natural and formal languages. Formal languages and natural languages both have features such as syntax and semantics but formal languages have none of the ambiguity, redundancy or allegorical expressions that permeate natural languages. Growing up speaking a natural language may therefore not help you when learning a formal language since there is a hard adjustment needed. [4] Programming in general can be described as the process of using a formal language to transform a mental plan into one compatible with a computer. The closer the programming language is to the mental plan of the programmer the easier the process of creating a program will be [5]. The goal for researchers within the area of programming and programming languages has therefore been to make this transformation from mental plan to program as easy as possible [2]. An example of a text-based programming language (TBPL) where its fundamental vision is to make programming simpler and easier to read is one of the most used ones, Python. A part of their documentation that they 2 c follows:

Beautiful is better than ugly.

Explicit is better than implicit.

Simple is better than complex.

Complex is better than complicated.

Flat is better than nested.

Sparse is better than dense.

[6] Even though the goal of Python was to make the language more accessible, it still requires the user to know the exact written syntax of the specific language. This requirement is one of the things that Visual programming languages (VPLs) have been trying to change by switching focus, from syntax to semantics, problem solving and application of logic [7] [8] [9]. Other goals sought with VPLs are: making programming more accessible to specific audiences and improve the speed of which users perform programming tasks. [9] VPLs have therefore become common in many different domains such as end-user programming, modelling, rapid prototyping, and design activities for architects, artists, children, engineers, and scientists. However, there is a lack of software engineering support mechanisms for VPLs to assist those working with these languages in contrast to TBLs. [10] [2] According to Whitley, all research that nevertheless has been done regarding VPLs is based on the idea that: text to form VPLs and visualization systems that will improve the human programming experience. [11] As can be seen, the area of programming is an important one where more research can help the programming languages evolve and make them easier to use, teach and learn. This research may in turn help evolve our societies.

1.1. Research question

The research question that will be answered in this paper is: In learning contexts with young novice programmers, what are the strengths and weaknesses of visual programming languages?

1.2. Purpose

The purpose of this research is to get an understanding of the strengths and weaknesses of learning with a VPL as an adolescent novice programmer. When our societies in the future may need more people being able to code, understanding of how programming is learned and should be taught is of importance. The research will focus on the strengths and weaknesses that VPLs inherently have when it comes to teaching children programming by looking at one VPL named Scratch and how it is taught.

1.3. Scratch

Scratch was primarily created to learn by making animated stories and games [12]. It is a VPL with its foundation in the object-oriented programming paradigm. Object- oriented programming is based on the n that respond [13]. Java and C++ are both examples of TBLs within the object-oriented paradigm [14]. To understand the results presented in this paper, some understanding of the interface of Scratch is needed (see

Figure 1).

Scratch is a single-window programming interface that c ode are dropped and snapped onto other code blocks in order to create an expression that can be read by the computer and displa cene expressions can exist in the script area at the same time. code blocks that are not snapped onto other blocks will not be read prite can be seen as its own entity, object, with its own script area. Different code blocks do different things and blocks that do similar ategories ode blocks that in some way makes a sprite move on the scene are found.

Figure 1- The Scratch interface

2. THEORY & LITERATURE STUDY

To answer the main research question, it is necessary to look at previous theories that address how humans learn and more specifically, how we learn to program and the ways in which this informs how programming languages are taught and learned.

2.1. Definition of a Visual

programming language To define a visual programming language, it is first important to define what visual programming is. According to Burnett [9] visual programming is: programming in which more than one dimension is used to convey semantics. [9] These additional dimensions can be created by multidimensional objects, using for example spatial relationships or pictorial representations where each one of these objects or relationships is a token comparable to thequotesdbs_dbs12.pdfusesText_18