3. Research and Communication- Putting Apps to work
Core Modules
Module 0
Collaboration: Dividing up the Work
Overview
When app developers collaborate on a project, they often want to work on the app at the same time. They use and sometimes create tools to keep themselves and their work organized. This module presents a tool and process to manage an App Lab project.
Purpose
Students will use an editable, shared slideshow to collaborate and organize their projects,
Links
Collaboration Slide Deck Template
Module 1
Building a Multi-screen App
Overview:
Teachers and students can use this lesson or its separate activities to extend, support, review, modify, or enhance Invention App Lesson project work from in Unit 2. Students continue to design and create a 4-screen app (number of screens TBD by teachers and students) on a topic of their choosing. Teachers should encourage students to collaborate with one or more classmates as "thought partners."
Purpose:
Students should design and develop apps with
a recognizable purpose;
at least 4 screens or an appropriate number of screens as determined by teachers and students;
text, images, buttons, and sound;
a navigation scheme where users do not "get stuck" on any screen and can always navigate from any screen to some other screen;
code following "good style;"
an intuitive user interface.
Links:
Core
Slide Deck - Building an App: Multi-screen App
Lesson Plan - Building and App: Multi-screen App
Lesson Plan - Building a Multi-Screen App Slide Walkthrough
Tutorial (Code Studio) - Building a Multi-Screen App Activity
Resources
Tutorial (Code Studio) - Event-Driven Programming; A self-guided tutorial with more detail than Intro to App Lab; Teacher can should plan how to if and an how they can use these activities to support students' project work
Slide Deck - Designing Apps for Accessibility;
Resource - 10 Awesome Accessibility Apps (UPDATED!); Examples of accessible apps and apps that increase access to technology
Examples
Past Ideas and Starters
Overview:
Past CS Pathways students have had ideas for apps that can serve their communities. Here are examples of some finished apps and apps in progress to inspire or challenge you. Some of these apps are un-coded designs, some have finished code, and some need debugging. Please give credit to the originators. If you don't have information about who made the app, please link to the original app in your code comments.
Examples
Coding Terms and Languages App
Lowell Rourke Bridge: A community landmark and issue
Module 2
Introduction to Variables
Overview:
Variables are how computer programs store values that can change in a program, like user choices or scores. Variables allow students to add features to apps to make them even more interactive. Students can already use UI controls to program apps to do things based on a single user choice. For example, show the message "You are right" when the user clicks the correct button. Variables can be used to program apps to do things based on combinations of choices. For example, count and display the number of times the user click the correct button. They can allow apps to do things based on combinations of choices, too (think online personality tests).
This module contains instruction about programming with variables. Using sample apps, students can explore and investigate how variables work and practice using them. They will make or modify their own apps to include functionality requiring variables. Teachers should expect to actively guide students through learning about and using variables.
The Code.org lessons/tutorials in this module are come from different curricula. They use Code.org's Explore, Investigate, Practice, Make (EIPM) sequence. Teachers should familiarize themselves with this approach as they adapt instruction to their classes. Videos about each EIPM step are in the supplements section. The Practice and Make activities include apps that can be remixed or code that can be used in student projects.
Purpose:
Students will be able to
Recognize common programming patterns when using variables as part of an app
Explain the purpose of those programming patterns with variables both in terms of how they work and what they accomplish
Modify apps that make use of common programming patterns with variables to adjust their functionality
Links:
Core
Slide Deck - Introduction to Variables
Video - Guide to Explore, Investigate, Practice, Make Lessons
Resource - Short Information Sheet on Explore, Investigate, Practice, Make Sequence
Lesson Plan - Lesson 1, Variables Explore
Tutorial (Code Studio) - Introduction to Variables, Lesson 1 Explore
Classroom Slides - CSP Unit 4 - Variables, Conditionals, and Functions; Slides 5 to 67 cover lessons on variables.
Lesson Plan - Lesson 2, Variables Investigate
Tutorial (Code Studio) - Introduction to Variables, Lesson 2 Investigate
Lesson Plan - Lesson 3, Variables Practice
Tutorial (Code Studio) - Introduction to Variables, Lesson 3 Practice
Lesson Plan - Lesson 4, Variables Make
Tutorial (Code Studio) - Introduction to Variables, Lesson 3 Make
Resources
Video - CS Discoveries Introduction to Variables I
Video - Introduction to Variables II
Video Tutorial - Keeping Score Part 1
Video Tutorial - Keeping Score Part 2
Video Tutorial - Variables
Video Tutorial - Get Data From a Text Box and set variable to stand for it
Video Tutorial - Dropdown Menus and Variables
Video - Guide to Explore Lessons
Video - Guide to Investigate Lessons
Video - Guide to Practice Lessons
Video - Guide to Make Lessons
Lesson Plans (all) - Variables, Conditionals, and Functions ('22-'23); Code.org CSP Unit 4 sequence; Teachers should adapt these lessons to fit student project development needs.
Reference - App Lab Basics Guide
Module 3
More about Surveys and Collecting Data
Overview
In civics, we often want to collect information from member of the community to find out what they think or do and use the data to influence or make decisions. App Lab lets programmers create apps to survey users wherever they have their phones and upload information to a database. This module shows the basics for coding a survey app.
Purpose
Learn to use the Data view in App Lab
Create database tables
Using the Data view
Using createRecord: If a database table does not exist, createRecord will make a new one
Upload data to data tables
Use createRecord to upload records
Core
Tutorial: CS Principles: Databases - Part 1 Creating Records
Tutorial: CS Principles: Databases - Part 2 Using the Data Viewer
Tutorial: Adding Columns to Your Database
Survey App with more features and code: Add data with buttons and variables
Tutorial: Storing a Variable in a Database
More
Survey App with chart: Demonstrates what you CAN do with App Lab and more study
More
Resources
App Design Process Tools
App design takes planning and, well, designing. Unit 3 in Code.org's Computer Science Principles course (CSP) is an Intro to App Design aimed at older students. It can be modified for your age group. Lesson 3 and Lesson 4 from the unit address designing an App. Below are activities and tools from that unit and others that teach and support the app design process.
Links
Lesson Plan - CSP 20-21 App Development Planning Guide
Activity - Project Designing an App Part 1
Activity - Project Designing an App Part 2
Resource - CSP App Development Planning Guide; Teachers should decide how and when to implement and scaffold activities in this planning guide.
Resource - App Lab Final Project Proposal
Resource - App Design Worksheet
Resource - Free printable sketching and wireframing templates tripwire magazine worksheet template
Resource - Iphone sketch templates
Resource - iphone-wireframe
Activity - EdPuzzle. App Lab: Making a Simple App
Activity - Edpuzzle. Code.org Semester Hackathon Project - Beginner App Tutorial
Activity and Resources - Soundboard App Instructions; Instruction for a simple and fun app; Students and teachers can be remix the app or borrow code to suit their own projects.
Unplugged activity
Paper Airplane Algorithms
Overview
In this lesson, students will relate the concept of algorithms back to everyday activities. After discussing their steps, students will make paper planes using an algorithm. The goal here is to start building the skills to translate real world situations to online scenarios and vice versa.
Purpose
This lesson can help students see that an "algorithm" is just a list of steps that someone can take to finish a task. Students will also learn that the order of the individual steps can make a difference in the final product. Connect this activity to the significance block sequence in programs.
Links:
Slide Deck - Unplugged Activity
Lesson Plan - Paper Planes Activity
Unplugged activity
Designing for Accessibility
Overview
In this lesson, students will learn about accessibility and the value of empathy through brainstorming and designing accessible solutions for hypothetical apps. This lesson can be used as mini-lesson at the beginning of a session when students will be working on projects.
Purpose
Through learning about accessibility, students recognize the impacts of computing beyond their own lives. Accessibility might not seem like a relevant CS topic, but creating technology that is accessible for underserved users helps make tech better for everyone else as well.
Links
Slide Deck - Unplugged Activity
Lesson Plan - Designing for Accessibility
The Site is under construction!
Overview & Core Ideas
Overview:
In this unit, students should achieve some success at making a simple app to address a civics-related topic. App Lab tutorials, app lab examples, and real world apps can give students ideas for what their own apps can be about and how to program them.
Teachers should plan to have an outside speaker or some sort of presentation that brings real-world CS use into the classroom.
Purpose
Students will be able to
relate computer science to contexts outside of the classroom, for example work, play, or current events
understand what an app is
use mobile apps
remix a basic app
follow directions to create a simple app
pair program as a driver and a navigator
program events for design elements using block-based code
Core Ideas
Remember:
computers are tools that work according to rules like literalness and sequence
regular, relatable people like you use CS in real-life
App design requires problem-solving
You can solve problems using a systematic approach
App Lab apps have app design elements or objects (such as screens and buttons) that people can write programs for.
App Lab programmers use UI Controls to make programs
Events and event handlers trigger programs; the onEvent block connects programs to design elements and "holds" their programs
You read, write, and think code; driving and navigating when pair programming exercises these skills in different ways.
Links
Slide Deck - Unit 2 Overview & Resources
Spreadsheet of Links - Unit Resources