In Unit 6, students learned how 1D arrays store large amounts of related data. These same concepts will be implemented with two-dimensional (2D) arrays in this unit. A 2D array is most suitable to represent a table. Each table element is accessed using the variable name and row and column indices. Unlike 1D arrays, 2D arrays require nested iterative statements to traverse and access all elements. The easiest way to accomplished this is in row-major order, but it is important to cover additional traversal patterns, such as back and forth or column-major.
ESSENTIAL QUESTIONS
Variables [VAR]
Why might you want to use a 2D array to store the spaces on a game board or the pixels in a picture, rather than a 1D array or ArrayList?
Control [CON]
Why does the order in which elements are accessed in 2D array traversal matter in some situations?
BIG IDEAS
+ Representing collections of data as arrays of arrays, or 2D arrays
+ Traversing a 2D array by accessing the elements using nested iteration statements
UNIT TOPICS & ACTIVITIES
8.1: 2D Arrays
8.2: Traversing 2D Arrays

SKILLS ADDRESSED
Program Design and Algorithm Development
1.B: Determine code that would be used to complete code segments.
1.C: Determine code that would be used to interact with completed program code.
Code Logic
2.B: Determine the result or output based on statement execution order in a code segment without method calls (other than output).
2.D: Determine the number of times a code segment will execute.
Code Implementation
3.E: Write program code to create, traverse, and manipulate elements in 2D array objects.
Code Testing
4.A: Use test-cases to find errors or validate results.