A Constructivist Instructional Design
Introducing visual programming to
professional designers
A thesis submitted to the Graduate School
of the University of Cincinnati in partial fulfillment
of the requirements for the degree of
Master of Design
in the Myron E. Ullman Jr. School of Design
College of Design, Architecture, Art and Planning by
[Xinyu Qiu]
Previous Degree and Institution
Committee Chair [Seward, Renee]
3/10/20
iv
ABSTRACT
A proliferation of introductory visual programming language raises the question of how to introduce VPLs to more creators and how to improve the usability and learnability of the VPL platform. This paper compares two different teaching methods and visual programming paradigm software to observe the influence of different factors on the use of visual programming software by adult learners in the designer group.
A more constructive teaching style using gamification between participants and a more behaviorist teaching style using small lecture and interaction were exposed to participants in different instruction group.
Different visual programming platforms were also tested in each group.
User experience scores based on performance score and self-reported scores were collected during and after participants operating on the visual programming software. The independent-sample t-tests were used to answer the research question that: is there a mean difference in scores for
v operating and self-rating between different instruction groups and different visual programming platform.
The test result shows that there is a mean difference in the efficiency
(performance score) between the behaviorist instruction approach and the constructivism instruction approach for using visual programming software.
The performing scores in the constructive teaching group are statistically significantly higher than the performing scores in the behaviorist teaching group. In addition, designers who exposed to the imperative visual programming software also perform better than those exposed to declarative visual programming software.
The study of constructive education in teaching visual programming language worth further exploration, in fact, under the trend of digital learning, constructive learning mechanism and the auxiliary of visual programming, a combination of both to learn programming, especially for programming beginners’ introductory courses, has a positive effect.
vi
vii TABLE OF CONTENTS
ABSTRACT v
TABLE OF CONTENTS viii
LIST OF TABLES x
LIST OF FIGURES xi
GLOSSARY, LIST OF SYMBOLS AND ABBREVIATIONS xii
CHAPTER 1. INTRODUCTION 1
CHAPTER 2. LITERATURE REVIEW 2 2.1 Opportunity 2 2.1.1 Proliferation of VPLs 4 2.2 What is VPLs 4 2.2.1 Block-based VPLs 5 2.2.2 Node-based VPLs 8 2.3 Brief summary 11
CHAPTER 3. INSTRUTIONAL DESIGN 12 3.1 Behaviorist instructional design 14 3.2 Constructivist instructional design 16 3.3 Instructional design in experiment 18
CHAPTER 4. THE EXPERIMENT DESIGN 19 4.1 The dependent variables 20 4.1.1 Completion rate 21 4.1.2 Time-on-task 21 4.1.3 Efficiency 22 4.2 The independent variables 22 4.2.1 S4A and XOD 23 4.2.2 Behaviorist and Constructivist 23
viii 4.3 The experiment process 24
CHAPTER 5. RESULTS 26 5.1 Efficiency of instructional groups 26 5.2 Efficiency of software groups 30 5.3 Overall-score of software groups 34
CHAPTER 6. DISCUSSION AND CONCLUSION 38
REFERENCES 41
APPENDIX A 45
APPENDIX B 46
APPENDIX C 48
APPENDIX D 53
APPENDIX E 60
ix LIST OF TABLES
Table 1 Characteristics of two kinds of instructional design 13
Table 2 Instructional groups statistics for efficiency 28
Table 3 Independent samples test for efficiency in instructional groups 28
Table 4 Software groups statistics for efficiency 32
Table 5 Independent samples test for efficiency in software groups 32
Table 6 Software group statistics for overall score 36
Table 7 Independent samples test for overall score in software groups 36
x LIST OF FIGURES
Figure 1 Dependent variable measured 20
Figure 2 Observed efficiency scores in 2 instructional groups 28
Figure 3 Observed efficiency score in 2 software groups 32
Figure 4 Observed overall score in 2 software groups 36
xi GLOSSARY, LIST OF SYMBOLS AND ABBREVIATIONS
xii
xiii CHAPTER 1. INTRODUCTION
The rapid development of information technology has accelerated the pace of innovation while creating new job markets. Visual programming languages (VPLs) has played a major role in the development of low-code platforms that allow ideas to be quickly turned into prototypes. How to introduce VPLs to more creators and how to improve the usability and learnability of low code platforms based on VPLs are the themes of this study.
This study compares the use of block-based imperative VPL and node-based declarative VPL, representative low-code programs among designers. XOD and S4A will be used as representative respectively. The study also focuses on the influence of different teaching methods on learning visual programming. Behaviorist instructional design and constructivist instructional design are the main categories in the test.
1 CHAPTER 2. LITERATURE REVIEW
Willis (1995) compares the differences between traditional behaviorist principles and constructivist principles in the field of teaching. behaviorism emphasizes the order of knowledge transmission, while constructivism focuses on the nonlinear and recursive transmission. Both methods are also widely used in programming education, the research on the practical effect of two teaching methods in visual programming education is also included in this paper.
2.1 Opportunity
According to the CompTIA IT industry outlook (2019), the global information technology industry is on its pace to reach $5 trillion in 2019, it has been keeping a growth rate of 4% for 5 years since 2015. There have been many labels for the most recent waves of technology that are redefining business and society, and one of these labels is the “Fourth
Industrial Revolution.” The effect of the fourth industrial revolution is never
2 elusive but realistic, millions of jobs will be created or destroyed by technological change over the next decade. “Trend in today’s labor market is how technology is mutating jobs into new, unexpected hybrid jobs”
(JosephE.Aoun, 2010). Combining skill sets are always found in the same job, such as marketing, statistical or design and programming. In those skills, programming has been found to be the most important skill in the future (Lydia Dishman, 2016).
The skills were defined as using a computer program to write instructions to a computer as opposed to using established applications. For example, Programming languages including JavaScript and HTML for building websites, statistical programs R and SAS, AutoCAD programs for engineers, and other all-purpose programming languages such as Java,
Python, and C++.
3 2.1.1 A proliferation of VPLs
As more and more people realize that it becomes important for non- programming-skill practitioners to develop programming skills to take part in the increasingly digital world in the future job market, a proliferation of introductory programming environments designed for novice learners across all age has been observed in these years, also known as the visual programming language.
2.2 What is VPLs
Visual programming language means language for programming with graphical expression. (Chang, S.-K., 1986) A visual programming environment is one that allows the programmer to create programs by manipulating graphical elements rather than typing textual commands. A well-known example is Scratch, a visual programming language from MIT
4 that’s used to teach children. The advantages given are that they make programming more accessible to novices and non-programmers.
Among the many visual programming software for non-programmers or enthusiasts, two popular programming paradigms are widely accepted.
One is imperative visual programming such as scratch, and the other is declarative visual programming such as XOD. Imperative programming is a programming paradigm that uses statements that change a program’s state, while Declarative programming is a programming paradigm that expresses the logic of a computation without describing its control flow (Ian
Mundy, 2017). Both of these paradigms are widely used in the programming world, and their application in visual programming is one of the main topics explored in this study.
2.2.1 Block-based VPLs
Early versions of the block-based programming interfaces include
Logo Blocks (Begel, 1996) and Bridge Talk (Bonar and Liffick, 1987). In
5 addition to being used in more conventional computer science contexts, a growing number of environments have adopted the block-based programming approach to lower the barrier to programming across a variety of domains. These include mobile app development with MIT App Inventor
(Wolber, 2014) and Pocket Code (Slany, 2014); modeling and simulation tools including Star Logo TNG (Begel and Klopfer, 2007), Delta Tick
(Wilkerson-Jerde and Wilensky, 2010), Net Tango (Horn and Wilensky,
2012), and Evo Build (Wagh and Wilensky, 2018); creative and artistic tools like Turtle Art (Bontá, 2010) and Pico Blocks (The Playful Invention
Company 2008); and game-based learning environments like Robo Builder
(Weintrop and Wilensky, 2012), Lightbot (Yaroslavski, 2014), and Google’s
Made with Code initiative. led by the popularity of Scratch (Resnick et al.
2009), Snap! (Harvey and Mönig, 2010), and Blockly (Fraser, 2015), their block-based programming environment have proliferated in K-12 STEM education classes.
Block-based programming environments leverage a programming primitive-as-puzzle-piece metaphor that provides visual cues to the user about how and where commands can be used. Composing programs in
6 these environments take the form of dragging blocks into a canvas and snapping them together to form scripts. If two blocks cannot be joined to form a valid syntactic statement, the environment prevents them from snapping together, thus preventing syntax errors but retaining the practice of assembling programs instruction-by-instruction.
Recent research (David Weintrop and Uri Wilensky, 2017.) supports the claim that block-based programming environment has a direct impact on learners’ experiences with programming and their early computer science classroom learning outcomes, these impact include confidence on learning further coding knowledge, and sense of ease to use of the coding knowledge, students study block-based programming environment also show greater interests in learning more course of coding compares to students learning text-based programming languages.
S4A is a good representative of this kind of language. The main reason for choosing this environment in this study is that it could be easily tested by using the Arduino microcontroller.
7 2.2.2 Node-based VPLs
“Another large group of VPLs is the so-called node-based VPLs, they use flow-charts to represent changes of state, logic, and data.” Said by Ivan
Daniluk, a programming technology reviewer, in one of his well-known blogs named “Rethinking Visual Programming with Go”
“There are a lot attempt to make universal node-based VPls, for example, Raptor (Carlisle, 2005), Flowgorism (Gajewski, 2018) and
DRAKON (Mitkin, 2012), but the biggest popularity was found in those niche field like 3D programming for example Grasshopper, and Unreal Blueprints for game design, music synthesis like MAX/MSP” Ivan went on that “Those tools are actively and heavily used in practice by many people, but they’re still quite narrow-field and highly specialized solutions.”
XOD, as a new open-source visual programming language, well represents the node-based VPLs. “A node would be any type of block that is some sort of a physical operating device (sensor, relay, motor are all types of nodes). So pretty much a node is anything that is a physical
8 representation of many smaller levels of software/hardware working together to create an end, physical object.” Said Steven Larson in 2017.
Asked about the main differences between XOD and scratch, Victor
Nakoryakov, CTO and one of the founders of XOD, replied: “Scratch is an almost 1-to-1 projection of an imperative textual language like C or Python.
But instead of keeping all the function names and syntax nuances in the head users are encouraged to find the necessary item in the palette and drag-n-drop it to the program source code. Although it is a good introduction to the imperative programming which removes some basic fears the whole concept of imperative (Von Neuman architecture) programming is broken in the eyes of many people.”
Said by Victor Nakoryakov: “For many of them, declarative programming is a way to go. They can’t write in Python, but they are OK with HTML, CSS, complex Excel. The node-based VPLs are simply projections of declarative languages. We decided to support this segment of inventors because the other camp is already baked by Scratch”
9 Victor Nakoryakov went on to say that “Also, XOD is about electronics. When one learns electricity, circuits, components he starts thinking about part interaction in a particular way. There’s no such thing in a circuit like an instruction pointer which tells a button “You act”, which then moves to a chip telling “Your turn!”, then “LED, you have a chance to update”. All the processes happen simultaneously. XOD (like any other declarative system) mimics the same: nodes are components (ICs), links are wires. So, a novice investor doesn’t have to learn the laws of two different worlds at once.”
When asking “how would your team envision an ideal approach to educate non-programmer learners to learn your software?” Victor
Nakoryakov replied: “They should want to learn it because XOD is the quickest way to get the result they are striving for. For example, an artist is creating an installation, she is thinking about interactive lighting as one of the required aspects. She wants it, but there are so many things to do besides it… The time is ticking. And the last thing she wants is learning C++ in 21 days to make the little part about lighting. XOD to the rescue! At least, we want to make XOD the quickest and simplest tool at some point.”
10 2.3 Brief summary
Although visual programming is, to varying degrees, no complete substitute for textual programming, the emergence of such software still opens another window for beginners. In an era when more people complete self-improvement through self-learning, visual programming language lowers the threshold for learning programming. Furthermore, simply lowering the threshold for learning in preparation for a more digital age is by no means pointless in fact, improving and promoting products in this direction becomes more important.
The two representative visual programming environments XOD and
S4A (Scratch for Arduino) will be tested as independent factors in experiments introduced to creators who have relatively low programming experience.
11 CHAPTER 3. INSTRUCTIONAL DESIGN
Among the numerous studies on teaching models and learning theories, Willis (1995) compares the differences between traditional behaviorist principles and constructivist principles in the field of teaching.
In the teaching process, behaviorist emphasizes the order of knowledge transmission, while constructivist focuses on the nonlinear and recursive transmission. In terms of the definition of learning goals, behaviorist emphasizes established guided goals, while constructivist encourages students to discover goals while developing projects.
Summative evaluation is critical in behaviorism and formative evaluation is critical in constructivism. Objective data are valuable in behaviorism, but subjective data are most valuable in constructivism (Willis, 1995).
12 Table 1 Characteristics of two kinds of instructional design
The behaviorists plan instructions systematically in a top-down manner. Constructivists’ planning involves collaboration and reflection and is developmental and organic. The objective of behaviorists has guided development whereas the objective emerges from the constructivist’s
13 design and development work. In behaviorism, there need to be experts who have special knowledge, but there are no experts in constructivism.
Careful teaching of sub skills in a sequential manner is important in behaviorism. In constructivism, learning meaningful contexts is emphasized by the instructions. The aim of behavioral instructional design is the delivery of preselected knowledge. Personal understanding within meaningful contexts is expected from constructivist instructional design model.
Summative evaluation is critical in behaviorism and formative evaluation is critical in constructivism. Objective data are valuable in behaviorism, but subjective data are most valuable in constructivism (Willis, 1995).
3.1 Behaviorist instructional design
Behaviorists believe that meaning as objective existence is independent of individual experience, so individual behavior as subject is used for observation and the purpose of teaching is based on this. In real world education, instructors focus on how to present or output knowledge properly, and provide interaction and support to students when they need.
14 Structured knowledge and assignments become the exercise and assessment for students.
Behaviorists believe that meaning as objective existence is independent of individual experience, so individual behavior as subject is used for observation and the purpose of teaching is based on this. In real world education, instructors focus on how to present or output knowledge properly, and provide interaction and support to students when they need.
Structured knowledge and assignments become the exercise and assessment for students.
With the development of technology, the development of behaviorist instructional design has also led to a series of education revolutions, for example, the online education platforms that are relevant to ordinary learners. In many online education platforms such as Lynda, practice sets are used to assess eligibility for the next level of study. Behaviorist education believes that students can achieve higher levels of knowledge by learning and memorizing structured and chunked knowledge. In the early days of online education, the Internet model of behaviorism education
15 undoubtedly occupied most of the online education market, and it is no exception today.
3.2 Constructivist instructional design
Constructivist is the opposite of behaviorist in general. Constructivist scholars Dewey, and Piaget believe that meaning is generated by learners based on their own experience and cognition, rather than passively accepted. Therefore, constructivist emphasizes the types of problems students need to solve, the teaching environment students are in, what activities lead students to take the initiative to learn, and how students reflect on the learning process.
Constructivist developed diverse teaching form, the famous example is the Knowles’ papers on the study of the adult learners in the use of constructivist instructional design model, adult learners care more about the learning motivation, adult learners understand more through practice, adult learners learning in problem solving process, and finally, when the learning content has the practical value, adult learners learn better, in Knowles’ opinion, this type of learner suitable for the constructivism teaching method.
16 Online learning platforms of all ages are growing at an accelerating pace, forecast to grow to $325 billion by 2025, triple the $107 billion in 2015.
Constructivism will also benefit from more support from technology and markets. Cloud computing platforms give people control over the flexibility of information. 5G speeds up the frequency and speed of human interaction.
Ubiquitous IOT technology promises wider access to user data, while unprecedented advances in computing power make more forms of human interaction possible. These technologies make ideal online constructivism programming learning possible.
The R2D2 learning model extends the online application of constructivism teaching, where students learn through recursive and reflective learning methods (Willis, 1995), was extended for online learning environment, (Bonk and Zhang, 2008).) The recursive and reflective phases are extended to become 4 phrases which are reading, reflecting, displaying and doing.
Reading stage students understand the problem and obtain knowledge, reflecting phase students’ clear problems and construct the
17 knowledge, displaying stage students will find the method to solve the problem and presenting the knowledge, doing stage student evaluate the solution and finally internalized knowledge.
3.3 Instructional design in experiment
overall, education in the future will no doubt remain an arena in which the two approaches to teaching compete and merge, as measured by curriculum, assessment and resource use.
This study selects designers as target population to explore the application of behaviorism and constructivism in visual programming teaching for code beginners. Different programming platforms are also considered as independent factor in this study.
18 CHAPTER 4. THE EXPERIMENT DESIGN
Based on Willis’ (1995) behaviorist and constructivist instructional principles in teaching field, the study interest in if there was a mean difference in subjects’ user experience score based on the tutorial method utilized (traditional linear behaviorist method or recursive constructive instruction.) and type of VPLs (S4A imperative block-based VPL and XOD declarative node-based VPL) that subjects’ were exposed to. The independent-sample t-tests were used to answer the research question that: is there a mean difference in scores for operating and self-rating between different instruction groups and different visual programming platform.
In this experiment, user experience data was used as the dependent variable for studying visual programming environments, User experience matrix was used to express the overall performance scores of visual programming software, the overall scores is an average of 3 factors of user experience data, they are completion rate, efficiency (completion per minutes) and self-reported data of the software.
19 4.1 Dependent variables
There are three parameters to describe the subject’s user experience data, the task completion rate, the task completion per-minutes, and the self-reported data.
Figure 1 Dependent variable measured
20 4.1.1 Completion rate
The completion rate data describe the fact that how well a subject is successful in using their new application to complete the introductory tasks.
Six situations are set before the task to evaluate the task success percentage. Fully task completion without assistant is considered as the top score 4 point. Then fully task completion with assistant and partial completion without assistant is considered as score 3. The partial completion with assistant and failure without assistant are considered as score 2. Complete failure with assistant is considered as lowest score which is 1. The scores were then translated to percentage score (i.e. ¾ considered as 75% completion.)
4.1.2 Time-on-task
The time on task data indicate that how long does it take for users to complete tasks.
21 4.1.3 Efficiency
The efficiency refers to the success rate per minute of a task.
4.1.4 Self-reported scores
The post-task self-reported metrics was used as to collect users rating about the software, they used to complete the task. the visual appealing level of the environment, the confidence level when they are using the software, the usefulness of the software by their own opinion, joyfulness after complete the task by using each software, the difficulty of understand the terms used in each environment, the ease of navigation and the overall difficulty of complete a task. The final self-reported data was calculated by averaging the above-mentioned scores.
4.2 Independent variables
There are two independent variables in the experiment, they are different kinds of instructional design model, constructivist and behaviorist, exposed to subjects and different types of visual programming software, XOD and
S4A, used by subjects.
22 4.2.1 S4A and XOD
Independent variables Imperative programming based VPL software
Scratch for Arduino and declarative programming based VPL software XOD was recorded as categorical or nominal measurement scale data.
4.2.2 Behaviorist and Constructivist
Although both types of instruction model have been set to the same task goals, the ways to conduct the instruction are different.
The behaviorist instructional model is more like a guided development, with a step-by-step guide brochure and expert’s assistant by side.
The constructivist instructional model takes Bonk and Zhang’s
(2008) R2D2 model as a reference, the four stages of instruction based on the participatory and ideation game design method. The reading phase was changed to recognize cards with VPLs components; the reaction phase was changed to using cards to play a poker-like game within the group to understand the structure of the program. And then the displaying phase
23 represents by showing the card sorting within the group and talk about how their program works. Finally, as the behaviorist instructional group did, the subjects in the constructivist instructional group also need to build the program in real VPL environment and user experience data will be collected as the same as the contrast group.
4.3 The experimental process
At the beginning of each task, pre-experience with programming was asked to a subject as well as their self-deemed learning type of themselves.
In the pretest survey, subjects’ age, major and gender are also collected for further analysis.
After the pre-survey, an instruction was given to the participants by researchers. In the introduction, the main concept of different types of VPLs introduced to the subjects, and then two different types of instruction based on Willis’ (1995) behaviorist and constructivist instructional teaching methods were exposed to the subjects.
Then the subjects started the task process and researchers start to calculate the starting time and the ending time, the steps the user take to
24 complete and how many errors happened during the process. The independent variable with or with not assistant will also be measured in the process. Task completion standard was defined by making the circuits work, subjects may abandon the task or if it took too long, the researcher may stop the process and the task success score will be recorded as fail, otherwise, task success score is recorded as a success.
After the subjects complete the tasks, a post-task self-reported- survey will be given to subjects, an over-all view about the software will be collected which include the visual appealing rate, perceived efficiency rate, confidence of operation, usefulness they think, enjoyment, easy or hard to understand terminology rate, the ease of navigation rate and overall observed difficulty rate.
25 CHAPTER 5. RESULTS
5.1 Efficiency of instructional groups
There is a mean difference in the efficiency (performance score) of using the two visual programming software between the behaviorist instruction way and the constructivist instruction way.
An independent sample t-test was conducted to determine if the efficiency score of participants received the constructivist teaching method and participants received the behaviorist teaching method.
The assumption of normality was tested and met for the dependent variable efficiency scores in each instruction group. The skewness statistic for the efficiency score in the constructivist group is .320 and kurtosis is -
1.676—both within the range of an absolute value of 2.0, suggesting one form of evidence of normality of the efficiency in the constructivist group.
The skewness statistic for the efficiency score in the behaviorist group is -
.393 and kurtosis is -.567—both within the range of an absolute value of
2.0, suggesting one form of evidence of normality of the efficiency in the
26 behaviorist group. Our formal test of normality, the S-W (SW) test (Shapiro
& Wilk, 1965), suggests that our sample distribution for efficiency in the constructivist group is not statistically significantly different than what would be expected from a normal distribution (SW = .883, df = 8, Sig. = .201). Our formal test of normality, the S-W (SW) test (Shapiro & Wilk, 1965), suggests that our sample distribution for efficiency in the behaviorist group is not statistically significantly different than what would be expected from a normal distribution (SW = .955, df = 8, Sig. = .757). consider that we have a small sample size (16), we decided to conclude that we have met the assumption of normality of the efficiency scores in each of the two instructional groups.
Although Levene’s test of homogeneity produces a significant result
(p is less .05) we use the test of result when equal variances are not assumed. In this case, the result is based on a correction for a lack of homogeneity of variance.
The independence was met with each group, for participants performing on their test independently.
27 Table 2 Instructional groups statistics for efficiency
Figure 2 Observed efficiency scores in 2 instructional group s
Table 3 Independent samples test for efficiency in instructional groups
28 As shown in Table 2, efficiency refers to participants’ performance data were generated from samples of 16 designers, 8 of them were randomly assigned to the behaviorist group (SD = 10.23%) and 8 of them were randomly assigned to the constructivist group (SD = 23.18%). The independent t-test, as shown in Table 3, indicated that the means for efficiency scores were significantly different for people participate in the behaviorist group and people participate in the constructivist group (t = -
2.316, df = 9.628, p = 0.044). Thus, the null hypothesis that the efficiency means in the two groups is the same was rejected at .05 level of significance.
The effect size d (Cohen’s d) (calculated using the pooled standard deviation) was 1.158. Using Cohen’s (1988) guidelines, this is interpreted as a large effect. The results provide evidence to support the conclusion that the behaviorist group and the constructivist group differ in efficiency data, on average. More specifically, participants in the constructivist group were observed to have better efficiency in complete the task, on average, than participants in the behaviorist group.
29
5.2 Efficiency of software groups
There is a mean difference in the efficiency (performance score) between using Scratch for Arduino and XOD. An independent sample t-test was conducted to determine if the efficiency score of participants using S4A and participants using XOD. The assumption of normality was tested and met for the dependent variable efficiency scores in each software. The skewness statistic for the efficiency score in S4A is .449 and kurtosis is -
1.364—both within the range of an absolute value of 2.0, suggesting one form of evidence of normality of the efficiency in S4A group. The skewness statistic for the efficiency score in the XOD group is -.688 and kurtosis is
.084—both within the range of an absolute value of 2.0, suggesting one form of evidence of normality of the efficiency in XOD group. Our formal test of normality, the S-W (SW) test (Shapiro & Wilk, 1965), suggests that our sample distribution for efficiency in S4A group is not statistically significantly different than what would be expected from a normal distribution (SW =
.894, df = 8, Sig. = .253). Our formal test of normality, the S-W (SW) test
30 (Shapiro & Wilk, 1965), suggests that our sample distribution for efficiency in XOD group is not statistically significantly different than what would be expected from a normal distribution (SW = .936, df = 8, Sig. = .572). consider that we have a small sample size, we decided to conclude that we have met the assumption of normality of the efficiency scores in each of the software groups.
Although Levene’s test of homogeneity produces a significant result
(p is less .05) we use the test of result when equal variances are not assumed. In this case, the result is based on a correction for a lack of homogeneity of variance.
The independence was met with each group, for participants performing on their test independently.
31 Table 4 Software group statistics for efficiency
Figure 3 Observed efficiency score in 2 software groups
Table 5 Independent samples test for efficiency in software groups
32 As shown in Table 4, efficiency refers to participants’ performance data were generated from samples of 16 designers, 8 of them were randomly assigned to S4A group (SD = 19.65%) and 8 of them were randomly assigned to activity group (SD = 7.53%). The independent t-test, as shown in Table 5, indicated that the means for efficiency scores were significantly different for people participate in the S4A group and people participate in the XOD group (t = 3.749, df = 9.012, p = 0.005). Thus, the null hypothesis that the efficiency means in the two groups is the same was rejected at .05 level of significance.
The effect size d (calculated using the pooled standard deviation) was 1.875. Using Cohen’s (1988) guidelines, this is interpreted as a large effect. The results provide evidence to support the conclusion that the S4A group and XOD group differ in efficiency data, on average. More specifically, participants in the S4A group were observed to have better efficiency in complete the task, on average, than participants in the XOD group.
33 5.3 Overall-score of software groups
There is a mean difference in the overall score (averaged performance and rating) between using Scratch for Arduino and XOD. An independent sample t-test was conducted to determine if the overall score of participants using S4A and participants using XOD. The assumption of normality was tested and met for the dependent variable overall scores in each software.
The skewness statistic for the overall score in S4A is .308 and kurtosis is -
1.169—both within the range of an absolute value of 2.0, suggesting one form of evidence of normality of the overall scores in S4A group. The skewness statistic for the overall score in the XOD group is .834 and kurtosis is .399—both within the range of an absolute value of 2.0, suggesting one form of evidence of normality of the overall scores in XOD group. Our formal test of normality, the S-W (SW) test (Shapiro & Wilk,
1965), suggests that our sample distribution for overall scores in S4A group is not statistically significantly different than what would be expected from a normal distribution (SW = .932, df = 8, Sig. = .531). Our formal test of normality, the S-W (SW) test (Shapiro & Wilk, 1965), suggests that our sample distribution for overall scores in XOD is not statistically significantly
34 different than what would be expected from a normal distribution (SW =
.912, df = 8, Sig. = .368). consider that we have a small sample size, we decided to conclude that we have met the assumption of normality of the overall scores in each of the software groups.
Levene’s test of homogeneity produces a non-significant result (p larger than .05) suggest that we have met the assumption of homogeneity.
The independence was met with each group, for participants performing on their test independently.
35 Table 6 Software group statistics for overall score
Figure 4 Observed overall score in 2 software groups
Table 7 Independent samples test for overall score in software groups
36 As shown in Table 6, overall score refers to participants’ performance data and rating data were generated from samples of 16 designers, 8 of them were randomly assigned to S4A group (SD = 11.31%) and 8 of them were randomly assigned to activity group (SD = 7.31%). The independent t-test, as shown in Table 7, indicated that the means for overall scores were significantly different for people participate in the S4A group and people participate in the XOD group (t = 2.090, df = 14, p = 0.055). Thus, the null hypothesis that the efficiency means in the two groups is the same was rejected at .1 level of significance.
The effect size d (calculated using the pooled standard deviation) was
1.045. Using Cohen’s (1988) guidelines, this is interpreted as a large effect.
The results provide evidence to support the conclusion that the S4A group and XOD group differ in overall data, on average. More specifically, participants in the S4A group were observed to have a better overall score in using the software, on average, than participants in the XOD group.
37 CHAPTER 6. DISCUSSION AND CONCLUSION
The study of constructivist instructional design in teaching visual programming language worth further exploration, in fact, under the trend of digital learning, constructive learning mechanism and the auxiliary of visual programming, a combination of both to learn programming, especially for programming beginners’ introductory courses, has a positive effect.
Comparing two types of VPLs, imperative and declarative, the subjects are more likely to accept the imperative programming way, in this case, the S4A, considering the widespread of Scratch using in introductory courses, designers may be exposed to more or less similar programming in different situations, thus to be more familiar with S4A, and for the newcomers declarative programming environment XOD unfamiliar. The loop system of building a program in XOD is also more difficult than using
S4A, to increase the cognitive load in using XOD. Further experiments may be needed to test differences in the efficiency of using different software at higher task complexity.
38 Interestingly, the subjects also showed significant differences in how aesthetically pleasing the XOD was compared to S4A, with a much higher aesthetically pleasing XOD than S4A. The possible reason is that XOD has relatively constant color used and consistency to other software, while S4A is more teenager oriented, with more vivid and rich colors, and relatively lower consistency relates to other software used by adults. Adult designers tend to prefer the XOD user interface.
Besides, doing a two-way ANOVA, we found that the constructive way shows significant improvement in the S4A group than in the XOD group. It is also possible that different levels of familiarity and complexity affect the efficiency of using the two software.
In general, the experiment by comparing different programming methods and different teaching methods, to a certain extent, given the adult designers, the constructive education mode can help to learn programming, the future of online education should also consider using constructive way of teaching which would lead to more self-serviced and more efficiency in
39 learning situation. The value of visual programming will also be more widely recognized by learners through the constructive teaching method.
40 REFERENCES
Willis, J. (1995). A Recursive, Reflective Instructional Design Model Based on Constructivist-Interpretivist (Vol. 35).
Anne Weegar Dina Pacis, M. (2012). A Comparison of Two Theories of
Learning-Behaviorism and Constructivism as applied to Face-to-Face and
Online Learning.
Weintrop, D., & Wilensky, U. (2017). Comparing block-based and text- based programming in high school computer science classrooms. ACM
Transactions on Computing Education, 18(1), 1–25.
Malcolm Knowles. (1973). The Adult Learner: A Neglected Species.
Bonk, C. J., & Zhang, K. (2006). Introducing the R2D2 model: Online learning for the diverse learners of this world. Distance Education, 27(2),
249–264.
Tom Tullis & Bill Albert. (2013). Measuring the User Experience: Collecting,
Analyzing, and Presenting Usability Metrics.
41 Lomax, R. G., & Hahs-Vaughn, D. L. (2012). An introduction to statistical concepts (3rd ed.). New York: Routledge.
IT Industry Outlook 2019. (2019).
Chang, S.-K. (1986). Visual Languages: A Tutorial and Survey.
Department, A. B.-E. and C. S., MIT (1996). LogoBlocks: A graphical programming language for interacting with the world.
Bonar, Jeffrey G; Liffick, Blaise W. (1987). A Visual Programming Language for Novices.
Turbak, F., Sherman, M., Martin, F., Wolber, D., & Pokress, S. C. (2014).
EVENTS-FIRST PROGRAMMING IN APP INVENTOR.
Slany, W. (2014). TINKERING WITH POCKET CODE, A SCRATCH-LIKE
PROGRAMMING APP FOR YOUR SMARTPHONE.
Begel, A., & Klopfer, E. (2004). StarLogo TNG: An Introduction to Game
Development.
42 Hoda Wilkerson-Jerde, M., & Wilensky, U. (2007). Wilensky, 2003), representational infrastructure shift
Horn, M. 2012). NetTango: A mash-up of NetLogo and Tern.
Wagh, A., & Wilensky, U. (2018). EvoBuild: A Quickstart Toolkit for
Programming Agent-Based Models of Evolutionary Processes. Journal of
Science Education and Technology, 27(2), 131–146.
Bontá, P., & Silverman, B. (2010). Turtle, Art, TurtleArt Artemis Papert,
Weintrop, D., & Wilensky, U. (2012). RoboBuilder: A Program-to-Play Constructionist Video Game.
Danny Yaroslavski (2014). How does Lightbot teach programming?
John Dewey. (2009). Between Pragmatism and Constructivism
Von Glasersfeld, E. (1982). AN INTERPRETATION OF PIAGETS
CONSTRUCTIVISME.
Carlisle, M. C., Wilson, T. A., Humphries, J. W., & Hadfield, S. M. (2005).
RAPTOR. ACM SIGCSE Bulletin, 37(1), 176.
43 Gajewski, R. R. (2018). ALGORITHMS, PROGRAMMING, FLOWCHARTS
AND FLOWGORITHM.
Mitkin, S. (2012). DRAKON-Erlang: Visual Functional Programming.
Charles, J.-F. O. (2008). A Tutorial on Spectral Sound Processing Using
Max/MSP and Jitter.
SS Shapiro, MB Wilk – Biometrika. (1965). An analysis of variance test for normality (complete samples)
44 APPENDIX A RAW DATA
Instruction environmen pre- time on way t date major experience completion task efficiency lecture XOD 2/12/20 ID 50% 75% 5.8 12.90% lecture S4A 2/12/20 Mdes 0% 75% 2.38 31.50% lecture XOD 2/3/20 Mdes 50% 75% 3.75 20.20% lecture S4A 1/29/20 ID 50% 100% 3 33.30% lecture XOD 1/28/20 ID 25% 75% 5.03 14.90% activity S4A 2/7/20 Mdes 100% 100% 1.39 71.90% activity S4A 2/7/20 Mdes 0% 75% 1.47 51% activity S4A 2/7/20 Mdes 0% 100% 1.38 72.40% activity S4A 2/7/20 Mdes 25% 75% 1.48 50.60% activity XOD 2/13/20 Mdes 25% 75% 3.35 22.38% activity XOD 2/13/20 Mdes 25% 75% 3.1 24.20% activity XOD 2/13/20 ID 0% 100% 3.83 26.10% activity XOD 2/13/20 ID 25% 75% 5.71 13.10% lecture S4A 2/13/20 Mdes 0% 75% 2.63 28.50% lecture S4A 2/13/20 Mdes 25% 75% 3.55 21.10% lecture XOD 2/12/20 Mdes 50% 50% 15 3.33%
visual perceived overall overall appeal efficiency confidence usefulness enjoyment term navigation difficulty rating score 100% 75% 75% 75% 50% 25% 75% 100% 71.80% 53.20% 75% 75% 100% 100% 75% 50% 100% 100% 84.30% 63.60% 75% 100% 50% 50% 75% 25% 100% 75% 68.70% 54.60% 0% 25% 50% 50% 50% 75% 25% 25% 37.50% 56.90% 100% 25% 75% 75% 50% 75% 100% 75% 71.80% 63.90% 75% 75% 100% 75% 100% 0% 75% 75% 71.80% 81.20% 50% 25% 25% 50% 50% 25% 50% 25% 37.50% 54.50% 75% 75% 100% 75% 100% 25% 50% 50% 68.70% 80.30% 50% 100% 100% 100% 75% 75% 100% 50% 81.20% 68.90% 75% 50% 50% 50% 75% 100% 100% 25% 65.60% 54.30% 75% 50% 25% 25% 100% 50% 50% 50% 53.10% 50.70% 75% 100% 100% 100% 100% 50% 75% 50% 81.20% 69.10% 75% 75% 50% 75% 75% 50% 75% 50% 65.60% 51.20% 75% 100% 100% 100% 100% 100% 100% 100% 96.80% 66.70% 25% 75% 50% 25% 25% 100% 75% 75% 56.20% 50.70% 100% 75% 75% 100% 75% 75% 100% 50% 81.20% 44.80%
45 APPENDIX B EVALUATION SHEET
46
47 APPENDIX C GUIDE BOOK FOR BEHAVIORIST GROUP
Task 1: Create a trafic-light with LED
A traffic light is a good example of a device which does its job sequentially and repeatedly. In its simplest form a traffic light has three states:
Green — go Yellow — stop if you can Red — stop!
Each state is active for some time interval and when done everything starts from the beginning and repeats again and again.
Program overview
Cells make up tissues, tissues make up organs, organs make up systems, programs in XOD can have structural relation- ships just like the human body. This kind of joined relationship creates infinite possibilities for programming, often referred to as object-oriented programming.
In task1, the main program is responsible for boot up the operation, lighting up in sequence and playing in loop, and the sub-program is responsible for the lighting process of each LED
1. Start build the program
Create a new project in XOD and name it something like my-traffic-light. Now you have a program with a single patch main. What’s next?
48 Task 1: Create a trafic-light with LED
2. Set up
We have a state machine that we’re going to implement. There are several ways to do the job. Let’s consider one of them. The basic idea is to have one patch node per state and a joining patch that will wire the state patch nodes together. In our case: state-green state-yellow state-red main — the joining patch We plan to (a) create drafts for all state patches, (b) craft the main patch, and (с) after that complete the state patches. You can do things in reverse if it makes more sense to you.
We already got the main, so create the state patches. Hit “File / New Patch” (or Ctrl+N) and enter the new patch name. Repeat three times.
3. Make the paches talk to each other
Now we need a mechanism allowing patch nodes to talk to each other. A common idiom is to make a pulse input on a state patch to enter that state and add pulse outputs to notify about state completion.
Add a pair of xod/patch-nodes/input-pulse and xod/- patch-nodes/output-pulse to each state patch:
49 Task 1: Create a trafic-light with LED
4. How about the main program
Now each of our states has an input and output. We can wire them in a daisy chain so that when one state completes its job, it gives the control to the next state. Let’s do it on main:
We gave shorter labels “Green,” “Yellow,” and “Red” to our nodes so the text could fit the width.
Nice, isn’t it? You see how the device should work graphically.
5. Implementing state patches
OK, we’ve got a basic state patch skeleton, let’s fill it up. You’re going to answer few questions before doing that.
What should a state do once entered? When should it exit? What should it do right before exit? In our case, when we enter a state it should turn on the corresponding LED. Then it should wait few seconds, turn the LED off and then exit. Pretty simple. Do it for the state-green
Set proper values for led’s port (port 2) and T of the delay (3 seconds is fine for the experiment).
We have done with the green. Are yellow and red differ anyhow? Not in our case. Just replicate the patch on state-yellow and state-red. Do not forget to adjust PORT and T values. Use copy/paste to do it quickly.
:
50 Task 1: Create a trafic-light with LED
6. Running the sequence
We are almost done. The only thing left is triggering the execution. Look at the main again:
Although the states are correctly chained, nothing would trigger entering the first state (i.e. the state-green). We want our traffic light to start its job right when the device is pow- ered up. So a pulse from the boot node is the best choice:
Finally, upload the program to your board and see how they behave.
Whoa, it works! Almost. Once the red state completes the traffic light does nothing. Let’s fix it
7. Making a cycle
The device suspends after the last state because nothing returns it back to the first state. We could link the last state DONE pulse to the first state SET pulse to complete the loop, but unfortunately, XOD does not allow to do so.
XOD forbids cycles in a program graph to avoid possible deadlocks. No deadlocks are possible in our particular scenario because we use delay nodes but XOD is not smart enough to figure it out.
Luckily so-called “defer nodes” are here to help us. They can break any cycle and tell XOD: “Hey, I’m the point where you can take a breath if a deadlock happens”.
We deal with pulses, so we will use the defer-pulse node to break the cycle.
51 Task 1: Create a trafic-light with LED
8. Making a cycle
The device suspends after the last state because nothing returns it back to the first state. We could link the last state DONE pulse to the first state SET pulse to complete the loop, but unfortunately, XOD does not allow to do so.
XOD forbids cycles in a program graph to avoid possible deadlocks. No deadlocks are possible in our particular scenario because we use delay nodes but XOD is not smart enough to figure it out.
Luckily so-called “defer nodes” are here to help us. They can break any cycle and tell XOD: “Hey, I’m the point where you can take a breath if a deadlock happens”.
We deal with pulses, so we will use the defer-pulse node to break the cycle.
Oops. The first state-green node input is not allowed to have links from the boot and defer-pulse at the same time. We can easily solve it by adding an any node:
Whew! Well done. Upload the program and see how it works. Play with timeout values, try to start the sequence from another state, add three more LEDs to form a complementing traffic light. Have fun!
52 APPENDIX D CARD GAME TOOL FOR CONSTRUCTIVIST
XOD GROUP
Figure 5 Rule of the constructive game
Goal How to How to get points? play?
Build your own program to win, the Build a whole At the beginning of more components the program. the game, each program used the player receives five more points you get, Add as many points cards. the first who build the as there are useful program win the components; Select one player to game. subtract as many start the game. points as there are useless components. 1 2 3
How to How to How to How to play? play? play? play?
A player receives a If true, he will show The next player The next player card from the top of his program and has the option of has the option of the deck each round. describe it to picking up picking up everyone the card thrown away the card thrown away Then he checks to see by by if his cards can fit into If not, one can choose the previous player the previous player a complete program. whether to throw or or away a useless card getting it from the getting it from the and the next player deck. deck. continues 4 5 6 7
53
Figure 6 Introduction to the node
How to What makes How to use calculate a complete a joker? The joker can be points program? anything you want it to be! One point for each A program that orange card. make sense. Two points for each yellow card. Three points for each blue card. Four points for each green card. 9 8
node What is node? How to use a joker? The joker can be anything you want it to be! The dark gray boxes are called nodes.
A node is a visual representation of some physical device or some function.
54
Figure 7 Introduction to the system
input-pins
node What is How do boot pin? I trigger a program? output-pins
The small colored The “boot” node circles on the nodes outputs a single pulse are called pins. when the program starts. They are used to transfer data between nodes.
Pins are divided into CORE inputs and outputs.
imagine something like a flash. Itʼs basically a message pulse to trigger something else. data What is How do boot
number data can be integer data? I trigger number or floating-point number decimal. a program? data
boolean data have only who The “boot” node possible values: True (aka logic boolean one, high signal)and False outputs a single pulse data (aka logic zero, low signal). when the program
port data represents the actual starts. pin number on the board port (i.e. D1-13, A0-5). data
generic data can be any generic data-type you want it to be. data CORE
55
Figure 8 Core components to build a program
How do any How do any I create I create a loop? a loop?
Pulses on output when Pulses on output when any input recieves a any input recieves a pulse pulse
CORE CORE
How do select How do select I create I create a conditional a conditional statement? statement? Outputs `Xn` value Outputs `Xn` value based on which `Sn` based on which `Sn` pulse came last. By pulse came last. By default outputs the default outputs the value of the latest value of the latest `Xn` input. `Xn` input.
CORE CORE
56
Figure 9 Common hardware to build a program
PORT VAL ACT PORT VAL ACT
How servo How servo about a about a ACK ACK servo motor? servo motor?
Quickstart hardware Quickstart hardware control node for control node for hobby RC servos. hobby RC servos.
PORT The pin controls servo-motor PORT The pin controls servo-motor
VAL Triger pulse VAL Triger pulse
ACT Makes the servo react to ACT Makes the servo react to incoming values incoming values while `ACT` is true while `ACT` is true
HARDWARE ACK Outputs true when delay is in progress HARDWARE ACK Outputs true when delay is in progress
TRIG ECHO UPD TRIG ECHO UPD
How range-meter How range-meter about a about a Dm OK Dm OK Sonar? Sonar?
Quickstart hardware Quickstart hardware control node for control node for Ultrasonic Ultrasonic rangefinder. rangefinder.
TRIG Board port to which sensorʼs `trig` pin is connected. TRIG Board port to which sensorʼs `trig` pin is connected.
ECHO Board port to which sensorʼs `echo` pin is connected. ECHO Board port to which sensorʼs `echo` pin is connected.
UPD Triggers a new ultrasonic ping. UPD Triggers a new ultrasonic ping.
OK Fires when ping is done. OK Fires when ping is done.
HARDWARE DM Last measured distance in meters HARDWARE DM Last measured distance in meters
57
Figure 10 Variables to build a program
How do 0 NUMBER How do 0 NUMBER
I create VAL I create VAL a constant a constant number? number? “constant number” “constant number” allows you to allows you to create a constant create a constant number, a integer, number, a integer, or a floating number. or a floating number.
PATCH PATCH
How do 0 NUMBER How do 0 NUMBER
I create VAL I create VAL a constant a constant number? number? “constant number” “constant number” allows you to allows you to create a constant create a constant number, a integer, number, a integer, or a floating number. or a floating number.
PATCH PATCH
58
Figure 11 Math functions to build a program
How to and How to and do “and” do “and” logical logical operation? operation? Outputs true if and Outputs true if and only if all inputs are only if all inputs are true. true.
MATH MATH
How to or How to or do “or” do “or” logical logical operation? operation? Outputs false if and Outputs false if and only if all inputs are only if all inputs are false. false.
MATH MATH
59 APPENDIX E CARD GAME TOOL FOR CONSTRUCTIVIST
S4A GROUP
Figure 12 Rules for S4A game
Welcome Goal How to How to to get points? play? Blocky Build your own Combat!!! program to win, the Build a whole At the beginning of more components the program. the game, each program used the player receives five more points you get, Add as many points cards. the first who build the as there are useful program win the components; Select one player to game. subtract as many start the game. points as there are useless components. 1 2 3
How to How to How to How to play? play? play? play?
A player receives a If true, he will show The next player The next player card from the top of his program and has the option of has the option of the deck each round. describe it to picking up picking up everyone the card thrown away the card thrown away Then he checks to see by by if his cards can fit into If not, one can choose the previous player the previous player a complete program. whether to throw or or away a useless card getting it from the getting it from the and the next player deck. deck. continues 4 5 6 7
60
Figure 13 Rules for how to calculate points
What makes How to a complete calculate program? points
A complete program One point for each that make sense. orange card. Two points for each yellow card. Three points for each blue card. Four points for each green card. 8 9
How to use a joker? The joker can be The joker can be anything you anything you want it to be! How to use want it to be! a joker?
61
Figure 14 Variables to build a program
How do Make a variable How do Make a variable I create I create a variable? a variable? “Make a variable” “Make a variable” button button allows you to allows you to create a new variable create a new variable which can which can store values store values
VARIABLE VARIABLE
set variable to set variable to How do I name How do I name assign assign values values The “set to” The “set to” to variables? component to variables? component allows you to allows you to set your variables to set your variables to a specific value, a specific value, another variable another variable or the results of or the results of any operation. any operation.
VARIABLE VARIABLE
62
Figure 15 Structure to build a program
How do forever How do forever I create I create a loop? a loop?
The “forever” The “forever” component component allow you to insert allow you to insert statments and the statments and the programm will programm will execute execute the statements the statements again and again. again and again.
CONTROL CONTROL
How do when this clicked How do when this clicked I trigger I trigger a program? The “when clicked” a program? The “when clicked” component component allow you to start the allow you to start the program when click program when click and click the second and click the second time to stop it. time to stop it.
CONTROL CONTROL
63
Figure 16 Commands to build a program
How do digital 13 on How do digital 13 on I let a digital I let a digital pin output pin output The “digital on” The “digital on” high voltage? component high voltage? component allows you to allows you to write a high voltage write a high voltage on pin 10 to 13. on pin 10 to 13.
MOTION MOTION
How do digital 13 off How do digital 13 off I let a digital I let a digital pin output pin output The “digital off” The “digital off” 0 voltage? component 0 voltage? component allows you to allows you to write a 0 voltage write a 0 voltage on pin 10 to 13. on pin 10 to 13.
MOTION MOTION
64
Figure 17 Math operators to build a program
How do < How do < I compare? I compare?
The “less than” The “less than” component component allows you to allows you to compare compare two variables or two variables or the result of the result of any operation, any operation, then return true or then return true or false judgments. false judgments.
OPERATORS OPERATORS
How do > How do > I compare? I compare?
The “bigger than” The “bigger than” component component allows you to allows you to compare compare two variables or two variables or the result of the result of any operation, any operation, then return true or then return true or false judgments. false judgments.
OPERATORS OPERATORS
65