Visual Programming Languages

From permanent_learning
Jump to: navigation, search

Visual programming is a type of computer coding that portrays lines of code graphically instead of textually (Dehouck 2015). The user has the ability to see pictures instead of lines of code in one of many existing programming languages. Seeing computer code in graphical form creates a wider gate of entry into coding for more people as it is more simplified and less prone to error than text based programming. The user is able to assemble pieces together much like assembling pieces of a puzzle. The nature of these blocks is that some blocks fit with each other while others do not. The constraints of this puzzle-like environment allow the user to focus on the emergent patterns within a computer program.

Visual Programming Languages (VPL) are sometimes called block-based programming, data flow, or diagrammatic programming. VPL’s fall under the category of structured editors. A structured editor makes the “atomic unit of composing code a node in the abstract syntax tree of the program” (Weintrop 2017). These nodes are the atomic building blocks of a computer program in a structure editor environment. These building blocks are displayed in such a way that the user can drag them from a toolbar and drop them into a workplace. They are put together with other blocks in the same way that two puzzle pieces are put together to create simple commands for a computer to follow. “Block based programming environments leverages a programming primitive-as-puzzle-piece metaphor that provides visual cues to the user about how and where commands can be used as their means of constraining program composition” (Weintrop 2017).

Since computers became widespread in North American daily life, instructional designers have been looking for ways to implement computer science education into the current educational system. One of the earliest computer science educators was Seymour Papert. His vision was not to have computers assisting the education of students but to have students programming the computers and using their programs to gain mastery over other subjects (Papert 1980). Papert believed that computer science education should have low floors and a high ceiling so that students with varying backgrounds could access programming. His instructional platform LOGO was the first widespread educational program in computer science. Even though LOGO is not a VPL, its structure of breaking problems down into solvable chunks and catering its design to the learning style of its students has been passed on. Papert also introduced the concept of computational thinking which has many applications in the British Columbia K-12 curriculum.

Theoretical Foundations

Teaching VPL’s to students who are new to computer programming lines up with educational theory in many ways. VPLs are a combination of pictures and text which makes them multimedia. Many of the instructional design principles which apply to multimedia also apply to VPLs.

Perhaps one of the most prominent theories relating to VPLs is the dual coding theory by Alan Paivo. The dual coding theory explains that cognition involves the activation of two different coding systems: one deals with language while the other deals with images (Anderman 2009). VPLs are dual coded in the human brain distinctly yet connected, therefore students can more easily understand and recall information that they have processed.

A VPL has the ability to decrease extraneous cognitive load by constraining the amount of information that a student must process in order to code a command. A student using a VPL is not distracted with some of the menial, yet critical details of text-based coding such as adding a semicolon or proper spacing. If a single one of these characters is missed it could jeopardize an entire project. Another way that VPLs can decrease extraneous load is by employing Merrienboer’s worked example principle (Van Merrienboer 2010). Most educational VPL’s use tutorials which force the user to practice only part of the task they are learning. For example in the VPL Scratch, the tutorial will provide a semi-completed script which commands the program to move an object across a screen (Scratch 2016). When the tutorial is teaching a particular concept, such as looping, the user will only need to fill in that piece of the puzzle while the other parts will already be filled in.

Mayer’s principle of segmenting “allows the learner to fully represent each part of the lesson before moving on to the next part” (Mayer 2008). The environment of a VPL is set up so there is a workspace and a live testing space on the same screen. A student’s learning is broken up into manageable chunks and as they write their programs they receive feedback at the pace they choose. They are able to visually see the changes that they make as they make them.

Van Merriennboer & J Sweller’s (2010) fading guidance strategy applies to VPLs as the blocks are an intersection of several critical details. They are constrained and simplified by design. As students begin learning in the VPL, they start with simple concepts such as a single block which moves an object a certain distance. At this very basic stage, there will be hints available at the student’s request. As the student builds their understanding, the blocks can become more complex and more customization can be added to the design of the block.

Evidence of Success

Along with a strong theoretical foundation for visual programming languages, there is much evidence to support the concept of students using a visual programming language as they learn. Research has found a correlation between the visual input method and a positive change in attitude towards programming; research also suggests that VPL’s are a more advantageous learning environment for first-time programmers (Saito 2017). Additional research shows that students who practised programming in a VPL had greater gains in their learning than those who practised in a text-based environment (Weintrop 2017). Despite this evidence, students perceived text-based programming to be more similar to what professional programmers do. This perception leads to the student’s belief that learning text-based programming is better practice for the developing programming ability (Weintrop 2017). According to research done by the University of Chicago comparing block-based and text-based programming, students were significantly more interested in further learning in programming after a 5-week course where they worked with a VPL (Weintrop 2017). When the researchers studied two groups, one learning coding in a text based environment and the other learning in a VPL, they found that interest in taking further computer science courses was increased for the VPL but decreased for the text based programming group.

In regards to student’s perceptions of the usefulness of VPLs for a computer programming career, qualitative interviews showed that students thought text based programming would be more useful than a VPL. A student reflected, “I feel like Java will be more useful in the long run than what Pencil (the VPL being used for the study) could offer me” (Weintrop 2017). This was a common response among participants.

Computational Thinking is “solving problems, designing systems, and understanding human behavior, by drawing on the concepts fundamental to computer science” (Wing 2006). This type of thinking is essential to reflecting on the field and the field of computer programming. A student who learns a VPL will as a result learn computational thinking. Starting in grade 6, BC students are learning computational thinking as a part of their Applied Design Skills and Technology curriculum (BC Curriculum, 2015).

Research done at the post-secondary level shows that skills learned in VPL environments transfers to success in text based coding and further computer science study (Moskal 2004). A group of researchers wanted to explore the variables that caused high attrition rates in freshman computer science majors with low experience in math and coding skills. Through a pre-course calculus exam, at-risk students were identified and were recruited into the study. As part of the study, a treatment group of at-risk students took part in a course which taught coding principles using a VPL and programming environment called Alice. After participating in the Alice course, at-risk students performed significantly better in their computer science studies than the at-risk students who did not take the Alice course. In fact, the Alice course “levelled the playing field” as at-risk students began to perform on par with the other students (Moskal 2004).

Research and Theory in Practice

In 2016 the British Columbia government mandated that K-12 students would learn how to code. In a public announcement, they stated that “coding and our new curriculum are connecting students with the problem-solving and critical-thinking skills they need to thrive – no matter what path they choose” (Government of BC, 2016). Since the implementation of the new Applied Design Skills and Technology (ADST) Curriculum in BC, K-12 schools have been responding in various ways. Many schools are using a block based coding curriculum to meet these needs. Schools are using programs such as Code.org, Scratch, or Lightning MacroLab.

In the ADST curriculum, one of the possible topics of study is computational thinking. Grade 6-9 students will learn about programming theory, simple algorithms, visual representations of data, and visual programming languages. An intermediate teacher who is totally inexperienced with coding and computational thinking could use a pre-developed program such as Code.org discoveries. In this program, there are lesson plans, teacher manuals, and an online gradebook where students can work on their own portfolio and teachers can track student progress. There are plugged in and unplugged activities where some of the concepts of computational thinking are taught with or without the use of computers (Code 2018).

Teachers who are already experienced with computational thinking and coding could use a program like Scratch or Kudo. Scratch does not have a prescribed program with a year plan and units like Code.org but it does have a live programming environment where students can work individually on projects that the teacher assigns. There is a community of teachers who have created some lessons. This is an invaluable resource.

Many middle years teachers in BC are using Sphero Macrolab to teach VPLs. In Sphero Macrolabs, a student can use a phone, tablet, or computer to write a block-based program. The block-based program is then used to control an actual robot called a Sphero. The Sphero is a ball with a motor on the inside and an oscilloscope so that it always remains upright. It can turn, light up, vibrate, change colors, and analyze sensor data. There are many applications with Sphero MacroLab and students have the opportunity to take part in open ended experiments. Sphero MacroLab can be programmed in both a VPL and JavaScript.

VPL’s and the British Columbia ADST Core Competencies

Part of the BC curriculum in ADST is an area called core competencies. The core competencies are general areas for each subject that should be met in addition to the content that is being covered. Here is a table which explains how core competencies are met while teaching a computational thinking course using a VPL.

Hypothetical Application of Core Competency Using Sphero MacroLab (BC Curriculum 2015)

Curricular competency Student activity
Understanding context Student learns how a VPL could solve a problem
Defining Student creates a physical maze that a Sphero robot must navigate through
Ideating Student brainstorms possible solutions to solve the problem. Student designs a program which will navigate the Sphero
Prototyping Student writes the first version of the program using VPLs
Testing Student tests their MacroLab program out using the Sphero
Making Student makes adjustments to the MacroLab program and evaluates the efficiency of their instructions.
Sharing Students uploads MacroLab project to the Sphero community
Demonstrate an awareness of precautionary and emergency safety procedures in both physical and digital environments Student learns about digital safety and digital footprint while uploading MacroLab Project.
Identify and evaluate the skills and skill levels needed, individually or as a group, in relation to a specific task, and develop them as needed Student restarts project, this time using JavaScript. Student learns the relationship between text-based and visual-based programming tools.
Select, and as needed learn about, appropriate tools and technologies to extend their capability to complete a task Student learns new commands in JavaScript.
Identify the personal, social, and environmental impacts, including unintended negative consequences, of the choices they make about technology use Student reflects their own learning and brainstorm ways that VPLs lead to a stronger understanding of computer programming
Identify how the land, natural resources, and culture influence the development and use of tools and technologies Student reflects on topics of access to computer programming. Student thinks critically about ways that computer programming could positively affect the world.

In accordance with the scientific theories behind learning and instruction, the evidence as shown in the research, and the practical applications of VPLs, here are two lists entailing benefits and disadvantages of teaching with VPLs. Benefits of Teaching Students a Visual Programming Language

  • Students show stronger gains in learning than those who learn text based languages
  • Students are more interested in further studies in computer science after learning a VPL
  • Some VPL’s allow collaboration between other students
  • Leads to a stronger understanding of programming without being bogged down specific syntax
  • There are preprogrammed rules which don't allow students to make certain mistakes
  • There are many pre-defined theoretical foundations for teaching VPLs

Disadvantages of Teaching Students A Visual Programming Language

  • Does not reflect what professional programmers do as most professional programmers use text based editors.
  • Students perceive that they are learning less when using VPLs
  • High speed internet and computers are required to run most VPLs.

Conclusion

The field of educational computer programming is growing and because of that, there are many resources available for teachers. Education is not the only environment that employs VPLs. VPLs are now being used to develop a wide array of web applications and programs. Even though students perceive VPL’s to be less practical for the real world, base level programming has become more accessible. The theory and evidence show that there are many good reasons to teach programming using VPLs and the availability of educational tools and resources prove that teaching computational thinking and coding is feasible for the average British Columbian teacher.

Educator Resources

Educational Visual Programming Languages and their Applications

Name of VPL Grade Level Lesson Plans Special Features Description
Alice K-12 and Post-Secondary Yes Code with VPL in a 3D environment Teaches programming theory without any of the semantics of typical programming languages.
Code.org K-12 Multiple integrated curriculum platforms with assessment built in for a variety of levels Hour of Code Computer Science and coding curriculum using blocks in an environment called Code Studio.
Scratch K-12 Yes, lesson plans developed by VPL developer and by a community of teachers The ability to remix others’ projects and make it your own Users create their own interactive stories, games and animations then share with others.
Sphero Macro Lab Intermediate - Post Secondary Yes Code with VPL to program a small robot Block program pre-programmed Macros to learn computational thinking, programming, math, and science.
Bubble Post Secondary and Commercial No Vision is to make text based coding obsolete Enables users to build web applications without needing to type code.

References

“Anybody Can Learn.” Code.org, code.org.

Dehouck, Remi. “Craft Ai | The Maturity of Visual Programming.” Brand, 29 Sept. 2015, www.craft.ai/blog/the-maturity-of-visual-programming/ - Dehouck 2015.

Dual Coding Theory. (2009). In E. M. Anderman & L. H. Anderman (Eds.), Psychology of Classroom Learning: An Encyclopedia (Vol. 1, pp. 341-343). Detroit: Macmillan Reference USA. Retrieved from http://link.galegroup.com/apps/doc/CX3027800097/GVRL?u=sfu_z39&sid=GVRL&xid=c294337

Education, British Columbia. “BC's New Curriculum.” Applied ADST 7 | Building Student Success - BC's New Curriculum, 2015, curriculum.gov.bc.ca/curriculum/adst/7.

Kurihara, Sasaki, Wakita, & Hosobe. (2015). A Programming Environment for Visual Block-Based Domain-Specific Languages. Procedia Computer Science, 62, 287-296.

Mayer, R. (2008). Applying the science of learning: Evidence-based principles for the design of multimedia instruction. The American Psychologist, 63(8), 760-9.

Moskal, B., Lurie, D., & Cooper, S. (2004). Evaluating the effectiveness of a new instructional approach. ACM SIGCSE Bulletin, 36(1), 75-79.

Office of the Premier. “BC Gov News.” $6 Million to Help Connect Students with Coding, New Curriculum and Computers, 10 June 2016, news.gov.bc.ca/releases/2016PREM0065-000994.

Papert, S. (1980). Mindstorms : Children, computers, and powerful ideas / Seymour Papert.

Daisuke Saito, Hironori Washizaki, & Yoshiaki Fukazawa. (2017). Comparison of Text-Based and Visual-Based Programming Input Methods for First-Time Learners. Journal of Information Technology Education: Research, 16, 209-226.

“Scratch Tutorials.” Scratch - Imagine, Program, Share, 2 Oct. 2016, scratch.mit.edu/studios/1817151/.

Todorka Glushkova. (2016). Application of Block Programming and Game-Based Learning to Enhance Interest in Computer Science. Journal of Innovations and Sustainability, 2(1), 21-32.

Wing, J. (2006). Computational thinking. Communications of the ACM, 49(3), 33-35.

Weintrop, D., & Wilensky, U. (2017). Comparing Block-Based and Text-Based Programming in High School Computer Science Classrooms. ACM Transactions on Computing Education (TOCE),18(1), 1-25.

Young, J., Van Merrienboer, J., Durning, S., & Ten Cate, O. (2014). Cognitive Load Theory: Implications for medical education: AMEE Guide No. 86. Medical Teacher, 36(5), 371-384.