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 introduces students to NetsBlox and its distributed computing abstractions that will lay the foundation for subsequent modules. The focus is on 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 shows the breadth of computing applications. To analyze and visualize the data, students 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 is 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, and smart buildings/homes, among others. Because 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. In this module, students work on projects that accesses various sensors on their phones, such as the compass and motion sensors. The module also utilizes a 3D simulated robotics environment where students create programs that control their robots and perform various tasks. Initially, all communication between the program and the robot is in the open, i.e., unencrypted. Students learn how to eavesdrop on messages and take control of others’ robots, and conversely, how to protect their robots from these attacks. The curriculum then introduces 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. This module is guided by the emergent AI4K12 framework, which includes ideas for how to teach machine learning. Early activities include exploring and classifying real Twitter data using the already-familiar block-based programming environment. Students 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 build simple classifiers using datasets of 100s of Twitter accounts. An important component of this module is ethics in ML and biases perpetuated from the pre-existing datasets on which algorithms are trained. Articles and stories from the news are incorporated into these discussions. The second machine learning unit takes a deeper look at classifiers. Students work with ML services, such as IBM Watson, classifying text to detect sentiment such as bullying or not bullying. Students are able to modify the training sets to see how that influences the effectiveness of the algorithm. Students then make modifications to the ML algorithm parameters, and eventually design their own learning systems.
Software Engineering/Entrepreneurship
This module challenges students to address a local problem. This module follows an entrepreneurship approach, modeled after the successful EPICS community-based engineering design process, in which 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 teaches design, planning, code versioning, collaboration, and aspects of human-computer interaction (HCI) and usability. The final product serves as a capstone project for the course. Industry volunteers and local relevant stakeholders are recruited to provide feedback during periodic whole-class showcases.