Please enable JavaScript to use CodeHS

Standards Mapping

for Washington 3A

30

Standards in this Framework

13

Standards Mapped

43%

Mapped to Course

Standard Lessons
3A-AP-13
Create prototypes that use algorithms to solve computational problems by leveraging prior student knowledge and personal interests.
  1. 1.1 Introduction to Programming With Karel
  2. 1.1 Introduction to Programming With Karel
  3. 1.2 More Basic Karel
  4. 1.2 More Basic Karel
  5. 1.3 Karel Can't Turn Right
  6. 1.3 Karel Can't Turn Right
  7. 1.4 Functions in Karel
  8. 1.4 Functions in Karel
  9. 1.5 The Start Function
  10. 1.5 The Start Function
  11. 1.6 Top Down Design and Decomposition in Karel
  12. 1.6 Top Down Design and Decomposition in Karel
  13. 1.7 Commenting Your Code
  14. 1.7 Commenting Your Code
  15. 1.9 For Loops
  16. 1.9 For Loops
  17. 1.10 If Statements
  18. 1.10 If Statements
  19. 1.11 If/Else Statements
  20. 1.11 If/Else Statements
  21. 1.12 While Loops in Karel
  22. 1.12 While Loops in Karel
  23. 1.13 Control Structures Example
  24. 1.13 Control Structures Example
  25. 1.14 More Karel Examples and Testing
  26. 1.14 More Karel Examples and Testing
  27. 1.15 How to Indent Your Code
  28. 1.15 How to Indent Your Code
  29. 3.1 Hello World
  30. 3.1 Hello World
  31. 3.2 Variables
  32. 3.2 Variables
  33. 3.3 User Input
  34. 3.3 User Input
  35. 3.4 Basic Math in JavaScript
  36. 3.4 Basic Math in JavaScript
  37. 3.5 Using Graphics in JavaScript
  38. 3.5 Using Graphics in JavaScript
  39. 5.1 Booleans
  40. 5.1 Booleans
  41. 5.2 Logical Operators
  42. 5.2 Logical Operators
  43. 5.3 Comparison Operators
  44. 5.3 Comparison Operators
  45. 5.4 If Statements
  46. 5.4 If Statements
  47. 5.5 For Loops in JavaScript
  48. 5.5 For Loops in JavaScript
  49. 5.6 General For Loops
  50. 5.6 General For Loops
  51. 5.7 For Loop Practice
  52. 5.7 For Loop Practice
  53. 5.8 Random Numbers
  54. 5.8 Random Numbers
  55. 5.9 While Loops
  56. 5.9 While Loops
  57. 5.10 Loop and a Half
  58. 5.10 Loop and a Half
  59. 7.1 Functions and Parameters 1
  60. 7.1 Functions and Parameters 1
  61. 7.2 Functions and Parameters 2
  62. 7.2 Functions and Parameters 2
  63. 7.3 Functions and Parameters 3
  64. 7.3 Functions and Parameters 3
  65. 8.1 Functions Challenges
  66. 8.1 Functions Challenges
  67. 9.2 Random Circles
  68. 9.2 Random Circles
  69. 9.3 Random Ghosts
  70. 9.3 Random Ghosts
  71. 9.4 Bouncing Ball
  72. 9.4 Bouncing Ball
  73. 9.9 Crazy Ball Game
  74. 9.9 Crazy Ball Game
  75. 11.1 Breakout
  76. 11.1 Breakout
  77. 12.8 Intro to Objects/Maps
  78. 12.8 Intro to Objects/Maps
  79. 12.11 When Do I Use an Object?
  80. 12.11 When Do I Use an Object?
  81. 13.1 Tic Tac Toe
  82. 13.1 Tic Tac Toe
  83. 14.1 Game Design: Helicopter
  84. 14.1 Game Design: Helicopter
  85. 22.1 Fun Snake
  86. 22.1 Fun Snake
  87. 23.1 Conway's Game of Life
  88. 23.1 Conway's Game of Life
  89. 23.2 Connect Four
  90. 23.2 Connect Four
  91. 24.1 Evolution Simulation
  92. 24.1 Evolution Simulation
  93. 28.1 Visualizing Music
  94. 28.1 Visualizing Music
3A-AP-14
Use lists to simplify solutions, generalizing computational problems instead of repeatedly using simple variables.
  1. 12.1 Intro to Lists/Arrays
  2. 12.1 Intro to Lists/Arrays
  3. 12.2 Indexing Into an Array
  4. 12.2 Indexing Into an Array
  5. 12.3 Adding/Removing From an Array
  6. 12.3 Adding/Removing From an Array
  7. 12.4 Array Length and Looping Through Arrays
  8. 12.4 Array Length and Looping Through Arrays
  9. 12.5 Iterating Over an Array
  10. 12.5 Iterating Over an Array
  11. 12.6 Finding an Element in a List
  12. 12.6 Finding an Element in a List
  13. 12.7 Removing an Element From an Array
  14. 12.7 Removing an Element From an Array
  15. 12.8 Intro to Objects/Maps
  16. 12.8 Intro to Objects/Maps
  17. 12.9 Basics of Objects
  18. 12.9 Basics of Objects
  19. 12.10 Iterating Over an Object
  20. 12.10 Iterating Over an Object
  21. 12.11 When Do I Use an Object?
  22. 12.11 When Do I Use an Object?
  23. 12.12 Intro to Sets
  24. 12.12 Intro to Sets
  25. 12.13 Intro to Grids
  26. 12.13 Intro to Grids
  27. 12.14 Looping Over a Grid
  28. 12.14 Looping Over a Grid
  29. 12.15 Grid Example: Get a Row
  30. 12.15 Grid Example: Get a Row
  31. 12.16 Data Structures Challenges
  32. 12.16 Data Structures Challenges
  33. 14.1 Game Design: Helicopter
  34. 14.1 Game Design: Helicopter
  35. 24.1 Evolution Simulation
  36. 24.1 Evolution Simulation
3A-AP-15
Justify the selection of specific control structures when tradeoffs involve implementation, readability, and program performance, and explain the benefits and drawbacks of choices made.
  1. 5.4 If Statements
  2. 5.4 If Statements
  3. 5.5 For Loops in JavaScript
  4. 5.5 For Loops in JavaScript
  5. 5.6 General For Loops
  6. 5.6 General For Loops
  7. 5.7 For Loop Practice
  8. 5.7 For Loop Practice
  9. 5.9 While Loops
  10. 5.9 While Loops
  11. 5.10 Loop and a Half
  12. 5.10 Loop and a Half
3A-AP-16
Design and iteratively develop computational artifacts for practical intent, personal expression, or to address a societal issue by using events to initiate instructions.
  1. 9.5 Mouse Events: Mouse Clicked
  2. 9.5 Mouse Events: Mouse Clicked
  3. 9.6 Mouse Events: Mouse Moved
  4. 9.6 Mouse Events: Mouse Moved
  5. 9.8 Key Events
  6. 9.8 Key Events
  7. 9.9 Crazy Ball Game
  8. 9.9 Crazy Ball Game
  9. 11.1 Breakout
  10. 11.1 Breakout
  11. 12.16 Data Structures Challenges
  12. 12.16 Data Structures Challenges
  13. 13.1 Tic Tac Toe
  14. 13.1 Tic Tac Toe
  15. 14.1 Game Design: Helicopter
  16. 14.1 Game Design: Helicopter
  17. 22.1 Fun Snake
  18. 22.1 Fun Snake
  19. 23.1 Conway's Game of Life
  20. 23.1 Conway's Game of Life
  21. 23.2 Connect Four
  22. 23.2 Connect Four
  23. 24.1 Evolution Simulation
  24. 24.1 Evolution Simulation
  25. 28.1 Visualizing Music
  26. 28.1 Visualizing Music
3A-AP-17
Decompose problems into smaller components through systematic analysis, using constructs such as procedures, modules, and/or objects.
  1. 1.4 Functions in Karel
  2. 1.4 Functions in Karel
  3. 1.5 The Start Function
  4. 1.5 The Start Function
  5. 1.6 Top Down Design and Decomposition in Karel
  6. 1.6 Top Down Design and Decomposition in Karel
  7. 1.7 Commenting Your Code
  8. 1.7 Commenting Your Code
  9. 1.8 Super Karel
  10. 1.8 Super Karel
  11. 1.9 For Loops
  12. 1.9 For Loops
  13. 1.10 If Statements
  14. 1.10 If Statements
  15. 1.11 If/Else Statements
  16. 1.11 If/Else Statements
  17. 1.12 While Loops in Karel
  18. 1.12 While Loops in Karel
  19. 1.13 Control Structures Example
  20. 1.13 Control Structures Example
  21. 1.14 More Karel Examples and Testing
  22. 1.14 More Karel Examples and Testing
  23. 1.15 How to Indent Your Code
  24. 1.15 How to Indent Your Code
  25. 2.1 Challenge Problems
  26. 2.1 Challenge Problems
  27. 3.1 Hello World
  28. 3.1 Hello World
  29. 3.2 Variables
  30. 3.2 Variables
  31. 3.3 User Input
  32. 3.3 User Input
  33. 3.4 Basic Math in JavaScript
  34. 3.4 Basic Math in JavaScript
  35. 3.5 Using Graphics in JavaScript
  36. 3.5 Using Graphics in JavaScript
  37. 5.1 Booleans
  38. 5.1 Booleans
  39. 5.2 Logical Operators
  40. 5.2 Logical Operators
  41. 5.3 Comparison Operators
  42. 5.3 Comparison Operators
  43. 5.4 If Statements
  44. 5.4 If Statements
  45. 5.5 For Loops in JavaScript
  46. 5.5 For Loops in JavaScript
  47. 5.6 General For Loops
  48. 5.6 General For Loops
  49. 5.7 For Loop Practice
  50. 5.7 For Loop Practice
  51. 5.8 Random Numbers
  52. 5.8 Random Numbers
  53. 5.9 While Loops
  54. 5.9 While Loops
  55. 5.10 Loop and a Half
  56. 5.10 Loop and a Half
  57. 7.1 Functions and Parameters 1
  58. 7.1 Functions and Parameters 1
  59. 7.2 Functions and Parameters 2
  60. 7.2 Functions and Parameters 2
  61. 7.3 Functions and Parameters 3
  62. 7.3 Functions and Parameters 3
  63. 7.4 Functions and Return Values 1
  64. 7.4 Functions and Return Values 1
  65. 7.5 Functions and Return Values 2
  66. 7.5 Functions and Return Values 2
  67. 7.6 Local Variables and Scope
  68. 7.6 Local Variables and Scope
  69. 8.1 Functions Challenges
  70. 8.1 Functions Challenges
  71. 9.1 Timers
  72. 9.1 Timers
  73. 9.2 Random Circles
  74. 9.2 Random Circles
  75. 9.3 Random Ghosts
  76. 9.3 Random Ghosts
  77. 9.4 Bouncing Ball
  78. 9.4 Bouncing Ball
  79. 9.5 Mouse Events: Mouse Clicked
  80. 9.5 Mouse Events: Mouse Clicked
  81. 9.6 Mouse Events: Mouse Moved
  82. 9.6 Mouse Events: Mouse Moved
  83. 9.7 Drawing Lines
  84. 9.7 Drawing Lines
  85. 9.8 Key Events
  86. 9.8 Key Events
  87. 9.9 Crazy Ball Game
  88. 9.9 Crazy Ball Game
  89. 11.1 Breakout
  90. 11.1 Breakout
  91. 12.1 Intro to Lists/Arrays
  92. 12.1 Intro to Lists/Arrays
  93. 12.2 Indexing Into an Array
  94. 12.2 Indexing Into an Array
  95. 12.3 Adding/Removing From an Array
  96. 12.3 Adding/Removing From an Array
  97. 12.4 Array Length and Looping Through Arrays
  98. 12.4 Array Length and Looping Through Arrays
  99. 12.5 Iterating Over an Array
  100. 12.5 Iterating Over an Array
  101. 12.6 Finding an Element in a List
  102. 12.6 Finding an Element in a List
  103. 12.7 Removing an Element From an Array
  104. 12.7 Removing an Element From an Array
  105. 12.8 Intro to Objects/Maps
  106. 12.8 Intro to Objects/Maps
  107. 12.9 Basics of Objects
  108. 12.9 Basics of Objects
  109. 12.10 Iterating Over an Object
  110. 12.10 Iterating Over an Object
  111. 12.11 When Do I Use an Object?
  112. 12.11 When Do I Use an Object?
  113. 12.12 Intro to Sets
  114. 12.12 Intro to Sets
  115. 12.13 Intro to Grids
  116. 12.13 Intro to Grids
  117. 12.14 Looping Over a Grid
  118. 12.14 Looping Over a Grid
  119. 12.15 Grid Example: Get a Row
  120. 12.15 Grid Example: Get a Row
  121. 12.16 Data Structures Challenges
  122. 12.16 Data Structures Challenges
  123. 13.1 Tic Tac Toe
  124. 13.1 Tic Tac Toe
  125. 14.1 Game Design: Helicopter
  126. 14.1 Game Design: Helicopter
  127. 18.1 Extra Karel Practice
  128. 18.1 Extra Karel Practice
  129. 20.1 Functions and Parameters Practice
  130. 20.1 Functions and Parameters Practice
  131. 21.1 Prime Numbers
  132. 21.1 Prime Numbers
  133. 22.1 Fun Snake
  134. 22.1 Fun Snake
  135. 22.2 Fun Graphics Challenges
  136. 22.2 Fun Graphics Challenges
  137. 23.1 Conway's Game of Life
  138. 23.1 Conway's Game of Life
  139. 23.2 Connect Four
  140. 23.2 Connect Four
  141. 24.1 Evolution Simulation
  142. 24.1 Evolution Simulation
  143. 28.1 Visualizing Music
  144. 28.1 Visualizing Music
3A-AP-18
Create artifacts by using procedures within a program, combinations of data and procedures, or independent but interrelated programs.
  1. 1.1 Introduction to Programming With Karel
  2. 1.1 Introduction to Programming With Karel
  3. 1.2 More Basic Karel
  4. 1.2 More Basic Karel
  5. 1.3 Karel Can't Turn Right
  6. 1.3 Karel Can't Turn Right
  7. 1.4 Functions in Karel
  8. 1.4 Functions in Karel
  9. 1.5 The Start Function
  10. 1.5 The Start Function
  11. 1.6 Top Down Design and Decomposition in Karel
  12. 1.6 Top Down Design and Decomposition in Karel
  13. 1.7 Commenting Your Code
  14. 1.7 Commenting Your Code
  15. 1.8 Super Karel
  16. 1.8 Super Karel
  17. 1.9 For Loops
  18. 1.9 For Loops
  19. 1.10 If Statements
  20. 1.10 If Statements
  21. 1.11 If/Else Statements
  22. 1.11 If/Else Statements
  23. 3.5 Using Graphics in JavaScript
  24. 3.5 Using Graphics in JavaScript
  25. 9.1 Timers
  26. 9.1 Timers
  27. 9.2 Random Circles
  28. 9.2 Random Circles
  29. 9.3 Random Ghosts
  30. 9.3 Random Ghosts
  31. 9.4 Bouncing Ball
  32. 9.4 Bouncing Ball
  33. 9.5 Mouse Events: Mouse Clicked
  34. 9.5 Mouse Events: Mouse Clicked
  35. 9.6 Mouse Events: Mouse Moved
  36. 9.6 Mouse Events: Mouse Moved
  37. 9.7 Drawing Lines
  38. 9.7 Drawing Lines
  39. 9.8 Key Events
  40. 9.8 Key Events
  41. 9.9 Crazy Ball Game
  42. 9.9 Crazy Ball Game
  43. 11.1 Breakout
  44. 11.1 Breakout
  45. 12.16 Data Structures Challenges
  46. 12.16 Data Structures Challenges
  47. 13.1 Tic Tac Toe
  48. 13.1 Tic Tac Toe
  49. 14.1 Game Design: Helicopter
  50. 14.1 Game Design: Helicopter
  51. 22.1 Fun Snake
  52. 22.1 Fun Snake
  53. 22.2 Fun Graphics Challenges
  54. 22.2 Fun Graphics Challenges
  55. 23.1 Conway's Game of Life
  56. 23.1 Conway's Game of Life
  57. 23.2 Connect Four
  58. 23.2 Connect Four
  59. 24.1 Evolution Simulation
  60. 24.1 Evolution Simulation
  61. 28.1 Visualizing Music
  62. 28.1 Visualizing Music
3A-AP-19
Systematically design and develop programs for broad audiences by incorporating feedback from users.
3A-AP-20
Evaluate licenses that limit or restrict use of computational artifacts when using resources such as libraries.
3A-AP-21
Evaluate and refine computational artifacts to make them more usable and accessible.
3A-AP-22
Design and develop computational artifacts working in team roles using collaborative tools.
  1. 4.1 Collaborative Programming
  2. 4.1 Collaborative Programming
3A-AP-23
Document design decisions using text, graphics, presentations, and/or demonstrations in the development of complex programs.
  1. 1.7 Commenting Your Code
  2. 1.7 Commenting Your Code
  3. 1.8 Super Karel
  4. 1.8 Super Karel
  5. 1.9 For Loops
  6. 1.9 For Loops
  7. 1.10 If Statements
  8. 1.10 If Statements
  9. 1.11 If/Else Statements
  10. 1.11 If/Else Statements
  11. 1.12 While Loops in Karel
  12. 1.12 While Loops in Karel
  13. 1.13 Control Structures Example
  14. 1.13 Control Structures Example
  15. 1.14 More Karel Examples and Testing
  16. 1.14 More Karel Examples and Testing
  17. 1.15 How to Indent Your Code
  18. 1.15 How to Indent Your Code
  19. 2.1 Challenge Problems
  20. 2.1 Challenge Problems
  21. 3.1 Hello World
  22. 3.1 Hello World
  23. 3.2 Variables
  24. 3.2 Variables
  25. 3.3 User Input
  26. 3.3 User Input
  27. 3.4 Basic Math in JavaScript
  28. 3.4 Basic Math in JavaScript
  29. 3.5 Using Graphics in JavaScript
  30. 3.5 Using Graphics in JavaScript
  31. 5.1 Booleans
  32. 5.1 Booleans
  33. 5.2 Logical Operators
  34. 5.2 Logical Operators
  35. 5.3 Comparison Operators
  36. 5.3 Comparison Operators
  37. 5.4 If Statements
  38. 5.4 If Statements
  39. 5.5 For Loops in JavaScript
  40. 5.5 For Loops in JavaScript
  41. 5.6 General For Loops
  42. 5.6 General For Loops
  43. 5.7 For Loop Practice
  44. 5.7 For Loop Practice
  45. 5.8 Random Numbers
  46. 5.8 Random Numbers
  47. 5.9 While Loops
  48. 5.9 While Loops
  49. 5.10 Loop and a Half
  50. 5.10 Loop and a Half
  51. 7.1 Functions and Parameters 1
  52. 7.1 Functions and Parameters 1
  53. 7.2 Functions and Parameters 2
  54. 7.2 Functions and Parameters 2
  55. 7.3 Functions and Parameters 3
  56. 7.3 Functions and Parameters 3
  57. 7.4 Functions and Return Values 1
  58. 7.4 Functions and Return Values 1
  59. 7.5 Functions and Return Values 2
  60. 7.5 Functions and Return Values 2
  61. 7.6 Local Variables and Scope
  62. 7.6 Local Variables and Scope
  63. 8.1 Functions Challenges
  64. 8.1 Functions Challenges
  65. 9.1 Timers
  66. 9.1 Timers
  67. 9.2 Random Circles
  68. 9.2 Random Circles
  69. 9.3 Random Ghosts
  70. 9.3 Random Ghosts
  71. 9.4 Bouncing Ball
  72. 9.4 Bouncing Ball
  73. 9.5 Mouse Events: Mouse Clicked
  74. 9.5 Mouse Events: Mouse Clicked
  75. 9.6 Mouse Events: Mouse Moved
  76. 9.6 Mouse Events: Mouse Moved
  77. 9.7 Drawing Lines
  78. 9.7 Drawing Lines
  79. 9.8 Key Events
  80. 9.8 Key Events
  81. 9.9 Crazy Ball Game
  82. 9.9 Crazy Ball Game
  83. 11.1 Breakout
  84. 11.1 Breakout
  85. 12.1 Intro to Lists/Arrays
  86. 12.1 Intro to Lists/Arrays
  87. 12.2 Indexing Into an Array
  88. 12.2 Indexing Into an Array
  89. 12.3 Adding/Removing From an Array
  90. 12.3 Adding/Removing From an Array
  91. 12.4 Array Length and Looping Through Arrays
  92. 12.4 Array Length and Looping Through Arrays
  93. 12.5 Iterating Over an Array
  94. 12.5 Iterating Over an Array
  95. 12.6 Finding an Element in a List
  96. 12.6 Finding an Element in a List
  97. 12.7 Removing an Element From an Array
  98. 12.7 Removing an Element From an Array
  99. 12.8 Intro to Objects/Maps
  100. 12.8 Intro to Objects/Maps
  101. 12.9 Basics of Objects
  102. 12.9 Basics of Objects
  103. 12.10 Iterating Over an Object
  104. 12.10 Iterating Over an Object
  105. 12.11 When Do I Use an Object?
  106. 12.11 When Do I Use an Object?
  107. 12.12 Intro to Sets
  108. 12.12 Intro to Sets
  109. 12.13 Intro to Grids
  110. 12.13 Intro to Grids
  111. 12.14 Looping Over a Grid
  112. 12.14 Looping Over a Grid
  113. 12.15 Grid Example: Get a Row
  114. 12.15 Grid Example: Get a Row
  115. 12.16 Data Structures Challenges
  116. 12.16 Data Structures Challenges
  117. 13.1 Tic Tac Toe
  118. 13.1 Tic Tac Toe
  119. 14.1 Game Design: Helicopter
  120. 14.1 Game Design: Helicopter
  121. 18.1 Extra Karel Practice
  122. 18.1 Extra Karel Practice
  123. 19.1 Extra Karel Puzzles
  124. 19.1 Extra Karel Puzzles
  125. 20.1 Functions and Parameters Practice
  126. 20.1 Functions and Parameters Practice
  127. 21.1 Prime Numbers
  128. 21.1 Prime Numbers
  129. 22.1 Fun Snake
  130. 22.1 Fun Snake
  131. 22.2 Fun Graphics Challenges
  132. 22.2 Fun Graphics Challenges
  133. 23.1 Conway's Game of Life
  134. 23.1 Conway's Game of Life
  135. 23.2 Connect Four
  136. 23.2 Connect Four
  137. 24.1 Evolution Simulation
  138. 24.1 Evolution Simulation
  139. 28.1 Visualizing Music
  140. 28.1 Visualizing Music
3A-CS-01
Explain how abstractions hide the underlying implementation details of computing systems embedded in everyday objects.
  1. 1.8 Super Karel
  2. 1.8 Super Karel
3A-CS-02
Compare levels of abstraction and interactions between application software, system software, and hardware layers.
3A-CS-03
Develop guidelines that convey systematic troubleshooting strategies that others can use to identify and fix errors.
  1. 1.2 More Basic Karel
  2. 1.2 More Basic Karel
3A-DA-09
Translate between different bit representations of real-world phenomena, such as characters, numbers, and images.
3A-DA-10
Evaluate the tradeoffs in how data elements are organized and where data is stored.
3A-DA-11
Create interactive data visualizations using software tools to help others better understand real-world phenomena.
  1. 5.8 Random Numbers
  2. 5.8 Random Numbers
3A-DA-12
Create computational models that represent the relationships among different elements of data collected from a phenomenon or process.
  1. 5.8 Random Numbers
  2. 5.8 Random Numbers
3A-IC-24
Evaluate the ways computing impacts personal, ethical, social, economic, and cultural practices.
3A-IC-25
Test and refine computational artifacts to reduce bias and equity deficits.
3A-IC-26
Demonstrate ways a given algorithm applies to problems across disciplines.
3A-IC-27
Use tools and methods for collaboration on a project to increase connectivity of people in different cultures and career fields.
  1. 4.1 Collaborative Programming
  2. 4.1 Collaborative Programming
3A-IC-28
Explain the beneficial and harmful effects that intellectual property laws can have on innovation.
3A-IC-29
Explain the privacy concerns related to the collection and generation of data through automated processes that may not be evident to users.
3A-IC-30
Evaluate the social and economic implications of privacy in the context of safety, law, or ethics.
3A-NI-04
Evaluate the scalability and reliability of networks, by describing the relationship between routers, switches, servers, topology, and addressing.
3A-NI-05
Give examples to illustrate how sensitive data can be affected by malware and other attacks.
3A-NI-06
Recommend security measures to address various scenarios based on factors such as efficiency, feasibility, and ethical impacts.
3A-NI-07
Compare various security measures, considering tradeoffs between the usability and security of a computing system.
3A-NI-08
Explain tradeoffs when selecting and implementing cybersecurity recommendations.