1. Identifying issues & understanding Apps
Overview
Students of all levels of CS experience.should achieve some success at making a simple app to build their motivation and confidence. Using App Lab tutorials and apps and real world app examples, students should work with teachers to learn and/or review the app design and development process. Teachers should plan to have an outside speaker or a presentation that brings real-world CS use and/or role-models to the classroom. As well as identifying issues, at this stage students should explore how apps are part of civic life.
Purpose and Core Concepts
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
Core Modules
Module Objective
Exploring Interests and Issues (Basic App)
Overview:
Through this project, students can explore, discuss, and advocate for issues that they would like to address. In addition, further issue research and development can expand this basic app to support civics research, mobilization, advocacy, or education.
Students create or remix an app that
teaches a subject/topic assigned by the teacher
ORteaches about a civics issue developed through class discussion
The topic for the example below was "Inventors," however anything can be the topic for an app.
In other modules, students will learn different App Lab features and coding concepts to make projects that are informative, well-designed, and interactive.
Purpose:
Begin an information sharing app that can support an Action Civics project.
Core
Students explore through discussion and research, civics-related topics that interest them.
Students explore kinds of apps that serve civics or community purposes through research, discussion, and experimenting (programming and/or remixing their own and other apps)
Students develop simple, interactive apps that
Links
Lesson Planning Resources
Slide Deck: App Research Project
Lesson Plans
Video: App Lab: Share Your App
Instructional Resources (other modules in this stage)
Intro to App Lab (part 2) & the Meow App: Continues Intro to App Lab Code.org tutorials teaching basic app development skills. Includes a simple app creation activity to introduce and practice skills
Button Creation: Covers/reviews how to create buttons and program them.
Examples of Apps and Code:
Collecting and sharing individual and community stories using text, images, and recordings.
A Storytelling App: This is the beginning of a storytelling app. The app has uses a media file in the image properties of startScreen. The app demonstrates how to navigate to different screens with buttons.
Clicking the label that says "Jouska," will take you to a screen with buttons that work. Not all the buttons in this app have been programmed.
Providing important information to the community
Classroom
Practice
Practice
Pair Programming: Why do it?
Overview
Pair Programming is an approach to writing code where two programmers work side-by-side. Students can pair program on module activities and individual projects.
One person is the "driver" and controls the keyboard and mouse and does the typing.
Their partner is the "navigator" and follows all the work and makes suggestions and thinks ahead.
The pairs exchange roles at regular intervals.
Watch the video below.
Students and (teachers) find partners, and try it with an app one is working on.
Discuss:
Why might this be a good idea?
What might be some challenges to this in the classroom?
Do you think professional programmers work this way?
Purpose
Pair programming allows students and teachers to practice different aspects of programming separately. Students can both take advantage of their strengths and practice less familiar skills.
Links:
Slide Deck - Pair Programming
Lesson Plan - Pair Programming
Video - Pair Programming
Module 1
App Lab - Intro to App Lab (part 2) & the Meow App
Overview:
The Intro to App Lab provides instruction on the basic skills students need to make an app that presents information about a civics issue. Students can "remix" these "practice" apps made in Intro to App Lab to make simple apps related to civics topics and issues. To begin with, students can make simple apps to communicate their knowledge about an issue to other students and the teacher, as well as to demonstrate their coding skills. Later, they can develop the apps to advocate for causes or deepen app users' knowledge of an issue.
Students started Intro to App Lab in Unit 1. Some students may be able to work through its activities and levels independently. Other students may need additional instruction or scaffolding. Teachers should plan how they will support different students' needs.
The following activity complements Intro to App Lab and can be done together as a class with teacher led instruction. Teachers and students can replace cat images with images about their interests and/or concerns.
Purpose:
The Meow App lesson can be used to introduce a basic app. It can place the Intro to App Lab tutorial in the context of creating apps that connect to student interests. The cat image and sounds can be replaced with an image or sound appropriate for student or class topics.
Intro to App Lab begins to address coding knowledge needed for the Meow App at Level 5.
Links:
Core
Slide Deck - App Lab Getting Started
Activities - Intro to App Lab, level 5
Lesson Plan - Meow App
Model Product - The Meow App
Resources
Reference - App Lab Basics Guide
Module 2
Button Creation
Overview:
This tutorial is designed to be used to help students easily add images and sounds into an App Lab project and to make them switch/change while also teaching (or reviewing with) them about creativity, copyright, and fair use. You can use this lesson to teach or review how to use buttons and events and ad design elements in apps. These skills are also taught in the Intro to App Lab.
Links:
Slide Deck - Creating Buttons with Images & Sounds
Video - Make it Interactive (onEvent)
Lesson Plan - Using a button to change images
Lesson Plan - Using a Button to Change Images in App Lab and Add Sounds
Video - App Lab - Images and Sounds
Reference - Creativity, Copyright and Fair Use
Resource - Sound Clip Resources
Resource - Images/Picture Resources
Apps and Code
Module 3
Add a Simple Survey or Data Collector: Intro to Remixing
Overview:
At the beginning of an action civics project, we often want to find out what people in the community think. What do you want to find out?
We can use App Lab to do surveys and take polls. Users enter information you ask for into text boxes, pull down menus, and radio buttons. This module will show you how to add a simple survey to an app using App Lab's Data tab, the createRecord block, and remixing.
Procedure:
Open this simple Survey App. Try it out.
You can enter a response, but where did your response go?
To see where your response was stored
a. View the code.
b. Remix the app and rename it.
c. Click the the Data Tab on your remixed app to open the Data Browser.
d. Run the app again and enter a new response. What happened in the Data Browser?
e. You should see that the app created a link for a table named SurveyData. Click the link for the table. You should see your response in the table
f. Try entering more responses. What happened?
Click the Code tab and watch the two videos to learn how the code and Data Viewer work.
CS Principles: Databases - Part 1 Creating Records
CS Principles: Databases - Part 2 Using the Data Viewer
How could you include this feature in an app?
Option A: Create or open an app. Use what you learned from the videos and the example to design and code your app. Be sure to match your block settings and design element (i.e. text input) id.
More remixing:
Option B: Copy the code from example. Paste it in your app. Here's how:
Use Control-C and Control-V (Command- for Mac) to copy and paste code:
Focus your eyes on the blocks you want to copy in the example app.
Click the </> ShowText button in the upper right corner of the Workspace. Highlight the text that goes with the blocks just like with regular text. If you are not sure, click the the Show Blocks button (where </> Show Text used to be) and toggle back and forth until you know what to highlight.
Hit the keys Control and C.
Click </> ShowText in your app and place the cursor where you want to paste the copied code.
Hit the keys Control and V.
Click Show Blocks
Adjust the block settings and/or design element ids to work with your app.
For similar tips see BRVGS Computer Science- App Lab Help and
Option C. Design an app around the remixed app. If you use this method BE SURE TO GIVE CREDIT to the coder who made the example app.
More
Speaker Visit
Plan a Speaker Visit
Connecting computer science to people outside of the classroom helps students to make connections between computer science and their own lives and aspirations. Civic action researchers, advocates, and organizers use mobile apps and other applications of computer science to support their work.
As early as possible or appropriate in your course, have policy-makers, organizers, advocates and anyone else who supports a civic cause visit your classroom virtually or in-person. Find out how they use or COULD use mobile apps to support their work.
Links:
Slide Deck - Unit 2 Speaker Classroom Opportunities
Activity - https://www.amazonfutureengineer.com/classchats
Activity - https://www.amazonfutureengineer.com/
Activity - https://www.skypeascientist.com/
Activity - https://code.org/csjourneys/myjourneychats#chat10
Activity - https://code.org/volunteer/local
Activity - https://edu.google.com/intl/ALL_us/code-with-google/csedweek/
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
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
Unplugged Module
Problem Solving
Overview:
The class works in groups to design paper towers that will be as tall as possible. At the end of the lesson groups reflect on their experiences with the activity and make connections to the types of problem solving they will be doing for the rest of the course.
Purpose:
What can help us to work together and solve problems as a team? The class works in groups to design paper towers that will be as tall as possible. At the end of the lesson groups reflect on their experiences with the activity and make connections to the types of problem solving they will be doing for the rest of the course.
Teachers should develop a routine for students to structure a self-directed and self-regulated problem-solving approach. Part of CS is learning to solve problems by experimenting with the tools provided rather than repeating a "right answer." Paper towers and computers allow students to try and test possible solutions to problems.
Links:
Slide Deck - Unit 2 Module 3
Lesson Plan - 7-Step Problem Solving Lesson
Slide Deck - The Seven-step Problem Solving ( or Design) Process
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
The Site is under construction!