Curriculum
The curriculum will consist of four 9-week modules. Each of the modules will be designed as a series of units, with each unit comprising 3-5 hours of instruction. Each unit will consist of an opener introductory activity for context and motivation, and a series of activities specifically designed to scaffold learning and minimize cognitive load especially for novice learners. The four modules are:
Table of Contents
Distributed Computing
The primary objective of this module is to introduce students to some of the basic distributed computing concepts through projects that appeal to young learners, especially to girls. At the same time, this first module will introduce students to NetsBlox and its distributed computing abstractions that will lay the foundation for subsequent modules. The focus will be using online services to access STEAM data sources and services to create engaging projects. A unit each on climate change, the arts (movies, music, and museum collections), and public health/medicine will show the breadth of computing applications. To analyze and visualize the data, students will work with Google Maps and gnuplot — services already available within NetsBlox — and learn key concepts of data structures, lists and matrices. As noted before, these real-world and diverse data sources and application areas have the potential to activate girls’ interest in computing through their own current interests in high school. In the second half of the module, message passing will be used to introduce basic computer networking concepts such as addressing, latency, communication protocols, etc. with projects such as a chat room, mesh networking, a shared whiteboard and/or simple multi-player games.
Internet of Things (IoT) and Cybersecurity
As more and more devices are connected to the internet, IoT has become a pervasive trend in manufacturing, transportation, energy generation, smart buildings and homes, among others. As IoT is everywhere around us, privacy and security have become very important. This module introduces IoT with a device that has lots of sensors and is internet connected: smartphones. Students will work on projects that accesses various sensors on their phones, such as the compass and the motion sensors. The module also utilizes a 3D simulated robotics environment where they will create programs that control their robots. Initially, all communication between the program and the robot will be in the open, i.e., unencrypted. Students will see how to eavesdrop on messages and take control of others’ robots and conversely, how to protect their robots. The curriculum will then introduce various cybersecurity concepts such as Denial of Service (DoS) attacks, encryption, secure key exchange, and authentication.
AI and Machine Learning

Machine learning is a cutting-edge topic in industry and academia. We will be guided by the emergent AI4K12 framework that includes ideas for how to teach machine learning. Proposed early activities include exploring and classifying real Twitter data using the already-familiar block-based programming environment. Students will examine data features from several demo Twitter accounts and use this information to develop their own classification rules. As a class, students can group by certain data features (tweets, vs retweets, etc.) to see how that affects the presence of bots in clusters. Once familiar with classification, students will make simple classifiers using datasets of 100s of Twitter accounts. An important component of this module is ethics in ML and biases perpetuated from pre-existing datasets in which algorithms are trained on. Articles and stories from the news will be incorporated into these discussions. The second machine learning unit takes a deeper look at classifiers. Students will work with ML services, such as IBM Watson, classifying text to detect sentiment such as bullying or not bullying. Students will be able to modify the training sets to see how that influences the effectiveness of the algorithm. Then, students will make modifications to the ML algorithm parameters, and eventually design their own learning systems.
Software Engineering/Entrepreneurship

This module will challenge students to address a local problem. We will follow an entrepreneurship approach, modeled after the successful EPICS community-based engineering design process, where students research an issue in their own community and design a program to help people solve it. Through these activities, students learn many valuable lessons including the role of community service in society, the significant impact that their engineering skills can have on their community, and that assisting others leads to their own substantial growth. The module will teach design, planning, code versioning, collaboration, and aspects of human-computer interaction (HCI) and usability. The final product will serve as a capstone project for the course. Industry volunteers and local relevant stakeholders will be recruited to provide feedback during periodic whole-class showcases.