Join educator and host Dr. Sam Patterson and his cast of puppets as they discuss all things coding and programming.
Coding for K12: A useful teaching tool for all teachers
Welcome to Beyond the Hour of Code, I am your host
Dr. Sam Patterson, makerspace teacher and author of Programming in the Primary Grades, Beyond the Hour of Code.
Not everyone is super excited about coding, especially teachers. My love is learning, self-directed, creative, expressive learning. Code and things you can code are just one of the many tools I use in my space. (I have not yet written the beyond material for sewing and puppets, it is coming)- So what I want to chat about today, the conversation I want to start is about what code is doing in our classes, and how we, as teachers, can respond to the public pressure to code in a way that serves our highest pedagogical goals.
I talk about those a bunch my “Highest Pedagogical Goals” These are big picture goals like “Teach kids to read” “help kids develop the social skills to treat each other with kindness” The simple fact is that unless you are teaching a computer science class, you won’t be teaching your kids to code so that they can learn about coding. Also- You will have to teach some of your kids to code.
My school is an award winner in tech integration, and my students complain that I don’t teach them enough code before asking them to do things with it. This is true. I give direct instruction and practice short shrift and I rush to building something that does something for someone. I interrupt them as they work to show them specific things and as they learn things I didn’t know I have them teach the class. This isn’t comfortable for most of us.
Have you seen the drawing of a person with a circle around them labeled “comfort zone” and the X far outside the circle that says “You Are Here?” This is the land of coding in elementary school. While some of the kids and some of the teachers enjoy the challenge of logic puzzles and the rewards built into them, for many teacher and students the coding games and tutorials we find have little relationship to the world beyond the screen. They feel disconnected, and generic, and cutesy, like a worksheet.
What I strive for instead is a learning experience that takes a simple concept and uses the code platform to play with the concept and connect with other learning we have been doing. Sometimes this might be a ScratchJr “code the aquarium” challenge to have the kids learn loops and apply what they have been learning about fish. Other times we might use a hummingbird robotics kit to recreate a scene from the Berenstain Bears classic “The Spooky Old Tree.”
Instead of relying on the leveled app or challenge to engage the kids, I build my own frame. I create a lousy sample program.* (Always make a minimum, or don’t show them your fancy work, I find that “I could do better than that” is a really productive mindset for kids, especially when compared to “I could never do anything that cool”) I show the kids the lousy sample and leave the code where they can get it to copy, modify, remix, etc.
I do this because I want the kids in my class to spend the time in my class to do things that are specific to my class. I don’t want kids sitting in an app they could do anywhere clicking through screens, that is just giving my time away to an app builder in hopes that their app meets my learning goals. Often the only goal this meets is the external demand for coding.
When our schools and communities call for “coding for all” or “coding in every classroom,” our job as teachers is to make sure that coding, like every other tool that enters our classroom, serves the highest goals we have for our students during the time we share.
I find that focusing on the job the coding is doing (to show, to explain, to model, to storytelling, to control something) more than the code itself – keeps my kids focused on the higher goals. This allows them access to success even if there is som
Creating Authentic Learning Experiences through #Programming and @Arduino
The most challenging task of trying to teach code in a way that is authentic to students' interests and lives is being able to show code coding is authentic to my own interests.
I don’t come to code through a love of tech. I have a poetry degree and never caught the robot bug in my youth. I built model planes and used hot pins to simulate battle damage. My electronics kits are still in mint condition.
In this episode of Beyond the Hour of Code (https://www.teachercast.net/episodes/beyond-the-hour-of-code/) I share some of the projects I am currently working on to develop my own skills and confidence.
The Projects: (https://www.teachercast.net/wp-content/uploads/2018/04/Screen-Shot-2018-04-07-at-12.02.28-PM.jpg) Lilypad Arduino
Notorious LED upgrade:This project has been 2 years in the making and right now I am trying to integrate a sound detector to make the Neopixel ring interactive. Recently I did update the code to make the LEDs less bright. It is a challenge filming the puppet with the light in his chest, the light spoils the white balance.
Galaxy Backpack:This is a new build, I want to have it for bike safety as well as a demonstration piece for coding and wearables. I have been chasing down some odd troubleshooting issues and it looks like I might need to replace the Lilypad board I am using.
(https://www.teachercast.net/wp-content/uploads/2018/04/Screen-Shot-2018-04-07-at-11.58.40-AM.jpg) Testing LEDs on Galaxy Backpack
LED House Project:This is a multigrade project that began with the question “Why aren’t I using a train board to teach electricity and circuits?” In this project, the kids create cardboard houses and we wire them together in larger and larger batches. I am hoping we will have to construct several different power grids along the way. I have posted some of the projects on my Inquiry and Innovation circuits page (https://sites.google.com/echohorizon.org/maker/circuits) .
This project will be controlled with BBCMicrobit boards and be programmed with Microsoft’s MakeCode.com (http://MakeCode.com) website. The block-based code and the provided wiring diagrams make it easy for kids to read the screen and find the information they need to become successful.
HACK MY CAR! :This is an idea I have been thinking about for a while. My car is really basic, almost no gauges. I know my car has data I can’t see. My plan is to construct and On-Board Diagnostic (https://learn.sparkfun.com/tutorials/getting-started-with-obd-ii) device so I can access the data my car is creating. I have the first parts in the mail to me now and I will update you as I figure this out.
What are you up to? What do you dream of or wonder about? Let's wonder together and figure stuff out. Drop me a note in the comments.
Teaching Programming to our PreReaders: How can Coding Teach Students to Read?
In many ways, my whole career changed when I asked the question, “If I can teach coding to pre-readers, can coding help them learn to reading?” This episode of Beyond the hour of code talks through my learning process and highlights some of the most useful pieces.
I have included below the framework and template for one of my ScratchJr coding activities. I find that I only have to build a few of these activities and the kids quickly develop the skills to set up the characters and backgrounds on their own screens.
Check it out and let me know how you can adapt the idea to fit your goals and your learners.
A Reading Programming Activity with TemplatesEver since I discovered that my pre-reading students could code using leveled apps like Kodable and The Foos, as well as open studio apps like Scratch Jr, I have worked to figure out how this fun and engaging challenge could be linked to literacy instruction.
At my previous school, we did very little direct reading instruction in kindergarten, but we work on developing letter and number sense. There are sight words that are studied. As I worked with my kindergarten teachers I asked them what words we could support the kids in spelling and they brought me to the word wall.
Preparing Students for ProgrammingFor this lesson, I chose “you, have, and peace.” I thought these words made a logical progression of challenges. Then I set to crafting a digital learning experience. I used to do craft paper learning experiences with blackline masters, a photocopier and white out. To create a digital learning experience I build half of a program inside of Scratch Jr. I set up 3 different stages and each stage was a “level” holding one of the 3 words.
I had to make some adjustments to how the app functioned to set some boundaries on this learning experience. I used guided access on the Ipads to turn o the touch on the main stage. This meant my students had to use code to move the letters because they could not click and drag them.
The students have worked in Scratch Jr before, so I only had to show them the activity once and set them to work. Since I had guided access enabled, every Ipad was already on and in the app when I walked in the door.
Once the students got to work there were a couple of standard challenge points. as the “y” moves, it gets reversed. The students had to figure out how to solve that. As the students got into it the room got quieter and there was a level of focus. The challenge was real and in reflection, I can see the kids were learning and struggling because there was a wide range of abilities and success levels. THIS LINK TO EVERNOTE (https://www.evernote.com/shard/s116/sh/ff9fab28-42d7-476a-a920-eaecbfcc9199/fd8ff82125e3f2c1a317bc6d79d05cca) to download the Scratch Jr file onto your own device.
Creating a Custom WorkflowI use a couple of tools to make this lesson a success, one was guided access. By shutting down parts of the screen I was able to make this open studio app behave like a more restricted leveled app. This allowed me to create a 3 level digital learning experience that engaged and challenged the students. The second built-in tool I used was airdrop. I bet you could use Android's near field to do the same thing, I wrote the experience on one iPad and used airdrop to send it to the 16 iPads in the cart and set them each up. The prep on this was a little intense as it takes time to move the files and activates guided access. The outcome was so good I am working on a more advanced version for our first-grade team.
Links to Mentioned Apps Scratch Jr in App Store (https://itunes.apple.com/us/app/scratchjr/id895485086?mt=8)
Scratch Jr in Play Store (https://play.google.com/store/apps/details?id=org.scratchjr.android)
The Foos in App (https://itunes.apple.com/us/app/foos-code-for-hour-free-girls/id923441570?mt=8)
Using Robots in your Elementary Makerspace
The school year is kicking off and I am excited to share a terrific series of podcasts with you about teaching with robots. Below is the beginning of the post, be sure to check out the full article on Beyond The Hour of Code (http://www.beyondthehourofcode.com) .
Lesson Design in Three Dimensions, Learning with RobotsThe idea of teaching young children by playing with robots seems both amazing and laughable. If it is funny or strange, that is only because it is difficult to imagine learning with a robot. Spoiler alert: it will not involve C3PO lecturing your students.
Learning with robots through programming and group work is a very kinesthetic form of learning. Understanding the roles a robot can play will help you design engaging and meaningful lesson. The role a robot can play in a lesson does depend on what a robot can do. While this text refers to several different robots, these are just a few of the ever-expanding selection of educational robots. For the most current and updated information about these robots be sure to check BeyondtheHourofCode.com.
Robot as PointerFrom the desktop to floorGreat news! You have lessons written that are almost robot-ready. The most important element in a robot lesson is to make the location of the robot meaningful. A matching activity designed for desktop work can be adapted quickly to a robot activity. Many lessons take only two steps con convert from desktop to robot lesson:
Enlarge the images used in the desktop activity and places them on the floor.
Have students working in groups program a robot to move from the image to its match.
With this simple idea, you can place answers to math problems on the floor and have students navigate to the right answer once they have solved the problem. Students could also roll dice and navigate to the correct answer. This model of using the robot as a pointer to indicate the correct answer was the seed of a lesson in Tali's class. The robot used in this lesson was a Bee-Bot, a very simple robot that looks like a bumble bee and has a small wheelbase. It is programmed by pressing directional buttons on top of the robot. Every time theBee-Bot moves, it moves 15 cm. The bee bot runs on a grid of 15 cm squares.
The objectives of this lessonStudents will develop math skills (differentiated by skill)
Students will develop communication skills through group collaboration
Planning this lesson requires knowledge of the students and their math abilities, but with this knowledge, you can do some very meaningful differentiation. Tali had six robots to work with, so she divided her 24 students into six groups. She did not create groups of equal numbers. Instead, she created groups of similar math ability. With ability groups, she was able to customize the challenge level of the work to fit the students' needs. Tali ensured engagement through differentiation.
The GroupsThe core of this lesson is students do the math at hand and navigate the robot to the correct answer. Tali gave each group appropriate math to do and customized the robots grid with the answers needed.
Although the groups had slight variations in size, there were four active roles for students in the groups.
Calculator- counts the pips on the dice, or computes the solution to the problem on the sheet. This student talks through their process aloud as they work.
Verifier- checks the math problem, and is available to help in the computation process.
Programmer- writes and inputs the program needed to navigate the robot to the solution.
Debugger- follows the program as it runs to discover any errors, also available to assist in the programming process.
When Tali introduced the lesson, she spent time talking about each of the roles. Then a group including Tali role played through a turn, rotation, and a second turn. This modeled each role as well as the process of changing roles. Compa
What can we Teach Through Coding and Programming Activities?
How to Teach Anything Through CodeWelcome to episode 2 of Beyond the Hour of Code, a podcast to help teachers do great work. In this episode, we take on a couple of the big ideas we need to use code the best way possible for our elementary students.
Code is a Text, and we Teach Through TextIf you have been teaching for a while and you don't have a degree in computer programming, no one expects you to stop what you are doing and go become an expert in code, you are an expert in kids. Code is a text, it communicates something, it does something for some reason. With the help of simple apps like ScratchJr (https://www.scratchjr.org/) , my students can compose these meaningful texts, even my pre-readers.
If you are a teacher who likes to address standards in multiple contexts (spiraling), coding can become another stop on your instructional tour.
Programming is Problem SolvingMy students have plenty of problems to solve every day, and leveled programming apps give me a chance to teach problem-solving skills. Most of the programming work my kids do is more open-ended, and composing those texts is a problem-rich process. Since you as the teacher are not a code expert, this problem solving can be very genuine. When I teach this part of coding I enjoy being a partner in the process with the kids, helping them find the right information on the screen. So much of this is actually reading strategy instruction. (READ THE SCREEN).
Coding the StandardsComputer Science StandardsLeveled CS experiences
CS First (https://csfirst.withgoogle.com/en/home)
Google's CS First curriculum is a collection of fun activities like “ Make your own Google Logo (https://csfirst.withgoogle.com/c/cs-first/en/create-your-own-google-logo/create-your-own-google-logo/create-your-own-google-logo.html) .” Through the activities, students learn about and apply computer science concepts.
The Foos (https://www.youtube.com/watch?v=B-dpLkp2oOc)
Beyond Computer Science- Content Area Knowledge Open Studio Apps (https://www.teachercast.net/teaching-block-based-coding/)
Story Telling (https://www.youtube.com/watch?v=YHoZiaTYBr0) (Thanks, Jacob Lee)
Beyond Standards- Student EmpowermentProfound platform for sharing and interacting
Students quickly learn that they can create these texts about the things they care about.
Like the Show? Buy the Book! Programming in the Primary Grades: Beyond the Hour of Code (https://www.teachercast.net/product/1475825447/US/teach00-20/?cart=y) is your guidebook for keeping the focus on your highest goals as you bring coding into your classroom.
STEM Education for All Educators: What is Block-Based Coding?
App-Based Blockly ProgrammingWelcome to Programming in the primary grades: Beyond the Hour of Code (https://www.teachercast.net/bhoc001-learning-programming/) ”
Why Blockly?Blockly is a tool for building visual programming editors Teachers, once they are familiar with the platform, can spot errors much more quickly than they could find a misplaced semicolon.
Blockly based apps allow students to get programming fast. In a 45 minute class period, a student can complete multiple iterations of a functioning video game, an animation, or a model. The speed of creation is especially astonishing to anyone who has spent time working in a text-based programming syntax. The work the students are doing in Hopscoth, Tickle, and Tynker, during grades 2-4 is preparing them to be productive in Scratch in grades 4-8.
When students work in several different apps that are based on blockly they are able to transfer lessons learned in one programming environment into another. The fluid use of apps also helps students practice learning
Programming in AppsThere are many tablet-based programming apps available and there seems to be more every day for both iOS and Android. Check the last chapter of this text for our annotated bibliography of programming apps. Programming apps are generally categorized as leveled game-style apps or as open studio apps. The leveled apps are designed to teach the user the basic principles of programming through a gamified experience where level by level the challenges become greater.
Open studio apps aim to let the user design and build programs within the app that can often be shared with others using a community within the app or a web-based interface that connects to the app. One style of app is not superior to the other, they just do different things. When you’re deciding which to use in a lesson, think about your learning goals and match the app to fit.
Leveled Programming AppsLeveled programming apps, like Kodable, Cody's Quest by Tynker, and The Foosuse all of the mechanics of games to guide students through a process of learning tools, commands, and structures available in that platform. These are introduced one at a time in the context of a challenge. These apps can be powerful learning tools to use in whole class instruction as well as individual and choice-based learning contexts.
Cody’sQuest by Tynker (https://www.tynker.com/school/courses/show?id=11-codey-s-quest)
As a teacher, you will notice that the apps self-differentiate. Students work quickly through the levels they “get” and have to spend more time with others. Even though the leveled apps can be fairly self-contained, using them in the classroom is not a simple matter of handing out iPads. There are a few tricks and structures that can help support student learning and success.
TipsFor Teaching Code with Leveled AppsDon’tundercut the tutorials. Many of the apps have a good library of built-in tutorials. Ask your students to engage the tutorials and ‘read the screen’, or look for tips and solutions in the app.
Focus on communication and problem-solving. Since the app is going to do the heavy lifting of teaching the programming concepts, this frees you up to teach the important things, like how to ask another student for help, or how to notice when someone needs some help and how to offer it, or how to politely refuse help when you want to work through a problem on your own.
Hang back and watch body language. Observation can yield a great deal of data. A general guide is this: fist pumps = good, face in hands = bad.
Build in some reflection.One of the greatest challenges to teaching with a self-contained leveled app is that it can be hard to tell how the students are doing other than what you observe.
OpenStudio AppsOpen studio pro