Only this pageAll pages
Powered by GitBook
1 of 14

Thunkable Curriculum Materials

About the Project

This is a collection of Thunkable curriculum materials designed for high school computer science, introductory courses and AP CSP.

Warning: Material is not perfectly organized. But lots of stuff here!

Most sections of materials will have theory-rich Lessons to introduce students to content, practical Activities (formative) where students acquire skills, and culminating Projects (summative) for students to demonstrate the ability to apply and transfer knowledge and skills.

Created and curated by Joe Mazzone

Joe Mazzone, former Computer and Software Engineering instructor at William M. Davies, Jr. Career and Technical High School in Lincoln, Rhode Island.

Joe is now a Senior Product Manager/Product Development Lead at John Wiley & Sons, Inc., working on Coding Rooms and zyBooks.

Like what Joe created? ☕ Buy him a coffee: https://www.buymeacoffee.com/JoeMazzone

Introduction

Introduction

Parts of an Algorithm

An algorithm is a sequence of precise instructions that solves some problem or performs some computation. A program is an algorithm that is written in a programming language that runs on a computer.

Behind all of the software we use on a daily basis, there's a code being run with all sorts of terms and symbols. Surprisingly, it can often be broken down into three simple programming structures called sequence, selection, and repetition (loops). These come together to form the most basic instructions and algorithms for all types of software.

A sequence is a series of actions that is completed in a specific order. Action 1 is performed, then Action 2, then Action 3, etc., until all of the actions in the sequence have been carried out.

A sequence we do every day is a morning routine. You might wake up, drink some water, take a shower, eat breakfast, and so on. Everyone's routine is different, but they're all made up of a sequence of various actions.

Selections are a bit different. Instead of following a specific order of events, they ask a question in order to figure out which path to take next.

Let's say you go to brush your teeth, and you find that you're out of toothpaste. You'd then ask, "Do I have any more toothpaste?" If the answer is no, then you would add it to your shopping list. But if the answer is yes, you would just use the toothpaste. This is really all a selection is doing: answering a question based on what it finds.

The third programming structure is a repetition or loop. Like selections, loops ask questions. However, the difference is that they ask the same question over and over and over again, until a certain task is complete.

For example, take the act of hammering a nail. Even though you may not realize it, you're constantly asking yourself, "Is the nail all the way in?" When the answer is no, you hammer the nail again. You continue to repeat this question until the answer is yes, and then you stop. Loops allow programmers to efficiently code repetitive tasks instead of having to write the same actions over and over again.

Selections are a bit different. Instead of following a specific order of events, they ask a question in order to figure out which path to take next. Selections are a bit different. Instead of following a specific order of events, they ask a question in order to figure out which path to take next. Selections are a bit different. Instead of following a specific order of events, they ask a question in order to figure out which path to take next.

These three programming structures may seem pretty simple on their own, but when combined they can create some pretty complex software. In fact, all algorithms use only these three simple structures.

1. Using an everyday scenario, provide an example algorithm with sequence.

2. Using an everyday scenario, provide an example algorithm with selection.

3. Using an everyday scenario, provide an example algorithm with repetition.

Thunkable

https://thunkable.com/

Thunkable enables anyone to create beautiful and powerful mobile apps!

All apps built on Thunkable work for both Android and iOS (minimum requirements).

Click "Sign In" on the Thunkable site.

Signing In

Due to us using shared Android tablets in the classroom, we must use the "Sign in with email" option to use Thunkable X. You can still use your school Google email account, just don't use the "Sign up with Google" option.

Clicking on "Sign in with email" will invite you to enter your email address and click a button saying "Email me the link". Once you do this, Thunkable will send you a magic link to your email inbox.

The email will look something like the image below. Pressing the "Click to Sign In" button will open your Thunkable account.

Create a New Project

Click on "Create New App".

Create a new app named "Cross Platform App Example".

Design Interface

The Design area is where you add programmable objects to your project and change the appearance of your app.

The object tree is where you can see the objects that are part of your project. You can rearrange and delete objects here.

Blocks Interface

The Blocks area is where you add code to give your program behavior.

Live Testing App

Thunkable Live is an app that connects the projects in your web browser directly to your mobile device. It allows you to do two things:

  1. You can Live Test your project. Any changes you make in your browser are displayed on your device, while you are working.

  2. You can Live Preview any of your projects, directly on your device, without the need to be logged in to your computer.

The Thunkable app allows you to live test your app on your device, in real-time, while you are building it. Not even hard core developers have this super power. You can also preview all your app projects from the comfort of your mobile device.

Making Apps

Page 1

Images and Animations

Page 2

Procedural Abstraction

Page 3

Programming Lists of Data

Page 4

Data Persistence

Page 5

Other Resources