3.1 Getting Started
3.1.1 Motivating Example: Flags
3.1.2 Numbers
3.1.3 Expressions
3.1.4 Terminology
3.1.5 Strings
3.1.6 Images
3.1.6.1 Combining Images
3.1.6.2 Making a Flag
3.1.7 Stepping Back: Types, Errors, and Documentation
3.1.7.1 Types and Contracts
3.1.7.2 Format and Notation Errors
3.1.7.3 Finding Other Functions: Documentation
3.2 Naming Values
3.2.1 The Definitions Pane
3.2.2 Naming Values
3.2.2.1 Names Versus Strings
3.2.2.2 Expressions versus Statements
3.2.3 The Program Directory
3.2.3.1 Understanding the Run Button
3.2.4 Using Names to Streamline Building Images
3.3 From Repeated Expressions to Functions
3.3.1 Example: Similar Flags
3.3.2 Defining Functions
3.3.2.1 How Functions Evaluate
3.3.2.2 Type Annotations
3.3.2.3 Documentation
3.3.3 Functions Practice: Moon Weight
3.3.4 Documenting Functions with Examples
3.3.5 Functions Practice: Cost of pens
3.3.6 Recap: Defining Functions
3.4 Conditionals and Booleans
3.4.1 Motivating Example: Shipping Costs
3.4.2 Conditionals: Computations with Decisions
3.4.3 Booleans
3.4.3.1 Other Boolean Operations
3.4.3.2 Combining Booleans
3.4.4 Asking Multiple Questions
3.4.5 Evaluating by Reducing Expressions
3.4.6 Composing Functions
3.4.6.1 How Function Compositions Evaluate
3.4.6.2 Function Composition and the Directory
3.4.7 Nested Conditionals
3.4.8 Recap: Booleans and Conditionals