Note: When clicking on a Digital Object Identifier (DOI) number, you will be taken to an external site maintained by the publisher.
Some full text articles may not yet be available without a charge during the embargo (administrative interval).
What is a DOI Number?
Some links on this page may take you to non-federal websites. Their policies may differ from this site.
-
Many block-based programming environments have proven to be effective at engaging novices in learning programming. However, most offer only restricted access to the outside world, limiting learners to commands and computing resources built in to the environment. Some allow learners to drag and drop files, connect to sensors and robots locally or issue HTTP requests. But in a world where most of the applications in our daily lives are distributed (i.e., their functionality depends on communicating with other computers or accessing resources and data on the internet), the limited support for beginners to envision and create such distributed programs is a lost opportunity. We argue that it is feasible to create environments with simple yet powerful abstractions that open up distributed computing and other widely-used but advanced computing concepts including networking, the Internet of Things, and cybersecurity to novices. The paper presents the architecture of and design decisions behind NetsBlox, a programming environment that supports these ideas. We show how NetsBlox expands opportunities for learning considerably: NetsBlox projects can access a wealth of online data and web services, and they can communicate with other projects. Moreover, the tool infrastructure enables young learners to collaborate with each other during program construction, whether they share their physical location or study remotely. Importantly, providing access to the wider world will also help counter widespread student perceptions that block-based environments are mere toys, and show that they are capable of creating compelling applications. In this way, NetsBlox offers an illuminating example of how tools can be designed to democratize access to powerful ideas in computing.more » « less
-
Creating pathways that stimulate high school learners’ interest in advanced topics with the goal of building a diverse, gender-balanced, future-ready workforce is crucial. To this end, we present the curriculum of a new, high school computer science course under development called Computer Science Frontiers (CSF). Building on the foundations set by the AP Computer Science Principles course, we seek to dramatically expand access, especially for high school girls, to the most exciting and emerging frontiers of computing, such as distributed computation, the internet of things (IoT), cybersecurity, and machine learning. The modular, open-access, hands-on curriculum provides an engaging introduction to these advanced topics in high school because currently they are accessible only to CS majors in college. It also focuses on other 21st century skills required to productively leverage computational methods and tools in virtually every profession. To address the dire gender disparity in computing, the curriculum was designed to engage female students by focusing on real world application domains, such as climate change and health, by including social applications and by emphasizing collaboration and teamwork. Our paper describes the design of curricular modules on Distributed Computing, IoT/Cybersecurity, and AI/Machine Learning. All project-based activities are designed to be collaborative, situated in contexts that are engaging to high school students, and often involve real-world world data. We piloted these modules in teacher PD workshops with 8 teachers from North Carolina, Tennessee, Massachusetts, Pennsylvania, and New York who then facilitated virtual summer camps with high school students in 2020 and 2021. Findings from teacher PD workshops as well as student camps indicate high levels of engagement in and enthusiasm for the curricular activities and topics. Post-intervention surveys suggest that these experiences generate student interest exploring these ideas further and connections to areas of interest to students.more » « less
-
The paper introduces a visual programming language and corresponding web and cloud-based development environment called NetsBlox. NetsBlox is an extension of Snap! and builds upon its visual formalism as well as its open source code base. NetsBlox adds distributed programming capabilities by introducing two well-known abstractions to block-based programming: message passing and Remote Procedure Calls (RPC). Messages containing data can be exchanged by two or more NetsBlox programs running on different computers connected to the Internet. RPCs are called on a client program and are executed on the NetsBlox server. These two abstractions make it possible to create distributed programs such as multi-player games or client-server applications. We believe that NetsBlox not only teaches basic distributed programming concepts but also provides increased motivation for high-school students to become creators and not just consumers of technology.more » « less
An official website of the United States government

Full Text Available