Graphical blocks-based programming environments, such as Scratch and Snap!, are becoming increasingly popular tools for introducing learners to programming in formal educational settings. However, a growing body of re...
详细信息
ISBN:
(纸本)9781450329668
Graphical blocks-based programming environments, such as Scratch and Snap!, are becoming increasingly popular tools for introducing learners to programming in formal educational settings. However, a growing body of research is finding that students struggle when transitioning from these tools to more conventional, text-basedprogramming languages. To better understand students' difficulties and begin to explore potential solutions to facilitate this transition, a 10-week, quasi-experimental study was conducted with 80 students across three high-school introductory programming classes. Each class spent five weeks working with different version of a blocks-based programming tool, each of which integrated text-basedprogramming in a different way. After working in the introductory environments, students transitioned to Java for the remainder of the study. The goal of this project is to understand the affects of blocks-based programming on students' emerging understandings, document challenges students face in transitioning from blocks-based to text-basedprogramming, and investigate potential ways to bridge these two modalities. To answer these questions, a mixed-method approach was taken that included cognitive interviews with learners, automated collection of student authored programs, and pre/mid/post attitudinal and content assessments.
This poster presents an environment and set of pedagogical strategies designed to explore how best to use blocks-based programming tools to prepare learners for future, text-basedprogramming languages. Starting with ...
详细信息
ISBN:
(纸本)9781450329668
This poster presents an environment and set of pedagogical strategies designed to explore how best to use blocks-based programming tools to prepare learners for future, text-basedprogramming languages. Starting with the snap! programming environment, we added the capability to view the JavaScript equivalent of any blocks-based script authored inside the environment. Additionally, when students define behaviors for new blocks, they do so in JavaScript. This makes it possible to compose blocks-based scripts alongside text-based JavaScript programs and have the two run side-by-side. This environment was used during the first 5-weeks of an introductory programming class at the high school level as part of a quasi-experimental study investigating the relationship between programming modality and emerging student understanding. Teachers of the course used the blocks/text hybrid features in various ways to support learners developing an understanding of programming concepts and laying the foundation for future text-based instruction. These strategies included having students compose programs with graphical blocks then view the equivalent JavaScript, prompting class discussion on similarities and differences between the two modalities; having students write pseudocode for their blocks-based programs before comparing the pseudocode to the JavaScript; and finally, having students implement their algorithm directly in JavaScript, using blocks as a resource to reference proper syntax.
This paper examines the implications of using Abstract Syntax Trees (ASTs) as the underlying model for program editors and source control. For editors, working at the level of the AST enables error prevention, efficie...
详细信息
ISBN:
(纸本)9781467383677
This paper examines the implications of using Abstract Syntax Trees (ASTs) as the underlying model for program editors and source control. For editors, working at the level of the AST enables error prevention, efficient autocompletion, and seamless use of multiple representations (e.g. blocks-to-text-to-blocks). An AST-based system also lends itself to both real-time and asynchronous collaborative editing, through intention-preserving algorithms much simpler than Operational Transformations. AST-based asynchronous collaborative editing makes several improvements to source control compared to Git, notably: reducing conflicts even in same-position edits, and eliminating diffs (and therefore conflicts) due to changes in formatting, spacing, or method ordering. Even text-based languages can reap these benefits, simply by changing the underlying program representation from text to AST.
暂无评论