Category Archives: Coding

My Last Blog on CS: Technology Consumption vs Technology Creation

You have read the title correctly.  I no longer feel the need to blog about Computer Science and/or Coding.  The truth is that I have other interests in education and learning.  For example, I love trying to piece together math strands to come up with something new.  I also enjoy working with special needs students.  In truth, I am running out of things to say.  My last blog does not mean I end my advocacy for something that I feel is VERY important.  On the contrary, I am prepared to reach new levels of advocacy and sharing.  Who knows?  Maybe in a couple of months, I’ll have something new to say about the subject that is very dear to me.  Maybe it’s not the end . . .

In talking to Brian Aspinall, we often share stories about how coding and CS are viewed as just another means of using technology in the classroom.  We view it as much more than that.  Teachers might point out that they use a few of the following tools to facilitate the use of technology:

  • Creating Powerpoints
  • Using Google Docs
  • Preparing iMovie
  • Internet / database research
  • Communication through Skype
  • Website creation through WordPress

I could obviously extend this list, and no teacher uses all of these tools at once.  In discussing coding and Computer Science, it is not my intention to diminish the importance of using technology.  In truth, Computer Science and coding are something completely different than using these tools.  Consider the definition of Computer Science:

Computer Science:

Is the study of computers and algorithmic processes.  It includes their principles, their hardware and software design.  Computer Science examines technology’s need and impact on society.

Computer Science and Coding are not about the use of technology at all.  The use of technology is equivalent to technology consumption.  I am advocating for something completely different that is not present in schools today: Technology Creation.  Computer Science is built on fulfilling a need in society.  Consider a student who has a physical disability such as little or poor vision.  Computer Scientists collaborated to problem solve so that they can create technology that would help this student.  I want to see this problem solving, collaboration and computational thinking in every school.  It is very different than writing a document using Google Docs.  In more simplistic terms, it is the difference between EATING a pizza and LEARNING HOW TO MAKE a pizza.

Screen Shot 2016-01-01 at 10.44.11 AM

The SAMR model above highlights my point in more detail.  If a student is using Excel as a learning tool, they are enhancing their work since technology acts as a direct substitute with functional improvements.  Whereas if a student is creating a circuit using Arduino or changing a circuit to come up with something more efficient, they are modifying and redefining technology.  With this circuit, they are creating something that was previously unknown to them whether they succeed or not.  Obviously people have demonstrated circuits before, but this student is experimenting with new learning for them.  Coding and Computer Science belongs at the top of this SAMR model.

We need to build on these skills because there is such a need for this thinking.  As code.org points out, 100,000 jobs each year go unfilled due to a lack of graduates with these qualifications.  Statistically, these jobs are the highest paying and most stable.  I also feel that computational thinking, collaboration and problem solving are transferrable skills.  I recall watching a video that states, “We are preparing students for jobs that do NOT exist yet.”  While valid, we need to prepare students for jobs that actually DO exist and will continue to exist in CS.

For everything that I have discussed above, is an annual Hour of Code enough?  I was very pleased to see Doug Peterson refer to my recent blog and extend my ideas:

One hour does not a curriculum make.  We don’t even go on field trips without some sort of pre-activity, a follow up activity, and a rationale for the principal for the trip, tying the activity to the curriculum.

If there’s no followup and inroads made into making coding and computational thinking part of the curriculum, you might as well just rent a movie and watch it in class.

In closing, I hope that 2016 is the year when Computer Science takes root in all of our schools.  My last blog on this subject is my most passionate and direct.  I continue to make myself available to assist anyone or any school to make Computer Science an option for students.  Let’s work on this initiative together!

 

2 Comments

Filed under Coding

Time for a Computer Science (Not Just Coding) Focus

We really need to work together so that 21st Century Learning grows in our classrooms. Can students really escape the skills taught through Computer Science in the their futures? There is a tendency to equate coding and Computer Science as being the same thing. Coding teaches many of these needed skills, but Computer Science is a broader study. Coding is part, not a whole, of this discipline. I am referring to the whole subject area of CS, and not only coding. Computer Science teaches these skills:

  • Data structures
  • Information extraction
  • Information organisation and presentation
  • Computational thinking
  • Design
  • Mathematical thinking, processing and application
  • Algorithms and the formation of algorithms

Opponents of computer science will say that technology is not the solution to our problems and is merely a teaching tool (I agree since I’m talking about Computer Science not technology). Others will say that coding is a well-publicized fad that is being pushed on schools by code.org or tech companies (Coding is an important part, but I am still discussing computer science as a whole). While many will add that other subjects are important / more important and that technology can be integrated into other subject areas (Yes incorporate technology, I am talking about Computer Science). Finally, some may say these skills can be taught in other areas (possibly, but Computer Science ties these areas together and is my focus).

When I think of an example of Computer Science, I think of Sheldon Cooper’s friendship algorithm. His visual to think of any possible scenario when talking to a friend, and his possible solutions to arrive at a desired outcome. This episode made me laugh and think. Anyone do a Sheldon-style algorithm in their class lately? Sheldon’s work is a non-tech example of design thinking, mathematical processing and information flow / presentation. It is a perfect example of Computer Science without the use of technology.

mqdefault

It’s time for a 21st Century Learning Curriculum that focuses on tasks that accomplish or teach these skills. With a bevy of apps that teach Computer Science for areas as vast as 3D printing, film making, web design and coding, the education curriculum is playing catchup with the tools in our grasp. We need to identify and overcome obstacles. We need to hash out our ideas. We need information from the jobs sector. While I believe we are moving in this direction, I can’t help but identify a certain amount of hesitation.  At the same time, I feel excitement from some teachers as well.

Maybe we need to stop over-analysing and just try something new.  In the Sheldon example, he gets caught in a loop and needs help to fix his algorithm. Could we be stuck in a loop of self-doubt and “What if” questions? Who can help with our uncertainty? In researching my blog, I found this video that explains the need for Computer Science (not coding) by Simon Peyton Jones. For me, other subject areas often try to highlight their importance based on less of an argument. Computer Science is the only subject area that has become so obviously important yet is not represented in our schools today. Please let me know your thoughts. I have a feeling that I will return to this subject in a future blog.

 

7 Comments

Filed under Coding, Literacy

5 Myths About Coding

Having integrated coding into my math classes, many teachers have asked me how to get started.  I am happy to help.  In talking to many teachers and parents, it seems there is considerable misunderstanding of how coding really fits the elementary school classroom.  Hopefully these points can help us out and generate discussion.

  1. Coding is only useful for students wanting to become computer programmers.
    FALSE: 
    Coding promotes many skills that would prove useful for many students entering a changing job market.  Is science only useful for future scientist?  Is writing only useful for future writers?
  2. You need technology to teach coding.
    SEMI-TRUE: Technology is definitely needed as students progress, but there are many activities for all ages that do not rely on computers or tablets.
  3. The teacher has to learn coding in order to teach it.
    FALSE: 
    Teachers do not necessarily have to be expert programmers.  The resources available today are easy to use.  It is helpful and easy for teachers to pick up these skills alongside their class.
  4. Coding cannot be integrated into the classroom with the many demands of our curriculum.
    FALSE: Coding is definitely a discipline that can be studied in isolation.  However, it can successfully be integrated into many curriculum areas.  The most obvious connection is math.  Can art be integrated into other curriculum areas?
  5. Coding should only be taught in high school since it is too difficult for elementary age students.  Maybe younger gifted students can learn it.
    FALSE: Coding is not as difficult as it seems.  With the global push to promote coding, apps and online software have made it easier for younger students to learn the basics.  Some students may not prefer coding, but all students should be exposed to it!

3 Comments

Filed under Coding

There is No Road Map to Teaching Success

Recently Brian Aspinall polled his followers on who will be incorporating coding into their instruction this year.  It got me thinking about the hesitation we often see in teachers to embrace the new.  I have incorporated coding into my math instruction, but it is not my intention to preach at length on its values for this blog.  The truth is that coding is probably not for every teacher or student.  Some teachers may say that coding is not their area of expertise and will likely avoid it.  I have to ask: What is your area of expertise?  Will you find the opportunity to learn alongside your students?

We often suffer from the thinking that teachers need to be all-knowing.  Showing vulnerability or not knowing their curriculum or subject is simply not tolerated.  We often think that teachers must answer any and all questions.  In truth, how many students or parents say “the teacher did not know the answer?  How did they become a teacher?”

Teaching is highlighted by moments of success.  In broad terms, these moments occur when we set the textbook aside and take a chance on something we know students need.  When I have taken chances, I had the most fun in teaching.  We have to remember that being a “lifelong learner” is not just a catch phrase.  For example, it is well known that coding is a skill that may and should help students in the job market.  I can refer to the following statistics from code.org:

  • There are currently 583,155 open computing jobs nationwide
  • Last year, only 59,764 computer science students graduated into the workforce

With this need, many teachers have called on their interest to incorporate coding into their instruction or to offer coding and robotic clubs.

However, coding is just an example that applies to me.  Teachers should take chances in their learning and teaching.  They should incorporate tools and techniques without knowing exactly where they are going.  Let’s learn alongside our students.  What we learned in Teacher’s College 12 years ago is less applicable today, and that textbook is less useful today.  It is not acceptable to say we can not teach something that is unfamiliar.  In closing, I recall Aviva Dunsiger‘s one-word goal for 2015: “uncomfortable.”  Find that area in teaching that inspires you to learn more and to share more.  Our mis-steps and uncertainty will lead to success and model risk taking for our kids.

Please let me know the direction you are following, maybe I can join you?

6 Comments

Filed under Coding, School Life

Coding: Not an “Add on” to Math Instruction

Is the teaching of coding an “add-on” or a discipline that can be integrated into other subject areas?  While coding can be developed further into its own curriculum area, teachers are finding success teaching young students the basics of computer programming.  The results are staggering!  I have integrated coding in math initially to start a coding club.  I soon realized that coding is best provided as an option in the classroom. In this article, I will outline how computer programming is an integration rather than an “add-on” to our approach in learning.  I would like to highlight that coding is an excellent application of math skills.  All math can be applied to daily life.  As teachers, we have to apply learning so that our students see relevance.  Coding applies so beautifully to math.

Geometry and Spatial Sense

Recently, I was teaching co-ordinate geometry to my grade sixes.  In past years, it was difficult to explain how coordinates on a grid relate to the daily lives of students.  Many students will go into careers that do not involve grids and coordinates.  It was easy to explain and to demonstrate that the coding canvas is really a coordinate grid.  Students understood that computer programmers rely on a coordinate grid to create movement in programs.   What a great application of something that would merely seem like a puzzle without an application!

Screen Shot 2015-06-13 at 7.41.08 PM

The above image shows how a character can be moved on a grid by changing x and changing y using Hopscotch.  On the Hopscotch canvas, you can even move the character around and witness the x and y coordinates changing.

Screen Shot 2015-08-28 at 8.43.32 AM

The above screenshot from Khan Academy integrates many aspects of geometry to design shapes on the plate. To program a shape, the user must input ellipse(x, y, width, height).  In so doing, the shape is placed on a coordinate plane.  Khan Academy moves away from “block coding” for an ideal experience for more experienced young programmers.

Finally, the use of robots emphasized the construction of shapes in such a motivational way.  Even students with less coding success understood certain aspects and loved the resulting movement of Sphero.  The code below programmed the robot to form a square.

Screen Shot 2015-08-28 at 8.54.58 AM

This video shows the Sphero robot in action:

Investigating Formulas

I can recall being taught formulas as a student.  The formula was written on the board and we had to memorize it for success.  We knew better than to ask why a certain formula works or who came up with it. There was little emphasis on investigation.  Today, we try to emphasize the discovery of the formula, but students do not understand it unless they investigate it themselves.  Coding provides the opportunity for students to dig deeply into formulas and understand how they work.

Screen Shot 2015-06-13 at 7.26.02 PM

Looking at the above code-in-process, Scratch allows students to construct the formula using operators.  In this process, they understand the order of operations.  If students construct the formula incorrectly, the code will not work creating the wrong answer.  Without coding, you may think that the wrong answer is a bad thing.  However, students are very committed to ensuring their code and formula work.  They even became obsessive when trying to add lines of code so that their app incorporated units of measure.  When students are persistent on including units of measure to their math, we know that coding serves a purpose in understanding math.

Patterning and Algebra

Patterning and Algebra has to be the most difficult math for students to understand.  Some students love how abstract it is, while others can not understand what a variable is.  Coding provides such a wonderful experience in the application of variables.

Screen Shot 2015-06-13 at 7.23.02 PM

Students always have to create a variable to build any code for any strand.  In a very natural way, they understand that variables represent a value that can change.  The use of variables is needed to construct any code regardless of the strand you are teaching.  Accidentally, they are learning about 2-step equations as well.

I can recall doing a problem solving question that involved birds flying in a v-pattern.  While building codes, they created variables as changing values.  We emphasized that the value of the variable depends on what the user enters into the program.  Coding created a challenge for the class when one student incorporated a list (I admit to guiding them in this direction).  Eventually, all the students wanted to incorporate lists into their code.  When have students become so motivated to create a t-chart?  And again, it was actually better when their codes were not working because students were fixated on making it work.  Their mistakes led to better understanding.

Screen Shot 2015-06-13 at 7.29.58 PM

Screen Shot 2015-06-13 at 7.30.11 PM

LISA!  This part is new:

Creating Apps for Math

Using Scratch, we were able to create apps to strengthen their understanding of math.  Apps were made for two purposes:

  1. Students created apps for math ideas investigated in class.  For example, apps were created for division with remainders, area and volume.  The app below was created to determine the quotient and remainder for a division algorithm.  We developed the code provided while reinforcing different functions.  Concepts of computer science were introduced with the math ideas.  The result was a keen interest in computer science and a deepening of math understanding!

IMG_0648

2. Students created apps to assist with problem solving questions.  Once students solved  an assigned
problem, they would create an app that aligns with the facts to create a quicker answer.  Once again, the students gained a precise understanding of the problem.  Students even started to create visually pleasing apps.  We started to evaluate the success of the app according to media principles such as ease of use the language.  The app below was created to align with the following problem:

Katie buys 2 bags of apples for $5.95.  In each bag, there are 12 apples.
To make money, Katie decides to sell the apples for $1.00 each.
Unfortunately, she does not sell  3 apples.  Will she make a profit?
Could you suggest ideas so that Katie can sell all the apples and make a profit?

Conclusion

We definitely have to be judicious in choosing tools to introduce in class.  There is a tendency for teachers to become too focused on the tool rather than the curriculum area.  Coding, however, highlights and strengthens students understanding of math.  In terms of learning skills, I have witnessed the persistence students have in developing the perfect code.  When their code works, they exhibit such happiness.  They want to share their code and end up explaining their mathematical processes.  If we do not provide coding as an option, we are denying many learners the opportunity to express themselves using a differentiated method that suits them.

2 Comments

Filed under Coding

Accidental Discoveries When Teaching Coding with Geometry

Having used coding for this school year, it seems like there are so many teachable moments to use with my class that I did not know existed.  I want to outline three accidental discoveries while I was teaching geometry.

1. Teaching the characteristics of shapes is in the Code

I have taught characteristics of shapes countless times in my career.  It wasn’t until I integrated coding that I discovered an amazing way to teach this lesson.  Coding forces kids to read the characteristics of shapes.  Lisa Floyd particularly likes this lesson.  Look at this code:

Screen Shot 2015-06-03 at 6.08.11 PM

To identify this shape, students would examine the code and point out:

  • All of the sides are equal (Move Forward 300)
  • There are more than one 72 degree angles (more on this point later)
  • It repeats 5 times

Knowing the above, a student might guess that the shape is a pentagon.

2. To code a shape, students have to know the exterior angle as well as the interior angle

I remember an EQAO question that asked students the exterior angle of a shape similar to this drawing I showed my class:

Screen Shot 2015-06-03 at 6.10.48 PM

 

To code a pentagon using Hopscotch, students discovered and told me that the character has to travel in a complete 360 degrees so that he returns where he started.  In coding a pentagon, you would divide 360 by 5.  So a student would place 72 degrees in the code repeated 5 times.  This fact allowed me to focus on that EQAO question that stumped my class years ago.  To code Sphero, a student would follow the same code so that the robotic ball follows the correct path.

Screen Shot 2015-06-03 at 6.31.41 PM

3. When a shape repeats and draws, it always forms a circle

After coding a shape, students wanted to rotate the shape slightly and make the drawing repeat countless times.  They considered it fun.  No matter which shape was coded, it always created a circle when it was repeated.  This concept is hard to explain and perhaps these images will explain my accidental discovery best.  The code on the top, produces the pentagon / circle pattern seen below:

Screen Shot 2015-06-03 at 6.08.25 PM  Screen Shot 2015-06-03 at 6.09.48 PM

Students were genuinely fascinated to learn these geometry points in an authentic way.  They were also motivated by the fact that I did not intent to teach these accidental discoveries.  Isn’t learning best when teachers are surprised too?  I look forward to hearing your thoughts and maybe you can share your accidental discoveries in using coding.

 

8 Comments

Filed under Coding