In this paper we discuss some of the central challenges to rigorously studying blocks-based programming. We categorize these challenges into four groups: design, context, evaluation, and trajectory. For each category,...
详细信息
ISBN:
(纸本)9781467383677
In this paper we discuss some of the central challenges to rigorously studying blocks-based programming. We categorize these challenges into four groups: design, context, evaluation, and trajectory. For each category, we breakdown specific issues we confront as researchers in trying to isolate the blocks-based modality and outline our own strategies for addressing them. Throughout, we draw on our own experience as designers, educators, and researchers, along with past and current work, to provide guidance on ways to address these challenges and share insights our approach has yielded.
blocks-based programming tools are becoming increasingly common in high-school introductory computer science classes. Such contexts are quite different than the younger audience and informal settings where these tools...
详细信息
ISBN:
(纸本)9781450335904
blocks-based programming tools are becoming increasingly common in high-school introductory computer science classes. Such contexts are quite different than the younger audience and informal settings where these tools are more often used. This paper reports findings from a study looking at how high school students view blocks-based programming tools, what they identify as contributing to the perceived ease-of-use of such tools, and what they see as the most salient differences between blocksbased and text-basedprogramming. Students report that numerous factors contribute to making blocks-based programming easy, including the natural language description of blocks, the drag-anddrop composition interaction, and the ease of browsing the language. Students also identify drawbacks to blocks-based programming compared to the conventional text-based approach, including a perceived lack of authenticity and being less powerful. These findings, along with the identified differences between blocks-based and text-basedprogramming, contribute to our understanding of the suitability of using such tools in formal high school settings and can be used to inform the design of new, and revision of existing, introductory programming tools. Copyright is held by the owner/author(s).
In this panel, the moderator, who has expertise in computer science education and HCI, but with no ties to any particular blocks-based programming environment in particular, will provide a brief overview of the state ...
详细信息
ISBN:
(纸本)9781450326056
In this panel, the moderator, who has expertise in computer science education and HCI, but with no ties to any particular blocks-based programming environment in particular, will provide a brief overview of the state of the field of visual programming for education generally, and blocks-based visual programming environments and the languages that go with them more specifically. As early as in 1986, blocks-based visual programming environments were conceived of and built as research studies (Glinert & Smith, 1986)). However, the last five to ten years have seen a proliferation of these kinds of programming languages. Scratch and Alice are probably the most widely known of these programming interfaces, but there are many. Among these, many share common traits: the goal of simplifying the syntax of programming, a related goal of making what were once difficult tasks relegated to arcane languages simpler, and often another related goal of opening computer programming up to a wider audience than has recently traditionally engaged in programming activities. The moderator will be followed by four panelists, representing four blocks-based programming environments that share these affordances, but which more interestingly, are distinct in a number of ways. These panelists, experts in MIT App Inventor, Scratch, Looking Glass, and ToolBlox, respectively, will each have ten minutes to discuss their respective language and the possibility-space it aims to simplify. Specifically, each language will be examined from three perspectives: the reason the tool was created, the target audience for the tool, and how the tool engages those users in computational thinking and learning to program. The moderator will then lead a substantive discussion with the audience and panel members on the material presented.
The recent surge in computer science (CS) education for children has led to the popularization of blocks-based programming languages (BBPLs), which offer a syntax-directed approach to teach fundamental programming con...
详细信息
ISBN:
(纸本)9781450370196
The recent surge in computer science (CS) education for children has led to the popularization of blocks-based programming languages (BBPLs), which offer a syntax-directed approach to teach fundamental programming concepts. Most BBPL environments are designed with imperative programming in mind. The primary building blocks represent the key constructs that support sequencing, iteration, and selection, all in an imperative style. Some BBPL environments support bi-directionality and can show the source code of the same program represented as either blocks or in a general-purpose textual language. There have been few alternatives to the imperative primitives used in these environments. In this Vision paper, we propose a paradigmatic change to the underlying and front-facing structures of BBPL environments by replacing them with Model-driven Engineering (MDE) primitives, such as declarative transformation rules and metamodels. We have implemented a prototype of our envisioned system in a modeling environment to show the feasibility of the approach, which we believe could be used by young children. The contribution of our vision is a demonstration of the potential for a new thread of research that lies at the intersection of modeling and CS education for children. We aim to spark an interest in MDE among CS education researchers, while encouraging the modeling community to consider how MDE might be taught to younger students.
Scratch allows programmers to create interactive stories, games, and animations using coding blocks rather than traditional textual programming languages. Scratch provides an intuitive, blocks-based interface that mak...
详细信息
ISBN:
(纸本)9798400702372
Scratch allows programmers to create interactive stories, games, and animations using coding blocks rather than traditional textual programming languages. Scratch provides an intuitive, blocks-based interface that makes it easy for beginners to create programs. As Scratch programs become more complicated, there is a higher potential for programming mistakes to emerge. Scratch programmers often encounter sprite behavior, event sequencing, and data handling issues. A testing extension can serve as a valuable addition to the Scratch environment, assisting users in identifying and resolving such errors. This paper introduces the concept of a software testing extension in Scratch that includes an assert block. This short paper provides a detailed motivation for the need to support testing in Scratch through an example that demonstrates how the proposed testing extension can be used. The Scratch extension can help students identify errors within their program and facilitate a valuable learning process through a test-driven focus.
We present our experience with the design and implementation of BJC Sparks, a new introductory computer science curriculum for middle school piloted by ten teachers in the 2021-2022 academic year. Our curriculum is fu...
详细信息
ISBN:
(纸本)9781450394314
We present our experience with the design and implementation of BJC Sparks, a new introductory computer science curriculum for middle school piloted by ten teachers in the 2021-2022 academic year. Our curriculum is functional-first, using abstraction, functional decomposition, immutable data, and powerful higher-order functions such as map, keep, and combine. based on a decade of experience teaching thousands of first-time programmers, we believe starting with functions teaches students the habit of solving problems functionally when possible, helping to avoid bugs in later programming experiences. BJC Sparks uses the Snap! blocks-based programming environment, which brings the expressive power of a general-purpose programming language without requiring mastery of the syntax of a text-based language. We take advantage of new Snap! features to develop microworlds: customized projects that simplify the blocks palette to further lower cognitive load. We designed projects that use Snap!'s multimedia features to explore data science, encryption, and computational media. We end with physical computing using the BBC micro:bit that students program using Microblocks. In terms of findings, we confirmed that it indeed was possible to capture the interest of middle school students with functional programming activities, especially through the use of microworlds. We were surprised at the strong student and teacher interest in our micro:bit lessons, which many wanted as a stand-alone unit. Finally, it became quite clear that multimedia and data science projects offer promising avenues for teaching functional programming through fun, engaging, and personally relevant activities.
Block-basedprogramming languages are very popular for introducing young novices to programming. The drag-and-drop interface, with large palettes of blocks, aids initial manipulation and discoverability. When novices ...
详细信息
ISBN:
(纸本)9781450390705
Block-basedprogramming languages are very popular for introducing young novices to programming. The drag-and-drop interface, with large palettes of blocks, aids initial manipulation and discoverability. When novices continue with programming, they will likely do so by transitioning to a text-basedprogramming language where they are confronted by a blank page and a blinking cursor. The move can be quite a shock. It is important for educators to be able to help with this transition. There are several elements to managing this transition: pedagogical, or tool-based. There exist tools that can show blocks and text, and there also exist tools occupying a middle space between blocks and text. In this session we will give a programming environment designer's view of why this transition is so difficult and explain how we attempted to solve the challenge in our own hybrid programming systems. We will then invite opinions from the audience on how they conquer the transition using tools and/or pedagogical approaches.
Snap! version 8 introduces more than 700 documented fixes and enhancements book-ended by two major new features: smart script pics and metaprogramming. "Smart script pics" enable users to easily share images...
详细信息
ISBN:
(纸本)9781450394338
Snap! version 8 introduces more than 700 documented fixes and enhancements book-ended by two major new features: smart script pics and metaprogramming. "Smart script pics" enable users to easily share images that embed the program inside the image file! All you need to do is simply drag-and-drop and images to share code. This simple feature makes projects far more collaborative by reducing the burden to share *** second, and arguably more powerful feature, is bringing metaprogramming to a blocks-based programming language! The idea of metaprogramming is a powerful one; it allows programmers to write programs that generate other programs, and has many implications for teaching computer science. It allows instructors and students to easily build autograders, libraries, abstract data types, and ***! accomplished this by adding just a few blocks that provided the ability to define new blocks, as well as query and modify existing scripts, bringing the power of reflection to a visual programming language. In this demo we'll explore hands-on ways to use smart script pics and metaprogramming to enhance teaching CS. Overall, the new Snap! 8 release represents more than 12 months of hard work by a dedicated team, and we would be delighted to share these new features with our SIGCSE *** projects and examples from this demonstration will be shared at https://***/snap-sigcse23
The Beauty and Joy of Computing (BJC) is a CS Principles (CSP) course created at UC Berkeley to reach high school and university nonmajors in computer science. It was chosen for the CSP pilot and endorsed by the Colle...
详细信息
ISBN:
(纸本)9781450390712
The Beauty and Joy of Computing (BJC) is a CS Principles (CSP) course created at UC Berkeley to reach high school and university nonmajors in computer science. It was chosen for the CSP pilot and endorsed by the College Board as an AP CSP curriculum and PD provider since the first AP CSP exam sitting in 2017. This past year, BJC developed a new course for middle school and early high school that teaches a functional approach to programming, emphasizing iteration and commands, and including exciting projects in graphics, data, and media. In this workshop, we will provide an overview of the BJC middle school and high school curriculum including course materials, teacher resources, and an introduction to Snap!, the chosen visual programming language of BJC. We will not only cover curriculum updates, Snap! updates, BJC for middle school, BJC in other languages, but also dive into labs with hands-on programming. Laptop is required.
Snap! version 7 introduces three big new features: microworlds, scenes, and extensions. Microworlds allow curriculum designers to hide blocks for novice users, allowing them to focus only on the blocks they need. This...
详细信息
ISBN:
(纸本)9781450390712
Snap! version 7 introduces three big new features: microworlds, scenes, and extensions. Microworlds allow curriculum designers to hide blocks for novice users, allowing them to focus only on the blocks they need. This is similar to Parson's Problems, in which students rearrange commands to solve a challenge. The new version makes it easy for curriculum developers to design these microworlds; we think this can be truly transformative for younger learners. Scenes provide the ability for a single project to have different resources (sprites, sounds, costumes) that would normally have been cluttered in the same "namespace", but now can be nicely organized into different scenes. The last addition may be the most exciting - extensions allow the many Snap! forks now to be brought back in under the primary Snap! umbrella. To make that work, we have exposed low-level JavaScript functionality, and extensions can make use of those functions to adjust the look and feel of Snap! in many ways, provide different tabs or default blocks, and more. Finally, we would like to present some new ways that our teachers say they are using Hyperblocks (vector operations), introduced last year with Snap! 6. Overall, this new release represents more than 18 months of hard work by a dedicated team, and we would be delighted to share these new features with our SIGCSE family.
暂无评论