alice in summerland

learning and teaching math in alice

Tutorial.say.”hello world”

Today, a tutorial was born.

After 50 slides of careful explanations, images, and code, any middle schooler will now be able to build their own world that tests inequalities using a two-sided scale. I’m going to wait to post this on the website until I make sure that all of the pages are necessary, Chitra and Peggy try to do the tutorial themselves, Professor Rodger sees it, and until I make at least a couple more tutorials. The reason I want to wait to put this up right away is that, when I was making my 10 worlds, I learned a lot from each world I made and would often go back to previous worlds to make things more efficient or clearer. I expect the same thing to happen with these tutorials. Although I think the layouts, explanations, and images I used are good, I think that I will pick up more ideas from making some other tutorials before finalizing this one.

multiplicationTable tutorial

I realized how simple the inequalities tutorial one was when I started building a tutorial for my multiplicationTable world. I am less worried about the starting world than I initially was because I think it will be pretty easy for kids to understand what the objects are that are given. I ran into my first major dilemma of my tutorial-building career when I realized I needed to explain to middle schoolers not only the concept of nested loops, but also complicated formulas that use the indices of the loops to refer to different indices in a one-dimensional array. If only we could have 2D arrays in Alice…my multiplication table program would come so naturally!

The variables in this method include an allNumbersObjects array of type object, which refers to all of the number objects in the multiplication table, each of which I call mxn, where m is the row and n is the column (0x0, …, 0x10, 1×0, …, 1×10, …, 10×1, …, 10×10). I also have an array of type number called allAnswers in their number form. Both arrays hold 121 items or 11*11. We have nested loops: the outer loop uses an index called row, which goes from 0 to 11, and the inner loop uses an index called column, which goes from 0 to 11. Each element in this array starts at  the default value 1 and we need to fix this so that the answer is the row number times the column number. That part isn’t too difficult to explain, especially with pictures.

The problem is, how do we decide which element in the array we are trying to change to row*column? Here is how I explain it on the next slide: Look at the allNumberObjects array and table for help. Notice that 2×3 is item 25 in the array if we start counting from item 0. There are 11 items in the 0 row and 11 items in the 1 row, which means that we pass 22 items before we get to the 2 row. And then we shift 3 columns to get 25. Try this for some other numbers–you should see a pattern. (Next slide): The item we’re looking for is the row number multiplied by 11 plus the column number, or row*11 + column in terms of our variables. Since this tutorial is all about multiplication, I really can’t skip over this step without a good explanation. At the same time, though, I can’t afford to spend 20 pages like a textbook would to discuss arrays and nested for loops. I assume these would be very difficult concepts to grasp at the introductory level, especially for middle schoolers.

Another minor problem I ran into in that same set item <index> to <item> in allAnswers line is that, for some reason, the drop down menue for the <item> is displaying objects rather than numbers. This is completely unexpected and unexplainable. This was the first piece of code I wrote in this program as I was rebuilding the world, so there’s no way it’s a problem with my code. Chitra and Peggy looked at it on their computers, and sometimes they could add a number into that slot, but they still couldn’t use the math option which is a problem. The item was originally set to row, so I needed to be able to click the arrow and select math >> row * >> column to get what I got in the second purple box in the picture. The only was I could do this, though, was if I built the equation in the first box and moved it to the second. I really think this is just Alice being stupid. allAnswers is an array of numbers, in fact they are all 1’s. If I choose one of the object options it gives me like a camera or ground, for example the world has problems running. Duh, I obviously can’t put a camera into an array of numbers, thanks for telling me. I know I didn’t have this problem when I was building the world the first time, but when I opened my original world it did the same thing. I’m confused. Hopefully Alice will be in a better mood tomorrow.

No comments yet»

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

<span>%d</span> bloggers like this: