Disequilibrium: Learning Theory and Personal Practice

IMG_5163

Notable Swiss child development theorist, Jean Piaget, explained learning as a continual process of achieving equilibrium, or balance, in our state of “knowing”…Then that balance is challenged when we encounter new stimuli, resulting in disequilibrium. When this happens, we try to apply our existing schemas (knowledge or ways of knowing) to the new stimuli (assimilation).  We also seek and adopt entirely new schemas (accommodation).  We tinker with all of this until we achieve that state of balance, or equilibrium once again.  (Until the next time we encounter new stimuli…)

Disequilibrium, also known as cognitive dissonance, is not a very comfortable state to be in.  It can feel frustrating, and challenging.  It can cause fear, anxiety, and even panic. It is, however, necessary for true learning to take place. If we never encounter anything that challenges our current ways of thinking or knowing, then we never move forward. We never get smarter, more adept, more diverse, more eclectic, and that seems like such a dull place to be!

Since I started learning how to code, I’ve been thinking a lot about disequilibrium. Continue reading

What IS Coding? Gearing up for Computer Science Education Week & An Hour of Code

I sat at a Thanksgiving dinner table about a week and a half ago with a group of friends.  We were enjoying our feast and chatting about this and that. Since most of us at the table were either teachers, spouses of teachers, or children…you can imagine how our conversation kept drifting back to issues in education.  I started telling one friend about my goal of learning to code, and she asked a simple question:

“What IS coding anyway?”

This question provoked a little nervous tingle, as I realized this was the first time I had been asked to explain something about coding to another teacher. I had to stop, rewind my brain to just over two months ago when I started to explore this very question, and try to conceive an answer that would make sense to someone with the same background and lack of technical expertise as myself. My response was something like this:

“Coding is very basically giving your computer a set of instructions that you write in a programming language. The computer then responds by doing what you told it to do.”

I was relieved when this came out of my mouth and I realized that it largely made sense. This conversation also made me realize that could be important to spend some more time considering what that coding really is, and ponder some ways to synthesize and explain it to people who might not have any background, or might never have had any interest before. 

When I was first learning to code, I would Google things like “programming for beginners”, “what is coding?” and “learning to code”. My search efforts would return tons of great resources for people who already know a little bit about computers, and are not completely intimidated by words like “algorithm”. Many of the search results assume you know what a “console” is, are already comfortable with words like “variables” and “data types”, or what a “platform” is. If you don’t already know these things, do not worry about them! I think there is a level of beginner explanation that is just plain difficult to find. Just to be clear, I recognize that there are tons of great beginner resources out there…I just found myself wishing for an even more novice level of basic description. With this in mind, I’m going to attempt to offer my own supplement, and explain programming in a way that makes sense to me and might appeal to a broad array of non-programmers. 

This seems like a particularly relevant thing to do now, since this is Computer Science Education Week (Dec. 8 – 14). All this week, millions of children around the world will participate in “An Hour of Code“. This is a challenge to teachers, administrators, community members, and families to offer children “a one-hour introduction to computer science, designed to demystify code and show that anybody can learn the basics.” Code.org is organizing and promoting this challenge, and they offer tons of great resources on their website. 

Note: Although some argue that there are differences, I use “coding” and “programming” interchangeably throughout this post in reference to “the act of writing computer programs”. 

Keep reading if:

  • You have ever wondered about coding/programming
  • You have never wondered about coding/programming (because it is never too late to start!)
  • You have tried to look up coding and programming before, and didn’t gain a whole lot of understanding
  • You do not consider yourself very tech-savvy or computer literate
  • You are curious about how someone who meets the above criteria might explain programming
  • You are curious what children are actually learning from beginner tutorials 

Continue reading

Thanks Barbie, for another reason NOT to want to be you!

matell-screenshot1-620x514

This is the fatal page from the 2010 Barbie book I Can Be a Computer Engineer.  Barbie goes on to give her sister Skipper’s computer a virus, get some boys to help her fix it, and finally take individual credit for the whole shebang (including the robot puppy game that the boys programmed). At no point does Barbie do any coding at all. You can read the original blog post that brought this controversy to light here.

2434262975_079aec8640
Oh the Nostalgia! That peach gown was my favorite. http://goo.gl/XBhYad

I never really identified with Barbie.  Sure I played with her, but what little girl in the 80’s didn’t? However, I wasn’t blonde or skinny. I didn’t care to drive a pink corvette, wish to own a “dream house”, or marry my very own Ken doll. I didn’t want to be Barbie, and didn’t care what kinds of new careers she was trying out. I mostly liked to dress her up, which might have had a slight impact on my love of costuming and fanciness, but that is the extent of her influence.

155027_1762659145420_5122866_n

She was fun, but never any real impact on my life (or so I like to think…) Continue reading

Metacognition: Thinking About My Coding Thoughts

ibm_human_brain
Image source: http://www.gizmag.com/ibm-supercomputer-simulates-a-human-sized-brain/25093/

If metacognition can be considered a hobby, then it is definitely one of mine. (I fully realize how nerdy that sounds.)

I love thinking about thinking! When you work with young children, you have to become a “thought detective”. Young children’s brains are developing so quickly and efficiently, and teachers have to know how to support that. We have to be able to speak and interpret lots of different languages, many of which are nonverbal.  In order to do this, we have to really dig deep into our own analytical brains and constantly evaluate and reevaluate things we see happening in front of us.

We have to be able to think about children’s thinking, but also about our own! Continue reading

“Hello World”, and What the Heck is a Text Editor?

Screen Shot 2014-10-29 at 12.34.18 AM

Screen Shot 2014-10-28 at 11.19.16 PM
Codecademy environment, Ruby Tutorial…Left is instructions, center is where you type the code, and right is where you see the program run.

As I’ve been making my way through tutorials, something was starting to bother me. Tutorials let you practice in nice little environments that provide three fields: One for the tutorial’s instructions, a second for you to write code, and a third to show the results of your programs.

The problem is…This all happens on a webpage, and I couldn’t figure out how that translates to writing actual code and having it do something on my real computer.  If I don’t know this, I would bet that others as green as me don’t really know either.  Thus, I decided to figure it out (with help of course), and spell it out in this post.  Maybe this will be helpful to other novices out there, and I know it will be helpful to me in the future if I need a reminder.

I asked my most trusted advisor, the husband, how to program something for real, and he explained the steps you need to go through. The “Hello, world!” program seems to be an initiation ritual of sorts, so I decided to use my little “programming for real” lesson to make my computer say “Hello, world!”

Here’s what I learned: Continue reading

Should Everyone Learn to Code?

steve-jobs-1

Should everyone learn to code? Maybe, maybe not…but that is not exactly what I aim to debate on this blog (although I welcome the debate if it happens!)

I do, however, believe that every child should have a shot at understanding and learning about coding. Because of that, I’ve come to believe that in the not-too-distant future, teachers will need to know something about computer programming. We should know what code is, know how to write some of it, and know about the types of thinking it takes to successfully write code.

Why?

Because it will make us better teachers!  As our world becomes more and more computer-driven, there will be more and more conversations about computer programming.  More and more children will want to explore and learn coding. Should all those children be encouraged to become professional computer programmers?  Not necessarily, but their natural interests and curiosities around coding and computer programming should be encouraged and supported as they figure out whether or not programming is something they’d like to pursue.

Further, How can teachers support the interests and curiosities if they themselves have no idea what coding is or how it can be used?  We can sit children in front of computers with Hour of Code, or a Scratch tutorial, but if we ourselves don’t know what they are doing, how can we help and support them?  Are we really being good teachers?

I think much of the debate around “should everyone learn to code?” largely misses the point.   Continue reading