# CA SSD: C4.9

## CodeHS Lessons

Create programs using control structures, procedures, functions, parameters, variables, error recovery, and recursion.

 Standard 1.14 Control Structures Example
 Standard 3.2 Variables and Types 3.3 User Input 5.1 Booleans 5.2 If Statements 5.3 Comparison Operators 5.4 Logical Operators 5.5 Floating Point Numbers and Rounding 7.1 While Loops 7.2 For Loops 7.3 Break and Continue 7.4 Nested Control Structures 9.1 Functions 9.2 Functions and Parameters 9.3 Namespaces in Functions 9.4 Functions and Return Values 9.5 Exceptions 10.1 Indexing 10.2 Slicing 10.3 Immutability 10.4 Strings and For Loops 10.5 The in Keyword 10.6 String Methods 12.1 Tuples 12.2 Lists 12.3 For Loops and Lists 12.4 List Methods 13.1 2d Lists 14.1 Project: Guess the Word 23.3 Built-In Methods 23.4 Operator Overloading 23.5 Class Variables vs. Instance Variables 23.6 Inheritance 21.1 Project: Who Said It? 22.1 Let's Build Mastermind 23.2 Methods 23.1 Classes and Objects
 Standard 3.1 Boolean Expressions and if Statements 3.2 if Statements and Control Flow 3.3 if-else Statements 3.4 else if Statements 3.5 Compound Boolean Expressions 3.6 Equivalent Boolean Expressions 3.7 Comparing Objects 4.1 Iteration 4.2 For Loops 4.3 Developing Algorithms Using Strings 4.4 Nested Iteration 10.1 Recursion 10.2 Recursive Searching 10.3 Recursive Sorting
 Standard 1.11 For Loops 1.12 If Statements 1.13 If/Else Statements 1.14 While Loops in Karel 1.15 Control Structures Example 1.16 Debugging Strategies 1.17 Karel Algorithms 4.1 Booleans 4.2 Logical Operators 4.3 Comparison Operators 4.4 If Statements 4.5 Key Events 4.6 For Loops in JavaScript 4.7 General For Loops 4.8 For Loop Practice 4.9 Random Numbers 4.10 While Loops 4.11 Loop and a Half 5.1 Functions and Parameters 1 5.2 Functions and Parameters 2 5.3 Functions and Parameters 3 5.4 Functions and Return Values 1 5.5 Functions and Return Values 2 5.6 Local Variables and Scope 5.8 Basic JavaScript and Graphics Challenges
 Standard 33.1 Indexing 33.2 Slicing 33.3 Immutability 33.4 Strings and For Loops 33.5 The in Keyword 33.6 String Methods 27.1 Classes and Objects 27.2 Methods 27.3 Built-In Methods 27.4 Operator Overloading 27.5 Class Variables vs. Instance Variables 27.6 Inheritance 29.1 Project: Who Said It? 30.1 Let's Build Mastermind
 Standard 1.11 For Loops 1.12 If Statements 1.13 If/Else Statements 1.14 While Loops in Karel 1.15 Control Structures Example 1.16 Debugging Strategies 1.17 Karel Algorithms 4.1 Booleans 4.2 Logical Operators 4.3 Comparison Operators 4.4 If Statements 4.6 Key Events 4.7 For Loops in JavaScript 4.8 General For Loops 4.9 For Loop Practice 4.10 Random Numbers 4.11 While Loops 4.12 Loop and a Half 5.1 Functions and Parameters 1 5.2 Functions and Parameters 2 5.3 Functions and Parameters 3 5.4 Functions and Return Values 1 5.5 Functions and Return Values 2 5.6 Local Variables and Scope 5.8 Basic JavaScript and Graphics Challenges
 Standard 1.14 Control Structures Example
 Standard 1.14 Control Structures Example
 Standard 1.14 Control Structures Example
 Standard 5.1 Variables 5.6 Parameters 5.9 Using i in For Loops 5.10 Extended Loop Control 7.2 If/Else Statements 8.1 Putting Together Control Structures
 Standard 5.1 Variables 5.6 Parameters 5.9 Using i in For Loops 5.10 Extended Loop Control 7.2 If/Else Statements 8.1 Putting Together Control Structures
 Standard 13.11 Variables 13.13 Parameters 13.14 Using i in For Loops 13.15 Extended Loop Control 13.17 If/ Else Statements 13.19 Putting Together Control Structures
 Standard 3.11 Variables 3.13 Parameters 3.14 Using i in For Loops 3.15 Extended Loop Control 3.17 If/ Else Statements 3.19 Putting Together Control Structures
 Standard 6.11 Variables 6.13 Parameters 6.14 Using i in For Loops 6.15 Extended Loop Control 6.17 If/ Else Statements 6.19 Putting Together Control Structures
 Standard 7.14 Functions 7.15 Functions and Parameters 7.16 Namespaces in Functions 7.17 Functions and Return Values 7.18 Exceptions 7.8 Comparison Operators 7.9 Logical Operators 7.11 For Loops 7.12 Break and Continue
 Standard 6.1 Tuples 6.2 Lists 6.3 For Loops and Lists 6.4 List Methods 6.5 2d Lists
 Standard 1.11 Variables 1.13 Parameters 1.14 Using i in For Loops 1.15 Extended Loop Control 1.17 If/ Else Statements 1.19 Putting Together Control Structures 2.2 Variables and Types 2.3 User Input 4.1 Booleans 4.2 If Statements 4.3 Comparison Operators 4.4 Logical Operators 4.5 Floating Point Numbers and Rounding 5.1 While Loops 5.2 For Loops 5.3 Break and Continue 5.4 Nested Control Structures 6.1 Functions 6.2 Functions and Parameters 6.3 Namespaces in Functions 6.4 Functions and Return Values 6.5 Exceptions 8.1 Indexing 8.2 Slicing 8.3 Immutability 8.4 Strings and For Loops 8.5 The in Keyword 8.6 String Methods 9.1 Tuples 9.2 Lists 9.3 For Loops and Lists 9.4 List Methods 10.1 2d Lists 11.1 Project: Guess the Word 14.1 Classes and Objects 14.2 Methods 14.3 Built-In Methods 14.4 Operator Overloading 14.5 Class Variables vs. Instance Variables 14.6 Inheritance 15.1 Advanced Challenges with Tracy
 Standard 1.13 Control Structures Example
 Standard 4.1 Variables 4.3 Parameters 4.4 Using i in For Loops 4.5 Extended Loop Control 6.2 If/ Else Statements 8.1 Putting Together Control Structures
 Standard 2.14 Control Structures Example 2.17 Debugging Strategies
 Standard 1.11 Variables 1.13 Parameters 1.14 Using i in For Loops 1.15 Extended Loop Control 1.17 If/ Else Statements 1.19 Putting Together Control Structures
 Standard 1.13 Control Structures Example
 Standard 1.13 Control Structures Example
 Standard 1.13 Control Structures Example
 Standard 4.1 Variables 4.3 Parameters 4.4 Using i in For Loops 4.5 Extended Loop Control 5.2 If/ Else Statements 6.1 Putting Together Control Structures
 Standard 2.11 Variables 2.13 Parameters 2.14 Using i in For Loops 2.15 Extended Loop Control 2.17 If/ Else Statements 2.19 Putting Together Control Structures 3.2 Variables and Types 3.3 User Input 4.1 Booleans 4.2 If Statements 4.3 Comparison Operators 4.4 Logical Operators 4.5 Floating Point Numbers and Rounding 5.1 While Loops 5.2 For Loops 5.3 Break and Continue 5.4 Nested Control Structures 6.1 Functions 6.2 Functions and Parameters 6.3 Namespaces in Functions 6.4 Functions and Return Values 6.5 Exceptions 7.1 Indexing 7.2 Slicing 7.3 Immutability 7.4 Strings and For Loops 7.5 The in Keyword 7.6 String Methods 8.1 Tuples 8.2 Lists 8.3 For Loops and Lists 8.4 List Methods 9.1 2d Lists 10.1 Project: Guess the Word 12.1 Classes and Objects 12.2 Methods 12.3 Built-In Methods 12.4 Operator Overloading 12.5 Class Variables vs. Instance Variables 12.6 Inheritance 13.1 Advanced Challenges with Tracy 16.1 Project: Who Said It? 18.1 Let's Build Mastermind
 Standard 5.1 Boolean Expressions and if Statements 5.2 if Statements and Control Flow 5.3 if-else Statements 5.4 else if Statements 5.5 Compound Boolean Expressions 5.6 Equivalent Boolean Expressions 5.7 Comparing Objects 7.1 Iteration 7.2 For Loops 7.3 Developing Algorithms Using Strings 7.4 Nested Iteration 10.6 Recursion
 Standard 2.14 Control Structures Example 2.17 Debugging Strategies
 Standard 2.14 Control Structures Example 2.17 Debugging Strategies
 Standard 2.12 Variables 2.14 Parameters 2.16 Using i in For Loops 2.17 Extended Loop Control 2.19 If/ Else Statements 2.22 Putting Together Control Structures 5.2 Variables and Types 5.3 User Input 6.1 Booleans 6.2 If Statements 6.3 Comparison Operators 6.4 Logical Operators 6.5 Floating Point Numbers and Rounding 7.1 While Loops 7.2 For Loops 7.3 Break and Continue 7.4 Nested Control Structures 8.1 Functions 8.2 Functions and Parameters 8.3 Namespaces in Functions 8.4 Functions and Return Values 8.5 Exceptions 9.1 Indexing 9.2 Slicing 9.3 Immutability 9.4 Strings and For Loops 9.5 The in Keyword 9.6 String Methods 10.1 Tuples 10.2 Lists 10.3 For Loops and Lists 10.4 List Methods 11.1 2d Lists 12.1 Project: Guess the Word 16.1 Advanced Challenges with Tracy 18.1 Project: Who Said It?
 Standard 3.14 Control Structures Example 3.17 Debugging Strategies
 Standard 2.14 Control Structures Example 2.17 Debugging Strategies
 Standard 1.11 Variables 1.13 Parameters 1.14 Using i in For Loops 1.15 Extended Loop Control 1.17 If/ Else Statements 1.19 Putting Together Control Structures
 Standard 2.14 Control Structures Example 2.17 Debugging Strategies
 Standard 1.11 Variables 1.13 Parameters 1.14 Using i in For Loops 1.15 Extended Loop Control 1.17 If/ Else Statements 1.19 Putting Together Control Structures
 Standard 2.14 Control Structures Example 2.17 Debugging Strategies
 Standard 3.11 Variables 3.13 Parameters 3.14 Using i in For Loops 3.15 Extended Loop Control 3.17 If/ Else Statements 3.19 Putting Together Control Structures
 Standard 2.14 Control Structures Example 2.17 Debugging Strategies
 Standard 1.10 For Loops 1.11 If Statements 1.12 If/Else Statements 1.13 While Loops in Karel 1.14 Control Structures Example 1.15 Debugging Strategies 1.16 Karel Algorithms 4.1 Booleans 4.2 Logical Operators 4.3 Comparison Operators 4.4 If Statements 4.5 Key Events 4.6 For Loops in JavaScript 4.7 General For Loops 4.8 For Loop Practice 4.9 Random Numbers 4.10 While Loops 4.11 Loop and a Half 5.1 Functions and Parameters 1 5.2 Functions and Parameters 2 5.3 Functions and Parameters 3 5.4 Functions and Return Values 1 5.5 Functions and Return Values 2 5.6 Local Variables and Scope 5.8 Basic JavaScript and Graphics Challenges
 Standard 2.14 Control Structures Example 2.17 Debugging Strategies
 Standard 3.3 Variables and Types 3.4 User Input 4.1 Booleans 4.2 If Statements 4.3 Comparison Operators 4.4 Logical Operators 4.5 Floating Point Numbers and Rounding 5.1 While Loops 5.2 For Loops 5.3 Break and Continue 5.4 Nested Control Structures 6.1 Functions 6.2 Functions and Parameters 6.3 Namespaces in Functions 6.4 Functions and Return Values 6.5 Exceptions 8.1 Indexing 8.2 Slicing 8.3 Immutability 8.4 Strings and For Loops 8.5 The in Keyword 8.6 String Methods 9.1 Tuples 9.2 Lists 9.3 For Loops and Lists 9.4 List Methods 9.5 2d Lists 15.3 Built-In Methods 19.1 Let's Build Mastermind 15.4 Operator Overloading 15.5 Class Variables vs. Instance Variables 15.6 Inheritance 13.1 Project: Guess the Word 17.1 Project: Who Said It? 15.2 Methods 15.1 Classes and Objects 18.19 Putting Together Control Structures 18.17 If/ Else Statements 18.15 Extended Loop Control 18.14 Using i in For Loops 18.13 Parameters 18.11 Variables
 Standard 2.14 Control Structures Example 2.17 Debugging Strategies
 Standard 1.11 Variables 1.13 Parameters 1.14 Using i in For Loops 1.15 Extended Loop Control 1.17 If/ Else Statements 1.19 Putting Together Control Structures
 Standard 1.14 Control Structures Example
 Standard 1.13 Control Structures Example 1.16 Debugging Strategies
 Standard 1.13 Control Structures Example 1.16 Debugging Strategies
 Standard 1.11 Variables 1.13 Parameters 1.14 Using i in For Loops 1.15 Extended Loop Control 1.17 If/ Else Statements 1.19 Putting Together Control Structures
 Standard 2.14 Control Structures Example 2.17 Debugging Strategies
 Standard 2.14 Control Structures Example 2.17 Debugging Strategies
 Standard 1.11 Variables 1.13 Parameters 1.14 Using i in For Loops 1.15 Extended Loop Control 1.17 If/ Else Statements 1.19 Putting Together Control Structures
 Standard 2.14 Control Structures Example 2.17 Debugging Strategies
 Standard 1.11 Variables 1.13 Parameters 1.14 Using i in For Loops 1.15 Extended Loop Control 1.17 If/ Else Statements 1.19 Putting Together Control Structures
 Standard 2.14 Control Structures Example 2.17 Debugging Strategies
 Standard 1.11 Variables 1.13 Parameters 1.14 Using i in For Loops 1.15 Extended Loop Control 1.17 If/ Else Statements 1.19 Putting Together Control Structures
 Standard 1.10 For Loops 1.11 If Statements 1.12 If/Else Statements 1.13 While Loops in Karel 1.14 Control Structures Example 1.15 Debugging Strategies 1.16 Karel Algorithms 3.1 Booleans 3.2 Logical Operators 3.3 Comparison Operators 3.4 If Statements 3.5 For Loops in JavaScript 3.6 General For Loops 3.7 For Loop Practice 3.8 Random Numbers 3.9 While Loops 3.10 Loop and a Half 4.1 Functions and Parameters 1 4.2 Functions and Parameters 2 4.3 Functions and Parameters 3 4.4 Functions and Return Values 1 4.5 Functions and Return Values 2 4.6 Local Variables and Scope 4.8 Basic JavaScript and Graphics Challenges
 Standard 1.10 For Loops 1.11 If Statements 1.12 If/Else Statements 1.13 While Loops in Karel 1.14 Control Structures Example 1.15 Debugging Strategies 1.16 Karel Algorithms 3.1 Booleans 3.2 Logical Operators 3.3 Comparison Operators 3.4 If Statements 3.5 For Loops in JavaScript 3.6 General For Loops 3.7 For Loop Practice 3.8 Random Numbers 3.9 While Loops 3.10 Loop and a Half 4.1 Functions and Parameters 1 4.2 Functions and Parameters 2 4.3 Functions and Parameters 3 4.4 Functions and Return Values 1 4.5 Functions and Return Values 2 4.6 Local Variables and Scope 4.8 Basic JavaScript and Graphics Challenges
 Standard 1.11 Variables 1.13 Parameters 1.14 Using i in For Loops 1.15 Extended Loop Control 1.17 If/ Else Statements 1.19 Putting Together Control Structures
 Standard 2.14 Control Structures Example 2.17 Debugging Strategies
 Standard 1.11 Variables 1.13 Parameters 1.14 Using i in For Loops 1.15 Extended Loop Control 1.17 If/ Else Statements 1.19 Putting Together Control Structures
 Standard 3.11 Variables 3.13 Parameters 3.14 Using i in For Loops 3.15 Extended Loop Control 3.17 If/ Else Statements 3.19 Putting Together Control Structures
 Standard 3.12 Variables 3.14 Parameters 3.15 Using i in For Loops 3.16 Extended Loop Control 3.18 If/ Else Statements 3.20 Putting Together Control Structures
 Standard 2.15 Control Structures Example
 Standard 2.14 Control Structures Example
 Standard 1.10 For Loops 1.11 If Statements 1.12 If/Else Statements 1.13 While Loops in Karel 1.14 Control Structures Example 1.15 Debugging Strategies 1.17 Karel Algorithms 3.1 Booleans 3.2 Logical Operators 3.3 Comparison Operators 3.4 If Statements 3.5 Key Events 3.6 For Loops in JavaScript 3.7 General For Loops 3.8 For Loop Practice 3.9 Random Numbers 3.10 While Loops 3.11 Loop and a Half
 Standard 1.11 Variables 1.13 Parameters 1.14 Using i in For Loops 1.15 Extended Loop Control 1.17 If/ Else Statements 1.19 Putting Together Control Structures
 Standard 2.14 Control Structures Example 2.17 Debugging Strategies
 Standard 3.14 Control Structures Example 3.17 Debugging Strategies
 Standard 1.13 Control Structures Example
 Standard 4.14 Control Structures Example 4.17 Debugging Strategies
 Standard 2.15 Control Structures Example
 Standard 4.2 Variables 4.4 Parameters 4.6 Using i in For Loops 4.7 Extended Loop Control 5.2 If/ Else Statements 6.1 Putting Together Control Structures
 Standard 2.13 Control Structures Example 2.16 Debugging Strategies
 Standard 2.14 Control Structures Example 2.17 Debugging Strategies
 Standard 1.11 Variables 1.13 Parameters 1.14 Using i in For Loops 1.15 Extended Loop Control 1.17 If/ Else Statements 1.19 Putting Together Control Structures
 Standard 9.1 Boolean Expressions and if Statements 9.2 if Statements and Control Flow 9.3 if-else Statements 9.4 else if Statements 9.5 Compound Boolean Expressions 9.6 Equivalent Boolean Expressions 9.7 Comparing Objects 10.1 Iteration 10.2 For Loops 10.3 Developing Algorithms Using Strings 10.4 Nested Iteration 17.1 Recursion 17.2 Recursive Searching 17.3 Recursive Sorting
 Standard 9.1 Boolean Expressions and if Statements 9.2 if Statements and Control Flow 9.3 if-else Statements 9.4 else if Statements 9.5 Compound Boolean Expressions 9.6 Equivalent Boolean Expressions 9.7 Comparing Objects 10.1 Iteration 10.2 For Loops 10.3 Developing Algorithms Using Strings 10.4 Nested Iteration 15.1 Recursion 15.2 Recursive Searching 15.3 Recursive Sorting
 Standard 2.2 Variables and Types 2.3 User Input 4.1 Booleans 4.2 If Statements 4.3 Comparison Operators 4.4 Logical Operators 4.5 Floating Point Numbers and Rounding 6.1 While Loops 6.2 For Loops 6.3 Break and Continue 6.4 Nested Control Structures
 Standard 1.1 Functions 1.2 Functions and Parameters 1.3 Namespaces in Functions 1.4 Functions and Return Values 1.5 Exceptions 2.1 Indexing 2.2 Slicing 2.3 Immutability 2.4 Strings and For Loops 2.5 The in Keyword 2.6 String Methods 4.1 Tuples 4.2 Lists 4.3 For Loops and Lists 4.4 List Methods 5.1 2d Lists 6.1 Project: Guess the Word 8.1 Classes and Objects 8.2 Methods 8.3 Built-In Methods 8.4 Operator Overloading 8.5 Class Variables vs. Instance Variables
 Standard 5.1 Variables 5.6 Parameters 5.9 Using i in For Loops 5.10 Extended Loop Control 7.2 If/Else Statements 8.1 Putting Together Control Structures
 Standard 5.1 Variables 5.6 Parameters 5.9 Using i in For Loops 5.10 Extended Loop Control 7.2 If/Else Statements 8.1 Putting Together Control Structures
 Standard 2.2 Variables and Types 2.3 User Input 4.1 Booleans 4.2 If Statements 4.3 Comparison Operators 4.4 Logical Operators 4.5 Floating Point Numbers and Rounding 6.1 While Loops 6.2 For Loops 6.3 Break and Continue 6.4 Nested Control Structures 9.1 Functions 9.2 Functions and Parameters 9.3 Namespaces in Functions 9.4 Functions and Return Values 9.5 Exceptions 10.1 Indexing 10.2 Slicing 10.3 Immutability 10.4 Strings and For Loops 10.5 The in Keyword 10.6 String Methods 12.1 Tuples 12.2 Lists 12.3 For Loops and Lists 12.4 List Methods 13.1 2d Lists 14.1 Project: Guess the Word 16.1 Classes and Objects 16.2 Methods 16.3 Built-In Methods 16.4 Operator Overloading 16.5 Class Variables vs. Instance Variables
 Standard 2.2 Variables and Types 2.3 User Input 4.1 Booleans 4.2 If Statements 4.3 Comparison Operators 4.4 Logical Operators 4.5 Floating Point Numbers and Rounding 6.1 While Loops 6.2 For Loops 6.3 Break and Continue 6.4 Nested Control Structures
 Standard 1.1 Functions 1.2 Functions and Parameters 1.3 Namespaces in Functions 1.4 Functions and Return Values 1.5 Exceptions 2.1 Indexing 2.2 Slicing 2.3 Immutability 2.4 Strings and For Loops 2.5 The in Keyword 2.6 String Methods 4.1 Tuples 4.2 Lists 4.3 For Loops and Lists 4.4 List Methods 5.1 2d Lists 6.1 Project: Guess the Word 9.1 Classes and Objects 9.2 Methods 9.3 Built-In Methods 9.4 Operator Overloading 9.5 Class Variables vs. Instance Variables 9.6 Inheritance 13.1 Project: Who Said It? 14.1 Let's Build Mastermind