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.
Table of Contents
- Unit 0: Framing and Orientation to Distributed Computing
- Unit 1: Intro to NetsBlox, the GoogleMaps service, and the Weather Service
- Unit 2: Managing Lists and the MovieDB Service
- Unit 3: Plotting and Climate Change App
- Unit 4: Message Passing and Distributed Animation
- Unit 5: Collaborative Whiteboard
- Unit 6: Mesh Networks
- Unit 7: Dynamic Chat Room
- Unit 8: Individual or Team Project
Unit 0: Framing and Orientation to Distributed Computing
Estimated Duration | One 45-50 minute period |
Lesson Summary | In this brief intro lesson, students will brainstorm and discuss how Distributed Computing is part of our daily lives. They will be introduced to fundamental ideas related to Distributed Computing (DC). They will create NetsBlox accounts in preparation for Unit 1. |
Learning Objectives | Connect DC to students’ lives to motivate learning of this module. |
Vocabulary | Distributed Computing (DC), Remote Procedure Call (RPC), Message Passing, Heterogeneity, Latency, Concurrency, Transparency, Security, Privacy, Scalability, Resiliency |
Lesson Resources | |
Additional Resources |
Unit 1: Intro to NetsBlox, the GoogleMaps service, and the Weather Service
Estimate Duration | 1-2 (45-50 min) periods |
Lesson Summary | In this lesson, students will be introduces to the Services in NetsBlox (specifically GoogleMaps and Weather). |
Learning Objectives | TSW understand what an RPC custom block does and how it can be used to access the Google Maps and weather service. TSW be able to use RPCs to create a map with weather information |
Vocabulary | Distributed Computing (DC), Remote Procedure Call (RPC), Network Latency |
Services / RPCs | |
Weather App | |
Project Extension Ideas | Urge students to come up with their own ideas. Here are some examples:
|
Unit 2: Managing Lists and the MovieDB Service
Estimated Duration | 2-3 (45-50 min) periods |
Lesson Summary | In this lesson, students will be Introduced to lists and gain more experience with Remote Procedure Calls (RPCs) Students will learn how to create applications that display images of lead cast members in popular movies, movie posters, and additional information about cast members using TheMovieDatabase (TMDb). |
Learning Objectives | After this lesson, students will be able to:
|
Vocabulary | Array/List, Element, Iterate/Iteration, Index, Primitive Value, Remote Procedure Call (RPC), Unique Identifier, Service |
Services / RPCs | |
Slides | |
Activities |
|
Project Code (Teacher Reference) |
|
Teacher Step-by-step Training Videos | |
Teacher Resources | |
Additional Resources |
|
Project Extension Ideas | Urge students to come up with their own ideas. Here are some examples:
|
Unit 3: Plotting and Climate Change App
Estimated Duration | 5 (45-50 min) periods |
Lesson Summary | In this unit students will be introduced to a NetsBlox supported charting service called Chart which uses the gnuplot open source charting app. The charting service will allow students to create custom charts and graphs using two remote procedure calls (RPCs). Students will also be introduced to more useful ways of getting and storing collections of related data through the use of multidimensional lists/arrays. |
Learning Objectives | Student will:
|
Vocabulary | Remote Procedure Call (RPC), Data Structure, Multi-dimensional List/Array, Indexed Variable, Element |
Services / RPCs |
|
Activities |
|
Resources |
|
Other Example Projects | |
Additional Resources |
Unit 4: Message Passing and Distributed Animation
Lesson Summary | In this lesson, students will be introduced to message passing and related networking abstractions in NetsBlox (specifically, the room and roles). |
Learning Objectives | Students will be able to:
|
Vocabulary | Room, Role, Message, Message Type, Event |
Activities | |
Animation Extension Ideas | Urge students to come up with their own extensions, but here are some examples:
|
Teacher Resources | |
Student Resources | without code) |
Unit 5: Collaborative Whiteboard
Lesson Summary | In this lesson, the students will create custom messages and will be able to create a collaborative whiteboard application where two users can draw on each other’s stage. |
Learning Objectives | Students should:
|
Vocabulary | Room, Role, Message, Message Types, Custom Messages, Latency, Concurrency |
Activities | |
Teacher Resources | |
Student Resources |
Unit 6: Mesh Networks
Lesson Summary | In this lesson, students will create an application where users can message each other without a central server by passing messages among peers. Each peer in the network can send messages, receive messages, or simply pass messages along. |
Learning Objectives | Students will:
|
Vocabulary | Nodes, Fault-Tolerance, Peer-to-Peer Networking, Redundancy, Resiliency |
Activities |
|
Teacher Resources |
|
Additional Resources |
Unit 7: Dynamic Chat Room
Estimated Duration | 2-3 Days |
Lesson Summary | In this lesson, students will be introduced to a new way to write a distributed program. Instead of using multiple roles, it will use multiple instances of the client program, all communicating with the server program using project to project message passing. |
Learning Objectives | Students will be able to:
|
Vocabulary | Message Passing, Protocol, Global Address, Role, Project |
Activities | |
Teacher Resources |
|
Student Resources |
Unit 8: Individual or Team Project
Estimated Duration | 45 minutes x 5 – 10 days |
Lesson Summary | In this project, students will come up with a project to work on for the entire unit (5-10 days, depending on scheduling), either as an individual or in teams of 2-4. Project ideas should be related to distributed computing and can use pieces and concepts from previous lessons. Note that students are not limited to only concepts that have been covered previously. |
Project Ideas | This is meant to be a creative unit where students come up with their own project concepts, but if students are struggling for ideas, here is a list of example directions:
|
Student Resources |