Using coding to teach mathematics

I have been a proponent of coding for quite some time. I feel that it will be a skill that students need in the future. I know that this may cause some stir in many of you but here is my reasons:

1) Though I do agree with who knows what the future may hold, I do believe that this is a skill all kids will need. At one point in time no one knew how to read. In fact it was only geared to the clergy because they had to read the bible. Now that skill is in every classroom. We may not be there yet but I think we are very close. Coding is a part of everything that we do and our everyday. I think that it is important to know how things operate. Yes that does mean changing our oil and fixing our cars. We may not have the time but I think as adults these are important skills. Students now should learn about how their electronics work. How do we make them do what we want to do? I am not saying that all of them will become computer programers but we should understand the basics.

2) Coding does more then just teach programming skills. Students learn critical thinking, problem solving, and being creative. As students try and code they learn to research, ask questions and work through till they get a solution

3) Most kids if not all, love to code. Now I say this with a side note. I do find that when the task is meaningless then some kids are not as engaged with coding but if they are creating something and the right differentiation is in place then they are all in. To be honest you can say this with most ideas but it does apply here.

4) Coding teaches logical order and research skills. I don’t have numbers yet but the more that I have done coding the more that I have noticed my students critical thinking and sequencing skills improve. I have noticed my students improve in making connections and seeing how all the big ideas link together. Again I cannot say this is all coding but I believe that this is a major reason. 

For me coding fits naturally with mathematics. I mean the main idea of spatial sense is right in our curriculum. However, that is not the only area you can use it for.

Today I thought of turning a quite boring lesson of order of operations into a coding exercise.  It was really cool to see the students take a foundational lesson and a very procedural lesson and apply some creative and problem solving skills.

The challenge was to create an app that can test students understanding of order of operations. Students had to also have their users think about misconceptions and possible errors.

Here is what the code looked like for most:

The students still need more time but here is the sample that we have been working on, link. 

//scratch.mit.edu/projects/embed/104333621/?autostart=false

Throughout this process the main purpose was not to teach coding but to understand the basic idea around order of operation. Sure I could have just told them the answer but they have now started to work through the procedure and how students can make mistakes. I hope that when we debrief they will forever have an understanding of order of operation.

This is just one example of how coding can fit into our everyday math lessons. The main focus should always be the concept and idea of math and then the tool. By teaching this way I have allowed my students to explore order of operation and to critically think about the concept.

I encourage you to try coding in your math classroom

Advertisements

To Code or not to Code?

I know that this seems like a topic that is in everyone’s blog post but that because it is in my own personal opinion one of the most important concepts to be teaching.
This isn’t because of being the coolest new buzz word to get everyone’s attention but because it actually makes our students smarter. Now I really don’t have any research to back me up here but from what I have seen in K-6 it has made my students smarter. Not book smart but thinking smarts.
Coding didn’t teach my kids to memorize facts or to follow procedures but to think about what they are doing and why. Sure many of them often followed other people’s ideas but the thinking that went into understanding code was tremendous.
Coding in my classroom is not just about computer science. I do not believe that in my role am I a)qualified to teach the skills and b) is the place but what it is, is part of my everyday teaching.
For me coding is a tool, a vehicle for me to teach with. I treat it like I do any piece of technology or paper. It gives students a platform for learning. But it is the teacher that brings out that learning. I will be the first to tell you I only know the basics of code. But it is amazing to see kids understand and practise knowledge concepts through the act of coding.  Coding makes my students think about what is going on. It makes them understand the algorithms that we teach and learn in class and it gives a place to solidly knowledge that we normally solidify with a test or some sort of worksheet. 
Coding makes kids think and makes them creators and innovators. It teaches them to problem solve, to think and isn’t that what we want for them?
I love this info-graphic:
Source: https://datascience.smu.edu/blog/kids-and-computer-science-infographic/

So the questions then becomes how do I start?

Simple answer like you would another lesson. Have a big idea that you want to teach with, plan possible outcomes and find ways to modify for various students. Now think of a way to insert coding. You see it is not coding that makes it a great lesson but the planning that you do before hand. You cannot go into a lesson a just say hey let’s code, you still have to plan.

Some lessons that I have done:

Measuring the distance around my hand in pixels: this grade 2 lesson had kids have their pixie move around their hand and count the pixels of their movement. We then compared the distance of our hand to fingers or the width of our thumb to that of our pinkie.

Design a game to create a pattern rule:
Students made a game for their partner to guess their rule. I also had them ask what is the algebraic statement. Students had to use algorithmic language to tell the computer what to say
Lightbot and codeable:

Are two great iPad apps that have many great practical knowledge built in. Counting, rotation, spatial sense, Cartesian planes, etc.

Coding has endless possibilities it is all up to your planning and own innovation. Remember it is not the tool that teaches but the teachers. Coding is a tool but you still need a good plan to teach.
For more ideas you should check out:

Role of a Teacher

I have been having a great discussion on the use of coding in the classroom with some amazing g educators (Aviva Dunsiger, Brian Asinall and Enzo Ciardelli  ). The conversation has been about using coding in the classroom and the reasons why and how we use it. You can read some blogs here.
Today Brian posted this

//platform.twitter.com/widgets.js

//platform.twitter.com/widgets.js The conversation has been amazing so much so that I cannot keep my thoughts to 70 characters with everyone involved. So I thought I would state them here. 

In this conversation I stated that a teacher can change the outcome of a task. I have also stated in other blog posts that the role of the teacher is critical to the learning of students and the speed of their growth.
I see many things in our education releam as really cool things to do. We have iPads, Minecraft, inquiry, problem based learning and coding. The problem is that these are just cool things, if I can dumb it down to that (and please do not take me for saying that these things are not important. In fact I think they are all highly important).  What I am trying to argue is that without good teaching a task is a task and even if it’s the newest thing or an important thing with out good teaching it is useless and can hurt student development.
What is good teaching?
We have numerous ideas as to what that is but for me a good teacher does:
1) Puts students first: I know this is suppose to be obvious but a good teacher knows ther students, is able to understand them and is able to meet their needs.
2) anticipates problems: there is a lot that goes into planning a lesson but one thing is that a good teacher knows how to foresee problems and misconceptions because they have anticipated these problems
3) uses contexts for deep learning: A good teacher is always thinking about the context in which students are learning in and from.
4) able to guide and redirect the learning through questions: A good teacher has a bank of effective questions that will facilitate good rich discussions. They also know how to ask questions that will scaffold student thinking and move them along a continuum of learning.
5) understands both content and curriculum really well.
6) makes mistakes, acknowledges mistakes and is always learning
Now why is this important? Because a good teacher, through these qualities, can turn any task into an engaging, thoughtful and amazing lesson. Because they have a good understanding of student development, content and curriculum they are able to turn a basic plan into one of rich discussion. It is these lessons that we are striving for.
So when we argue that Brian’s task may be a task card or a list of checks and skills a good teacher can turn that activity card into an amazing lesson where students are creating, checking, reflecting and then discussing the curriculum links to what is there. Yes you can take it at its face value and see a list of skills but you can also see a lot of learning goals both in curriculum and in soft learning skills. It transcends the application of coding.
I would also suggest that even though coding is not in our curriculum a good teacher recognizes that there are many important skills that students need to learn outside of our stated curriculum. Yes our curriculum is important, yes it must be taught but a good teacher knows how to manipulate it so it’s not a series of checks but deep conceptual learning. They know how to incorporate the necessary skills of the future into a lesson not because it says we have to but because kids need to learn it.
To me the curriculum is important but it’s not the end all that we make it out to be. Learning is! Now we cannot forget the development of that learning and the curriculum does provide that nicely for us but we should be looking at the learning. Coding provides that opportunity to learn and learn about learning.  Students are engaged in problem solving, rethinking, being creative, being mathematicians, etc. Yes it is not the end all to be all and yes it is something that I wouldn’t spend all of my time on but I think it is still something that must be taught and should be taught.
I guess in the end what I am saying is that an effective teacher knows how to manipulate the curriculum so that students are always engaged in rich contextual lessons no matter what that may be. A good teacher can make all the difference to any task.
I am not too sure if I am making a local argue net but I would love to hear your thoughts:
1) what do you think makes a good teacher?
2) what is the role of the curriculum and how should we use it?
3) what of soft skills?
4) what about these “fun” things like coding, minecraft, iPads, etc? what do they have to offer?

Coding and Math

Coding has been a hot topic in education lately and rightly so. It is an important subject. I was recently talking to a friend of mine who has to learn how to code because her job now requires it. More and more coding is becoming essential to any job of the future. The saying is so true we are training students for jobs that don’t even exist yet.
Now it has taken me a while to get into the coding wave, per-say. The reason is that I have had a hard time figuring out how to fit coding into the curriculum. You see for me curriculum is and should the foundation for all of our learning and teaching. However, now that I have had some better understanding of coding I think I feel more comfortable incorporating it into my classroom. 
I am writing this post to share some of my learning and to share some of my big ahas.
Why Code?
If you haven’t tried coding once then you may not see the potential that coding has for your classroom. Coding is amazing, I have always thought this. Coding is a built in problem. The very essence of coding is creating something from nothing. The Code that you write ends up creating endless possibilities. You are only confined by your imagination. So why code? Because it teaches students to problem solve, to be at a disequilibrium, to be collaborative and engaged with the 21st century learning (yes I know that many of you may not like that term). 

What programs are there for me to play with?
There are a lot of programs to play and learn how to code. First and foremost I would suggest going to code.org as this is an amazing website dedicated to coding.  I would also suggest connecting with Brian Aspinall (@mraspinall) and Lisa Ann Flyod (@lisanneflyod). 
There are also some great iPad apps: 
Lightbot
Hopscotch
Scratch Jr
Code.org has an app too. 
There are also many computer programs out there but one that I love is scratch.
So how did I start?
To be honest I just thought I would jump in but then had to rethink that plan as I really had no idea what I was doing. So the first step was coming up with an idea. At the moment we are studying measurement. I thought this would be a cool way to introduce coding and measuring concepts, especially non-standardize measuring. 
So my assignment was: Measure the span of your hand.
Step 1: I allowed the students to explore the program of scratch. I think that it is important for students to explore the programs they are using, as they will do this anyways may as well give them time to do so. 
Step 2: Gave them a set of challenges:  (import a picture, draw a line, make a scratch move, and add a sprite)
Step 3: Write a program that would measure the span of your hand. (first test) (second attempt)
This process was amazing; however, it wasn’t until I tweeted our first program to a friend (Lisa and Brian) of mine that we started to see where we went wrong. This is also where I learned about adding variables to my code would help to improve it. To be honest I had no idea what variables meant.

This is the amazing part of sharing your ideas. Lisa offered us great advice and my students took the learning opportunity. Hear is what they did:

Lisa’s 

My Learning:
1) Students can do remarkable things: 
Don’t hold back because you don’t have a good understanding of coding. You will be surprised at what students can accomplish. 
2) Learn with the students and then share your learning:
Often through this process I was learning and working on the problem along with my students. As the students or I made a finding we stopped the class and talked about it. We even shared the links and had students remix the code. 
3) Plan the curriculum expectations before hand: 
Now make sure you have a plan of the big ideas in your mind. I often hear that these types of plans do not go well because the kids went wild or off task. If you don’t have a plan they will. Keep the curriculum in mind.
4) If at first you don’t succeed, try, try and try again.
Coding is worth it. It is such a rich task with high possibilities. I have made a lot of mistakes with coding in the classroom but to be honest even those mistakes the kids learned a lot both curriculum and with coding. 
Overall, adding coding to my classroom was a lot of fun and so worth the struggles. The students are so engaged in the lesson and learned a lot. In fact without thinking about it my students learned about the relationships between adding and subtracting, coordinate grids, negative numbers, Cartesian planes, what a pixel was, and how to find the distance of a line. AMAZING!!! 
I hope that you attempt some coding in the classroom and if you do I would love to see and hear what you have done. 
Embedded image permalink
Embedded image permalink