Engineering Design Process

This week I will become the “project manager” for some 30 Scratch projects between my two Code Clubs.  It is Design Review week and the students will meet with me to go over their Game/Project Design Document before beginning to code their own projects to share at our Showcase for parents at the end of the term.

Last time we met I handed out the GDD (Game Design Document) for them to work on and complete before I meet with them for the design review process this week.

I’ve updated the GDD again.  (It is a work in progress).  This time I’ve added the EiE diagram of the Engineering Design Process to the front page and used language to support this process idea within. We use EiE curriculum in school, in our Hypertherm Hope grant supported after school clubs and summer Title I engineering camps. Many students have seen this before.

eie_edp

In the “Ask” phase I explained that they would have an opportunity to make their own Scratch project and opened it up for their many questions.  We also spent some time looking at past 5 Code Club Showcase projects to see what others have done. (I really hope the llamas don’t get remixed again this time around.  They are hilarious the first time you watch, but… well, even the students were tired of them by the end)

screen-shot-2015-03-30-at-11-10-11-pm

I also gave them some time to “Imagine” and sent the “Plan” GDD home with them.  Some were quick to come up with their ideas and completed the GDD before Code Club ended.  There will be some time this week while I meet with the groups to work on their “Plan”.

Once the “Plan” is approved it is time to “Create” then test and “Improve”.

screen-shot-2016-11-29-at-6-08-03-pm

Also new to the GDD is the Team Member Jobs plan. – I am letting them pick a partner of their choice (this is a club, not school) but I’ve found it is often ambiguous who will work on what part.  I’m hoping this part of the GDD will help me help them get work done.

Cute story:  One of my high school volunteers came to me, concerned, with a question about the “working with a partner” option.  A code club member had asked him, the high schooler, to be his partner. So I had to specify to the nine year old, “You can work together with any other code club member, but the high school volunteers will be helping everyone and can’t be your partner.”

My Own “Programming in Scratch” Challenge

Last week was Design Review Day for my code club. In one week’s time the students were able to come up with an original idea for a game, design it, plan its creation and pitch it.  Amazing!  This time I manned the lab while Alex, my high school volunteer and a parent volunteer conferenced with each group.  Both volunteers were pleased with the pitches in general. I admit that I haven’t had a chance to review any of the completed game design documents myself.

Instead I’ve been busy working through a Scratch language MOOC on edX, from my alma mater, called: HarveyMuddX: CS002x Programming in Scratch. I’ve been excited about taking this online class since I first learned of it and started following the course professor Colleen Lewis on Twitter and at CSTeachingTips.org. The course has a nice balance of video lecture, directed “play” in Scratch and rigorous quizzes. The class has helped fill in gaps in my knowledge of Scratch. For one thing, I hadn’t played around much with the Sound blocks in Scratch, so that was a fun week.

I also learned about race conditions, which I hadn’t heard of before.  A race condition is where two things are competing to set a variable or perform two operations at the same time and you cannot be sure of what the outcome will be.  For example, below I’ve set the score to two different values when the green flag is clicked.  Which will Scratch choose?  -whichever setting wins the race.

race condition

An example of a race condition

I had fun making some little drawing projectsScreen Shot 2015-03-10 at 8.27.51 PM and a helicopter game.

Screen Shot 2015-03-10 at 8.16.57 PMNow I have to design a final project. And I have been directed to think about it first…

Rather than just diving into a project, we want you to start thinking about different ideas for things what you might do.

Hmm.. that’s like what I asked my students to do.  The tables have turned and I’m not sure how they did it, now.  I’ve been toying with a couple of different ideas for awhile now and I’m still not sure what I want to tackle.  I’m going to have to make a decision soon and get to work.

This is my favorite question in the final project design phase of this MOOC:

Think about breaking your project into a series of simpler steps. What are the FIRST three things that you would make work?

I wish I had put some wording like that in my game design document for my students.  At any rate, I will remember to ask my students how they will break up their tasks as they continue work on their projects tomorrow.

Game Design Challenge Accepted

Last week in Code Club students began the design phase of their individual Scratch project. I planned the session to go the same as Key Steps in Game Design did: guest speaker, game design document, short Scratch project. Things didn’t go quite the way I planned…

Guest Speaker: We had the same parent volunteer come and give the same talk about planning & time management. I was worried the ones who had heard it before wouldn’t pay attention, but each returning Code Club member has experienced the pain of running out of time and dealing with unfinished, buggy projects. So they listened.

Screen Shot 2015-03-02 at 10.05.46 PM

Screen Shot 2015-03-02 at 10.07.03 PM

Game Design Document:  GDD Spring2015 This is the document where the students write out the plans and goals for their project, draw out their ideas for Sprites & Stages, define game flow & control elements, and set a schedule for achieving their goal.

gameplay

Game goals defined in the GDD

technical

Example of the Sprite and Stage design from the GDD of a new coder

Scratch Project: When I had finished going over the GDD, instead of wanting to work on a Code Club project, they all started to work on their game design and got down to planning. No one was interested in a project handout.  They had their own project to think about and that could not wait.  I was most impressed.

It is helpful, for me and the coders, to have been through this process once before. What made the difference, I think, from last time, is that this time I had examples of how a GDD turns into a completed project. I showed them a couple of different GDDs from the Fall -actual student work-  and then brought up the game it turned into from our Showcase#1 -more actual student work.

One student finished the GDD, with a bit of help from me, and had time to start working on the Sprites. Already!

Screen Shot 2015-03-02 at 10.31.13 PM

Sprite designs for new project

Two separate groups of three asked if they could work together.  My rule is these are individual or pair projects.  I turned one group down because I know them and one student would be doing all the work while the other two would have all the ideas. I have given a qualified ‘okay’ to the other trio on the condition that the jobs of each member are specified in the game document and divided evenly. I know them as well, and they might be able to manage. It is always interesting to watch team dynamics with students.  Another duo started out together but by the end of the hour had already decided to work independently.  Best to figure that out in the beginning.

By the end of Code Club I had a few finished GDDs ready for the design review this week. Some look pretty interesting and of reasonable scope. I’m not as nervous about their projects as last time.  The students have had less time to plan, but I’ve seen some of the planning they’ve done and I know what they are capable of.  I can’t wait to see what they’ve come up with!

Paint It!

Screen Shot 2015-02-10 at 6.42.12 AMLast week Code Club was challenging. I gave my coders a difficult project. They did it, but it was probably not the best fit for the group because it has to be precisely followed with a long set up.  I used Paint Box, a project from Code Club World (We are a registered Code Club World club).  It introduces some key Scratch blocks and new ideas of how to use Scratch.  Hopefully some of those ideas will be useful.

Pen tools

Some pen tools

One of these objectives was to introduce the Pen blocks.  It’s one set of tools that I didn’t even talk about in the first round of Code Club.  I’m not sure why exactly. Perhaps because they remind me of Turtle Logo programming and for that reason, I couldn’t see how students would use them in a game of their own making. Still, the Paint Box project is pretty cool – you make your own paint program.

While Code Club hasn’t used the Pen blocks, I have introduced Simon Haughton’s Etch-a-Sketch project to some 3rd & 4th graders in a half-hour class/group setting.  So for Code Club, I went for the more challenging Paint Box project.

The second learning objective I found in this project was to see “broadcast” used in another way. I like Paint Box project’s use of the broadcast/receive code blocks.  This can be a powerful tool in coding with Scratch. It this case, it is used for simple button handling.  We have used broadcast-receive blocks before, but to see it used in a variety of ways will help them see how useful this command can be.

handling button clicks

handling button clicks

There were some unexpected behaviors in the code that the students kept calling glitches. I hadn’t noticed them when I worked through the project.  Again, we are still using Scratch 1.4 in the lab, for now, but it turns out what was making the pen “glitchy” was the placement of the Sprite center.  This was another learning objective – learn about “set costume center”.

set costume center is key

set costume center is key

The directions specify to set the costume center at the point of the pencil Sprite. If the costume center was over the drawing of the pen itself, the pen down action wouldn’t always work and drawing on the screen became “glitchy”.  It seems when costume center on the pencil Sprite combined with the mouse commands causing the Sprite to be under the mouse when “mouse down” is received, Scratch isn’t sure if you are interacting with the Stage or playing the game. If you run the program in projector mode, the glitches are alleviated and the pen works in any costume center placement. I found this out later when working through the buggy behavior with my spouse, the software engineer.

Student Paint Box project

one student’s Paint Box project

So this project was heavy on the learning objectives. By the end of the hour most of them had a couple of buttons. Only one was thinking about adding more – a rainbow pencil or “stamps”. They did it, but their creativity wasn’t tapped. I need to give them time for more creativity. Next two weeks we’ll be back to game projects then they’ll start their independent project.

Here are two coders during indoor recess working on an independent project. Yeah, they really can’t wait for the independent project to start.

Pair-programming -4th grade style - sharing the same chair.

Pair-programming -4th grade style – sharing the same chair.

One of them has asked repeatedly if this can be their project for this session and I’ve told him “Yes” each time.