Emerging Technology Planning

The Plan: Scratch Coding Camp

This is actually a project that I’ve been working on trying to implement at my library, so I’d love some feedback.  I might get a chance to try it out for real, which is very exciting, but so far, it’s still in the planning phase.  So here’s the plan —

Explore your curiosity for coding at our 4-day Scratch coding series. We will work together to make mini-games in Scratch, learn skills at an individual pace, and produce creative projects with other students. After four days of hard work, bring your friends and family for a celebration of your success and a showcase of your Scratch creations! No previous coding or Scratch experience necessary! All materials and equipment provided.

Goals/Objectives

Expose students to the basics of coding and computer programming. Participants will learn the basics of the Scratch programming language with a combination of individual and group work. All participants will produce mini-games throughout the week.

Description of Community

6-8 graders.  I work for a mid-sized urban/suburban library district and one of our branches used to be located inside a school.  We recently built a new building and moved the branch out of the school.  It’s just across the street from its previous location, but we’ve noticed a significant drop in the number of middle school kids who visit the library.  I propose partnering with the school to temporarily ‘bring the library back’ to the school and deliver this library program as an after school program in the school computer lab.

Action Brief Statement

Convince parents that by allowing their children to ‘play’ with computers they are actually learning valuable computer coding skills which will make them better prepared for the world because computer programming is now part of basic literacy.

Evidence and Resources

Teen Coding Programs at other public libraries:

I could keep listing coding programs at libraries for a while, but that is just a small sample of different sized libraries + different demographics, all doing coding programs for teens.

This article from American Libraries Magazine shares ‘lessons learned’ from libraries who have started coding initiatives:

  • Collaboration is key. Don’t do anything in isolation, because you don’t have limitless resources.
  • Don’t overthink it. Just dive in, start small, and build from there. It doesn’t take a lot. Three or four computers and an instructor are all you need to get started.
  • Make sure you’re connecting with the needs of the community. Anticipate needs , even if community members don’t yet know what those are.
  • Go for it. Most libraries underestimate the demand their communities have for technology training. It’s a great service, and it adds value to the library’s role within the community.

This Scratch coding camp can be a relatively low-commitment way for my library to enter into teen coding education.  It will be implemented at one location, with a small target population, so we’ll be able to start small and grow from there.

Mission  

Coding is mentioned in the Arapahoe Libraries 2016 strategic plan — As technology becomes even more entrenched into everyday use and the dependence on gadgets grows, the need to make every experience matter for patrons by expanding their basic technology skill set is becoming increasingly important.

Funding Considerations

If the school gives us after-school access to their computer lab, then that should take care of computers and internet access.  Scratch is a free coding language that students can access in-browser.  Additional supplies are minimal — pencils, paper, etc.  For the pizza party, $100 should suffice, which the library should be able to provide.

Action Steps
 
  • Develop an instructional outline
Each student will work at a computer in the school computer lab (max 16 students).  Each day will begin with orientation (day 1) or a brief review (days 2-4), followed by an introduction of new concepts.  The new concepts will be demonstrated by the instructor on a projected screen.  Then the students will have the opportunity to test out the new concepts in an original project. At the end of the week, we will host a pizza party for students, family, and friends, and the students will get to show off all of their original projects.

  • Construct curriculum
– Day 1:
– concepts: introducing scratch, scratch account, sprites, sequential logic
– projects: basic cartoon, basic animation, maze game
– Day 2:
– concepts: conditionals, pen blocks, keyboard interactions, basic looping
– project: basic drawing, looping drawing
– Day 3:
– concepts: looping, variables, parallel threads, operators, basic custom blocks
– projects: basic math game, collection game
– Day 4:
– concepts: variables, lists, custom blocks, advanced operators
– projects: word game, advanced math game

  • Additional logistics
Communicate with school staff to coordinate use of computer lab.
Allow library staff time to familiarize themselves with the curriculum and Scratch projects.

Staffing Considerations

When teaching coding to kids, enthusiasm and personality matter almost as much as actual coding skills, so it’s important to have staff who actually enjoy Scratch coding projects.  Staff training should be minimal, as Scratch is a pretty easy language to learn.  And I’ve assembled some resources to help staff get started.

Training

Luckily Scratch is a computer language with a very gentle learning curve.  The visual components of the language and projects make it fun and library staff should be able to pick it up pretty quickly.  I’ve assembled and annotated some resources that might be useful when staff are working through their own Scratch projects.  I will add those at the bottom on this post.

Promotion & Marketing

Since the target audience is small and they all attend the same school, word-of-mouth advertisement to the middle school teachers and flyers in school computer lab should be sufficient to fill the program.  The promise of a pizza party on Day 4 won’t hurt either!

Evaluation

During the week of coding camp, tracking student progress and making sure they are actually learning the programming concepts is an important way to evaluate the effectiveness of the curriculum.  If students are coming back on subsequent days during the week, then it would indicate the camp is fun and worth their time — 6-8 graders are certainly old enough to skip out on activities they don’t want to attend.  Ideally, I’d love to see this program pull some of these students back into the library after the week is over.  If they enjoy coding, hopefully they will see the library as a resource where they can continue learning these skills and making computer games.  Talking to the middle school teachers about the kids’ reactions to the coding camp would probably also be valuable.

Annotated Resources for Scratch Coding

This annotated bibliography is intended for library staff who are learning Scratch coding.  A lot of Scratch can kind of be figured out as you go, but these videos were helpful to me when I was learning, so I figured I’d pass the knowledge on.  I know this wasn’t really a required part of the assignment, but I thought I’d include it at the end in case any of you guys are interested.

Awesome567.  (2015, September 19).  Scratch episode: 1 play button [Video File].  Retrieved from https://www.youtube.com/watch?v=pvYLk3oH92M

This tutorial video could benefit from some editing, but despite its somewhat scattered presentation, it contains a lot of valuable material.  Most helpful to me was the tip that you can copy/paste a block of code from one sprite to another by dragging it from the working area of the first sprite onto the image of the second sprite.  Aside from that, the video steps through the process of creating a menu screen and a ‘play’ button in Scratch by utilizing the broadcast blocks and ‘when this sprite is clicked’ block.  It shows how to hide and show different sprites and how to change the background when ‘play’ is clicked.

Blank Editor.  (2013, September 2).  Maze – invent with Scratch 2.0 screencast [Video file].  Retrieved from https://www.youtube.com/watch?v=3YXwcx0rSlY

This resource is a step-by-step tutorial video explaining how to create a maze game using Scratch.  I chose this video because I found it was a concise, yet informative introduction to many elements of game-making with Scratch.  It shows how to edit the sprites, add new background images, and have the sprite interact with the background.  The logic required for this game is fairly simple, so even if the user is unfamiliar with programming, they should still be able to construct a maze game by following along with this video.

Lewis, Colleen. (2013, July 25).  Broadcast: programming in Scratch 2.0 [Video file].  Retrieved from https://www.youtube.com/watch?v=BnYbOCiudyc

This resource is a practical explanation of how to use the broadcast function in Scratch to animate a conversation.  I chose this video because I found it to be very helpful in creating my cartoon for the assignment this week.  Understanding how to use broadcast is essential when doing animation work with Scratch.  Especially useful was the side-by-side look at the ‘broadcast message’ / ‘receive message’ blocks while concepts were being explained.

Paget Teaches…. (2014, February 21). Using the clone blocks in Scratch [Video File].  Retrieved from https://www.youtube.com/watch?v=pHrkUsrv9p4

This tutorial video covers the basics of using clones in Scratch.  When I was thinking about how I was going to code my collectables project, I came across the idea of clones.  This video talks mostly about using clones as a substitute for coding many identical sprites with very similar behavior.  Clones allow your program to do the same thing, but much more efficiently.  I ended up using clones differently than he does here, but I still found this information valuable and would like to share it.

Radhafille [Screen name].  (2013, September 8).  Make a block – Scratch 2.0 [Video File].  Retrieved from https://www.youtube.com/watch?v=ert5PtU6Zjk

This video is a very helpful step-by-step walkthrough of how to create a custom block in Scratch.  It includes answering the basic ‘why bother with custom blocks’ questions by showing how custom blocks can actually make your code easier to understand and easier to modify.  At the 6 minute mark she jumps to a demonstration of a specific Scratch plug-in (called LeapScratch), but the first 6 minutes have great info about custom blocks.

Schafer, Ben.  (2016, May 28). Unit 6, lesson 2, how to create functions in Scratch [Video File].  Retrieved from https://www.youtube.com/watch?v=KqyukTJB8-c

This video is a great introduction to using functions in Scratch.  He uses a very simple example of drawing a half-circle to explain the advantages of programming with functions, aka a piece of code you can call over and over again.  Although it can seem like more work up front to create functions, but the payoff comes later because changes and troubleshooting your program are going to be much easier.

SchoolPlusScratch. (2013, March 14). Scratch 2.0 – more blocks tutorial [Video File].  Retrieved from https://www.youtube.com/watch?v=2jM2SIDKM0Q

This video goes through the process of how to send variables to a function using the example of making a sprite jump to different heights, depending on the button pressed.  The speaker has a slight accent, so if English is not the viewer’s native language, it might be a little harder to understand the commentary, but every step is clearly outlined in the screencast, so it should be possible to follow along.

Skeletons888.  (2014, March 15).  Scratch tutorial – making a home screen [Video file].  Retrieved from https://www.youtube.com/watch?v=cL6UUPdeTw0

The tutorial in this video starts about 30 seconds in, so be sure to skip ahead if you are in a hurry.  Also the user in this video is programming with an older version of Scratch, so some things may look a little different.  I included it here because it clearly shows how to switch backgrounds when clicking a button (aka a sprite).  In this older version, the block that is used is called ‘When <sprite name> is clicked’ and in the current version the block is now called ‘When this sprite is clicked’, but the idea is still the same.  It also shows how to hide menu buttons during game play and how to introduce sprites after the menu screen.

TheLogFather [Screen name]. (2014, April 22).  Removing ask-and-wait [Scratch project].  Retrieved from https://scratch.mit.edu/projects/21056899/

When I was first putting my project together, I was frustrated that there seemed to be no way to get rid of the ask box (the blue bar across the bottom of the screen) without quitting the program.  Obviously if the user enters input, then the ask box will go away, but sometimes you might want to remove it (or give the player the option to remove it) without entering information.  This project shows how you can ‘hack’ the timer feature in Scratch to remove a lingering ask box.  It’s a pretty neat trick that I didn’t actually end up needing this week, but I thought it was worth sharing anyway.

York, Ryan.  (2014, March 30).  Broadcasting in Scratch [Video File].  Retrieved from https://www.youtube.com/watch?v=6v1OFTKaTGc

This resource demonstrates another aspect of the broadcast function — cause and effect relationships between different sprites.  It uses a simple example to show how utilizing ‘broadcast message’ / ‘receive message’ is the most common way to facilitate communication between sprites.  This video was also helpful in that it mentions the importance of defining a starting position for sprites that move throughout the course of the animation.

Leave a Reply

Your email address will not be published. Required fields are marked *