New Year = Another Try


Happy 2017! – even though I’m three weeks late to the party…

Rewind to last year when I attempted to complete a “Blog Post a Day” and learned how challenging it was to come up with new content daily, but also stay relevant and timely.  After talking to a few people who read my post, I realized that often times they were as overwhelmed as I was.  It was a lot of information coming at them fast and not enough time to process.  I gathered mixed reviews on the separate topics vs “A Week With” series to explore something more in depth.

On a positive note, this work allowed me to start creating a collection of documents and writing that helped me in my everyday job and gave me resources to refer people to.

So, after the leap year that was 2016 I’ve grown a year +1 day older and wiser and decided to try the blog thing again, but with fewer expectations because then, like my students, I don’t always produce the greatest work.

My focus this year will be more on the helpful things I’ve learned in the past year, not just producing something everyday – but also sharing the helpful practices I’ve found that work for me, my students and other teachers.  So bring on the new year with a renewed focus!

Here goes nothing…again.



July 12th – A Week With Scratch

On our final day with Scratch (although hopefully not yours) we’ll look at a very “teachery” thing – the community.  The community will help teachers to “hand out” assignments and view students assignments when they have finished and shared them.

July 12th – A Week With Scratch

As the last six days have been a brief run through of what Scratch can do – today will be how a teacher can see all the amazing work their students are producing.

If your students are older than 13 they can signup for an account – which you should have them do with a school email.  Setup an account yourself and have the students “Follow You” by searching or posting your homepage for them to click on “Follow”, once they’ve followed you, then follow them right back.

Scratch Communities.gif

Once you’ve done all that, you’ll be able to see when they’ve completed and shared assignments, as well as create starter assignments for them to “remix” and then you see what they’ve done.  Under your account you have a “Profile” which is the overall view and the people that you are following and follow you, and the “My Stuff” which is all the projects you have and whether or not they are shared.

Although there isn’t a formal “classroom” on Scratch, it’s better than having the email back and forth of files and making sure the students have sent you the most up to date versions.

One of my favorite exercises is what I call “Fix My Code” which I make common mistakes that I see the class making and put them into a code to get it to work. This “debugging” activity helps students problem solving and critical thinking skills by having them look closely at each line of code and truly understand what it’s trying to accomplish.

July 11th – A Week With Scratch

In the last 5 days we’ve run through a super fast tutorial of Events, Variables and Arrays/List.  Today we’ll look at how to make a block, which is kinda like a “method” but I get into arguments with friends whenever I make that analogy (don’t worry – none of them read this blog so I’m safe).

July 11th – A Week With Scratch

With the recent partnership announcement of Google and Scratch, the press release states that more blocks (computer based and physical) will be open source which means more creative possibilities – but Scratch already headed this way with the “Make a Block” feature.

Personally, I’m a huge fan of SNAP! which was built from Scratch 1.4.  SNAP allowed you to build your own blocks, allowing for levels of abstraction and recursion, and higher education computing concepts.  Scratch introduced the “Make a Block” option and a lot of my high school students were drawn to it when they realized it could make their code more efficient.

Scratch Build a Block pt1

One of the sections available is  “More Blocks” and when you click on it you get the option to “Make a Block”.  Once you click on it you can name the block, and you have options to make it a number, a string, a conditional or just a label.  I named mine square as its the classic example I use.

In programming, the computer doesn’t know what a square is unless we program it.  the computer knows how to draw points and lines but we tell it to connect them.  A square is something pretty simple that a computer should know how to do, and we could use it frequently in our programs – so let’s make a block that will draw a square everytime we click it.

Scratch Build a Block pt3

So a square is pretty simple, four right angles and 4 equal sides.  The trick is to make sure you use the “Pen Down” block to draw it.  But with our advanced knowledge of Scratch, we know we can loop something 4 times, so we use the “Repeat 4 loop”.

Then we attach the code to the “define square” block, then use the “square” block and viola!  A square, and as since in the GIF above, you can change the definition and it automatically affects the “square” block.

We’ll jump into creating blocks in more detail in SNAP as we do the Week With series in a few weeks.

Tomorrow we’ll look at the community and how you can share, “hand out” templates and easily grade your students work.


July 10th – A Week With Scratch

Yesterday we introduced variables and how effective they can be (as a timer or point system – share in the comments if you came up with something else!) and today we jump WAY ahead in a traditional Programming Class and discuss List or Arrays.

July 10th – A Week With Scratch

In a typical progression of a Programming class, you’d spend a few weeks working with variables.  Assigning them, re-assigning them, having the program change them, assigning multiple variables, and it’s all very important stuff.  I only have 7 days so we jump ahead to List/Arrays – what can store the variables for more data to be processed and evaluated.

Arrays (and data) are the backbone of Computer Science, otherwise it would all be very simple programming that relied on one instance, ran the program and returned the value, but we can manipulate so much more data than that.

While there are a lot of classic “array” examples out there (collect birthdays and find mean, median, mode – ice cream sales and hot months – and all the examples that have you print out the last list item, or all items BUT, etc…) and they are all very important, but like I mentioned above, I only have 7 days.

Scratch Array.gif

The example that you see above is how I determine who presents first in presentations.  I have the students type in their name (when they click on the Cat), which adds to an Array, then I click on the button/sprite which says the name of a random student THEN removes them from the array (the most important step).

To create this 1.) click on “Data” (2.0 version) and 2.) then “Make a List” (I called mine classList) and “Make a Variable” (I called mine studentName – because this will change) 3.) I used the “Event” of “When this sprite clicked” to ask and gather the students name “answer” and then put that in the Array “classList”.  Then I 4.) Programmed the button to broadcast “message1” (not shown) which the Cat receives and 5.) sets the variable “studentName” to a random item in classList then 6.) says it for 2 seconds then 6.) deletes the variable from classList.

I use this example to always find real world ways to bring the things we are doing in the classroom to life.  Tomorrow we’ll run through making a block and the next day navigating the community for a classroom!

July 9th – A Week With Scratch

The past two days we’ve discussed “Event” blocks and how they get our Sprites to act once we click, or trigger another Sprite to react.  Today we’ll discuss variables and how they can trigger events.

July 9th – A Week With Scratch

If you are using Scratch 2.0 you’ll find variables under the “Data” section.  Once you click on the section you’ll see two options, “Make a Variable” and “Make a List” – we’ll cover make a list later.

The variable feature is helpful and something that is within the natural progression of the program.  I’ve seen after school clubs that show the event blocks, then let the eventual curiosity of Scratch take over.  Within a few days (2-3) students either start asking or figure it out and start teaching each other.  It can be a beautiful thing.  Unfortunately in the upper grades (especially in High School when you’re only option for CS is often AP CS A) you are force fed variables very quickly.

Variables are similar to Math variables, and for the sake of this post, they are.  It is a value that can change depending on the equation.

Two classic examples of variable usage are the timer and points.

Scratch Points

Points need a simple “If” statement to trigger their value going up each time.  In Scratch you can 1.) Create a variable (I called mine points) 2.) Set the value of the variable (I set mine at 0) 3.) and include in the “Forever loop” the “If” condition that if the Sprite is touching the other Sprite they get a point. Note: in my example I had the “Crab” randomly move around – but this could easily be an “avoid” game that subtracts points.

Scratch Timer

The timer is a little more complicated – only in a mistake that almost everyone makes right away.  To create a timer: 1.) Create a variable (I called mine timer) 2.) Set the value of the variable (I set mine to 15 seconds) 3.) and include in the “Forever loop” the “Repeat” loop (with value set to 15) the  4.) Set a “wait 1 second” block  for it to count down.

Scratch Timer Plus

Using the blocks from yesterday, I have it set when the timer counts down from 5 to 0, then the Cat runs away.  The blocks above are simple, the timer runs and “broadcast” a message (runAway) and then the Cat receives the message and does just that.

July 8th – A Week With Scratch

Yesterday we spoken about Scratch being an “Event Driven” programming language – which means when the user clicks on the sprite, types on the keyboard, or clicks the flag something will happen – today we’ll look at the other blocks under the “Event” section.

July 8th – A Week With Scratch

This is a tough post to write – personally I don’t think most people start thinking about events beyond the three mentioned yesterday for a few days as they get used to Scratch, but most people (including my students) see the additional blocks and have questions.

Three additional blocks you see that might peak your interest are the “When I receive ___”, “broadcast ____” and “broadcast ___ and wait”.

Continue reading

July 7th – A Week With Scratch

Scratch is a block based programming language.  With that being said it is very powerful and there is no way I’ll be able to cover everything about it in the next few days – I’m just hoping to whet your appetite and you’ll seek out more, or just have some basics to introduce it to your students with some confidence.  Today we’ll jump into getting things to happen, or “events”.

July 7th –  A Week With Scratch

From Wikipedia: “is a programming paradigm in which the flow of the program is determined by events such as user actions (mouse clicks, key presses), sensor outputs, or messages from other programs/threads.”  There are a number of Programming Paradigms out there, but I would say that students are probably able to grasp the event driven idea the easiest in terms of the reason things generally happen.

Once you’ve logged into (or opened the downloaded version of Scratch) you’ll notice the 8/10 colored blocks with labels – Motion/Looks/Sound/Pen/Data/Events/Control/Sensing/Operators/More Blocks.

Scratch 1.4 doesn’t include the “Events” as it is included in the “Control” section and Data is called “Variables” and “More Blocks” doesn’t exist – making 8 sections.

Continue reading