12 Questions on Coding and Startups at Kodable

A couple months ago, one of our longest-tenured Kodable users sent me an email for a student in her class. She wanted to learn more about computer science, problem solving, and startups, and had a few questions she wanted to ask me. I wanted to share my answers with the rest of the coding community in the hopes that they might help other young learners out there 🙂

Student Q: How do you use your programming skills to be a better problem solver?

Jon’s Answer: Programming is nothing more than a problem that you have to solve with code! When you program, you learn very quickly that the best way to solve a problem is to break things down into a series of smaller problems that are much easier to solve. The same is true for problems that you face in your everyday life. If your room is messy, its easiest just to get started by picking up one thing and putting it away than staring at the room trying to figure out how you’re going to clean up this huge mess!

Student Q: What steps do you follow when you are problem solving?

Jon’s Answer: When I program, I have to break everything down into a sequence of smaller tasks. That lets me think about the problem in smaller “chunks” instead of being overwhelmed by some huge programming project. After I’ve broken down the problem into a series of tasks I have to complete, then I just start with the first one! Every time I complete a task, I then stop and make sure that I did it correctly, and I’m still moving towards the goal I set out for myself when I started. After I’ve completed all of the tasks, I remember what my original goal was and make sure that it was accomplished.

Student Q: How does computational thinking help us understand our world and solve problems?

Jon’s Answer: I started learning how to program when I was 6, and although I didn’t realize it at the time, I learned to think of everything in terms of ‘if I do this, then that will happen’. This was so important! It helped me be more successful in everything I did, because I always thought about the effects of my actions before I did them. This helped everywhere from taking math tests to troubleshooting when my wifi wasn’t working. Also, computers are everywhere! Computers think computationally (obviously), and if you understand how they ‘think,’ it’ll be much easier or you to work with them.

Student Q: Which one of the problem solving steps is your favorite/ easy for you?

Jon’s Answer: I like breaking a big problem into smaller tasks. Its like a strategy! You get to take this big complicated problem and make it much more straightforward.

Student Q: Which step is your least favorite/ hardest for you?

Jon’s Answer: I enjoy completing tasks, so don’t always like stopping after every task and making sure that I’m moving towards the right goal – I just want to keep going! But this is very, very important. You can get so caught up in each task that you can end up moving in the complete wrong direction. Before you’ve noticed, you could have spent two or three hours working on the wrong problem, and thats never fun.

Student Q: Is feedback helpful when you are coming up with solutions?

Jon’s Answer: Of course! Its always helpful to get a second set of eyes on a problem you’re working on – especially if you’ve been working on it for a long time. You just want to make sure that you accurately explain the problem to whoever is giving you feedback, or they could give you the answer to a different problem!

Student Q: What do you do to plan/ prepare your solution to a problem?

Jon’s Answer: I try to map out everything I’m going to do in a set of easily completable tasks. It is very important not to make these tasks too big, you should find things that can be done relatively quickly. Then I order them so I know which tasks I need to complete first, second, and so on.

Student Q: What are some ways to reflect or evaluate when you solve a problem?

Jon’s Answer: You should always know what you were trying to do when you solve a problem. Ideally, this means that you clearly defined what ‘finished’ was before you even started solving the problem, that way you can easily determine if you accomplished your goal. Its also a good idea to look at your problem solving process and find areas you can improve next time. Did you spend too long in one area? Could you have skipped a step? Did you keep finding things to do that you hadn’t planned for? This kind of experience is incredibly valuable to becoming a better problem solver.

Student Q: Why do you think it is necessary to ask questions before you find a solution to the problem?

Jon’s Answer: Nobody knows everything, and even if you think you have all of the answers you might not! The only way to really know if you’re going about solving the problem correctly is if you ask questions. Sometimes there are details that you might have overlooked, or you might have misunderstood a part of the problem.

Student Q: Do you think that it is essential to follow a process when problem solving?

Jon’s Answer: Instead of a “process,” I think that it is essential to have a “problem-solving game plan.” I used to play football, and our coaches would always have a game plan before the game. One of the most important aspects of a game plan is that it needs to be flexible, because you can’t anticipate what’s going to happen during the game. Similarly, every problem you face is going to be different, so you should always have an idea of what kind of strategy you’re going to use when you problem solve, but be flexible enough to adapt it to individual situations.

Student Q: How did you come up with the idea for Kodable?

Jon’s Answer: I started to program when I was 6. This was awhile ago, long before there were so many kid-friendly resources available! My first computer used a text-based operating system called MS-DOS and didn’t even have a mouse. However, after a few years, I lost interest, and moved on to other things. When I got to college, I was able to teach myself how to program really easily because I had learned how to think like a programmer when I was so young. When I was working with my cofounder on another idea, we kept having parents tell us how they wanted to teach their kids how to program, but didn’t know how or where to start. We put two and two together, and came up with Kodable!

Student Q: How long did it take to make the whole company?

Jon’s Answer: My cofounder and I started working on Kodable in 2012, so we’ve been working on Kodable for a full 4 years now. Kodable’s birthday is actually the same as mine, October 20th. 😄

Build Classroom Community with Coding Team Builders!

Back to school means old faces, new faces, and getting to know each other in a new classroom community. We know fostering collaboration and building an emotionally supportive environment positively impacts academic achievement and developing a community from the start is key.

Team building activities that promote critical thinking and collaborative problem-solving are a great way to kick off the year with your students and develop a strong sense of community that works together from day one. Traditional team builders like “The Human Knot” are great, but what if we could use coding and computer science concepts to get to know each other?

Here’s how:

Variables

In programming, variables store information in a program. The information is referred to as values, and can be either text or numbers. You can think of a variable like a container with a label that stores related items inside.

Strings

A string is a variable that stores values that are groups of characters, like a word or phrase. A great example of a string variable is a name: a name is a value that is used to identify a person.

Name Games: Back to school name games that help students get to know each other are a great opportunity to introduce string variables. Explain to students that they represent a variable and their name is a string that is a value associated with them. There are tons of name games out there, get creative and have fun!

A simple and silly name game that can get students thinking about string variables can be as basic as students going around a circle and choosing a word that goes with their name (their favorite food, sport, a rhyme, or a letter that matches the first letter in their name). For example, “Ashley Apples” or “Mike Bike”. Everyone says their own name and the names that came before to help get to know each other!

Integers

Integers are values that are written and stored as numbers.  Integers are variables that store values just like strings, only the values are numbers and not words.

Paper Bag Share:  Each student has a paper bag and labels the bag with a word or topic that describes something about them. The topic must relate to the student and needs to be something expressed in numbers. Get students thinking about things they have that will tell a little bit about them.

An example would be labeling the bag “Siblings” or “Pets”.  Students would write on a piece of paper how many siblings or pets they have (0, 2, 4, etc.) and place the value inside the bag. You can have students choose any topic  to represent a variable and have them place a related value inside.

Arrays

Arrays are ordered lists of variables that include both strings and integers. Arrays keep related values organized and in a specific order.

Time Capsule: As a class, make a time capsule for the year that represents an array.

  • Name the array based on the grade or class name, like “4th Grade.”
  • Students write down their expectations and goals for each month of the school year on separate pieces of paper.
  • Students place each of the 10 “values” inside the time capsule in order from September to June, keeping the values organized chronologically in the time capsule.

Object-Oriented Programming: Objects, Classes, and Properties

Objects and Classes

Classes hold information about an object and allow us to create new, individual objects based on these details. A helpful way to explain classes and objects to students is to think of basic classification: grouping objects based on their similarities and differences.

Activities that allow students to explore their similarities and differences will help students understand classes and objects in programming while getting to know each other.

Properties

Properties are special types of variables that are attached to an object and describe it.

Students can think about themselves as an object and things that they have as properties. Any team building activities that allow students to describe themselves and each other will help students understand properties and objects in programming.

We’ve gone ahead and created a sample activity for you that will help students in grades 3-5 learn about variables and properties while engaging in back to school team building.  Get it here:

DL Team Builders Here

Like what you see or have ideas? Leave it in the comments below!

Code your Back to School Procedures!

An elementary classroom without clear procedures for daily routines means chaos. As you head back to school and get your classroom operating like a well-oiled machine, consider including some coding concepts to make it fun and frontload computer science lessons you’ll teach later in the year!

How do classroom procedures relate to coding concepts?

Every transition throughout the day requires clear, rehearsed routines that keep everyone safe and in an efficient learning environment. Procedures help us avoid wasting precious time, keep students on track, and allow for 30+ humans to function together in one room- a miraculous feat when you think about it.

Procedures require order, rules, and often silly names that direct students to perform a certain set of actions (think “Criss-Cross Applesauce,” “Put a bubble in,” etc.). These are all elements of programming concepts used in programs to direct a computer to carry out tasks- making them perfect examples of how we can relate programming to real life for our students.

Sequence

We know that in programming, sequence is the order that commands are executed by a computer which allows us to carry out tasks that have multiple steps. In programming, we direct the computer to perform multiple steps in the correct order and it allows us to carry out a task.

In the classroom, students have to perform multi-step tasks as well, such as washing their hands, transitioning to lunch, or coming in from recess. Think about some routines that are specific to your classroom and how they are a sequence of steps put together: this is just like how a computer carries out tasks and will help students understand this process for computers.

Conditions

In programming, conditions are basic “if, then” logic statements that modify how code is executed; making them a key part of the decision-making process for computers. Conditional statements are basic cause and effect: “If this, then that.”

In the classroom, students experience conditional statements daily as they follow classroom rules and guidelines (or break them!).  Using conditional statements will help students think about and set classroom norms together, and make conditional statements easier to understand in programming down the road. Integrating conditional statements into classroom procedures will help students understand how stories can alter and the role programmers play in changing a computer program’s path.

Functions

Criss Cross Apple Sauce Function

 

In programming, a function is a named sequence of steps that can be reused and easily called on over and over again.

 

Classroom management strategies are a great example of a function: teaching students a sequence of steps and giving it a silly name that you can say without having to direct students through each step in the process, every time.

In the classroom, functions can be a lifesaver! Getting students to do a series of tasks in one motion by calling out a  name can keep things in order and on task; which is what we all want for a productive learning environment.

We’ve taken the time to make k-2 example mini-lessons that you can easily tailor to your own classroom procedures:

Download Mini Lessons Here

To help yourself understand the programming concepts and how they can be used with your back to school procedures, watch our videos and share your ideas in the comments below!

Teacher to Teacher: Welcome to Kodable Academy!

Our mission has always been (and will always be!) making it as easy as possible to teach programming in elementary school. For us, this means equipping teachers with the  knowledge and understanding needed to teach computer science, without adding to the heavy workload and demands teachers already face.

Today, we are thrilled to announce the kick-off of Kodable Academy! We’re bringing you teacher to teacher resources on foundational programming concepts. You’ll learn right alongside us, and feel good about the content you’re delivering to your students. Don’t worry, we’ve got you!

What it looks like

Kodable Academy is a video series of short mini lessons (less than 5 minutes) that teach you foundational programming concepts. Each video explains the programming concept, gives a real life example that makes it easy to understand (like making a peanut butter and jelly sandwich), explains how the concept is actually applied in programming, and why it all matters. Technical jargon and abstract details? No thanks, let’s keep it simple!

Our first video teaches about Sequence, the most foundational concept in programming. The rest of the videos in the series build on Sequence, and follow the same “teaching” structure:

Who it’s for

You and everyone! Made by a teacher for other teachers, we want as many teachers as possible to feel confident taking on computer science. Our Kodable Academy resources are free and available to the public.  You’ll also find it easy to access through Kodable’s Helpdesk, registered Kodable teacher or not. We believe everyone should have access to knowledge and we hope you’ll share!

What it means for you

You can feel confident teaching computer science to your students, whether you have a coding background or not! You’ll have a better understanding of the lessons you’re teaching and the tech tools you’re using in your classroom- from iPads to robots. Need to come back to a concept? No problem! You’ll always have a quick resource at your fingertips.

Teachers already do so much. In taking on computer science, we hope Kodable Academy will be a valuable learning tool that gets you just as excited as we are about the future of computer science!

Watch Now!

Let us know what you think of Kodable Academy! Anything else you’d like us to cover? Leave it in the comments!

Full Implementation: Step 4 to Implementing Computer Science in Elementary

This is the final piece of our 4 part series covering each stage of implementing computer science in elementary school, based on thousands of conversations with educators. 

Full implementation- it’s go time! You’re ready to implement computer science in elementary schools when you’ve found a program that has proven benefits and met your goals. Testing the program out in the form of a pilot with a small sample group helps you analyze outcomes to better understand your long term goals. At this point you are ready to roll the program out on a school or district level and fully offer computer science to your students. HOORAY!

What Does Full Implementation Mean?

  • What is full implementation? Full implementation is the adoption of a new program or curriculum at a school-wide or district-wide level. This is what you’ve been building up to!
  • Who is involved? Administration, teachers (tech and general education), parents, and at times the Superintendent. This is an all-hands on deck situation; shiny and new! Everyone has a different role with varying degrees of involvement when full implementation is happening post-pilot. Expect the technology teacher, general classroom teachers, and administration to be on the “front lines.”
  • Logistics: You should already know how and where computer science fits into the daily schedule (for each class, grade, and the school) from testing the waters during the pilot stage.  The progression of the program is clear.  You have an actionable plan to meet goals and move students through the program successfully.  Pilots are often free or less costly, but moving to full implementation almost always includes purchasing. Get our purchasing tips and helpful funding ideas and don’t forget to share pilot data with decision makers!
  • Goals, learning objectives, and data: Results (qualitative and quantitative data) from the pilot stage have been analyzed and goals have been clearly defined for a full rollout of the program. Objectives are clear and the entire team is prepared to collect data during the first few years of implementation. It’s important to note that full implementation takes time to evolve beyond year 1-set goals for years 1-5 and each year adjust the structure accordingly
  • Staff Involvement: Every school or district is different! However, across the board we see professional development as a key ingredient to success. Teachers need to be prepared and have access to any and all resources that will ease the transition. It can make or break the implementation process!

4 Tips for Fully Implementing Computer Science

1. Prepare the Team!

Implementing a new program of any kind requires getting everyone on the same page and feeling confident.

  • Make sure teachers have the knowledge they need through proper staff training, professional development (ongoing!) and resources to implement computer science.
  • Help general classroom teachers understand the program if computer science is going to be specific to technology class. Get them involved by inviting them to your classroom
  • Allow collaborative planning time for staff . This will help students have consistency across classes and classroom teachers to integrate computer science into math and ELA. Need collaborative planning ideas? Get them here!

2. Show, Don’t Tell

Don’t talk about it, show it! The pilot is going to be a key factor in showing the value of implementing computer science in classrooms and setting the tone for those getting started.  You can talk about something great until you’re blue in the face (or your audience is falling asleep). The magic comes when people see and interpret the value on their own.

  • Have photos, data, and student work examples available for others to see (in the classroom, hallways, website). Read about one of our star teachers, Brian Adams, and how he shared the value of computer science with his students’ families!
  • Present to other teachers and parents at meetings or family nights.  Older students can show their work, demonstrate how to use the program, and display what they’ve learned!
  • Create opportunities for new computer science teachers to watch others; specifically teachers who gained experience during the pilot stage.

3. Goals, Goals, Goals

Use the pilot experience to show the importance of goal-setting and help you set long-term goals. Model for other teachers how to set computer science goals and think beyond just one year.

  • What do you want students to be able to do?
  • How do you want to integrate computer science across content areas?
  • How do you want to see students apply what they’re learning?
  • What academic results are you looking for?

Thinking beyond one year will allow you to see big-picture goals and think about the ultimate, end goal you have for all students. The second half of setting a goal is keeping up with it! Successful implementation means monitoring your goals. Check in with teachers and students regularly and iterate if necessary.

4. Include Parents!

 

According to 90% of parents in the U.S., computer science education is something they want their kids to have as part of their schooling. More often than not, families want to be included and help in some way.

Not sure how to get parents involved? Here are some favorite ways our Kodable teachers have shared with us:

  • Communicate: Be transparent and equip parents with the knowledge needed to be a part of it! Send home letters from both teacher and student, share about your school implementing computer science on your school or class website, and give parents the opportunity to see it in action.
  • Homework: Send home information about the program and how students can practice at home. Homework can be fun!
  • Family coding night: Students act as teachers and show parents how to code! This can be exciting for everyone and really empowers students and gives them ownership.
  • Family conferences: Students lead the conference and talk about their progress, challenges, and successes. Teachers act as facilitators and students lead the conference.

Have you gone from piloting a computer science program to fully implementing in your school or district? We want to hear about it in the comments below!

 

 

 

 

Learn JavaScript with Kodable

It is a big day at Kodable! For the past three years, we have been working toward one goal: making it as easy as possible to teach programming in elementary school! Now we provide a complete K-5 programming curriculum to elementary schools. The Kodable 4th and 5th grade curriculum, Bug World, is now available!

harry-potter

Screen Shot 2016-02-19 at 3.51.55 PM

Your 4th and 5th grade students will journey with the fuzzFamily to the arid world of the bugs. They must use real JavaScript and learn about Object-Oriented Programming concepts such as Classes, Subclasses, Properties, Methods, and more!

With the release of Bug World, Kodable is now the world’s first all-inclusive programming curriculum for elementary schools taking students from learning to think like a programmer in Kindergarten to writing real code by 5th grade.

To celebrate, we’re making our 4th and 5th grade curriculum available for you to try with your students for FREE for the rest of the 2015-2016 school year!

 

Where this fits

Bug World is the first part of Kodable that teaches actual syntax, no blocks here! We seamlessly transition from our earlier, symbol-based lessons into JavaScript. In fact, if you look closely, you might see a few familiar things!Screen Shot 2016-02-24 at 2.39.23 PM

The Bug World lesson plans and student content we are teaching advanced concepts often included in the first semester of college for computer science students. These concepts are not out of reach for your students, however, is intended for upper elementary students, or those that already have a solid foundation in our earlier content.

 

 Your 2nd graders having completed earlier parts of Kodable should already code on a 5th grade level.

The United States has already moved toward making coding a part of every child’s education with the recent CS for All Initiative. Bringing CS to every student has always been our goal, and our complete K-5 Programming Curriculum makes it that much easier for schools to begin teaching their students computer science in Kindergarten. By completing their study of JavaScript in 5th grade, students can explore other areas of computer science in middle and high school.

Screen Shot 2016-02-24 at 6.10.59 PM

 

What it teaches

Our Object-Oriented Programming Curriculum teaches real computer science in a way that makes it accessible for young learners. To make this learning process as smooth as possible, we highly recommend following our lesson plans before moving to on-screen content.

We know that teaching computer science can be intimidating, but our mission has always been to make it as accessible to teachers without previous coding experience. This has never been truer than in our new content. The good news is that we’ve created some incredible resources, designed from the ground up by teachers, for teachers.

 

Screen Shot 2016-02-24 at 6.12.07 PM

 

Each lesson plan includes vocabulary, learning objectives and a collaborative off-screen activity. You do not need any previous JavaScript or programming experience to teach and learn with your students.

 

 

 

 

 

Your students began their programming education on Smeeborg by learning about foundational coding concepts in isolation, such as:

  • Sequence
  • Conditions
  • Loops
  • Functions
  • Debugging

In Asteroidia, your students learned all about Variables, including:

  • Strings
  • Integers
  • ArraysScreen Shot 2016-02-19 at 1.44.57 PM

Our Object-Oriented programming curriculum (Bug World!) prepares students to write real, dynamic programs with actual programming syntax. Bug World revisits foundational concepts while teaching four new concepts:

  • Classes
  • Properties
  • Subclasses
  • Functions

Students will learn about these concepts off-screen and then take to their devices for independent practice. Your class will write classes, modify properties, make subclasses, and work with functions to engage in an exciting and dynamic program.

 

Why we chose JavaScript?

JavaScript is the most widely used language in the world, and powers virtually every website you visit. It is also the easiest language to get started with and see real results – which is incredibly powerful for captivating young learners. You and your students are going to learn an incredibly powerful technology that powers some of the biggest websites in the world, including Facebook, Twitter, and Netflix.

Improvements in JavaScript recently (specifically, ECMAScript 6) has made it a viable, and powerful teaching tool for students.

 

What it means for you

Our curriculum and lesson plans are available now on your teacher dashboard. As with every other concept in Kodable, we have included complete, scripted lessons that you can dive into with your students.

Feel free to give it a whirl this spring! It is available to everyone from now until June 31st, 2016.

Get Started with your students

If your school is considering implementing coding on a K-5 scale, please feel free to reach out to us (support@kodable.com) about the scope and sequence of the Kodable Curriculum We’re happy to help you determine if it can fit your goals.

Teacher of the Week: Polly Meissner

Watch Froz-N-Code, inspired by Polly!
Screen Shot 2015-09-24 at 7.52.49 AM

Congratulations on being chosen as teacher of the week! Can you start off by telling us a little bit about your teaching background? 

I work with 8 elementary schools doing coding and programming as a Media Specialist. I get to work two full days a week at Loess Hills Elementary, which never feels like enough time. Over the past 20 years, I’ve taught library in different capacities. I did 1:1 computers at the high school level and got “the tech bug.” We started a student help desk and trained students to repair computers for each other. Now, Loess Hills is going 1:1, and the high school students are working on the computers and bringing them to the elementary school kids.

What do you love most about teaching?

I love seeing kids “get it.” That look on their face when something becomes meaningful; a connection to the world, the class, or to each other. I see it a lot with coding- when one student gets it and they want to show someone else. It’s amazing to see them buy into it, feel proud, even be a little amazed with themselves. I often see it in coding with the kids who struggle a little more, and it’s such an eye opener for the students who typically get everything right away. It’s a huge boost of self esteem for kids who aren’t always in the position to be the “go to” person for help from their classmates.

Why do you think it’s important for kids to learn how to code and develop 21st century technology skills?

It teaches so many problem solving skills and kids see that there are multiple ways to do things. Students start learning that we can do things differently and recognize that they can use their own skills to come up with a plan and make it happen. Our kids are maybe missing that in other areas. Technology promotes collaboration to solve problems and teamwork.

What is one of the most exciting things you have seen happen with coding in your classroom?

I worked with a small group of 2nd graders last year and we had a student arrive from another country and was very far behind. Building a relationship with her through working on coding together and solving problems really helped her progress. Coding helped us build a relationship,  give her self confidence, and help her adjust. That’s what I love about kids and coding- they know that a mistake just means try again; it’s okay to try a few times.

What are some challenges you have had implementing coding in your school?

Our story is interesting because we started with a cohort of teachers (1 in each grade grade) bringing coding into the classroom. Scheduling was probably the biggest challenge; I travel and can only be at Loess Hills two days a week. I want to be able get into the classrooms more, time is always a challenge.

What is one coding goal you have as an instructorPolly Meissner TOW

I want to be the Kodable guru that everyone can go to!  I want to learn every part of the program, so I need to make time go through it all myself. Coding doesn’t come that easy to me,  and I want to learn everything about what you guys are designing so I can help my teachers get it into their classrooms.

We have to ask: How do you make time to take care of yourself during the school year?

I love to read. I have three daughters, but I try to take 30 minutes a day for uninterrupted alone time. Sometimes it’s listening to a book in my car during my commute; I love getting taken away into a story for a bit.

What do you think is the most important thing for kids to take away from their education?

To become a lifelong learner. It scares me how many adults just focus on work and life and stop learning. You have to be willing to reevaluate your work and make changes. Ask yourself, “How can I make myself better?” Always keep learning, don’t get stuck in a debilitating rut.

Lastly, what do you like to do for fun outside of teaching? 

I have four kids, and we live on a farm. My daughters raise their own cattle and our family does the fair circuit. We enjoy the farm life activities; I like to leave the city and get to go home to my family on the farm.

IMG_6160

 

 

Feeling inspired by Polly’s story? Register your free account today and bring coding to your students like Polly has. 

Register an Account