Please enable JavaScript to use CodeHS

Standards Mapping

for IA

Introduction to Computer Science in Java

120

Standards in this Framework

12

Standards Mapped

10%

Mapped to Course

Standard Lessons
1A-AP-08
Model daily processes by creating and following algorithms (sets of step-by-step instructions) to complete tasks.
1A-AP-09
Model the way programs store and manipulate data by using numbers or other symbols to represent information.
1A-AP-10
Develop programs with sequences and simple loops, to express ideas or address a problem.
1A-AP-11
Decompose (break down) the steps needed to solve a problem into a precise sequence of instructions.
1A-AP-12
Develop plans that describe a program’s sequence of events, goals, and expected outcomes.
1A-AP-13
Give attribution when using the ideas and creations of others while developing programs.
1A-AP-14
Debug (identify and fix) errors in an algorithm or program that includes sequences and simple loops.
1A-AP-15
Using correct terminology, describe steps taken and choices made during the iterative process of program development.
1A-CS-01
Select and operate appropriate software to perform a variety of tasks, and recognize that users have different needs and preferences for the technology they use.
1A-CS-02
Use appropriate terminology in identifying and describing the function of common physical components of computing systems (hardware).
1A-CS-03
Describe basic hardware and software problems using accurate terminology.
1A-DA-05
Store, copy, search, retrieve, modify, and delete information using a computing device and define the information stored as data.
1A-DA-06
Collect and present the same data in various visual formats.
1A-DA-07
Identify and describe patterns in data visualizations, such as charts or graphs, to make predictions.
1A-IC-16
Compare how people live and work before and after the implementation or adoption of new computing technology.
1A-IC-17
Work respectfully and responsibly with others online.
1A-IC-18
Keep login information private, and log off of devices appropriately.
1A-NI-04
Explain what passwords are and why we use them, and use strong passwords to protect devices and information from unauthorized access.
1B-AP-08
Compare and refine multiple algorithms for the same task and determine which is the most appropriate.
1B-AP-09
Create programs that use variables to store and modify data.
1B-AP-10
Create programs that include sequences, events, loops, and conditionals.
1B-AP-11
Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process.
1B-AP-12
Modify, remix, or incorporate portions of an existing program into one's own work, to develop something new or add more advanced features.
1B-AP-13
Use an iterative process to plan the development of a program by including others' perspectives and considering user preferences.
1B-AP-14
Observe intellectual property rights and give appropriate attribution when creating or remixing programs.
1B-AP-15
Test and debug (identify and fix errors) a program or algorithm to ensure it runs as intended.
1B-AP-16
Take on varying roles, with teacher guidance, when collaborating with peers during the design, implementation, and review stages of program development.
1B-AP-17
Describe choices made during program development using code comments, presentations, and demonstrations.
1B-CS-01
Describe how internal and external parts of computing devices function to form a system.
1B-CS-02
Model how computer hardware and software work together as a system to accomplish tasks.
1B-CS-03
Determine potential solutions to solve simple hardware and software problems using common troubleshooting strategies.
1B-DA-06
Organize and present collected data visually to highlight relationships and support a claim.
1B-DA-07
Use data to highlight or propose cause-and-effect relationships, predict outcomes, or communicate an idea.
1B-IC-18
Discuss computing technologies that have changed the world, and express how those technologies influence, and are influenced by, cultural practices.
1B-IC-19
Brainstorm ways to improve the accessibility and usability of technology products for the diverse needs and wants of users.
1B-IC-20
Seek diverse perspectives for the purpose of improving computational artifacts.
1B-IC-21
Use public domain or creative commons media, and refrain from copying or using material created by others without permission.
1B-NI-04
Model how information is broken down into smaller pieces, transmitted as packets through multiple devices over networks and the Internet, and reassembled at the destination.
1B-NI-05
Discuss real-world cybersecurity problems and how personal information can be protected.
2-AP-10
Use flowcharts and/or pseudocode to address complex problems as algorithms.
2-AP-11
Create clearly named variables that represent different data types and perform operations on their values.
2-AP-12
Design and iteratively develop programs that combine control structures, including nested loops and compound conditionals.
2-AP-13
Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
2-AP-14
Create procedures with parameters to organize code and make it easier to reuse.
2-AP-15
Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
2-AP-16
Incorporate existing code, media, and libraries into original programs, and give attribution.
2-AP-17
Systematically test and refine programs using a range of test cases.
2-AP-18
Distribute tasks and maintain a project timeline when collaboratively developing computational artifacts.
2-AP-19
Document programs in order to make them easier to follow, test, and debug.
2-CS-01
Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
2-CS-02
Design projects that combine hardware and software components to collect and exchange data.
2-CS-03
Systematically identify and fix problems with computing devices and their components.
2-DA-07
Represent data using multiple encoding schemes.
2-DA-08
Collect data using computational tools and transform the data to make it more useful and reliable.
2-DA-09
Refine computational models based on the data they have generated.
2-IC-20
Compare tradeoffs associated with computing technologies that affect people's everyday activities and career options.
2-IC-21
Discuss issues of bias and accessibility in the design of existing technologies.
2-IC-22
Collaborate with many contributors through strategies such as crowdsourcing or surveys when creating a computational artifact.
2-IC-23
Describe tradeoffs between allowing information to be public and keeping information private and secure.
2-NI-04
Model the role of protocols in transmitting data across networks and the Internet.
2-NI-05
Explain how physical and digital security measures protect electronic information.
2-NI-06
Apply multiple methods of encryption to model the secure transmission of information.
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.2 More Basic Karel
  3. 1.3 Java Programs and the Run Method
  4. 1.4 Karel Can't Turn Right
  5. 1.5 Methods in Karel
  6. 1.6 Top Down Design and Decomposition in Karel
  7. 1.7 Commenting Your Code
  8. 1.8 Super Karel
  9. 1.9 For Loops
  10. 1.10 While Loops in Karel
  11. 1.11 If Statements
  12. 1.12 If/Else Statements
  13. 1.13 Control Structures Example
  14. 1.14 More Karel Examples and Testing
  15. 1.15 How to Indent Your Code
  16. 1.16 Karel Challenges
  17. 2.1 Printing in Java
  18. 2.2 Variables and Types
  19. 2.3 User Input
  20. 2.4 Arithmetic Expressions
  21. 2.5 Casting
  22. 2.6 Booleans
  23. 2.7 Logical Operators
  24. 2.8 Comparison Operators
  25. 2.9 For Loops
  26. 2.10 While Loops
  27. 2.11 If Statements
  28. 2.12 Loop-and-a-Half
  29. 2.13 Short-Circuit Evaluation
  30. 2.14 De Morgan's Laws
  31. 2.15 Strings
  32. 3.1 Java Methods
  33. 3.2 Methods and Parameters
  34. 3.3 Methods and Return Values
  35. 3.4 Javadocs and More Methods
  36. 3.5 Strings Methods
  37. 3.6 Strings and Characters
  38. 3.7 Exceptions
  39. 3.8 String Processing
  40. 4.1 Introduction to Classes and Objects
  41. 4.2 Classes vs. Objects
  42. 4.3 Using a Class as a Client
  43. 4.4 Writing Classes
  44. 4.5 Writing Classes and Instance Methods
  45. 4.6 Getter and Setter Methods
  46. 4.7 Class Methods and Class Variables
  47. 4.8 Method Overloading
  48. 4.9 Local Variables and Scope
  49. 4.10 Key Terms for Classes
  50. 4.11 Objects vs Primitives
  51. 4.12 Inheritance
  52. 4.13 Class Design and Abstract Classes
  53. 4.14 Polymorphism
  54. 4.15 Interfaces
  55. 5.1 What are Data Structures?
  56. 5.2 Introduction to Arrays
  57. 5.3 Using Arrays
  58. 5.4 ArrayList Methods
  59. 5.5 Arrays vs ArrayLists
  60. 5.6 The List Interface
  61. 5.7 2D Arrays (Matrices or Grids)
  62. 5.8 HashMaps
  63. 5.9 Binary
  64. 5.10 Writing BlackJack
  65. 5.11 Battleship
  66. 6.1 What is an Algorithm?
  67. 6.2 Linear Search
  68. 6.3 Binary Search
  69. 6.4 Selection Sort
  70. 6.5 Insertion Sort
  71. 6.6 Advanced: Recursion
  72. 6.7 Mergesort
  73. 8.1 Final Project
  74. 9.1 Pokemon Simulation
  75. 10.1 Mad Libs
  76. 11.1 Java Outside of CodeHS
3A-AP-14
Use lists to simplify solutions, generalizing computational problems instead of repeatedly using simple variables.
  1. 5.2 Introduction to Arrays
  2. 5.3 Using Arrays
  3. 5.4 ArrayList Methods
  4. 5.5 Arrays vs ArrayLists
  5. 5.6 The List Interface
  6. 5.7 2D Arrays (Matrices or Grids)
  7. 5.8 HashMaps
  8. 5.9 Binary
  9. 5.10 Writing BlackJack
  10. 5.11 Battleship
  11. 8.1 Final Project
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.
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. 5.10 Writing BlackJack
  2. 5.11 Battleship
  3. 8.1 Final Project
  4. 9.1 Pokemon Simulation
  5. 10.1 Mad Libs
  6. 11.1 Java Outside of CodeHS
3A-AP-17
Decompose problems into smaller components through systematic analysis, using constructs such as procedures, modules, and/or objects.
  1. 1.13 Control Structures Example
  2. 1.14 More Karel Examples and Testing
  3. 1.15 How to Indent Your Code
  4. 1.16 Karel Challenges
  5. 2.8 Comparison Operators
  6. 2.9 For Loops
  7. 2.10 While Loops
  8. 2.11 If Statements
  9. 2.12 Loop-and-a-Half
  10. 2.13 Short-Circuit Evaluation
  11. 2.14 De Morgan's Laws
  12. 2.15 Strings
  13. 3.1 Java Methods
  14. 3.2 Methods and Parameters
  15. 3.3 Methods and Return Values
  16. 3.4 Javadocs and More Methods
  17. 3.5 Strings Methods
  18. 3.6 Strings and Characters
  19. 3.7 Exceptions
  20. 3.8 String Processing
  21. 4.1 Introduction to Classes and Objects
  22. 4.2 Classes vs. Objects
  23. 4.3 Using a Class as a Client
  24. 4.4 Writing Classes
  25. 4.5 Writing Classes and Instance Methods
  26. 4.6 Getter and Setter Methods
  27. 4.7 Class Methods and Class Variables
  28. 4.8 Method Overloading
  29. 4.9 Local Variables and Scope
  30. 4.10 Key Terms for Classes
  31. 4.11 Objects vs Primitives
  32. 4.12 Inheritance
  33. 4.13 Class Design and Abstract Classes
  34. 4.14 Polymorphism
  35. 4.15 Interfaces
  36. 5.1 What are Data Structures?
  37. 5.2 Introduction to Arrays
  38. 5.3 Using Arrays
  39. 5.4 ArrayList Methods
  40. 5.5 Arrays vs ArrayLists
  41. 5.6 The List Interface
  42. 5.7 2D Arrays (Matrices or Grids)
  43. 5.8 HashMaps
  44. 5.9 Binary
  45. 5.10 Writing BlackJack
  46. 5.11 Battleship
  47. 6.1 What is an Algorithm?
  48. 6.2 Linear Search
  49. 6.3 Binary Search
  50. 6.4 Selection Sort
  51. 6.5 Insertion Sort
  52. 6.6 Advanced: Recursion
  53. 6.7 Mergesort
  54. 8.1 Final Project
  55. 9.1 Pokemon Simulation
  56. 10.1 Mad Libs
  57. 11.1 Java Outside of CodeHS
3A-AP-18
Create artifacts by using procedures within a program, combinations of data and procedures, or independent but interrelated programs.
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.
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.8 Super Karel
  3. 1.9 For Loops
  4. 1.10 While Loops in Karel
  5. 1.11 If Statements
  6. 1.12 If/Else Statements
  7. 1.13 Control Structures Example
  8. 1.14 More Karel Examples and Testing
  9. 1.15 How to Indent Your Code
  10. 1.16 Karel Challenges
  11. 2.8 Comparison Operators
  12. 2.9 For Loops
  13. 2.10 While Loops
  14. 2.11 If Statements
  15. 2.12 Loop-and-a-Half
  16. 2.13 Short-Circuit Evaluation
  17. 2.14 De Morgan's Laws
  18. 2.15 Strings
  19. 3.1 Java Methods
  20. 3.2 Methods and Parameters
  21. 3.3 Methods and Return Values
  22. 3.4 Javadocs and More Methods
  23. 3.5 Strings Methods
  24. 3.6 Strings and Characters
  25. 3.7 Exceptions
  26. 3.8 String Processing
  27. 4.1 Introduction to Classes and Objects
  28. 4.2 Classes vs. Objects
  29. 4.3 Using a Class as a Client
  30. 4.4 Writing Classes
  31. 4.5 Writing Classes and Instance Methods
  32. 4.6 Getter and Setter Methods
  33. 4.7 Class Methods and Class Variables
  34. 4.8 Method Overloading
  35. 4.9 Local Variables and Scope
  36. 4.10 Key Terms for Classes
  37. 4.11 Objects vs Primitives
  38. 4.12 Inheritance
  39. 4.13 Class Design and Abstract Classes
  40. 4.14 Polymorphism
  41. 4.15 Interfaces
  42. 5.1 What are Data Structures?
  43. 5.2 Introduction to Arrays
  44. 5.3 Using Arrays
  45. 5.4 ArrayList Methods
  46. 5.5 Arrays vs ArrayLists
  47. 5.6 The List Interface
  48. 5.7 2D Arrays (Matrices or Grids)
  49. 5.8 HashMaps
  50. 5.9 Binary
  51. 5.10 Writing BlackJack
  52. 5.11 Battleship
  53. 6.1 What is an Algorithm?
  54. 6.2 Linear Search
  55. 6.3 Binary Search
  56. 6.4 Selection Sort
  57. 6.5 Insertion Sort
  58. 6.6 Advanced: Recursion
  59. 6.7 Mergesort
  60. 8.1 Final Project
  61. 9.1 Pokemon Simulation
  62. 10.1 Mad Libs
  63. 11.1 Java Outside of CodeHS
3A-CS-01
Explain how abstractions hide the underlying implementation details of computing systems embedded in everyday objects.
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.
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.
3A-DA-12
Create computational models that represent the relationships among different elements of data collected from a phenomenon or process.
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.
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.
3B-AP-08
Describe how artificial intelligence drives many software and physical systems.
3B-AP-09
Implement an artificial intelligence algorithm to play a game against a human opponent or solve a problem.
  1. 5.10 Writing BlackJack
  2. 5.11 Battleship
3B-AP-10
Use and adapt classic algorithms to solve computational problems.
  1. 6.2 Linear Search
  2. 6.3 Binary Search
  3. 6.4 Selection Sort
  4. 6.5 Insertion Sort
  5. 6.6 Advanced: Recursion
  6. 6.7 Mergesort
3B-AP-11
Evaluate algorithms in terms of their efficiency, correctness, and clarity.
  1. 6.1 What is an Algorithm?
  2. 6.2 Linear Search
  3. 6.3 Binary Search
  4. 6.4 Selection Sort
  5. 6.5 Insertion Sort
  6. 6.6 Advanced: Recursion
  7. 6.7 Mergesort
3B-AP-12
Compare and contrast fundamental data structures and their uses.
  1. 5.1 What are Data Structures?
  2. 5.2 Introduction to Arrays
  3. 5.3 Using Arrays
  4. 5.4 ArrayList Methods
  5. 5.5 Arrays vs ArrayLists
  6. 5.6 The List Interface
  7. 5.7 2D Arrays (Matrices or Grids)
  8. 5.8 HashMaps
  9. 5.9 Binary
3B-AP-13
Illustrate the flow of execution of a recursive algorithm.
  1. 6.6 Advanced: Recursion
3B-AP-14
Construct solutions to problems using student-created components, such as procedures, modules and/or objects.
  1. 1.4 Karel Can't Turn Right
  2. 1.5 Methods in Karel
  3. 1.6 Top Down Design and Decomposition in Karel
  4. 1.7 Commenting Your Code
  5. 1.8 Super Karel
  6. 1.9 For Loops
  7. 1.10 While Loops in Karel
  8. 1.11 If Statements
  9. 1.12 If/Else Statements
  10. 1.13 Control Structures Example
  11. 1.14 More Karel Examples and Testing
  12. 1.15 How to Indent Your Code
  13. 1.16 Karel Challenges
  14. 2.1 Printing in Java
  15. 2.2 Variables and Types
  16. 2.3 User Input
  17. 2.4 Arithmetic Expressions
  18. 2.5 Casting
  19. 2.6 Booleans
  20. 2.7 Logical Operators
  21. 2.8 Comparison Operators
  22. 2.9 For Loops
  23. 2.10 While Loops
  24. 2.11 If Statements
  25. 2.12 Loop-and-a-Half
  26. 2.13 Short-Circuit Evaluation
  27. 2.14 De Morgan's Laws
  28. 2.15 Strings
  29. 3.1 Java Methods
  30. 3.2 Methods and Parameters
  31. 3.3 Methods and Return Values
  32. 3.4 Javadocs and More Methods
  33. 3.5 Strings Methods
  34. 3.6 Strings and Characters
  35. 3.7 Exceptions
  36. 3.8 String Processing
  37. 4.1 Introduction to Classes and Objects
  38. 4.2 Classes vs. Objects
  39. 4.3 Using a Class as a Client
  40. 4.4 Writing Classes
  41. 4.5 Writing Classes and Instance Methods
  42. 4.6 Getter and Setter Methods
  43. 4.7 Class Methods and Class Variables
  44. 4.8 Method Overloading
  45. 4.9 Local Variables and Scope
  46. 4.10 Key Terms for Classes
  47. 4.11 Objects vs Primitives
  48. 4.12 Inheritance
  49. 4.13 Class Design and Abstract Classes
  50. 4.14 Polymorphism
  51. 4.15 Interfaces
  52. 5.1 What are Data Structures?
  53. 5.2 Introduction to Arrays
  54. 5.3 Using Arrays
  55. 5.4 ArrayList Methods
  56. 5.5 Arrays vs ArrayLists
  57. 5.6 The List Interface
  58. 5.7 2D Arrays (Matrices or Grids)
  59. 5.8 HashMaps
  60. 5.9 Binary
  61. 5.10 Writing BlackJack
  62. 5.11 Battleship
  63. 6.1 What is an Algorithm?
  64. 6.2 Linear Search
  65. 6.3 Binary Search
  66. 6.4 Selection Sort
  67. 6.5 Insertion Sort
  68. 6.6 Advanced: Recursion
  69. 6.7 Mergesort
  70. 8.1 Final Project
  71. 9.1 Pokemon Simulation
  72. 10.1 Mad Libs
  73. 11.1 Java Outside of CodeHS
3B-AP-15
Analyze a large-scale computational problem and identify generalizable patterns that can be applied to a solution.
3B-AP-16
Demonstrate code reuse by creating programming solutions using libraries and APIs.
  1. 1.1 Introduction to Programming With Karel
  2. 1.2 More Basic Karel
  3. 1.3 Java Programs and the Run Method
  4. 1.4 Karel Can't Turn Right
  5. 1.5 Methods in Karel
  6. 1.6 Top Down Design and Decomposition in Karel
  7. 1.7 Commenting Your Code
  8. 1.8 Super Karel
  9. 1.9 For Loops
  10. 1.10 While Loops in Karel
  11. 1.11 If Statements
  12. 1.12 If/Else Statements
  13. 1.13 Control Structures Example
  14. 1.14 More Karel Examples and Testing
  15. 1.15 How to Indent Your Code
  16. 1.16 Karel Challenges
3B-AP-17
Plan and develop programs for broad audiences using a software life cycle process.
3B-AP-18
Explain security issues that might lead to compromised computer programs.
3B-AP-19
Develop programs for multiple computing platforms.
3B-AP-20
Use version control systems, integrated development environments (IDEs), and collaborative tools and practices (code documentation) in a group software project.
3B-AP-21
Develop and use a series of test cases to verify that a program performs according to its design specifications.
3B-AP-22
Modify an existing program to add additional functionality and discuss intended and unintended implications (e.g., breaking other functionality).
3B-AP-23
Evaluate key qualities of a program through a process such as a code review.
3B-AP-24
Compare multiple programming languages and discuss how their features make them suitable for solving different types of problems.
3B-CS-01
Categorize the roles of operating system software.
3B-CS-02
Illustrate ways computing systems implement logic, input, and output through hardware components.
3B-DA-05
Use data analysis tools and techniques to identify patterns in data representing complex systems.
3B-DA-06
Select data collection tools and techniques to generate data sets that support a claim or communicate information.
3B-DA-07
Evaluate the ability of models and simulations to test and support the refinement of hypotheses.
3B-IC-25
Evaluate computational artifacts to maximize their beneficial effects and minimize harmful effects on society.
3B-IC-26
Evaluate the impact of equity, access, and influence on the distribution of computing resources in a global society.
3B-IC-27
Predict how computational innovations that have revolutionized aspects of our culture might evolve.
3B-IC-28
Debate laws and regulations that impact the development and use of software.
3B-NI-03
Describe the issues that impact network functionality (e.g., bandwidth, load, delay, topology).
3B-NI-04
Compare ways software developers protect devices and information from unauthorized access.