Hands-On Artificial Intelligence and Cybersecurity Education in High Schools
Computer science literacy is becoming increasingly important. As technology integrates with every aspect of our lives, so does our need for understanding it. Cybercrime is rapidly growing and there is a shortage of people to combat it. On even a larger scale, artificial intelligence is changing the world. We need a steady pipeline of motivated experts in both these fields and it all starts with education. Both of these topics are abstract in nature and have historically been difficult to teach, especially to a young audience with a minimal computer science background. We believe that by making hands-on education of these topics more interesting and accessible, we can not only teach students to be cognizant about these forces affecting their lives, but also spark an interest and get them to consider these fields as their future careers. Visual programming and block-based languages have been shown to be effective in teaching computer science concepts. We present novel contributions to block-based programming integrating AI and cybersecurity abstractions to introduce them at a level accessible in K12. NetsBlox is a block-based programming language with first-class support for remote procedure calls (RPC) and message passing. Built on top of it, is RoboScape which brings robot programming into the mix. Students use blocks to write programs that run in the browser and control robots through RPCs. RoboScape enables teaching cybersecurity by exposing (virtual) network traffic to other users in NetsBlox making the robots vulnerable to a host of attacks. We address the issue of setting up these networked robots in new environments through a portable batch provisioning application. In addition, we introduce a flexible access control solution for RoboScape involving different policies, an ownership verification challenge, and a dashboard. On the AI front, we present a visual playground based on Snap! called Visual RL. We focus on reinforcement learning to teach about AI. By adding careful abstractions of Q-learning, we give a great degree of control in training an AI model to the user while still maintaining simplicity. This provides the baseline for exploring different ideas in AI while making everyday games more intelligent. Finally, we introduce NetsBlox Player as a mobile execution environment for running NetsBlox projects on the go, regardless of the platform.