Please enable JavaScript to use CodeHS

Standards Mapping

for Michigan 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. 19.1 Fun Snake
  78. 19.1 Fun Snake
  79. 20.1 Conway's Game of Life
  80. 20.1 Conway's Game of Life
  81. 20.2 Connect Four
  82. 20.2 Connect Four
  83. 21.1 Evolution Simulation
  84. 21.1 Evolution Simulation
  85. 24.1 Visualizing Music
  86. 24.1 Visualizing Music
  87. 25.8 Intro to Objects/Maps
  88. 25.8 Intro to Objects/Maps
  89. 25.11 When Do I Use an Object?
  90. 25.11 When Do I Use an Object?
  91. 26.1 Tic Tac Toe
  92. 26.1 Tic Tac Toe
  93. 27.1 Game Design: Helicopter
  94. 27.1 Game Design: Helicopter
3A-AP-14
Use lists to simplify solutions, generalizing computational problems instead of repeatedly using simple variables.
  1. 21.1 Evolution Simulation
  2. 21.1 Evolution Simulation
  3. 25.1 Intro to Lists/Arrays
  4. 25.1 Intro to Lists/Arrays
  5. 25.2 Indexing Into an Array
  6. 25.2 Indexing Into an Array
  7. 25.3 Adding/Removing From an Array
  8. 25.3 Adding/Removing From an Array
  9. 25.4 Array Length and Looping Through Arrays
  10. 25.4 Array Length and Looping Through Arrays
  11. 25.5 Iterating Over an Array
  12. 25.5 Iterating Over an Array
  13. 25.6 Finding an Element in a List
  14. 25.6 Finding an Element in a List
  15. 25.7 Removing an Element From an Array
  16. 25.7 Removing an Element From an Array
  17. 25.8 Intro to Objects/Maps
  18. 25.8 Intro to Objects/Maps
  19. 25.9 Basics of Objects
  20. 25.9 Basics of Objects
  21. 25.10 Iterating Over an Object
  22. 25.10 Iterating Over an Object
  23. 25.11 When Do I Use an Object?
  24. 25.11 When Do I Use an Object?
  25. 25.12 Intro to Sets
  26. 25.12 Intro to Sets
  27. 25.13 Intro to Grids
  28. 25.13 Intro to Grids
  29. 25.14 Looping Over a Grid
  30. 25.14 Looping Over a Grid
  31. 25.15 Grid Example: Get a Row
  32. 25.15 Grid Example: Get a Row
  33. 25.16 Data Structures Challenges
  34. 25.16 Data Structures Challenges
  35. 27.1 Game Design: Helicopter
  36. 27.1 Game Design: Helicopter
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. 19.1 Fun Snake
  12. 19.1 Fun Snake
  13. 20.1 Conway's Game of Life
  14. 20.1 Conway's Game of Life
  15. 20.2 Connect Four
  16. 20.2 Connect Four
  17. 21.1 Evolution Simulation
  18. 21.1 Evolution Simulation
  19. 24.1 Visualizing Music
  20. 24.1 Visualizing Music
  21. 25.16 Data Structures Challenges
  22. 25.16 Data Structures Challenges
  23. 26.1 Tic Tac Toe
  24. 26.1 Tic Tac Toe
  25. 27.1 Game Design: Helicopter
  26. 27.1 Game Design: Helicopter
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. 15.1 Extra Karel Practice
  92. 15.1 Extra Karel Practice
  93. 17.1 Functions and Parameters Practice
  94. 17.1 Functions and Parameters Practice
  95. 18.1 Prime Numbers
  96. 18.1 Prime Numbers
  97. 19.1 Fun Snake
  98. 19.1 Fun Snake
  99. 19.2 Fun Graphics Challenges
  100. 19.2 Fun Graphics Challenges
  101. 20.1 Conway's Game of Life
  102. 20.1 Conway's Game of Life
  103. 20.2 Connect Four
  104. 20.2 Connect Four
  105. 21.1 Evolution Simulation
  106. 21.1 Evolution Simulation
  107. 24.1 Visualizing Music
  108. 24.1 Visualizing Music
  109. 25.1 Intro to Lists/Arrays
  110. 25.1 Intro to Lists/Arrays
  111. 25.2 Indexing Into an Array
  112. 25.2 Indexing Into an Array
  113. 25.3 Adding/Removing From an Array
  114. 25.3 Adding/Removing From an Array
  115. 25.4 Array Length and Looping Through Arrays
  116. 25.4 Array Length and Looping Through Arrays
  117. 25.5 Iterating Over an Array
  118. 25.5 Iterating Over an Array
  119. 25.6 Finding an Element in a List
  120. 25.6 Finding an Element in a List
  121. 25.7 Removing an Element From an Array
  122. 25.7 Removing an Element From an Array
  123. 25.8 Intro to Objects/Maps
  124. 25.8 Intro to Objects/Maps
  125. 25.9 Basics of Objects
  126. 25.9 Basics of Objects
  127. 25.10 Iterating Over an Object
  128. 25.10 Iterating Over an Object
  129. 25.11 When Do I Use an Object?
  130. 25.11 When Do I Use an Object?
  131. 25.12 Intro to Sets
  132. 25.12 Intro to Sets
  133. 25.13 Intro to Grids
  134. 25.13 Intro to Grids
  135. 25.14 Looping Over a Grid
  136. 25.14 Looping Over a Grid
  137. 25.15 Grid Example: Get a Row
  138. 25.15 Grid Example: Get a Row
  139. 25.16 Data Structures Challenges
  140. 25.16 Data Structures Challenges
  141. 26.1 Tic Tac Toe
  142. 26.1 Tic Tac Toe
  143. 27.1 Game Design: Helicopter
  144. 27.1 Game Design: Helicopter
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. 19.1 Fun Snake
  46. 19.1 Fun Snake
  47. 19.2 Fun Graphics Challenges
  48. 19.2 Fun Graphics Challenges
  49. 20.1 Conway's Game of Life
  50. 20.1 Conway's Game of Life
  51. 20.2 Connect Four
  52. 20.2 Connect Four
  53. 21.1 Evolution Simulation
  54. 21.1 Evolution Simulation
  55. 24.1 Visualizing Music
  56. 24.1 Visualizing Music
  57. 25.16 Data Structures Challenges
  58. 25.16 Data Structures Challenges
  59. 26.1 Tic Tac Toe
  60. 26.1 Tic Tac Toe
  61. 27.1 Game Design: Helicopter
  62. 27.1 Game Design: Helicopter
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. 15.1 Extra Karel Practice
  86. 15.1 Extra Karel Practice
  87. 16.1 Extra Karel Puzzles
  88. 16.1 Extra Karel Puzzles
  89. 17.1 Functions and Parameters Practice
  90. 17.1 Functions and Parameters Practice
  91. 18.1 Prime Numbers
  92. 18.1 Prime Numbers
  93. 19.1 Fun Snake
  94. 19.1 Fun Snake
  95. 19.2 Fun Graphics Challenges
  96. 19.2 Fun Graphics Challenges
  97. 20.1 Conway's Game of Life
  98. 20.1 Conway's Game of Life
  99. 20.2 Connect Four
  100. 20.2 Connect Four
  101. 21.1 Evolution Simulation
  102. 21.1 Evolution Simulation
  103. 24.1 Visualizing Music
  104. 24.1 Visualizing Music
  105. 25.1 Intro to Lists/Arrays
  106. 25.1 Intro to Lists/Arrays
  107. 25.2 Indexing Into an Array
  108. 25.2 Indexing Into an Array
  109. 25.3 Adding/Removing From an Array
  110. 25.3 Adding/Removing From an Array
  111. 25.4 Array Length and Looping Through Arrays
  112. 25.4 Array Length and Looping Through Arrays
  113. 25.5 Iterating Over an Array
  114. 25.5 Iterating Over an Array
  115. 25.6 Finding an Element in a List
  116. 25.6 Finding an Element in a List
  117. 25.7 Removing an Element From an Array
  118. 25.7 Removing an Element From an Array
  119. 25.8 Intro to Objects/Maps
  120. 25.8 Intro to Objects/Maps
  121. 25.9 Basics of Objects
  122. 25.9 Basics of Objects
  123. 25.10 Iterating Over an Object
  124. 25.10 Iterating Over an Object
  125. 25.11 When Do I Use an Object?
  126. 25.11 When Do I Use an Object?
  127. 25.12 Intro to Sets
  128. 25.12 Intro to Sets
  129. 25.13 Intro to Grids
  130. 25.13 Intro to Grids
  131. 25.14 Looping Over a Grid
  132. 25.14 Looping Over a Grid
  133. 25.15 Grid Example: Get a Row
  134. 25.15 Grid Example: Get a Row
  135. 25.16 Data Structures Challenges
  136. 25.16 Data Structures Challenges
  137. 26.1 Tic Tac Toe
  138. 26.1 Tic Tac Toe
  139. 27.1 Game Design: Helicopter
  140. 27.1 Game Design: Helicopter
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.