beautyjoy / llab

Lightweight lab curriculum system
6 stars 13 forks source link

Request for enhancement: Tic-Tac-Toe #63

Open jpaley opened 9 years ago

jpaley commented 9 years ago

It may seem counterintuitive to change something that ought to be a script variable (and already is) into a global variable, but I think there is pedagogical value in making the POSITION variable in the PLAY TIC-TAC-TOE block into a global so students can see the position list as the game progresses. I'm getting a fair number of questions about how the mechanics of the game work. This seems to help.

It's somewhat odd to me that the WINNING_TRIPLES block is set up as a global (it never changes) while POSITION is a script variable.

Once things are working, moving POSITION back to a script variable is not hard...

brianharvey commented 9 years ago

On 9/11/14 8:59 AM, jpaley wrote:

It's somewhat odd to me that the WINNING_TRIPLES block is set up as a global (it never changes) while POSITION is a script variable.

It's /because/ WINNING_TRIPLES is constant that I think it's okay to make it global.

Can't you just put a SHOW VARIABLE block right under the SCRIPT VARIABLES that creates POSITION?

jpaley commented 9 years ago

Ugh. Bad morning for me, I guess. SHOW VARIABLE is clearly the right thing.

This reminds me that there is a minor issue that the temp variables are presented at the lower left of the stage in the IDE and in the upper left during presentation mode. It would be nice if they were top left for everything.

A student got confused because the temp variable info was mostly hidden behind an ASK prompt. That's easy enough for a teacher to point out, but may be an issue if someone didn't have a second pair of eyes.

cycomachead commented 9 years ago

Ugh. Bad morning for me, I guess. SHOW VARIABLE is clearly the right thing.

To be fair, we really should have an exercise where we teach students this as part of debugging. (It's sort of in one example.

This reminds me that there is a minor issue that the temp variables are presented at the lower left of the stage in the IDE and in the upper left during presentation mode. It would be nice if they were top left for everything.

I thought they should be upper left for everything? If there's nothing else on the stage they should show in the top left.

brianharvey commented 9 years ago

On 9/11/14 11:45 PM, Michael Ball wrote:

To be fair, we really should have an exercise where we teach students this as part of debugging.

I thought Nate wrote one. That's why he made me put that breakpoint block in the tools.

jpaley commented 9 years ago

I think it would be useful to put it into more than one exercise. I don't know that it needs to be explicitly mentioned more than once, but if the expectation is that people will use it, that probably ought to be demonstrated in blocks of code where variable inspection might be desired in the problem explanation.

cycomachead commented 9 years ago

I think it would be useful to put it into more than one exercise. I don't know that it needs to be explicitly mentioned more than once, but if the expectation is that people will use it, that probably ought to be demonstrated in blocks of code where variable inspection might be desired in the problem explanation.

Agreed.

We do have one page for the "check" block. However, we don't really have an explanation of why the show block is really there. I think some students don't realize that the variable does appear, or that's what causes it.

https://inst.eecs.berkeley.edu/~cs10/labs/cur/programming/debugging/the-check-block.html?topic=berkeley_bjc/intro_new/4-abstraction-testing.topic&step=7&novideo=true&noreading=true&noassignment=true&course=cs10_fa14.html

(Additionally, I think students find the way Snap! handles showing of script variables a bit confusing because of the duplicate watchers and the way the need to be removed from the stage.)