Unit1

# Unit 1 - Course A

The first 10 hour course provides students with the foundational skills and knowledge to begin using computer programming as a tool to learn about and develop algebraic functions. Students will be introduced to a graphical programming language designed for Algebra instruction, through which they will gain a deeper understanding of the order of operations, create images with algebraic expressions, and learn a technique for creating functions called the Design Recipe.

By the end of Course A students will have the tools necessary to turn word problems from their own Algebra class into functions that can be used as mini apps.

## Week 1

### Lesson 1: Evaluation Blocks and Arithmetic Expressions

• Getting Started
• Activity: Evaluation Blocks

Students will begin using Evaluation Blocks to explore the concept of math as a language, and more specifically, a programming language. By composing arithmetic expressions with Evaluation Blocks, students will be able to visualize how expressions follow the order of operations.

### Lesson 2: Strings and Images

• Getting Started
• Activity: Strings and Images

To compute more than just numbers, students will need to learn about two new data types, Strings (any string of alphanumeric characters) and Images. Using these new data types, we'll compose programs that produce and manipulate images.

### Lesson 3: Contracts, Domain, and Range

• Getting Started
• Wrap-up
• Activities

Contracts provide a way for students to better understand and discuss functions. Through this lesson, students will look at known functions and come up with the contracts that describe those functions.

### Lesson 4: Writing Contracts

• Writing Contracts
• Getting Started

Students will work their way through a number of new functions, first using each to solve a problem, and then writing a contract which describes it.

### Lesson 5: Defining Variables and Substitution

• Getting Started
• Defining Variables and Substitution

In this activity, students will learn to define variables that can be used to reference values and expressions. Once defined, their variables can be used repeatedly throughout a program as substitutes for the original values or expressions.

### Lesson 6: Fast Functions

• Getting Started
• Large Group Activity (15 minutes)
• Small Group Activity (20 minutes)

In this lesson we will build on students' understanding variables by making functions that reduce the number of inputs required. These 'fast functions' allow students to practice using the Design Recipe to develop simple functions without the additional overhead of parsing a word problem.

## Week 1

### Lesson 7: Composite Functions

• Getting Started
• Composite Functions

In the past lessons students have defined Variables and written Fast Functions. In this stage, they will continue to explore function writing with ever increasing complexity.

### Lesson 8: The Design Recipe

• Getting Started
• Activity

In the last stage, students wrote some very simple functions - but more sophisticated functions demand a more thoughtful approach. The Design Recipe is a structured approach to writing functions that includes writing a purpose statement and test cases to ensure that the function works as expected. Once students have mastered the Design Recipe process, they can apply it to any word problem they encounter.

### Lesson 9: Solving Word Problems with the Design Recipe

• Getting Started
• Activity (45 minutes)
• Textbook Problem Extension

In this stage students practice using the Design Recipe to write functions which solve for word problems. Towards the end of the lesson students should be ready to begin using the Design Recipe on problems from your own math curriculum.

### Lesson 10: Rocket Height

• Getting Started
• Activity
• Extension Activities

Using the Design Recipe, students will work through a series of word problems about calculating the height of a rocket after a given number of seconds from launch. The functions they write will be used to animate the rocket launch.