Computational Thinking

I’m redesigning a coding unit in my New York Academy of Sciences STEM Education in the 21st century online course. I’m building off my Trick or Treat project and the Math Quiz game project that I have taught in the past, infusing the lessons with essential STEM skills like problem solving, critical thinking, and creativity.  The course is really helping me think about my learning objectives for the students. It is also helping me understand the importance of this types of activities – beyond that they are engaging for students.

Concurrent to the course, I’m actually running the unit in two math classes, co-teaching with the classroom teacher so I am able to fine tune the lessons and reflect on what went well or not so well.  Last week we finished up the Trick or Treat project (lesson 1 and 2) just before Halloween.  Here is the project instructions document: Public Trick or Treat instructions. One teacher expressed how organized the project was and how the handout made it easy for her to help students. (All this planning is paying off ) I also had a sample project that I modeled with and had the students brainstorm ideas for different actions when “trick” or when “treat” was selected.

I changed my handout for the next lesson when I heard that students felt they were getting out of learning because it was so much fun.  I wanted to make their learning visible to them.  They needed to know how much computational concepts and thinking they were actually doing. I came across the Creative Computing Curriculum Appendix on Computational Thinking and crafted this reflection page to help my students see what they were learning: Public Scratch: Reflecting on Learning  I went over all the concepts and we talked about how we had already used some of them and some we would use later.  We talked about the different practices, especially testing and debugging.  I was impressed with reflections they did.  I can see that they can identify the concepts and practices they are using as they learn to code.

Screen Shot 2019-11-03 at 6.20.13 PM

4th grader’s reflection

In addition, we spent time on testing and debugging.  I used this project to model how testing and debugging work (I even told the origin story of debugging) and I had a worksheet for them to fill out while testing.

Screen Shot 2019-11-03 at 6.22.55 PM

Reflection on revising

Screen Shot 2019-11-03 at 6.23.19 PM

This student knows how if-then-else blocks work!

Screen Shot 2019-11-03 at 6.24.20 PM

For 3rd grade I simplified it a bit, and still got awesomeness.

 

Screen Shot 2019-11-03 at 6.41.36 PM

 https://scratch.mit.edu/projects/340589577/

(I’m going to just hit send so this doesn’t end up like the numerous other draft posts I’ve written lately.)

Snack Discussion

I’ve started my eleventh 4th-grade after school Code Club session. We’ve met three times and things are going well, but I’ve neglected to blog.  I’m using the same club format and the same projects I’ve blogged about before, so there was really not much to write about.  After this week’s session, though, I found I have something to share.

Screen Shot 2019-03-16 at 9.24.16 AM

Week 2 project: Maze game by a 4th-grade code club member

Code Club starts right after school – literally, the last bell rings and the students walk from their classroom to the computer lab. We start by circling up the chairs and having a meeting time where I take attendance, talk about what project we are going to do, and have a snack. (Snacks are provided by members who volunteer to bring something to share with everyone.)

Since we can’t eat while coding on the computers (school policy and good rule in general), I use this beginning time to talk about computer science, my coding objective for the day, etc.  This group is a very easy-to-manage and attentive group so I have made an effort to start a snack discussion to fill this time. Their thoughts and ideas are helping me craft the club to fit their needs.

IMG_0744

This first day I asked them what their favorite computer/video game was. Their favorite games ranged from themed games like Harry Potter to popular MMO games like battle royale type games.   No real surprise there.

The second week I asked them what types of games or projects they wanted to learn to make. I wrote down their list of ideas.  There weren’t many surprises, but I do have a number of girls who want to make a virtual pet style game, so I’ve added that to the learning projects I will present to them.

This week I asked them what they thought was the hardest part of coding. This was exciting because many of them felt comfortable enough to share their concerns.  I listened and affirmed that all of these were difficult parts.

I have a volunteer, who is a middle school math teacher, and she shared her concern that the hardest part for her was when a student asked for help but only said, “this isn’t working”.  It is true, that it is difficult to figure out what is not working in code at first glance. It would be helpful for the students to explain what they were hoping would happen and what was actually happening in their code.

Some of the other parts they thought difficult were:

  1. finding the code blocks they were looking for.  (I have to remember that they are very new to Scratch.)
  2. using the costume editor. (Another student gave some tips on this – like switching out of vector mode to draw. I thought it was great that they are helping each other.)
  3. coming up with the design of the project they want to make. (I affirmed this was a difficult part. A good design plan makes the rest of the project go smoothly. For some games, the design phase takes 50% of the total time from start to finish.  I also told them that when designing their game, they would fill out a Game Design Document to help them make those design decisions.)
  4. finishing the project/ getting the project to match their expectations. (Wow, these are insightful kids.  Yes, I told them that I and the volunteers would help them manage their project.  First by making sure it was a project that could be done and second, by helping make a plan for them to get it done in time.)

The snack discussion has become a favorite part of Code Club for me.  I hope I can come up with more good prompts.  Maybe I’ll ask about getting unstuck next.

I am also enjoying teaching them to code and playing some of their creative projects, too.  Here are a few screenshots.

Screen Shot 2019-03-16 at 9.23.56 AM

Week 3 project: Quiz-type Chatbot by 4th-grade Code Club Member

Create Your Own World

I don’t usually blog in the summer, but I’m running a weekly summer code club at the library in July and I’m being a bit reflective about the monthly one that I helped lead this last year.

Earlier in the year, I introduced a new (to me, too) project to the Lebanon Library Creative Coders. We decided to take two of our monthly meetings, February and March, to work on the Create Your Own World project from Code Club World.  I knew this middle school age group would enjoy creating a platform game. One of them even continued to work on it for a third month and was able to add a lot of detail like hit points, inventory list, and bad guys.

 

Screen Shot 2018-06-29 at 8.05.47 AM

World detailed with inventory, hp, weapon and bad guys.

The first meeting we focused on setting up the player movement.  We remixed Code Club Rik’s Resources for this project so we could jump right in with the coding.  When I was prepping for our meeting, I went ahead and changed the character from a square to an overhead view of a guy walking.  One of my original groups of students created Showcase projects called Tomb of Terror and Shadow Swamp with Hatty McWalker.  That’s who I was thinking of with this guy.

Screen Shot 2018-06-29 at 7.49.15 AM

Overhead view of my player.  I added a costume with the mirror image and a “next costume” block in my code to make him look like he is walking.

The Creative Coders were certainly creative with the movement options.  I’m used to using arrow keys for movement, but these middle schoolers liked ASWD and this creative ghoulish option with side arrows for turning and up for forward:

 

I’m finding it useful to look at the code more closely.  There are some interesting, creative coding going on and I’m seeing some misconceptions that will help me help them debug their code.

Screen Shot 2018-06-29 at 7.27.01 AM

Well coded ASWD movement and wall checking

I’ve seen this forever-forever coding before. Something is not working like they expect and they try to solve it with nested forever loops.

Screen Shot 2018-06-29 at 7.27.37 AM

Nested infinite (practically) loops didn’t fix the problem – switching to the “play sound until done” block did.

Or they are checking for an event and forget to put in the forever loop:

Screen Shot 2018-06-29 at 7.55.25 AM

One time event checking?

This wall checking code has been separated from the key-press event giving no response.

Screen Shot 2018-06-29 at 8.02.31 AM

If touching wall move in all directions at once.

A couple of the coders explored more blocks where you can define your own.  This led to a teaching moment for me to explain how these function blocks worked.  It turned out less useful than my right-click to duplicate code suggestion.

 

 

All in all, they impressed me. In the moment I’m not always sure what is going on with everyone and even at the end when we stop to share what we’ve accomplished I don’t always know how they did.

Some of them didn’t want to continue what they had started the month before, but they were self-motivated and independent enough to work on their own projects.

I love that this crew is supportive of each other and willing to share their ideas and compliments.

Screen Shot 2018-06-29 at 7.23.54 AM

I appreciate good, supportive commenting

Some of the same students have signed up for the summer session. I’m looking forward to it.

Managing Code Club

Overall, I’m loving the independent projects that my two Code Club groups have chosen to create for their showcases.  They are working hard, mostly, and progressing. As project manager, I’m not stressing about the coding that is happening.

20161202_123932

Pair programming at recess

So instead of writing about managing the coding, I’d like to talk about behavior management. Here’s some things I’ve noticed:

  • Code Club can be loud. Scratchers want to listen to their sound assets and want others to listen, too.
  • Scratchers want to sit by their friends and share what they are doing.
  • Scratchers want to have fun while they are learning and
  • Ten-year olds enjoy the silliest things.

I don’t find anything wrong with these things. This is an after school club, not a classroom. I enjoy the energy and enthusiasm of a room full of Scratchers.  However I do need to have control of the energy level and keep the chaos in the “fun” realm.  I know what level of noise I can stand and manage.  There are also some behaviors that push my buttons and times when I miss catching behaviors before they create problems.

Here’s a couple of things I work towards:

  • Develop a routine.  This is important enough to spend valuable time on.  We gather at the beginning in a group, even if I’m not introducing anything.  We check in with each other and set a plan for the 75 minutes. It helps settle the students into the club.  I’d like to be better at setting up a routine at the end.  I’m usually working with students on last minute coding crises right up until the parents show up.
  • Get to know the students.  I know the HSS Code Club students and they know me – we see each other at school but the students from my other club I have to get to know quickly. They don’t know me either.
  • Set expectations. While we go over expectations during our first meeting, I rarely restate them unless something comes up. I do expect everyone to follow school rules, and respect others. “Friendly reminders” about those rules can serve as a warning.
  • Be yourself.  I’ve seen and tried a number of different classroom management styles. Some work for me and others don’t feel genuine when I use them.

For all that I’m a generally upbeat, cheery person, I do get grumpy and irritated. Too much noise makes it difficult to work on coding.  Spinning around in the chairs or messing with the things in the computer lab – not okay.  Playing with the whiteboard until it flakes out, argh (This issue became a discussion point at the beginning of the next meeting). Deleting someone’s code – hasn’t really happened on purpose but apologies must be made.  I had to remove a student from Code Club one day, but we worked it out and the student was able to return the next week. I have to thank the school staff and administrators for their support for this one.

To close, I’ll state that every issue is different and, while I don’t always handle them as best as I could, there are not enough switch statements to code responses to all possible behaviors. In fact, I don’t think Scratch has switch/case statements.

 

 

Catch ’em

Week 2 for Code Club happened.

We did an old project game called Felix and Herbert which I’ve done before.  It’s not on the list of current Scratch project at Code Club World, but its simple concept with different movements- follow mouse movements- makes it a good second week project. It is a cat and mouse game and introduces some good game elements such as broadcasting and keeping score.

screen-shot-2016-10-17-at-6-31-44-pm

I allowed the students to pick any two Sprites – one to chase and one to be chased.  This let to some creative pairings.

screen-shot-2016-10-17-at-7-19-40-pm

It also became important in debugging to know which Sprite was which. When introducing the project I did point out where it says “Test your project.”  I let them know that this was a big part of programming.  I think I’ll need to emphasize that each time. I notice a lot of creative testing – playing with sounds, looks, speed, scoring, but not much debugging or referring to the project pages when things don’t work.

screen-shot-2016-10-17-at-6-29-48-pm

At the beginning of Code Club, I decided, we would add a bit of reflection to our meeting. On Wednesday I asked how the first code club went?  What were the successes and failures.  Many noted that they ran out of time or weren’t able to get the sensing of the edge of the maze to work.  I told them that it was a difficult task and if they were able to set up the Sprite to use the arrow keys, that was a success.

With Thursday’s group, I asked them to share one thing they found that they liked about Scratch.  This time I asked for positive responses mostly because they’d only played with Scratch and hadn’t really tackled a whole project yet.

I enjoyed this reflection time.  These are big groups and I don’t always get to connect with each student during our hour of coding.  Afterward Code Club I do take the time to look at the projects they save, highlighting a few here and noting any trending issues. And, of course doing my own reflecting on this blog.

I must say that my volunteers are awesome!  They work very hard fielding questions, debugging code, working with students. Even so, I think the students are asking for help too quickly.  They need to look at the project more closely and begin to do a bit more problem solving themselves.

screen-shot-2016-10-17-at-6-31-22-pm