# Discover Advanced Coding With Drones

# Power To The Code!

In *Discover Advanced Coding with Drones*, students combine DroneBlocks, a drag-and-drop coding environment, Tello drones and three different **application-based**, **scaffolded** online courses to create complex, autonomous, **fully-reusable** flight missions. With 22 programming missions, five Tello drones and all the additional supplies and educator materials needed to host a drone fleet, *Discover Advanced Coding with Drones* perfectly melds computer science with one of the world’s fastest-growing technologies, preparing learners for the not-too-distant drone-filled future. From applying algebra and geometry to their codes to exploring Python programming, this course puts the power of flight into the hands of learners with multiple coding languages, **intrinsic motivation** and top-of-the-line indoor drones.

### Subject Targets:

Technology, Robotics & Coding, Math Connections

### Technical Requirements:

*Intro to DroneBlocks* and *Advanced Programming with DroneBlocks*

5 compatible devices (one per drone) running the DroneBlocks app and 1 compatible device running the Tello app.

The DroneBlocks app requires the use of a Wifi-enabled smartphone, tablet, Chromebook, desktop or laptop running Android, iOS or ChromeOS. (Note: DroneBlocks is not compatible with FireOS, the operating system for Amazon tablets.)

The Tello app required for firmware updates requires the use of a Wifi-enabled smartphone or tablet running Android or iOS. (Note: the Tello app is not compatible with FireOS, the operating system for Amazon tablets).

**Tello Drone Programming with Python**

5 compatible devices (one per drone) running Python and Anaconda and 1 compatible device running the Tello app.

Python and Anaconda require the use of desktops or laptops running Windows, OSX or Linux.

The Tello app required for firmware updates requires the use of a Wifi-enabled smartphone or tablet running Android or iOS. (Note: the Tello app is not compatible with FireOS, the operating system for Amazon tablets).

### Curriculum Topics:

**Intro to DroneBlocks**

- Introduction to Coding & Launching Missions
- Hand Landings & Pitch and Roll
- Yaw in a Square
- Loops and Flips
- Variables for the Win
- Adding Logic With If/Else Statements

**Advanced Programming with DroneBlocks**

- Elevate Squares with Nested Loops
- The Polygon Equation with Variables
- 3D Coordinates & the Right-Hand Rule
- Fly Points on a Line Using Slope
- Fly an Arc Pattern on the Horizontal X/Y Plane
- Fly a Loop Pattern on the Vertical Plane
- Fly Using the Sine Wave Equation
- Orbit Around a Center Point

**Tello Drone Programming with Python**

- Setting Up Your Python Programming Environment
- Brief Overview of User Datagram Packets (UDP)
- Sending and Receiving UDP Packets
- Box Mission Using Tello SDK Commands
- Custom Functions: Spin and Bounce
- Keyboard Commands
- Unit Conversions
- Retry Commands

### Training:

- Half hour free webinar training for purchases of $500+
- One hour free webinar training for purchases of $1000+
- Additional training available for purchase

### Complete Program Includes:

- Instructor Guide: 1
- Curriculum Digital Download: 1
- PCS Edventures Tello Flight Manual: 1
- Printed Digital Resource License Keys Granting Access to:
- Introduction to DroneBlocks
- Advanced Tello Programming with DroneBlocks
- Tello Drone Programming with Python
- Storage tub: 1
- LiPo safe storage bag: 1
- Tello carrying cases: 5
- Tello drones: 5
- LiPo batteries: 15
- USB charging cables: 5
- Extra propellers (4ct): 5
- 3-Port LiPo multi-chargers: 5
- USB-to-Wall multi-charger: 1

### Computer Science:

While computer science standards vary from state-to-state, we hope this list of the Idaho State Standards provides a useful starting point for your alignment.

### Algorithms and Programming:

- 3-5.AP.06. Construct and test problem solutions using a block-based visual programming language, both independently and collaboratively (e.g. pair programming).
- 6-8.AP.02. Compare different algorithms that may be used to solve the same problem by time and space efficiency.
- 9-10.AP.01. Design and develop a software artifact by leading, initiating, and participating in a team (e.g. pair programming, agile software development).
- 9-10.AP.03. Compare a variety of programming languages available to solve problems and develop systems.
- 9-10.AP.06. Understand the notion of hierarchy and abstraction in high-level languages, translation, instruction sets, and logic circuits.
- 9-10.AP.09. Demonstrate code reuse by creating programming solutions using APIs and libraries (e.g. using text to speech in App Inventor, using Twitter API).
- 9-10.AP.18. Evaluate and improve program quality using various debugging and testing methods and examine the difference between verification and validation.
- 11-12.AP.04. Modify an existing program to add additional functionality and discuss the positive and negative implications (e.g., breaking other functionality).

### Computing Systems:

- 3-5.CS.02. Identify, using accurate terminology, simple hardware and software problems and apply strategies for solving these problems (e.g. rebooting the device, checking the power, access to the network, read error messages, discuss problems with peers and adults).
- 9-10.CS.04. Demonstrate the multiple levels of abstraction that support program execution including programming languages, translations, and low-level systems including the fetch-execute cycle (e.g. model, dance, create a play/presentation).

### Data Analysis:

- 9-10.DA.06. Convert between binary, decimal, octal, and hexadecimal representations of data.

### Impacts of Computing:

- 9-10.IC.04. Describe how computer science shares features with creating and designing an artifact such as in music and art.
- 9-10.IC.10. Explain how computer science fosters innovation and enhances other careers and disciplines.
- 11-12.IC.01 Understand the ecosystem of open source software development and its impact on global collaboration through an open-source software project (e.g. https://codein.withgoogle.com).

### Networks and Internet:

- 9-10.NI.02. Illustrate the basic components of computer networks, protocols and routing (e.g. team based activities which may include drawing a diagram of a network including routers, switches, local networks, and end user computing devices, creating models with string and paper, see CS unplugged activities).

### Common Core State Standards:

- CCSS.MATH.CONTENT.6.EE.A.2. Write, read, and evaluate expressions in which letters stand for numbers.
- CCSS.MATH.CONTENT.6.EE.B.6. Use variables to represent numbers and write expressions when solving a real-world or mathematical problem; understand that a variable can represent an unknown number, or, depending on the purpose at hand, any number in a specified set.
- CCSS.MATH.CONTENT.6.EE.B.7. Solve real-world and mathematical problems by writing and solving equations of the form x + p = q and px = q for cases in which p, q and x are all nonnegative rational numbers.
- CCSS.MATH.CONTENT.6.EE.C.9. Use variables to represent two quantities in a real-world problem that change in relationship to one another; write an equation to express one quantity, thought of as the dependent variable, in terms of the other quantity, thought of as the independent variable. Analyze the relationship between the dependent and independent variables using graphs and tables, and relate these to the equation. For example, in a problem involving motion at constant speed, list and graph ordered pairs of distances and times, and write the equation d = 65t to represent the relationship between distance and time.

### Functions:

- CCSS.MATH.CONTENT.8.F.A.1. Understand that a function is a rule that assigns to each input exactly one output. The graph of a function is the set of ordered pairs consisting of an input and the corresponding output.
- CCSS.MATH.CONTENT.8.F.A.3. Interpret the equation y = mx + b as defining a linear function, whose graph is a straight line.

### Geometry:

- CCSS.MATH.CONTENT.4.MD.C.5. Recognize angles as geometric shapes that are formed wherever two rays share a common endpoint, and understand concepts of angle measurement.
- CCSS.MATH.CONTENT.7.G.B.5. Use facts about supplementary, complementary, vertical, and adjacent angles in a multi-step problem to write and solve simple equations for an unknown angle in a figure.
- CCSS.MATH.CONTENT.8.G.B.8. Apply the Pythagorean Theorem to find the distance between two points in a coordinate system.
- CCSS.MATH.CONTENT.HSG.SRT.C.8. Use trigonometric ratios and the Pythagorean Theorem to solve right triangles in applied problems.

### The Number System:

- CCSS.MATH.CONTENT.6.NS.C.5. Understand that positive and negative numbers are used together to describe quantities having opposite directions or values (e.g., temperature above/below zero, elevation above/below sea level, credits/debits, positive/negative electric charge); use positive and negative numbers to represent quantities in real-world contexts, explaining the meaning of 0 in each situation.
- CCSS.MATH.CONTENT.6.NS.C.6. Understand a rational number as a point on the number line. Extend number line diagrams and coordinate axes familiar from previous grades to represent points on the line and in the plane with negative number coordinates.
- CCSS.MATH.CONTENT.6.NS.C.8. Solve real-world and mathematical problems by graphing points in all four quadrants of the coordinate plane. Include use of coordinates and absolute value to find distances between points with the same first coordinate or the same second coordinate.

### Trigonometry:

- CCSS.MATH.CONTENT.HSF.TF.A.1. Understand radian measure of an angle as the length of the arc on the unit circle subtended by the angle.
- CCSS.MATH.CONTENT.HSF.TF.B.5. Choose trigonometric functions to model periodic phenomena with specified amplitude, frequency, and midline.

*© Copyright 2010. National Governors Association Center for Best Practices and Council of Chief State School Officers. All rights reserved.*