Use this thread to discuss your questions and comments about how to run the lesson.
Looking at the “snowflake”, I felt like there was an obvious and pretty much only way to break down the snowflake - separate it into four “crosses” (pointing up, down, left, right) - and each cross can be broken down more (but I didn’t push that too much if the kids didn’t do that part). I thought I confirmed this when students wrote they would make a function called stuff like “drawCross” or “drawPlusSign”.
HOWEVER… when I had them code it in Code Studio, at least a couple students per class were doing something I thought was strange… it didn’t look like they were making a function to draw the small crosses. I asked them what their approach was and what their “drawCross” function did. They told me they wanted to draw the BIG CROSS IN THE CENTER first, then draw the four “side lines”.
My gut reaction was to go whoaaahhh no no no. But I just held my tongue and told them “Hm. I never thought of doing it that way.” I asked them when they looked at the problem and broke it down into smaller chunks, was that what came to mind? They said yes, and echoed that their solution makes sense to them. I figured… well… who am I to judge? After all, isn’t the point of making functions to break down a solution for the programmer? BUT OMG IT’S SO INEFFICIENT AND IT MAKES NO SENSE TO ME WHY ANYONE WOULD DO THAT AAAAUGHHH!!
So tomorrow we’ll reflect on different solutions. I plan to project the different solutions on the board for students and have them reflect on the pros and cons of each.
How “should” I have approached it? Or how would you approach it?
Should I be concerned that those students didn’t seem to see what I thought was a more “obvious” solution? Is “my” solution even in any way objectively more “correct” or efficient than theirs? Should I yield to personal creativity or interpret this situation as the student not understanding a main concept of layering functions and top-down design (particularly the students who drew all four “side lines” using one function)?
Upon further reflection, I can see how this “other” solution very much can make sense if one looks at drawing the shape and just “breaking it down”. If anyone had a paper and pencil, they most likely would just draw the big cross first, then the “side lines”, just as those students figured. Perhaps then it’s that those students may not see the purpose and advantages of a function? mmmm :o\
Why do we have penUp/penDown commands for these first few stages? I found it to be extra and sometimes distracting/confusing for students especially in lesson 2 when they first get into it. Aren’t we just using left and fwd and functions up through this lesson?
You point is well taken. We included it because it helped reinforce the idea that the turtle has a pen that can be placed on or removed from the page. You’re right though that up until this point there’s no need for that functionality which I agree could therefore be confusing. I’m thinking we’d either add a note explaining what’s going on, add some puzzles that use that functionality, or remove those commands. Based on your experience do you have thoughts on what would lead to the most success?
I think these lessons seemed full enough without adding any tasks that actually required the use of penUp/Down. Personally I like the idea of making it EVEN MORE bare bones at the start. Just two movement commands gets us some fairly complex designs, and then functions are thrown in to make it more manageable.