Algot: An Educational Programming Language with Human-Intuitive Visual Syntax
Abstrak
Empirical research suggests that programming language syntax is a common impediment for beginners, a concern that is mitigated to a varying degree by visual programming. In this paper, we introduce a novel visual programming language that is founded on program synthesis and the programming-by-demonstration paradigm. By using an intuitive visual syntax, we show how we can meet our primary goal of providing support to computer programming novices in exploring foundational programming concepts. We present the language's current and planned use in computer science education, provide preliminary evidence for its effectiveness, and discuss its future possibilities.
Artikel Ilmiah Terkait
F. Hermans
1 Agustus 2020
One of the aspects of programming that learners often struggle with is the syntax of programming languages: remembering the right commands to use and combining those into a working program. Prior research demonstrated that students submit source code with syntax errors in 73% of cases and even the best students do so in 50% of cases. An analysis of 37 million compilations by 250.000 students found that the most common error was a syntax error, which occurred in almost 800.000 compilations. It was also found that Java and Perl are not easier to understand than a programming language with randomly generated keywords, stressing the difficulties that novices face in understanding syntax. This paper presents Hedy: a new way of teaching the syntax of a programming language to novices, inspired by educational methods by which punctuation is taught to children. Hedy starts as a simple programming language without any syntactic elements such as brackets, colons or indentation. The rules slowly and gradually change until the novices are programming in Python. Hedy is evaluated on 9714 programs.
Victor Lian Nasser Giacaman Elliot Varoy
1 Februari 2022
Object-oriented programming (OOP) is a widely used programming paradigm in modern software industry. This makes it an essential skill for students in many disciplines to learn. However, OOP is known to be challenging to learn and teach due to its abstract nature. Studies have shown that students often face difficulties and develop misconceptions in multiple aspects when learning OOP. This article presents a systematic way of developing a teaching tool that uses a combination of visualization and analogies to help students overcome these barriers and understand the OOP concepts better. To ensure the tool would have pedagogical value and novelty, we first reviewed the educational theories on using analogies and visualization, as well as numerous existing tools. A set of activities in the form of code snippets were then designed to target these misconceptions and difficulties, along with a set of analogies and their interaction mechanisms that mapped to the OOP concepts. A teaching tool was then developed based on those designs and evaluated with engineering students in a CS2 course (n = 253). The results and our analysis show that a statistically significant improvement was achieved in student understanding and confidence through interaction with visualization of OOP concepts with analogies (VOOPA) exercises. Similar gains were also observed using more traditional methods. No statistically significant positive difference in understanding and confidence can be attributed to use of VOOPA through the current study.
Žana Žanko Saša Mladenović M. Mladenović
2020
Block-based programming languages are becoming a favourite learning tool for programming novices while the traditional way of teaching programming mostly uses text-based programming languages. The purpose of this study was to compare the impact of used visual and textual programming languages on K-12 students' understanding of the loop concept. Participants were 312 elementary school students from 5th to 8th grade using visual programming language Scratch (n = 59), and textual programming languages Logo (n = 185) and Python (n = 68). Tests for all languages were equivalent, differing only in the used programming language. Results showed that students achieved statistically significant higher scores when using block-based programming language compared to students using textual programming languages. These results show that K-12 students need concrete experience to understand abstract concepts, as the loop concept, which Scratch as a block-based programming language provides.
Kyle Liang Ariel Davis Siyue Jin + 7 lainnya
15 November 2020
Recently, user-centered methods have been proposed to improve the design of programming languages. In order to explore what benefits these methods might have for novice programming language designers, we taught a collection of user-centered programming language design methods to a group of eight students. We observed that natural programming and usability studies helped the students refine their language designs and identify opportunities for improvement, even in the short duration of a course project.
Ioannis Karvelas Joe Dillane Brett A. Becker
25 Februari 2020
Improving the feedback that novices receive from programming environments is an important and often overlooked aspect of computing education research. This work in progress examines the effects of various mechanisms by which environments deliver feedback to users. By providing insights on the effects of these mechanisms, we aim to inform designers, developers and educators about more effective design and use of such environments for students.
Daftar Referensi
0 referensiTidak ada referensi ditemukan.
Artikel yang Mensitasi
0 sitasiTidak ada artikel yang mensitasi.