My Favorite Coding Apps

Picture

Scratch scratch.mit.edu   
Device: computer
Best for Ages: 8-16

Developed by MIT the creators goal was to “develop an approach to programming that would appeal to people who hadn’t previously imagined themselves as programmers.” - media.mit.edu Which it has done very successfully. A popular site for programmers and teachers alike.The code is written in blocks which can be pulled into the workspace and clicked together like Legos. This site is the best I know of for online sharing and collaboration. Users share, remix and comment on each other’s projects with ease. The multitude of projects makes it easy for teachers to find a project which they can use as inspiration in the classroom. There are many accompanying curriculums for Scratch, my favorite is Scratched Media Curriculum Guide


Picture

Hopscotch https://www.gethopscotch.com/
Device: ipad
Best for Ages: 8-12

For people who love Scratch and are looking for similar apps on the iPad, Hopscotch is fantastic. The other iPad coding apps that I have seen are basically games that teach coding skills. Hopscotch leaves more room for creativity. You can design your own projects and learn about coding as you do so.The design is simple to start with and visually appealing. One of my favorite aspects of Hopscotch is that you can add code that responds to the tilt of the ipad.


Picture

MIT App Inventor
http://appinventor.mit.edu/explore/
Device: computer
Best for Ages: 11 and older

Originally created by Google and now being maintained by MIT this App is a great next step for coders who have been using Scratch or another similar looking App. It also uses similar blocks as Scratch but is a bit more complicated. Prior to this app many students loved the idea of creating their own apps but got frustrated trying to do so. App Inventor makes it much simpler for students to be able to actually create their own app. It works well with a computer and an Android phone or you can download a phone emulator and use it on your computer.


Picture

Code.org http://learn.code.org/ 
Device: computer
Best for Ages: 7-13

This is the go to site for getting started with coding. Where can I learn more? What is the research behind coding? How can I get started? This site answers all of your questions and more. It also has it’s own curriculum. The curriculum has a combination of unplugged and plugged in activities. Some activities are games which are designed to teach you concepts of coding and in other activities you get to play around with coding. My favorite feature in code.org is that you can click on “show code” and you can see what the code you used looks like in Java script.


Picture

Codeacademy codeacademy.com
Device: computer
Best for Ages: 9 and older

A great place to start if you want to learn some practical coding languages such as HTML, CSS or JAVAScript. The tutorials found here are very step by step and if you get stuck you can click on “Hint” to get help. The site has congratulations and badges along the way to keep you motivated. I especially like the “projects” section where students can apply what they have learned.


Picture

Tynker http://www.tynker.com/
Device: computer
Best for Ages: 5-13

This site has a similar look and feel to Scratch in many ways but it has unique features. It is designed as a comprehensive coding site for educators. When you sign up, you can create a class, input your student roster, assign lesson plans and track students progress. It is very user friendly and still allows for student creativity and autonomy. The game tutorials are especially geared towards younger kids.


Letting Kids Lead

Creating polygons in Scratch is all good and useful but the real magic behind coding is letting kids design and create something. It is giving them a chance to see their idea come to life. So after I had introduced kids to Scratch through the polygon lesson, I started looking for opportunities to let them “play” around in Scratch. Students would finish work early or we would be between units and I would say to the class “Ok you have some time that you can work on Scratch” The class always cheered as if I just told them they had free play time. I let kids explore Scratch as I walked around and listened to them ask each other questions and solve new problems. Once the kids had a basic understanding of Scratch I decided to set up some mini lessons. Luckily, I had the perfect helpers to lead these mini lessons. I asked my expert coders if they could each prepare a mini lesson about Scratch. One kid decided to teach about variables another decided to teach about sensing. Each of my 5 expert coders had a concept that they were going to teach. I then wrote the concepts on the board and told the rest of my class to think about what they wanted to learn. After 15 minutes I stopped and had students rotate to their next mini lesson of choice. Each student got to see 3 different lessons. It was powerful to see students teaching other students so effectively. They had their classmates completely engaged. In the end it was much more effective then any coding lesson I could have come up with.

Learning about Polygons: First Lesson with Scratch

Picture

After being introduced to the fundamentals of how to give commands using a whiteboard, the students were ready for Scratch. The math concept that I was focusing on was how to calculate the exterior angles of a polygon. I wanted students to understand that if they divide 360 by the number of sides in a polygon they would find the exterior angle of the polygon. 

I could have had students draw various shapes with their protractors but I liked the idea of using Scratch because I knew it would not leave room for any mistakes. The students would have to be exact with their commands otherwise the program wouldn’t create the shape they hoped for. I taught the students the basics of how to pull commands in to Scratch, what a sprite was, how to put pen down and how to make the cat move. Then I told them to draw a square using Scratch using the pen down command. A simple code for that would look similar to this.
Once students could show me that they successfully drew a square I challenged them to draw other polygons. This required them to know the degrees of each polygon. The students weren’t allowed to use the internet to figure out the angles so most of them guessed and checked on Scratch until they figured it out. While they were doing this I had them record their findings in the table below.  
As students worked on this assignment they demonstrated understanding of polygons. One student (see video below) told me “Ms. Mindy, I figured out how to draw every shape.” He then went on to explain the rule that I was hoping students would discover. Every student demonstrated increased understanding of angles and polygons. When I later explained the rule to the class they were easily able to apply it. 

Some of my big take aways from this lesson were:
* The class was very motivated and excited to use Scratch.
* In this case I feel Scratch was a better option than paper and pencil because it self tested as they went and allowed them to make more discoveries.
* It was very easy to differentiate.
* The students didn’t need a lot of explanation to get started with Scratch.

Below is a video of two of my students explaining their discoveries. I have also attached a couple of student reflections from this assignment below the video.

Introducing Coding to the Class with a Whiteboard

Picture

As described in my last post I had introduced Scratch to a small group of my Grade 5 students. I was excited about the results and looking for ways to introduce Scratch to the rest of my class. I found the right time when my class was learning about polygons. I had a lesson in mind that I knew Scratch would be perfect for. But before students could use Scratch for my polygon lesson, they would need a basic understanding of how coding worked.  

Picture

I decided the best way to get them to understand coding was through a little role playing. First I explained to students that I was a computer and that computers are actually dumb. They can’t do anything unless someone else tells them how to do it and what to do. I explained that it is the people behind computers that are smart. I had the students give me commands and I acted out what they did.  You could role play like this with any commands. I chose to have students help me draw a square because that led well in to my polygon lesson. They quickly caught on that they needed to be very specific. After I had demonstrated how to act like a computer, I paired up students and had them practice the same thing with their partner.
The cool thing was that my students clearly had a beginners understanding of coding. Upon later student reflections, many students told me one thing they have learned from coding is that “Computers are actually dumb. It is people that are smart.” This may sound a bit funny but I actually think it is a huge understanding. From this lesson my students were beginning to understand that they had the power to control computers.
 
There is a lot of talk in education about preparing 21st century learners. Most educators I speak with agree with Mitchel Resnick who stated in his article Sowing the Seeds for a  More Creative Society,”In today’s rapidly changing world, people must continually come up with creative solutions to unexpected problems. Success is based not on what you know or how much you know, but on your ability to think and act creatively.” We educators agree that we must teach students to be creative and to problem solve. Many of us also agree that students need to be competent with technology in order to navigate the world they live in and will live in. Yet, I have often found myself guilty of teaching my students how to be a tech user rather than creator. As suggested in Scratch Programming for All, it is as if I have been teaching my students to read but not write. Mitchel Resnick suggests “Digital fluency requires not just the ability to chat, browse, and interact but also to design, create and invent with new media.” When my students began to understand that they can control computers they began to grasp the fundamental concept behind digital fluency. They can create. They can learn to both read and write.  It is hard to teach someone to write without first giving them a pencil. This lesson was the first time they held a pencil. 

Above is the edited, shortened glimpse at the lesson. Below is the whole class introduction unedited.

How I started learning to code

“We need to learn to code.” My husband announced this to me matter of factly one evening last spring. He is a passionate and tech savvy teacher. It is not unusual for him tell me about new technology that I should learn about and use in my classroom. However, this statement made me laugh out loud at it’s absurdity.  Learning to code was not something I was slightly interested in. In fact I didn’t even really know what coding was nor did I care that I didn’t know. Then I watched the video above.  A video which many of you have probably already seen. You may have felt the same way I did when I saw it. I thought “Oh crap, I actually do need to learn to code.”  So my adventure into coding began. 

The next day at school my students were beginning the Grade 5 PYP Exhibition. One particular group of five boys wanted to inquire into technology but they weren’t sure what direction to go. So I showed them the video and said, “Do you want to look into this?” Sure enough they did. None of them knew anything about coding. But they all agreed that they wanted to learn it and then take action by teaching it to others. So we all decided to learn together. 

Luckily for me learning to code right now is easier than it has ever been. Not long ago if you wanted to learn to code you would start learning a language such as HTML. You would type in line after line of code and most likely become lost and confused by some minor spacing error in your code. But today there are numerous beginner friendly, visually pleasing programs out there to help you get started. Programs like Tynker, Light Bot and Codeacademy. After looking around I decided to try out Scratch. I liked it because it was visually appealing, good for upper elementary students and free. I did what most of us do when learning something new, I looked up videos on Youtube.  About one hour later I had written code for my first ever Scratch project. It was a game of Pong. I was excited. I knew if I could do that my kids could do even better. 

The next day I showed my group of five students what I did and said, “If I can do that in one hour, what can you do?” So off we went. My students took right to it. Every night they went home and wrote code. They came back every day with new knowledge and new questions. To keep up with them I enrolled in an online class about Scratch from American School of Bombay. I began creating my own projects. The more I learned about Scratch the more I began to understand how computers work. My students felt the same way. 

I remember one student saying to me, “Ms. Mindy, now when I look at a game I don’t just think about the graphics, I always think about the code that went in to writing the game.” Another student showed me how to click on anything in Google and see it’s code. He said, “Now that I have been learning to code I see everything on the internet differently. It is like I think about what is behind everything now.”

The students were flying. It wasn’t just coding. I could see their creativity and problem solving ability increasing as well as their overall motivation and confidence.  I remember one day when I was teaching coordinates, one of my coders raised his hand and explained to the class what the X and Y axis were. I asked how he knew that and he told me had learned it while working in Scratch.
So I started to think about ways that I could incorporate Scratch into my lessons so that the rest of my class could learn as well. Once I knew a bit about Scratch this was easier than I thought. This blog will be where I post some of the classroom applications that I have stumbled across. I hope that others will share their knowledge as well. 

As a side note: One year later and the coders that I started with have all continued with coding and many have moved on to more difficult languages such as JAVA. One student even went to coding camp over the summer.