ABCDEFGHIJKLM
1
# Lesson TypeLength
(mins)
AP CSP Learning
Objectives
AP CSP Essential Knowledge Title and LinkDescriptionMIT App Inventor Components, Procedures and EventsProgramming ConceptsLesson ComponentsPedagogyCulturally Responsive TeachingTs
(Internal Only)
2
1.01CSP45Welcome to Mobile CSP An overview of the Mobile CSP Course, explains the CS Principles project and why the course uses mobile computing for its programming (coding) component.N/ALecture
Video
3
1.02CSP45CRD-2.B,
AAP-2.A,
CRD-2.B.1,
CRD-2.B.2,
AAP-2.A.1,
AAP-2.A.2,
AAP-2.A.4,
Mazes, Algorithms and ProgrammingUses the Blockly Maze game to introduce the ideas of algorithms and programming and to provide a look at the type of visual, blocks-based programming used in the course.N/ABlocks programs;
Algorithms
Video
Activity
Discussion
1.2
4
1.03Start up45Google Account and Portfolio Set UpThe course requires a Google email (e.g., gmail) account. A Google site is created and used to share student reflections and other course work.N/AVideo
Activity
5
1.04Start up45App Inventor Setup App Inventor is a visual, blocks-based programming language for creating mobile Android apps. Use Google credentials to create an account on MIT App Inventor site and then use it to create a test app to test the mobile device.N/AActivity
6
1.05Start up45Impacts of CS: Blown to BitsTakes a look at the free, online version of Blown to Bits. Readings from this book will be used throughout the course to focus on important issues that highlight the impact of computing on society.N/AReading
7
1.06Start up45Successful Learning in Mobile CSP.This lesson covers tips and suggestions for successful learning in Mobile CSP. This includes: believing your brain is a muscle, practiciing growth mindset, and strategies for being a successful learner.N/AVideo
8
6270
9
2.02App45CRD-2.B,
CRD-2.C,
CRD-2.D,
CRD-2.B.3,
CRD-2.B.4,
CRD-2.B.5,
CRD-2.C.1,
CRD-2.C.2,
CRD-2.C.3,
CRD-2.C.4,
CRD-2.C.5,
CRD-2.C.6,
CRD-2.D.1,
CRD-2.D.2,
I Have a Dream, Part IPlays an MLK speech when a Button is clickedButton, Sound, Label components.

Button.Click event.
Event-driven programming, input, outputTutorial
Video
Self Check
Reflection
Inclusive Content1.2
10
2.03CSP45AAP-2.A,
AAP-2.B,
AAP-2.E,
AAP-2.G,
AAP-2.H,
AAP-2.J,
AAP-2.K,
AAP-2.M.a,
AAP-2.M.b,
AAP-2.A.3,
AAP-2.B.1,
AAP-2.B.6,
AAP-2.E.1,
AAP-2.G.1,
AAP-2.H.1,
AAP-2.J.1,
AAP-2.K.1,
AAP-2.M.1,
AAP-2.M.2,
AAP-2.M.3,
Algorithm BasicsCovers basic algorithm concepts, including sequence, selection (if/else), repetition (loops). . A POGIL activity asks students to write a simple arithmetic algorithm in pseudocode.Algorithms, programming
Activity
Lecture
Video
POGIL
Self Check
Reflection
POGIL3.6
11
2.04App45CRD-1.A,
CRD-1.B,
CRD-2.A,
AAP-2.H.a,
AAP-2.H.b,
CRD-1.A.1,
CRD-1.A.2,
CRD-1.A.3,
CRD-1.A.4,
CRD-1.A.5,
CRD-1.A.6,
CRD-1.B.2,
CRD-2.A.1,
CRD-2.A.2,
AAP-2.H.1,
AAP-2.H.2,
AAP-2.H.3,
I Have a Dream, Part IIExtends the app to include two buttons, the second of which plays a Malcolm X speech. Introduces the if/else statement to toggle between playing and pausing the speech when a button is clicked.

Includes an Explore Curricular Activity
Image, Horizontal Arrangement components.

Button.Click event.
Descriptive names, Toggle button concept: if/else algorithm.Tutorial
Video
Self Check
Reflection
Inclusive Content1.1
3.6
12
2.05CSP45DAT-1.A,
CSN-1.A
DAT-1.A.3,
DAT-1.A.4,
CSN-1.A.1,
Mobile Devices and Apps: Hardware and SoftwareIntroduces computer terminology, such as hardware, software, operating system, programming languages.N/ALecture
Video
Self Check
Reflection
None
13
2.06CSP45CRD-1.B,
CRD-1.C,
CSN-1.D,
IOC-1.A,
IOC-1.B,
IOC-2.A,
CRD-1.B.1,
CRD-1.C.1,
CSN-1.D.1,
CSN-1.D.2,
CSN-1.D.3,
IOC-1.A.1,
IOC-1.A.2,
IOC-1.A.3,
IOC-1.A.4,
IOC-1.B.1,
IOC-1.B.2,
IOC-1.B.3,
IOC-1.B.4,
IOC-1.B.5,
IOC-1.B.6,
IOC-2.A.11,
The Internet and the CloudIntroduces some basic concepts about the Internet and the concept of cloud computing.

Includes an Explore Curricular Activity
N/AReading
Discussion
POGIL
Self Check
Reflection
POGIL
1.1
4.1
5.1
14
2.07App90CRD-1.A,
CRD-1.B,
CRD-1.A.1,
CRD-1.A.2,
CRD-1.A.3,
CRD-1.A.4,
CRD-1.B.2,
I Have a Dream, ProjectsProjects add Text-to-speech and Accelerometer components. Solution requires the use of an if/else algorithmCustom App Icon. Accelerometer Sensor, Text To Speech components.

Accelerometer Shaking event.
Pseudocode, if/else algorithm.Projects
Self Check
Reflection
Inclusive Content
Student Choice
1.1
3.6
15
2.08CSP45DAT-1.ADAT-1.A.1,
DAT-1.A.5,
What is Abstraction?This lecture provides a first look at the concept of abstraction with examples drawn from everyday experience. Provides examples of data abstraction and procedural abstraction.N/AAbstraction, data abstraction, procedural abstractionLecture
Video
Self Check Reflection
None
16
2.09CSP90CRD-2.I,
DAT-1.A,
DAT-1.B,
DAT-1.C.a,
DAT-1.C.b,
CRD-2.I.4.
DAT-1.A.6,
DAT-1.B.1,
DAT-1.B.2,
DAT-1.B.3,
DAT-1.C.1,
DAT-1.C.2,
DAT-1.C.3,
DAT-1.C.4,
DAT-1.C.5,
Binary NumbersA first look at the binary number system, focusing on how to count, how to convert binary to decimal and decimal to binary. It also introduces hexadecimal (base 16) numbers and the general concept of a positional number system. Includes several interactive widgets for practicing with binary and hex.N/ALecture
Videos
Activities
Reflection
2.1
17
2.10CSP45AAP-2.F.a,
AAP-2.F.b,
AAP-2.F.1,
AAP-2.F.2,
AAP-2.F.3,
AAP-2.F.4,
AAP-2.F.5,
Hardware Abstractions: Logic GatesA second look at abstraction, this time focusing on low level hardware such as logic gates. A POGIL activity uses the Logicly app to study logic gates.N/ALecture
Video
POGIL
Activity: Logic.ly
Self Check
Reflection
POGILNone
18
2.11Impacts90DAT-1.A,DAT-1.A.2,Impacts of CS: The Digital ExplosionRead and discuss Chapter 1 of Blown to Bits, which makes the point that today “everything is digital.” Our music, our images and videos, our books are software are all represented as binary data.N/AReading
Discussion
Reflection
2.1
19
10585
20
3.02App90AAP-1.A,
AAP-1.B,
AAP-2.B,
AAP-2.C,
AAP-1.A.1,
AAP-1.A.2,
AAP-1.B.1,
AAP-1.B.2,
AAP-1.B.3,
AAP-2.B.2,
AAP-2.B.3,
AAP-2.B.4,
AAP-2.B.5,
AAP-2.C.1,
AAP-2.C.3,
Paint Pot TutorialMIT App Inventor’s version of the classic finger painting app. Introduces Canvas touched and dragged events.

Introduces global variables for storing and incrementing the radius of the dots drawn.
Button, Canvas, Horizontal Arrangement components.

Basic Graphics drawing procedures.

Button.Click, Canvas.Touched Canvas.Dragged events.
Abstraction: Variables, Incrementing a variable, Concatenating text.Tutorial
Video
Self Check
Reflection
3.1
21
3.03CSP90DAT-1.A,
DAT-1.D,
DAT-1.A.2,
DAT-1.A.7,
DAT-1.A.8,
DAT-1.A.9,
DAT-1.A.10,
DAT-1.D.1,
DAT-1.D.2,
DAT-1.D.3,
DAT-1.D.4,
DAT-1.D.5,
DAT-1.D.6,
DAT-1.D.7,
DAT-1.D.8,
Representing ImagesUses a CS Unplugged lesson to show how bits (0s and 1s) are used to represent images. Students practice applying the image compression technique known as run-length encoding (RLE). Also, provides a brief introduction to ASCII.N/ALecture
Video
CS Unplugged
Self Check
Reflection
2.2
22
3.04App90CRD-2.J,
AAP-2.E.a,
AAP-2.E.a,
AAP-2.H,
AAP-2.I.a,
AAP-2.I.b,
AAP-2.L,
CRD-2.J.1,
CRD-2.J.2,
CRD-2.J.3,
AAP-2.E.2,
AAP-2.H.2,
AAP-2.H.3,
AAP-2.I.1,
AAP-2.I.2,
AAP-2.L.3,
AAP-2.L.4,
Paint Pot ProjectsBasic refinements plus the use of Camera component to add a real-time image as the Canvas background.

Programming refinements to add decrement button plus using and if/else algorithm to prevent the radius from becoming negative.
Button
Canvas
Horizontal Arrangement
Camera components.

Camera TakePicture procedure.

Button.Click
Canvas.Touched
Canvas.Dragged events.
Refinements to existing app

Decrementing a variable, use an if/else algorithm to prevent a negative radius.
-Test cases
-Complex if/else blocks
Projects
Self Check
Reflection
Student Choice3.5
23
3.05App45CRD-2.G,
CRD-2.H,
CRD-2.I,
AAP-3.B,
AAP-3.C,
CRD-2.G.1,
CRD-2.G.2,
CRD-2.G.3,
CRD-2.G.4,
CRD-2.G.5,
CRD-2.H.1,
CRD-2.H.2,
CRD-2.I.5,
AAP-3.B.1,
AAP-3.B.2,
AAP-3.B.3,
AAP-3.B.4,
AAP-3.B.6,
AAP-3.B.7,
AAP-3.C.1,
Paint Pot Refactoring & Procedural AbstractionIntroduces the concepts of refactoring and procedural abstraction. A procedure is used to encapsulate an algorithm that is used 3 times in the app, thereby reducing complexity. Also illustrates how to add comments to MIT App Inventor blocks.Procedure, call procedureProcedural abstraction to reduce redundant code, Comments to document code.Video
Projects
Self Check
Reflection
1.4
24
3.06CSP45DAT-1.A,
DAT-1.B,
DAT-1.A.2,
DAT-1.A.3,
DAT-1.A.6,
DAT-1.B.1,
Error DetectionUses a CS Unplugged lesson (the card trick) to introduce the concept of using redundant bits in data to help detect errors. A POGIL activity asks students to work in teams to figure out how the trick works.N/AVideo demo
Discussion
POGIL
Self Check
Reflection
None
25
3.07CSP45DAT-1.A,
DAT-1.B,
DAT-1.A.2,
DAT-1.A.3,
DAT-1.A.6,
DAT-1.B.1,
Parity Error Checking
(optional)
A follow-up lesson to 3.8 that introduces the concept of parity error checking, with exercises on even- and odd-parity.N/AReading
Self Check
Reflection
None
26
3.08App45AAP-1.A,
AAP-1.C,
AAP-1.D.a,
AAP-1.D.b,
AAP-2.D,
AAP-2.N,
AAP-3.D,
AAP-1.A.3,
AAP-1.A.4,
AAP-1.C.1,
AAP-1.C.2,
AAP-1.C.3,
AAP-1.C.4,
AAP-1.D.1,
AAP-1.D.2,
AAP-1.D.3,
AAP-1.D.4,
AAP-1.D.5,
AAP-1.D.6,
AAP-1.D.7,
AAP-1.D.8,
AAP-2.D.1,
AAP-2.D.2,
AAP-2.N.1,
AAP-3.D.4,
AAP-3.D.5,
Map Tour tutorialIntroduces lists in a map tour of destinations.Map, ListPicker, Web Viewer components.
Make List, Select item from List.

ListPicker before and after picking events.
Web Viewer.goto URL
Lists, Indexing a list, selecting an item from a list, API to wikipedia; strings and string concatenationTutorial
Video
Projects
Self Check
Reflection
Student Choice3.2
3.4
27
3.09App45DAT-2.D,
AAP-1.C,
AAP-1.D.a,
AAP-1.D.b,
DAT-2.D.1,
DAT-2.D.2,
AAP-1.C.1,
AAP-1.C.2,
AAP-1.C.3,
AAP-1.D.1,
AAP-1.D.2,
AAP-1.D.3,
AAP-1.D.4,
AAP-1.D.5,
AAP-1.D.6,
AAP-1.D.7,
AAP-1.D.8,
Map Tour With TinyDBIntroduces adding and removing items to and from lists and persistent storage with TinyDB.TinyDB, Notifier, List remove, Map.Create markerdatabasesLecture
Tutorial
Projects
Self Check
Reflection
3.2
3.10
28
3.10Impacts90DAT-1.D,
DAT-2.B,
DAT-1.D.1,
DAT-1.D.4,
DAT-1.D.5,
DAT-1.D.7,
DAT-1.D.8,
DAT-2.B.1,
DAT-2.B.3,
DAT-2.B.4,
DAT-2.B.5,
Impacts of CS: Electronic DocumentsRead and discuss part of Chapter 3 of Blown to Bits, which focuses on modeling as it applies to image representation. Also introduces the concept of steganography -- i.e., hiding information in documents. An image editor widget is used to let the student hide their initials in a Bitmap, giving practice with binary sequences and ASCII codes. N/AASCII, binary representation of documents, steganography.Reading
Discussion
Reflection
2.3
29
9585
30
4.02App45AAP-3.A.a,
AAP-3.B,
AAP-3.C,
AAP-3.A.1,
AAP-3.A.2,
AAP-3.B.1,
AAP-3.B.4,
AAP-3.B.6,
AAP-3.B.7,
AAP-3.C.1,
LightsOff TutorialA variation of the classic whack-a-mole game. Introduces animation and first use of a procedure definition. A Clock.Timer event is used to move the sprite to random locations on the Canvas.Canvas, Image Sprite, Button, Label, Clock, Sound components.

Clock.Timer to move the sprite, Screen initialize, Sprite touched events.
Procedure definition,
Animation
Tutorial
Video
Self Check
Reflection
3.12
3.13
31
4.03App45CRD-2.E,
CRD-2.F,
CRD-2.E.1,
CRD-2.E.2,
CRD-2.E.3,
CRD-2.E.4,
CRD-2.F.1,
CRD-2.F.2,
CRD-2.F.3,
CRD-2.F.4,
CRD-2.F.5,
CRD-2.F.6,
CRD-2.F.7,
LightsOff ProjectsProjects include adding a score keeping feature and increasing the sprite’s speed as the score increases.Text-to-speech component.

Same events as in tutorial.
Using if/else for score keeping and controlling the sprite’s speed.

Design Thinking and iterative software development
Projects
Self Check
Reflection
Pair ProgrammingStudent Choice
Think-Pair-Share
None
32
4.04App90AAP-2.K.a,
AAP-2.K.b,
AAP-3.D,
AAP-2.K.2,
AAP-2.K.3,
AAP-2.K.4,
AAP-2.K.5,
AAP-3.D.1,
AAP-3.D.2,
AAP-3.D.3,
Logo Part 1The template provides a Logo-like drawing platform restricted to very primitive forward() and right turn() commands -- i.e., commands without parameters (Parameters are introduced in Logo 2 in Unit 5) . Introduces a counting loop and simple procedures to simplify expression of drawing algorithms.
Problems include various sized squares and a face. The commands are too weak to draw a triangle, a shortcoming remedied in Logo 2 in Unit 5.
If/Else
For Each Loop
Procedures for drawing shapes
Algorithms, pseudocode, procedures without parameters, loops.Lecture
Tutorial
Projects
Self Check
Reflection
Student Choice3.8
3.14
33
4.05App45AAP-2.M,
AAP-3.E.a,
AAP-3.E.b,
AAP-2.M.2,
AAP-3.E.1,
AAP-3.E.2,
Coin Flip Simulation TutorialA modeling app to simulate a coin flip. Uses a global variable to represent the coin, App Inventor’s random integer function to generate a 1 or 2, and an if/else algorithm to display heads or tails.If/Else
For Each Loop.
Random variables and pseudorandomness, If/Else, and Loop algorithms.Experiment
Tutorial
Projects
Self Check
Reflection
Student Choice3.9
3.15
34
4.06CSP45AAP-3.F.a,AAP-3.F.3,
AAP-3.F.4,
AAP-3.F.5,
AAP-3.F.6,
AAP-3.F.7,
Coin Flip Experiment
(optional)
This is a lesson about modeling. In the last lesson we wrote the Coin Flip app, which simulates flipping a coin. In this lesson we do an experiment to test the hypothesis that App Inventor’s random number generator is a good model of random behavior. POGIL activity is used to conduct the experiment, where an app is used to simulate 100s of coin flips. Students tabulate results and reflect on whether they support the hypothesis.POGIL Experiment.
Reflection.
POGILThink-Pair-Share3.16
35
4.07CSP45AAP-2.C,
AAP-2.M,
AAP-2.C.2,
AAP-2.C.3,
AAP-2.C.4,
AAP-2.M.2,
Pseudo Random NumbersExplains how computers use an algorithm to generate number sequences that seem random. Introduces the concept of modular arithmetic or clock arithmetic. Involves some math (long division, modular arithmetic, evaluating an equation.Lecture
Video
Self Check
Reflection
3.3
3.9
36
4.08CSP45AAP-3.F.a,
AAP-3.F.b,
AAP-3.F.1,
AAP-3.F.2,
AAP-3.F.3,
AAP-3.F.4,
AAP-3.F.5,
AAP-3.F.6,
AAP-3.F.7,
Real World ModelsExamples of modeling and simulation using real world examples such as climate models, models of the solar system, casino slot machines. Incorporates a POGIL activity to explore an interactive predator/prey model.N/ALecture
Video
POGIL
Self Check
Reflection
POGIL3.16
37
4.09CSP45CRD-2.I.a,CRD-2.I.4,Abstraction: Inside the CPU
(optional)
Uses a web app to simulate a 4-bit computer, with 16 bytes of RAM, a CPU with ACCumulator and other registers. Illustrates progress through higher levels of abstraction as different generations of the simulation focus on the fetch-execute cycle, machine language programming, assembly language programming.N/ALecture
Video
Activity
Self Check
Reflection
None
38
4.10Impacts135IOC-1.B,
IOC-1.F,
IOC-2.A,
IOC-2.B,
IOC-1.B.1,
IOC-1.F.11,
IOC-2.A.1,
IOC-2.A.3,
IOC-2.A.4,
IOC-2.A.5,
IOC-2.A.7,
IOC-2.A.8,
IOC-2.A.9,
IOC-2.A.10,
IOC-2.A.12,
IOC-2.A.13,
IOC-2.A.14,
IOC-2.A.15,
IOC-2.B.11,
Impacts of CS: PrivacyLearn how data is used in computing innovations. In addition, read and discuss Chapter 2 of Blown to Bits, which focuses on the issue of how our privacy is affected by the digital explosion.

Includes an Explore Curricular Activity
N/AReading
Discussion
Reflection
5.6
39
9540
40
Create 1CSP
App
360CREATE PT 1A practice programming performance task to prepare for the final one submitted to the College Board. The CREATE task is one of two required performance tasks by the College Board - a programming one (CREATE) and a written one (EXPLORE).In this programming performance task, students work in pairs to collaboratively develop a mobile app. This includes going through the entire development process of designing, implementing, and debugging a mobile app using Design Thinking iterative software development. Students then document their work by creating a portfolio write-up and share their work through an oral presentation to the class or a recorded video presentation.Hands on project
41
ReviewCSP
App
90Mobile CSP Exam ReviewWhile there is no formal Mobile CSP review, teachers should encourage students to review their portfolios and retry the self-check and Quizly exercises after each lesson.Self-Check
42
Exam 1CSP
App
45Mobile CSP Exam 1 (midterm)Mobile CSP Exam 1 is the midterm exam for the course. This exam covers Units 1-4.Assessment
43
5.02App45AAP-2.L,
AAP-2.M,
AAP-3.A.a,
AAP-3.A.b,
AAP-3.B,
AAP-3.C,
AAP-2.L.2,
AAP-2.M.2,
AAP-3.A.1,
AAP-3.A.2,
AAP-3.A.3,
AAP-3.A.4,
AAP-3.A.5,
AAP-3.A.6,
AAP-3.A.7,
AAP-3.A.8,
AAP-3.A.9,
AAP-3.B.5,
AAP-3.C.1,
AAP-3.C.2,
Logo 2This version of Logo provides procedures with parameters. Problems include drawing polygons using procedures with one or more parameters. The lesson focuses on how procedures with parameters provide a more powerful abstraction for the forward(N) and turn(A) commands.No components or events are programmed.Algorithms, procedures, parameters, loops.Lecture
Tutorial
Projects
Self Check
Reflection
Student Choice3.9
3.12
3.13
44
5.03CSP45AAP-2.L,
AAP-2.O,
AAP-2.P.a,
AAP-2.P.b,
AAP-2.L.1,
AAP-2.L.5,
AAP-2.O.5,
AAP-2.P.1,
AAP-2.P.2,
AAP-2.P.3,
Search AlgorithmsAn introduction to search algorithms, including sequential (linear) search and binary search. Algorithms are explained through various interactive guessing games. A POGIL activity shows students the binary guessing game and asks them to figure out the algorithm and express it in pseudocode.N/AReading
POGIL
Interactive guessing games
Self Check
Reflection
POGILThink-Pair-Share3.11
45
5.04CSP45AAP-2.A,
AAP-2.G,
AAP-2.J,
AAP-2.A.2,
AAP-2.A.4,
AAP-2.G.1,
AAP-2.J.1,
Sorting AlgorithmsAn introduction to the problem of sorting with examples of bubble sort, merge sort, and bucket (radix) sort. The algorithms are demonstrated using card shuffling.N/AVideo demonstrations
Self Check
Reflection
46
5.05App45DAT-2.E,
AAP-2.D,
AAP-2.N.a,
DAT-2.E.1,
AAP-2.D.1,
AAP-2.N.1,
Quiz AppA basic quiz app that uses parallel lists and indexing to keep track of questions and answers.Button, Image, Textbox, Label, Horizontal Arrangement components.

Screen.Initialize, Button.Click events.
Lists, indexing, global index variable.Tutorial
Projects
Self Check
Reflection
Inclusive Content
Student Choice
47
5.06App90AAP-2.N.a,
AAP-2.N.b,
AAP-2.O.a,
AAP-2.O.b,
AAP-2.N.1,
AAP-2.N.2,
AAP-2.O.1,
AAP-2.O.2,
AAP-2.O.3,
AAP-2.O.4,
Quiz App Projects: Loops with ListsExtensions, including keeping score and a linear search using a loop to search through items in the lists.Loops through listsList, indexing, loops with lists, Using variables to to store and update score.Lecture/Video
Tutorial
Projects
Self Check
Reflection
Inclusive Content
Student Choice
3.10
48
5.07CSP90AAP-2.B,
AAP-4.A,
AAP-4.B,
AAP-2.B.7,
AAP-4.A.1,
AAP-4.A.2,
AAP-4.A.3,
AAP-4.A.4,
AAP-4.A.5,
AAP-4.A.6,
AAP-4.A.7,
AAP-4.A.8,
AAP-4.A.9,
AAP-4.B.1,
AAP-4.B.2,
AAP-4.B.3,
Analyzing AlgorithmsApps are used to experimentally analyze sorting and searching algorithms. By timing the algorithms on different sized lists and graphing the results, students can identify which algorithm is which just by the shape of its growth curve as logarithmic (log_2 N), linear, or quadratic (N^2).N/AExperiment: Use apps to time sorting and searching algorithms
Record, graph, and analyze results
Reflection
3.17
49
5.08CSP45AAP-4.A.a,
AAP-4.A.b,
AAP-4.B,
AAP-4.A.2,
AAP-4.A.7,
AAP-4.A.8,
AAP-4.A.9,
AAP-4.B.1,
AAP-4.B.2,
AAP-4.B.3,
Limits of AlgorithmsA video lecture introduces the concepts of intractability and undecidability and heuristics -- i.e., there are problems for which the best algorithms are incapable of solving the problem in a reasonable amount of time and there are problems which cannot be solved by means of an algorithm. POGIL activities focus on password protection (using intractable problem to protect a password) and Traveling Salesman Problem (using the nearest neighbor heuristic.)N/ALecture
Video
POGIL
Self Check
Reflection
POGIL3.17
3.18
50
5.09CSP45CSN-2.A.a,
CSN-2.A.b,
CSN-2.B,
CSN-2.A.1,
CSN-2.A.2,
CSN-2.A.3,
CSN-2.A.4,
CSN-2.A.5,
CSN-2.A.6,
CSN-2.A.7,
CSN-2.B.1,
CSN-2.B.2,
CSN-2.B.3,
CSN-2.B.4,
CSN-2.B.5,
Parallel ComputingThis lesson focuses on parallel and distributed computing.N/ALecture
POGIL
Video
Self Check
Reflection
POGIL4.3
51
5.10Impacts135DAT-2.D,
IOC-2.A,
DAT-2.D.3,
IOC-2.A.2,
IOC-2.A.6,
Impacts of CS: Web SearchesRead and discuss Chapter 4 of Blown to Bits, which focuses on web searching and how searching is done.N/AReading
Discussion
Reflection
52
9585
53
6.02CSP45CSN-1.A,
CSN-1.B,
IOC-1.C,
IOC-1.F,
CSN-1.A.2,
CSN-1.A.3,
CSN-1.A.4,
CSN-1.A.7,
CSN-1.A.8,
CSN-1.B.1,
CSN-1.B.2,
CSN-1.B.3,
CSN-1.B.4,
IOC-1.C.1,
IOC-1.C.2,
IOC-1.C.3,
IOC-1.C.4,
IOC-1.C.5,
IOC-1.F.10,
Computer NetworkingA 3-part lecture that describes what the Internet is, how it differs from the World Wide Web, and how its performance is measured. Uses various online tools to measure latency and bandwidth. Introduces the digital divide.N/ALecture
Videos
Activities
Self Check
Reflection
5.2
54
6.03CSP90CSN-1.A,
CSN-1.B,
CSN-1.C,
CSN-1.E.a,
CSN-1.E.a,
CSN-1.A.5,
CSN-1.A.6,
CSN-1.B.5,
CSN-1.B.6,
CSN-1.B.7,
CSN-1.C.1,
CSN-1.C.2,
CSN-1.C.3,
CSN-1.C.4,
CSN-1.E.1,
CSN-1.E.2,
CSN-1.E.3,
CSN-1.E.4,
CSN-1.E.5,
CSN-1.E.6,
CSN-1.E.7,
Network ArchitectureThis lesson goes more deeply into the infrastructure and mechanics of the Internet. It explains packet switching, TCP/IP and the protocol hierarchy. POGIL activitiesN/ALecture
Videos
POGIL
Activities
Self Check
Reflection
POGIL4.1
4.2
55
6.04CSP45CSN-1.C,CSN-1.C.1,
CSN-1.C.2,
CSN-1.C.3,
CSN-1.C-4,
IP Addresses and Domain NamesIn this lesson students use a DNS simulator app to send messages to other clients on a router. They learn about DNS, IP addresses, and packets. POGIL activitiesN/ALecture
Videos
POGIL
Activities
Self Check
Reflection
POGIL
56
6.05App90IOC-2.B,IOC-2.B.5,Caesar Cipher AppThis lesson provides an opportunity to use more complex algorithms and introduces functions and local variables. Students learn about and practice encryption and decryption with the Caesar Cipher.Functions,
Local Variables
Functions, VariablesLecture
Videos
Activities
Self Check
Reflection
57
6.06CSP90CSN-1.B,
IOC-2.B,
CSN-1.B.1,
IOC-2.B.5,
Cryptography BasicsIntroduction to cryptography (secret writing). This lesson focuses on classical cryptography, including Caesar cipher, substitution cipher, transposition cipher, Vigenere cipher, and frequency analysis. It ends with the key exchange problem. Activities include using interactive tools to encrypt, decrypt, and analyze secret messages.N/ALecture
Videos
Activities
Self Check
Reflection
58
6.07CSP45IOC-2.B,IOC-2.B.6,Cryptography: Securing the InternetIntroduction to the Diffie-Hellman key exchange algorithm and public key cryptography (PKC). Demonstrates how PKC is used to implement secure transactions over the Internet. Activities include interactive public key encryption activities.N/ALecture
Videos
Activities
Self Check
Reflection
59
6.08App45CRD-2.I.a,
CRD-2.I.b,
CRD-2.I.1,
CRD-2.I.2,
CRD-2.I.3,
Debugging Caesar CipherFind and fix several errors contained in the Caesar Cipher app.Functions,
Local Variables
Debugging, syntax, semantics, testing.Lecture/Video
Activity
Self Check
Reflection
60
6.09CSP45IOC-2.B,
IOC-2.C,
IOC-2.B.1,
IOC-2.B.2,
IOC-2.B.3,
IOC-2.B.4,
IOC-2.B.7,
IOC-2.B.8,
IOC-2.B.9,
IOC-2.B.10,
IOC-2.C.1,
IOC-2.C.2,
IOC-2.C.3,
IOC-2.C.4,
IOC-2.C.5,
IOC-2.C.6,
IOC-2.C.7,
Cyber SecurityThis lesson introduces concepts and terminology involved with computer security - how computer systems and data are kept safe. Multi-factor authentication is introduced and explained.N/AVideos
Activities
Self Check
Reflection
5.6
61
6.10Impacts135IOC-1.E,
IOC-1.F,
IOC-2.A,
IOC-2.B,
IOC-2.C,
IOC-1.E.1,
IOC-1.E.2,
IOC-1.E.3,
IOC-1.E.4,
IOC-1.E.5,
IOC-1.E.6,
IOC-1.F.11,
IOC-2.A.5,
IOC-2.B.5,
IOC-2.B.7,
IOC-2.B.8,
IOC-2.B.9,
IOC-2.C.1,
Impacts of CS: Cryptography and the GovernmentRead and discuss small sections of Chapter 5 of Blown to Bits, which focuses on encryption and how it is used to secure transactions on the Internet. Read a short Wikipedia on recent the Apple vs. FBI controversy.N/AReading
Discussion
Reflection
62
9630
63
Explore ProjectImpacts270Explore Project: Impact of Computing InnovationsA research project on a computing innovation related to mobile apps that has had significant impact (both positive and negative) on our society. ProjectProject-Based LearningStudent Choice
64
7.02CSP45DAT-2.A,
DAT-2.C,
DAT-2.D,
IOC-1.A,
DAT-2.A.1,
DAT-2.A.2,
DAT-2.C.5,
DAT-2.C.6,
DAT-2.C.7,
DAT-2.C.8,
DAT-2.D.1,
DAT-2.D.2,
DAT-2.D.5,
IOC-1.A.5,
Big DataAn introduction to Data Science, Impacts of Data, and Data Bias.N/ABig data, data biasVideos
Self Check
Activity: Choose a big data set and use it to explore a hypothesis
Reflection
65
7.03CSP45DAT-2.A,
DAT-2.B,
DAT-2.D,
DAT-2.E,
DAT-2.A.3,
DAT-2.B.2,
DAT-2.D.4,
DAT-2.D.6,
DAT-2.E.1,
DAT-2.E.2,
Visualizing DataA sequence of activities that use Google sheets and Google Maps to process and visualize a data set.N/AActivity: Learn how to use Google sheets as well as Google maps and use them to explore a data set.
Reflection
2.04
66
7.04CSP90CRD-1.C,
DAT-2.A,
DAT-2.C,
DAT-2.D,
DAT-2.E,
CRD-1.C.1,
DAT-2.A.1,
DAT-2.A.2,
DAT-2.A.3,
DAT-2.C.2,
DAT-2.C.4,
DAT-2.D.2,
DAT-2.D.5,
DAT-2.D.6,
DAT-2.E.1,
DAT-2.E.2,
DAT-2.E.3,
DAT-2.E.4,
DAT-2.E.5,
Data Visualization ProjectStudents work in pairs to identify a large data set that interests them, then formulate hypotheses and analyze the data to shed light on the hypotheses.N/AActivity: Use spreadsheet tools to analyze and visualize a data set.Student Choice2.03
2.04
67
7.05App45DAT-2.A,
DAT-2.C,
DAT-2.E,
DAT-2.A.4,
DAT-2.C.1,
DAT-2.C.2,
DAT-2.C.3,
DAT-2.C.4,
DAT-2.E.3,
DAT-2.E.4,
DAT-2.E.5,
Data Map AppStudents create an app using data visualization and map. This app uses csv and GeoJSON files to read in data to visualize on a map and uses a Weather API.File.Read, List.From CSV table,
Any Component blocks, Look up in pairs
Data visualization, File I/O, abstraction with Any Blocks, APIsTutorial
Projects
Self Check
Reflection
Student Choice2.03
2.04
68
7.06App90DAT-2.D,
AAP-1.D.a,
DAT-2.D.1,
AAP-1.D.1,
AAP-1.D.2,
Clicker App with CloudDB (optional)This tutorial uses the CloudDB component to store data to the Cloud. The concept of an asynchronous process is introduced to explain how a Web service works. A nested if/else algorithm is used to process requests. The last part of the lesson shows how to store images on the Web, with their URLs stored in FirebaseDb.CloudDb, Notifier components.

CloudDB.GetValue procedure and GotValue event.
Asynchronous processing. If/else algorithm.Lecture/Video
Tutorial
Projects
Self Check
Reflection
69
7.07CSP45IOC-1.B,
IOC-1.D,
IOC-1.F,
IOC-1.B.1,
IOC-1.D.1,
IOC-1.D.2,
IOC-1.D.3,
IOC-1.F.11,
Artificial Intelligence and Machine LearningArtificial Intelligence and Machine Learning are introduced. The Google Teaching Machine activity is explored. The positive and negative social impacts of Artificial Intelligence are discussed.N/AActivity: Google Teaching Machine5.3
70
7.08Impacts90IOC-1.F,IOC-1.F.1,
IOC-1.F.2,
IOC-1.F.3,
IOC-1.F.4,
IOC-1.F.5,
IOC-1.F.6,
IOC-1.F.7,
IOC-1.F.8,
IOC-1.F.9,
IOC-1.F.11,
Impacts of CS: Who Owns the BitsRead and discuss Chapter 6 of Blown to Bits, which focuses on the issue of copyright.N/AReading
Discussion
Reflection
5.5
71
7450
72
Create 2CSP
App
720CRD-2.B,
AAP-1.D.a,
AAP-1.D.b,
AAP-3.C,
AAP-2.H.a,
AAP-2.K.a,
CRD-2
CREATE PT 2This is the official CREATE programming performance task to be submitted to the College Board. In this programming performance task, students develop a mobile app. This includes going through the entire development process of designing, implementing, and debugging a mobile app using Design Thinking iterative software development.. Students then document their work by creating a portfolio write-up and share their work through an oral presentation to the class or a recorded video presentation.Hands on project
73
8.02CSP10TBD
TBD
About the AP CS Principles ExamDiscussing the format of the AP CSP exam and reviewing the AP CSP Exam Reference Sheet and AP CSP Pseudocode with Tracing Pseudocode Exercises and a Vocabulary Review.Self-Check
74
8.03CSP30TBD
TBD
AP CSP Vocabulary ReviewDiscussing the format of the AP CSP exam and reviewing the AP CSP Exam Reference Sheet and AP CSP Pseudocode with Tracing Pseudocode Exercises and a Vocabulary Review.Self-Check
75
8.04CSP20TBD
TBD
AP CSP PseudocodeDiscussing the format of the AP CSP exam and reviewing the AP CSP Exam Reference Sheet and AP CSP Pseudocode with Tracing Pseudocode Exercises and a Vocabulary Review.Self-Check
76
8.05CSP30TBD
TBD
Tracing Pseudocode ExercisesDiscussing the format of the AP CSP exam and reviewing the AP CSP Exam Reference Sheet and AP CSP Pseudocode with Tracing Pseudocode Exercises and a Vocabulary Review.Self-Check
77
8.06CSP25TBDTBDSample Exam QuestionsSample AP CSP Exam Questions for reviewing and practicing.Self-Check
78
8.07CSP20TBDTBD
The Mobile CS Principles Quiz App
Mobile CS Principles Quiz app for reviewing and practicing.Self-Check
79
8.08CSPN/AN/AAdditional ResourcesThis page contains additional study materials/resources for students who are preparing to take the AP CSP Exam.
80
8.09CSPCreate PT SamplesThis page contains a few selected College Board Create Task samples that used App Inventor as the programming language. Students can use this page to review the scoring criteria and sample responses for the task as well as see how they were scored and whyActivity
Self-Check
81
8.10CSP
Explore Project Samples
This page contains a few selected Explore Impact of Computing Innovation project samples. Students can use this page to review the scoring criteria and sample responses for the project.N/AActivity
Self-Check
82
9135
83
Exam 2 - FinalCSP45TBDTBDMobile CSP Final ExamMobile CSP Final Exam is the last exam for the course which follows the same format at the AP CSP exam. This exam is cumulative and covers Unit 1-7 . It can be used as a practice in review for the AP CSP Exam in May. Assessment
84
9.02Beyond the Exam CSPCareers in IT and CSTake time to learn about and research degrees in CS as well as careers in IT/CS.N/APOGILPOGIL
85
9.03Beyond the Exam CSPFilms in Computer ScienceSuggested on this page are films featuring Computer Scientists. You may want to pick one or two to watch as a class and let students watch the others on their own time as they wish.N/A
86
9.04Beyond the Exam CSPTransitioning to Text-Based Languages and CS AConsidering more CS courses? The next course might be CSA (Java programming) or even Python. This page provides some suggested ways to continue on your CS journey.
87
9.05Beyond the Exam App90Magic 8 BallApp Inventor simulation of the classic Magic-8 Ball game. Introduces the use of a list variable and random selection from the list.
A ListPicker is used to implement a simple settings menu that allows the user to select from Speak, Sound, or Silent options for the feedback provided by the app. An if/else algorithm and a global variable are used to implement the setting.
Accelerometer, Text to Speech, ListPicker, Image, Labels, Sound, Speech recognizer components.

Accelerometer shaking, ListPicker after picking event. Speech Recognizer. GetText events.
Lists, random select from list, modeling a real-world game, an if/else algorithm to handle a settings menu.Tutorial
Projects
Self Check
Reflection
88
9.06Beyond the Exam App90Persisting Photos TutorialThis tutorial plus projects lesson shows how to save photos to TinyDb, a simple on-device database. An if/else algorithm is needed to properly initialize the app when initially reading from the Db. A second project uses a simple list to store multiple photos in the Db.TinyDb, Camera components.

Screen.Initialize, Camera.TakePhoto
events.
Database, tag/value pairs, persistent data, if/else algorithm on initialization.Lecture/Video
Tutorial
Projects
Self Check
Reflection
89
9.07Beyond the Exam App45Where is NorthSimple compass app that also reports the device’s location. Challenging abstraction exercise: Draw direction markers, N, S, E, W, centered along the edges of the Canvas.Canvas, Image Sprite, Orientation sensor, Location sensor (GPS) components.

Orientation changed, Location changed events.
Coordinate system, Abstraction: Canvas.width and Canvas.height propertiesLecture
Tutorial
Self Check
Reflection
90
9.08Beyond the Exam App45My DirectionsUses the devices GPS to provide directions from current location to pre-set list of destinations.List Picker, Web, Location Sensor, Button, Label, TinyDb, Textbox
components.

Screen initialize, ListPicker after picking, Location Sensor Location changed.
Uses Google Maps API, String concatenation is used to construct the appropriate URL for Google Maps.Tutorial
Projects
Self Check
Reflection
91
9.09Beyond the Exam App45The Pong GameThis lesson reinforces the use of procedural abstraction in programming to generalize solutions. Students have two options: 1) Build Pong from Scratch or 2) Enhance a Basic Pong App. Pong was one of the first computer games and consists of a paddle controlled by the user and a ball, which bounces off the edges. Students add enhancements that should use procedures to provide generalized solutions and require if/else statements.Canvas, ImageSprite, Ball, Buttons, Label, Global VariablesIf/Else conditionals, Variables,
Procedural Abstraction
Tutorial
Projects
Self Check
Reflection
92
9.10Beyond the Exam App45Debugging PongThis lesson revisits the Pong game. Now that students understand how it should work correctly, they find bugs in a game that doesn't work correctly. Before, the listen to a presentation that describes what debugging is as well as the different types of bugs in programs. The lesson reinforces their understanding of what it means for a program to work correctly.Canvas, ImageSprite, Ball, Buttons, Label, Global VariablesDebugging, syntax, semantics, testing.Lecture/Video
Activity
Self Check
Reflection
93
9.11Beyond the Exam App45Multiple Choice Quiz App: List of ListsThis lesson introduces the concept of a list of lists, where each item in the outer list (instead of being a number, boolean, or text value) is another list, or sublist. Students will also use a ListPicker component to display the answer choices (the sublist) to the user in a user-friendly way.Lists, ListPickerListsTutorial
Self Check
Reflection
94
9.12Beyond the Exam App90No Texting While BusyThe Texting component is used to respond automatically to incoming Text messages. Permits Texting over Wifi (VoIP) by using Google Voice.Texting, Label components.

Texting Message Received event.
Texting VoIP using Google Voice app and Web service.Tutorial
Projects
Self Check
Reflection
95
9.13Beyond the Exam App90Socially Aware App: Broadcast Hub TutorialUsers text the word ‘join’ to the hub device and are included in the members list. When members text the list, their messages are broadcast to all members. A for-each-element-in-list loop is used to send email messages to hub members.Texting, Notifier
components.

Texting Message Received event.
List processing, if/else logic, for-each loop to manage hub.Tutorial
Projects
Self Check
Reflection
96
9.14Beyond the Exam App45Map Tour Tutorial with Activity Starter and Google MapsThe Map Tour allows a user to select a location from a list and it then launches the device’s Google Maps app to show the selected location on the map.Activity starter, Google Maps API, lists, location sensorListsLecture
Tutorial
Projects
Self Check
Reflection
97
13630
98
Total Minutes5940
99
Total number
of 45 minute class periods
132