Wednesday, October 30, 2013

Debugging

We started this week on debugging projects in Scratch where the students had to 'fix' a program in order for it to work properly.  For example, one such project involved making the Scratch cat say meow three times with a speech bubble appearing at the same time rather than the speech bubble and meows being off-synch.  Students are now working on creating their own debug-it projects and adding them to our class studio.  Lots of valuable collaborative skills at work in this process as well with feedback and suggestions, input and revisions.

Here are some student comments about their debugging experiences:

"Debugging is really fun because you get to try to find out what problems other people had with their programs and to fix it.  Finding out the right block to put in and use is challenging because there are a lot of blocks to choose from and you have to choose one of them.  Some are easier than others.  Some you just have to remove or put in one or two blocks, others you have to redo the entire thing."

"Making a debugging project is basically making one with a flaw in it.  And if you're solving them, you have to find the bug and fix it, but sometimes it's hard, sometimes it's easy.  They're easier when you just have to add a single block.  It's challenging when you have to do more than one thing .  Like when you have to make a block and remember it and keep track of more than command at once - like to meow with the speech bubble."

"I like debugging because you get to look for problems and when you look for problems, it always challenges you to think "How would I do this?" and seeing what it is missing and finding a block to do what is missing.  I also like making debug-its because you get to think of ways to challenge your classmates or other people.  With debug-its, you also get to challenge yourself because you have to think of things you haven't done before and things that will challenge others and you have to try to make it hard.  You don't even have to be missing a block.  You can set to do something other than what it is set to do.  You need to be good at computational thinking because you need to think, "If I did this, what will happen.." and you also need to be able to learn from your mistakes because in Scratch, you make a lot of mistakes.  You might try something and it works for a few times, but ,then it stops working because there is a certain piece of information that it doesn't have that it needs to work."




Tuesday, October 8, 2013

Computer Science...it's 'elementary'


Mini Scratch Projects




3rd Grader - Idiom in 'Scratch' - "Hold your horses!"

3rd grader - Idiom - "I'm going to blow your socks off!"


3rd grader - "All About Me" project


Mathematical Practices, writing, and computer science

Here is a collection of student journal reflections connecting the Common Core Standards for Mathematical Practice and binary numbers and the Cartesian coordinate system.
The eight mathematical practices:
1)  Make sense of problems and persevere in solving them.
2)  Reason abstractly and quantitatively.
3) Construct viable arguments and critique the reasoning of others.
4)  Model with mathematics.
5)  Use appropriate tools strategically.
6)  Attend to precision.
7)  Look for and make use of structure.
8)  Look for and express regularity in repeated reasoning.

3rd grader:
"In binary numbers, I use math practice number 6 when doing code.  Binary numbers are the digits 0 and 1.  Code for binary numbers is doubling one number starting with one and writing them in 0 or 1.  You see, trying binary numbers with cards make it easier.  We did it in class once.  First, our teacher made us cards that say 1,2,4,8, and 16.  Cards that are showing are 1.  Cards that are not are 0. Then our teacher, Mrs. Mak, said a number and we had to put the cards face-down if they did not equal to the number Mrs. Mak said.  For example, is all the cards were showing and we had to make the number 12, then we would flip over 16, 2, and 1 so that only numbers that are showing are 8 and 4 because if you add them together, you get 12.  So in binary, it would be 01100 You have to attend to precision when doing binary numbers."

4th grader:
"When we were learning about binary numbers, we were using math practice #7 "Look for and make use of structure."  We made use of structure when we made the binary patterns.  For example, one structure was the binary pattern which equaled 5.  Our cards were in this order (16, 8, 4, 2,1).  We turned over the 4 and the 1, so the pattern was 00101.  That is the math practice I used."

"When we learned the Cartesian coordinate system and played "Connect Four," we used math practice #7 which is "look for and make use of structure."  When we got four in a row, the structure might be horizontal, vertical or diagonal.  If it is vertical, the X-axis will be the same and the Y axis will increase.  For example, if the four-in-a-row coordinates are (3,1), (3,2), (3,3), and (3,4), the Y-axis increases, but the X-axis doesn't change.  If the four-in-a-row is horizontal, the X-axis will increase or decrease, but the Y-axis won't change.  Let's say the coordinates are (-5,-4), (-4,-4), (-3,-4), and (-2,-4).  The X-axis changes and the Y-axis doesn't."

Friday, October 4, 2013

Interviewing a student about looping:

H:  When I started my game called Lizard Jump, I had 6 levels that I wanted to put into the game. The game was working fine, but I received people saying, "This game has 6 levels.  Where are the other five?" So I put out the statement that I was going to try to get all 6 levels working.  I looked at the other 5 levels and saw that there was no loop connecting them.  So I went to 'make a block' named it 'loop' put it down and made a variable.  And I called that variable 'loophole.'  I put the titles of the games, Lizard Jump, 2,3,4,5,6, and put them in the variables section.  Then I put those in the 'define loop' block. Then went over to the other games, made the same block over and over again, then tested the game.  I also put in 'when space key pressed,' define the loop and do what the loop block says to do.  So then I tested the game by pressing the space key and the lizard said 'welcome to level 2' and it switched to level 2.  I had a problem with the game where it kept adding new lizards to the game because they had been there in the previous game, so I added 'make a list' called 'delete lizard' and I made five of them for level 1,2,3,4, and 5.  Then I tested - if I hit a certain key would it delete a lizard from the previous level? It did, so but then I found I accidentally placed another block under that that automatically started the game from that level.  So I decided to leave it there...

Tuesday, October 1, 2013

More Scratching...

Interview with novice 'Scratcher' - M:

On Scratch I am working on an idiom project - a taste of your medicine.  It was pretty challenging because most of the sprites they had was not what I needed so I had to create my own and my own background and fix things up and reprogram it to make it better.  I had to make my mad scientist disappear.  When I was trying to do that I tried to make my own block and typed in disappear, but when I clicked on that for my mad scientist, he just stayed there.  And so then I had to make him move 240 steps so you didn't see him anymore, but you could still see his hand.  I'm trying to make him disappear, but it's hard because I tried to get the background to go over him, but that didn't work either.  Whenever I played my whole video I would have to set everything up over again, and that was annoying because I had to move everything here and move it back there.  I'm looking around Scratch to see how I can program to set itself up all over again. The mad scientist was supposed to create his own medicine to make himself younger and when he drank it, he turned into a turtle, so I had to make the turtle come out from under the table.  I had difficulty with that because I could only make him move 10 steps at a time and I had to count over and over again how many steps I would need to move him.