#KidsCanCode: Teaching Coding Without Tech

Teaching Coding Unplugged
Imagine that you are teaching your students to code and the power goes out….What’s your next move? Well, in this week’s chat, we came up with some great ideas for non screen-based activities, and discussed the pros/cons of teaching coding without technology.
Join us every Tuesday at 8pm EST for #KidsCanCode Chat! Next week we will be chatting about sharing technology in your classroom. 🙂

Tips for Teachers Planning the Perfect Coding Curriculum

Tips for Teachers Planning the Perfect Coding Curriculum

Planning a coding curriculum can be a little bit scary at firstFor many educators seeking to plan a coding curriculum without having mastered the basics of computer science, it often appears to be a lot like buying a prom ticket before having secured a date.  Because of this, we have gone to great lengths at Kodable to not only prepare educators to teach their students to code, but also unsubscribe from the myth that only those familiar with programming can teach computer science. On one occasion, we even went as far as to compare teaching programming to The Hobbit.  Through it all, we have proven time and time again that any willing and passionate educator can teach their students to code.

This news comes at a fantastic time because now more than ever, teaching kids to code is not just encouraged, but completely necessary.  

By the year 2020 there will be more than 1.4 million computer programming jobs available in the United States, but less than 400,000 computer science students to fill these jobs.

Even as it stands now, 21st century students need a computer science education in order to help them interact and create in our technologically dependent world, and must learn important skills such as problem solving, logic, and critical thinking that are developed through programming.  To sum it all up in one sentence: Learning the fundamentals of coding is now SUPER IMPORTANT!

There is no better time to teach programming to students and children than right now

Yes, we need to teach CS, but where do I start?

Thousands of educators across the globe are already teaching students programming and have selflessly shared their experiences on their personal blogs and via twitter, helping countless others improve or plan their own coding curriculum. Fortunately, we have spoken to many of these educators in our very own #KidsCanCode Twitter Chat, and with their contributions, we have come up with several important tips to help you organize the perfect coding curriculum.

Tips for Planning the Perfect Coding Curriculum:

Follow these useful tips to create the perfect coding curriculumGolden Rule: Don’t teach coding alone, first get some help.

When you begin learning and eventually teaching a subject that you do not know well, at first you are only as good as the teaching tools or resources that you use.

Without much programming experience, it would be unrealistic to expect you to plan an entire coding curriculum without the help of a guide and/or professional support.

Before you begin, make sure that you join in on an educational Twitter chat and ask for some friendly advice or support.  At Kodable, we moderate a weekly Twitter chat called #KidsCanCode and frequently share suggestions for organizing your own coding curriculum.  Depending on your specific questions, you can choose from one of the hundreds of chats available to educators from this updated list of educational chats.

Educational Twitter chats are also a safe place to ask for suggestions and discuss the best teaching tools, programs, Apps, games, and guides available for your coding curriculum.  Often, there is a lot of pressure in choosing the right teaching tools for your programming curriculum, so it is important to make a few key considerations before you go any further.

Join us for KidsCanCode every TuesdayBe a bit selfish: Choose a teaching tool that teaches you too. 

Pick a teaching tool that has many resources and guides to help youWhen researching teaching tools for your coding curriculum, it is critical that they possess the resources to help cater to your learning needs as well.

When developing your coding curriculum, plan on learning coding concepts a few days before or along with your students.

Most educators have had the greatest success with this method, and have found that learning/teaching programming this way provides them with enough background knowledge to answer most of their student’s questions, but also leaves them with an immense amount of flexibility to make changes based on their class’ response.  With this in mind, search for teaching tools that have corresponding guides, teacher resources, and reference materials that provide you with enough background information so that you can learn quickly, and become comfortable with what you are teaching.  At Kodable, we provide our educators with the Kodable Learning Guide.  This written resource tells educators exactly what they need to know when teaching their students basic coding concepts such as sequence, conditions, loops, and functions.

Can you see yourself learning the basics of coding and building a coding curriculum from the materials provided?  If yes, then consider how a particular programming tool will impact your teaching.

Avoid the headache: Select a teaching tool that compliments your classroom.

Select a teaching tool that functions properly to avoid unneeded stressWe have all had our share of nightmarish experiences when technology has chosen for one reason or another to fail, leaving us embarrassed, confused, and scrambling for a solution.  Whether it is a video feed that simply stopped working during the middle of an important interview, or a PowerPoint that failed to load in front of a roomful of expectant peers, we have all been there before.  With this in mind, alleviate some of this stress by choosing a programming tool that is going to minimize the headache associated with many technologies.  As a beginner, you are going to have your hands full learning the basics of coding and keeping up with your students, so don’t have any heartburn selecting a teaching tool that is going to do most of the work for you.

The key is to remember that your expertise is in teaching and not coding, so any teaching tool that is going to maximize the amount of time you can spend focusing on working with your students is preferable.

Before you start planning your coding curriculum, make a list of what you need most to succeed teaching programming, and then go out and find the tool that best suits the needs of your coding curriculum.  At Kodable, all of our best improvements began with suggestions from educators.  The end result is iPad syncing that enables teachers to hand students any iPad off of their classroom cart, student progress tracking that enables educators to leverage data to teach their students more effectively, and level management tools that allow for differentiated lesson plans.  All these features ended up being a lifesaver for educators, so make sure that whatever tool you choose has similar options available to help make your life that much easier.

Embrace expert reversal: Incorporate lots and lots of sharing.

As soon as you begin teaching coding, you will find out quickly that you are no longer the smartest person in the room.  This is why it is important that your coding curriculum embraces your changed role right from the start.

Inspire students to find solutions to their own problems by encouraging collaborative programming, creating a classroom environment where they want to constantly share, or by simply using the “ask 3 then me” rule.

Flip your class, encourage your students to explain solutions, or simply work together as a classroom to solve a difficult programming problem or work on a project.

When planning your coding curriculum, be sure to include activities that will help you teach students what they need most from you, and that is ways that we can use programming to provide solutions to real life issues.

Make coding more than a game: Use project-based learning to foster real-world connections.

In planning your coding curriculum, students do not necessarily need you to teach them all of the fundamentals of programming.  What they absolutely need is for you to provide them with a sense of direction and/or objective.

A painter does not sit down and paint for the sake of painting, but rather he/she always has a specific goal or purpose in mind.  Just the same, programmers do not sit down and code for the sake of programming, but are always working on a project with a unique objective.

Use fuzzFamilyfrenzy to help students connect programming to the real-worldFor younger students, first help them make the connection that programming involves using a computer to create physical and impactful changes.  With Kodable, we provide educators with the fuzzFamily Frenzy activity.  This screen-free activity communicates to younger students the logic associated with programming, but it also conveys to them that simple commands can move objects, navigate obstacle courses, and help them reach a specified goal.

With older students, have them create an app or a website that addresses a specific problem or corresponds with a unit that you are currently teaching. Your coding curriculum does not have to be independent from other areas of study, but can and should also be integrated with the many other subjects you are teaching.  The possibilities with programming are endless, and can be included in any assignment with a little creativity from the water cycle to music.

Mix in some laughs and smiles: Whatever you do, make sure it’s fun.

We all learn the most when we love what we are doing.  For too long programming has been negatively depicted as arduous, difficult, and boring, when in reality, coding is an immensely exciting and creative activity.

When selecting a teaching tool for your coding curriculum, be certain that it is something that your students will enjoy and love.

After all, the ultimate goal is to not just teach your students the fundamentals of programming, but get them excited about computer science, critical thinking, collaboration, problem solving, and learning.

Make sure to have fun with your coding curriculum

#KidsCanCode Chat: How Can I Integrate Coding with Math?

We need to change the way we teach math to include computer science and coding
In this week’s edition of #KidsCanCode chat, we discussed the ways that we can integrate coding with math! We covered what math concepts overlap with computer science, shared our favorite programming/math combo projects, and gave our best suggestions to others based on what we have learned from our own experiences.
Join Us EVERY Tuesday at 8pm EST for #KidsCanCode Chat!! 

This Week in #KidsCanCode: Aligning Coding with the Common Core

Aligning programming and technology with common core standards

“I want to introduce technology and coding to my lesson plans, but I am not quite sure how to align this with the Common Core State Standards?”

This is a common question for many teachers, and often half the battle is finding the right resources to make this possible.  In last night’s #KidsCanCode chat, we discussed a number of resources to help guide teachers to properly aligning their curriculum with the Common Core.  Here are some of the resources we came across:

Assembled by Ben Rimes, this is an enormously valuable resource that not only has gleaned every standard related to technology from the CCSS, but is meticulously organized and easy-to-follow.  The sections are delineated by standards, starting with ELA and proceeding to Math.  Each section is then broken down by grade level, similar to the actual standards themselves, but presenting much less information to process.

For those interested in just the ELA Standards, this is another resource that I recommend checking out that was put together by Tara Linney (@TechTeacherT).  Again, pulled directly from the Common Core State Standards, sections are separated by grade level, making for easy reading and unnecessary to skim through the entire original document itself.

Ever need something to send to parents?  This might be a resource worth checking out.  The Standards are broken down in this parent-friendly version for all of K-8 with a separate Middle School & High School Section.  There is also a section that answers a common question (pun intended), “What is the Common Core?” for parents.  This site also has sample/practice test questions, and other valuable CCSS related materials.

What Everyone Needs to Know About the Common Core State Standards

Finally, these Computer Science standards/recommendations are an invaluable resource for setting up any curriculum or lesson plan.  A must read for those beginning to teach their students programming.

Many curriculum tools have already aligned their products to the CCSS for you.  As for Kodable, we have all these standards mapped out and available along with other materials on our Resources Page.  We also provide an abbreviated CCSS document specifically for parents or for easier reference.  Before you do all the work, be sure to do some research or simply ask if these resources are already available.

If you are looking for more resources relating to technology/coding and the Common Core, be sure to check out the #CCSSchat website.  And as always the original Common Core Standards can be found on CoreStandards.org.

#KidsCanCode Chat: Where Does Coding Meet the Common Core?

Teaching programming while meeting common core standards
In this week’s #KidsCanCode chat we discussed how we can align our coding lesson plans and use of classroom technology with the Common Core State Standards.

How I Taught Myself to Code: Cures for the Common Code

Stack Overflow can be a great resource when learning to code

In Part One of our series, I told you about how I came to teach myself programming.  In Part Two I detailed exactly how I did it.  In this final installment of our 3-part series on teaching yourself to code, I’d like to share some lessons that I’ve learned on my programming journey. Hopefully they can help you learn just a little faster than I did!

1. Get a Plan Stan

Stack Overflow can be a great resource when learning to codeI did a few basic Google searches, browsed some sites, and came up with a basic game plan for myself.  Stack Overflow was a great resource, but be careful with it.  Like I said in my previous post, the programming community can sometimes be a little overbearing and nit-picky.  Worry about first being able to write Hello World in Ruby before you start to fret about knowing Test Driven Development and Git.

2. You’re going to be (really) bad, that’s OK!

You can teach an old dog new tricksA common scenario when you’re first learning programming is doing a tutorial, feeling really confident, and then struggling mightily when you try to do it on your own.  This is because programming isn’t simply memorization of syntax, it is a new way of thinking, and training your brain to think differently as an adult is hard!  (old dogs and new tricks comes to mind).  Odds are, unless you’ve had some extensive experience with logical problem solving as a kid, you’ll struggle to grasp programming concepts at first.  But, just stick to it, don’t get discouraged, and things will get better as you keep practicing.

3. USE (good) BOOKS!!

I started by trying to learn through tutorials, but that ended up giving me a scattered understanding of concepts without a true knowledge of what I was doing.

I know it sounds counterintuitive to learn programming from a textbook, but I found out very quickly that you simply can’t beat the structured approach of a good book.

Be careful what books you choose.  Programming textbooks are infamous for having structured, detailed introductions, and then dropping you off a cliff.  I cant speak highly enough for the Head First Series, especially for someone who hasn’t been exposed to programming culture before.

Don't copy and paste code when learning to program4. Stack Overflow can be your best friend (and your worst enemy)

I’ve spoken about Stack Overflow before, and inevitably within the first few days of your programming journey you’ll find it as well.  It is a great resource, and the fact that you can Google a problem you’re having and find a quick solution is amazing.  However, you’ll inevitably be tempted to copy+paste solutions into your code, without trying to figure out how it works.  Try your best not to do this.  Instead, try to dissect the code to figure out exactly what you’re doing.

5. Best practices are best, except when they’re not

Best practices in programming typically refer to the “best” way to do things.  Surprising, right?  Usually, you should do your best to stick to these.  But don’t let them get in the way of the most important thing – writing code.

Even the best programmers tend to write “hacky” code sometimes.  The important thing is to realize that this probably isn’t the best way to do things, and make a mental note that it could be done better.

All the code you write for the first few months is going to be horrible anyway, does it really matter if it is indented properly?

6. Consistency, Consistency, Consistency!

Generally, the older you are, the harder it is going to be to learn programming.  You have to train your brain to think a different way than it ever has before. If you’ve been exposed to logical thinking and problem solving your life will be easier, but if your primary interest has been 18th English 180 Websites in 180 DaysLiterature and you suddenly want to pick up Ruby on Rails, it will be difficult because you have to learn a new way to think.  The number one thing you can do is be consistent.  Set a goal for yourself to program every day, for just one hour a day.  A great example of this is Jennifer Dewalt, who made 180 websites in 180 days.

7. Persistence, Persistence, Persistence!

One of the things I’ve seen people have the most trouble with is sticking to things when it gets tough.  During your first few months you are going to struggle mightily.  Get over it, and move on.  You’ll struggle and spend 8 hours on a task that would take an experienced programmer 5 minutes.  That’s fine!  You will get better (as long as you stick to point #3).

8. Embrace your inner hipster – take a break and get some coffee!

Take a break and get some coffee when learning programmingWhen you’re really focused on a problem that you can’t solve, oftentimes you’ll find that the solution is staring you right in the face.  You’ll quickly run into the frustrating situation where you were up late one night programming, couldn’t find an answer to a program, and gave up and went to bed.  When you wake up in the morning you’ll solve that problem in 5 minutes, guaranteed.  Learn when to take a step back and take a break, you’ll often be more efficient in the long run.

9. Make new friends!

A programmer friend is invaluable to a new initiate such as yourself.  Being able to text a friend with a specific question and getting an answer in 5 minutes, as opposed to combing through snarky Stack Overflow comments for 2 hours is an incredible resource to have.  Make programmer friends so they can help you in your journeyIf you know programmers, ask them for help!  Be nice and buy them some beer (programmers love beer) in exchange for helping you with some basic problems you’ll run into.

10. Have a Goal

There isn’t a single programmer in the world who learned programming by sitting in front of a computer and saying, “I’m gonna PROGRAM!”

Programming is like being an athlete.  An Olympic distance runner doesn’t just put on their shoes and run 15 miles every day just for the sake of running.  Instead, they are running with a specific goal in mind, to compete and win a medal at the Olympics.

Athletes want to be the best at their sport.  Programmers want to build amazing PROGRAMS!  Once you have a basic understanding of programming, find a cool app you’d like to build and go for it.  That’s always the best way to learn.  I’ve always learned more about programming when I had something I wanted to build than when I sat down and said “I’m gonna learn about X.”  That is the best advice I could ever give you.

Go out and start coding!

Want to read the rest of the How I Taught Myself to Code Series?

Read Part 1: Hello World!

Read Part 2: Avoiding the Cliff

#KidsCanCode Chat: Debugging the Gender Gap

Code Documentary: Debugging the Gender Gap

In this week’s edition of #KidsCanCode we teamed up with @CODEfilm to discuss the ways we can debug the gender gap and help girls overcome the cultural barriers they face in CS and STEM fields.  We also chatted about the likelihood of a future Disney Princess Coding Movie. 🙂

Be sure to check out the documentary teaser:

How I Taught Myself to Code: Avoiding the Cliff

The language you first choose does not matter

In the first part of this series I told you about my introduction into the world of programming.  Now, I will give you a step-by-step account of exactly what I did to learn!

Where Do I Start?You can start learning with CSS, but it is not programming in the strictest sense

The first thing I did was tackle HTML and CSS.  I want to be very clear on this point, this is NOT programming.  Coding is a mindset, you need to be able to problem solve and think logically.  There is very little (if any) of this with HTML and CSS.  Now, that is not to say these aren’t valuable skills to have, but don’t fall into the trap of “learning to code” by writing some basic HTML.  Some experienced programmers may roll their eyes at you and tell you that you’ve still got a long way to go.

Choosing A Language

With the exception of HTML and CSS, the language you choose to learn doesn’t matter!  I spent more time learning what a “for” loop was when I first started programming than I did learning Ruby after I had 2 years of experience under my belt.

The most important thing with programming is to start making progress and begin learning.

The language you first choose does not matterOne of the biggest mistakes I see in people trying to teach themselves programming is that they get too caught up in which language they want to learn. Don’t do that. Trust me, it doesn’t matter. To make sure you don’t fall into this trap, I’m going to tell you exactly what to do.

Picking a Project

First, find out what kind of applications you want to build. If you have a PC and want to make Windows applications, learn C#. If you have a Mac, learn Python. If you want to make web apps, Ruby is a good choice, but you can also use Python. If all else fails, learn Python. It’s an excellent language that teaches you how to structure programs correctly and just generally program the “right” way.

Finding the Right Tools JavaScript the good parts is a great programming book I used

Once I had been working with HTML/CSS for a bit, I inevitably found JavaScript.  JavaScript is the programming language of the browser.  Most modern websites use some form of Javascript framework (usually jQuery) to handle a lot of the behaviors you see in your browser window.  I did a few quick Google searches and quickly found out about Eloquent JavaScript.  It is an excellent book, and best of all completely free online!

Looking back, JavaScript probably wasn’t the best choice for a first language. Most experienced programmers will tell you that JavaScript has a lot of unnecessary complexity. Which is why a book exists called “JavaScript: The Good Parts.” While it was good for learning basic programming concepts like variables and loops, I didn’t really get a good understanding of Object-Oriented Programming.

Avoiding the Cliff

Choose the right books so that they do not drop you off a cliffI consider my first real “language” to be C#, a C-based language developed by Microsoft used in a vast number of Windows applications and websites.  The best thing that ever happened in my journey to learn programming was finding a book called Head First C#.  Most programming books start with helpful, guided tutorials in chapter 1, and then drop you off a cliff and expect you to just know everything. The Head First series makes it a point to do the opposite.  They make it a point to translate programming concepts into something that “normal” people can understand, and deliberately avoid the aforementioned “cliff” problem.  I can’t say enough good things about these books, they’re simply awesome.

Setting Achievable Goals

It took me about 3-4 months of on-and-off study to get through enough of Head First C# to feel confident enough to start making my own changes to our web app.  I think the reason I was really able to make progress with C# as opposed to JavaScript is that I had a definite goal in mind. I had something I wanted to build.

Painters never sit down and decide to paint, they always have an idea of what they want to paint when they get started.  Programming is the same way.  As a full-time programmer, I never sit down in front a computer and just say “I’m gonna program!”  They have a goal in mind, something they want to accomplish. You should always endeavor to do the same.

Becoming a Pro

I started learning C# my senior year of college, and spent about 8 months with it before I graduated.  As graduation came closer, I was trying to find a job.  This was at the height of the recession, and there just weren’t that many opportunities out there, especially for people with marketing degrees.  Lucky for me, I had spent the past year honing my coding skills! Keep calm, study, and become a programmer

At the end of my final semester, I found a programming job listed on my school’s job listing board, and I felt confident enough in my programming ability to apply.  They sent me a test before I came in for a face-to-face interview.  However, there was only one problem– it was to make a website in PHP…I had never used PHP before! Well, time to go back to the Head First series! I got the test on a Friday, and my interview was on a Monday.  I purchased Head First PHP & MySQL (MySQL is a database commonly used with PHP) and went to work.  All of the knowledge I had gained of Javascript, C#, and even HTML and CSS helped me pick up PHP at a surprising pace.  I finished the website late Sunday night, just in time to get a few hours of sleep before my interview in the morning.

I went in for my interview with a newfound confidence in my programming abilities.  I was able to breeze through the questions they asked, and got an offer later that day.  I had successfully taught myself enough programming to get a job as a full-time, professional software developer. Mission accomplished!

Now that you’ve heard about my journey to become a full-time programmer, in Part 3 of this series, I will give you a set of rules, tips, and tricks that I’ve picked up along the way. Hopefully they’ll be as helpful for you as they have been for me.

Read Part 3: Cures for the Common Code

#KidsCanCode Chat: Debugging My Coding Lesson Plan

KidsCanCode: Debugging my coding lesson plan
What did we talk about in this week’s #KidsCanCode chat? Well, we discussed our greatest success/failures from last year’s coding lesson plans, outlined what we learned, and set goals for the changes we plan on making going into the new school year! 🙂

Join Our Kodable Webinar

Enroll in a Kodable Free Teacher Account to manage your students.

On Wednesday, August 13th @ 10am PDT, we will be hosting an instructional webinar to help you set up and organize your Kodable Teacher Account. Learn how to add classes or students, create differentiated lesson plans, and familiarize yourself with our latest features.  Additionally, we will answer any questions you may have going into the new school year.

RSVP to the Kodable Webinar on our Google Event Page.

Respond yes to Kodable Webinar on Google Event Page
Respond Yes to the Kodable Webinar on our Google Event Page

The webinar will be broadcasted over Google Hangouts On Air, and you can submit any questions you want answered on our Webinar Google Event Page.

Submit your questions on the google event page
Submit Your Questions on our Webinar Google Event Page

Hope to see you then!