Arrays and Array Visualization Alice
What is an array? An array is a collection of objects or information that is organized in a specific order. The individual components (elements) of an array are of the same type (object, number, color, …).
Analogy An analogy of an array is a music CD. A CD contains a collection of songs, listed in the order recorded. A CD player allows you to play any specific song by selecting its number, or play all the songs in sequence.
Arrays in Alice In Alice, an array is a data structure used to organize objects or information of the same type (object, number, color, etc.) Just as you cannot actually "see" the digital bits of the songs recorded on a CD, you cannot actually "see" the digital information in an array. In other words, an array is not visible.
Array Visualization We will use a built-in 3D model that has been specifically designed to help you "see" how an array works. The elements of this special array visualization are visual Alice objects (of type Object)
Initial World As an example, we will create a visualization of an array of bugs. First, we add five bugs to a new world. This is not yet an array – just five bugs!
Initialize array Now add an arrayVisualization object to the world. A dialog box pops up to allow you to add each bug to the array.
Completed array Each bug added to the array is automatically moved to its location in the array. The locations are numbered 0, 1, 2, 3, 4 (see the numbers in the blue squares). The location number is the index.
elements An arrayVisualization object has a built-in class-level variable, named elements, that keeps track of which objects are in the array and where each is located. The order of the objects in the elements variable matches the order of the objects in the array.
Demo: Access To access (get at) an individual element in the array, create an instruction that uses the index to select the element. Example: This instruction will have the bee, located at index 3, turn around.
Demo: Random Access The built-in random number question can be used to access a random element in an array. Example: Be sure to select the integerOnly option. Why did we choose a maximum of 5?
Permutation Changing the order of elements in an ordered group is a math operation known as creating a permutation. To demonstrate how to perform a permutation, let's write a swap method that exchanges the positions of two elements in an array.
Storyboard Two number parameters are needed, indexOne and indexTwo, to specify the indexes of the two objects to be swapped. A temporary location will be needed to hold one object while the other object changes location. swap: Parameters: indexOne, indexTwo (of type number) Do in order relocate element at indexOne to a temporary location relocate element at indexOne to indexTwo relocate element from temporary location to indexOne
Temporary location An objectVisualization object is added to the world to be used as a temporary holding pen.
Demo: swap
Walking through an array In addition to the ability to access an individual element of an array, it is also possible to "walk through" an array, accessing each element of the array in order.
Demo: Index variable To walk through an array, use the complicated form of the Loop instruction. The index variable is a counter for the loop. In an array, we can also use the index variable to access successive elements in the array.
Assignment Read Chapter 10-2, Arrays Read Tips & Techniques 10, Debugging with Watch and Text Output Lab 10-2