# data[].attributes.body
Kodable is a great introductory tool for students to use as they are learning to code.

# data[].attributes.attachment_link.description
Programming for kids, made with love. Easy to follow lessons focused on student outcomes so you can teach your students to code.

# data[].attributes.body
This article teaches teachers to how to introduce coding in their classroom.

# data[].attributes.attachment_link.readable_text
A three-step plan to help teachers in any subject and any grade teach the foundations of coding.

I first learned about coding and computer science (CS) in college about 20 years ago. Looking back, not much has changed in the foundational concepts or core practices in CS. What has changed is who can teach it and where it can live in the curriculum-today educators in any subject can teach coding.

For example, an English language arts teacher may teach a lesson that helps students make connections between coding with proper syntax and writing with correct grammar. An early elementary teacher may set up a project where a programmed robot travels on a floor map so that students can begin to comprehend how their lives relate to a broader community and the larger world.

Many teachers are looking for creative and practical ways to teach coding and programming. Although the two terms are often used interchangeably, there is a difference between them. Coding is typing and testing-writing code-and a coder translates a list of requirements into a programming language like Java, Python, C++, etc. Programming is broader, involving coding as part of a larger process: identifying a problem, finding the solution, coding the solution, and then testing the solution. This process requires the programmer to understand algorithms and data structures, among other things.

Teachers preparing students in this set of skills will need to get them grounded in the basics and will need to use appropriate edtech in tandem with good teaching practices. Here's how to start in three steps.

Step 1: Get Students Grounded in Core Coding Concepts

Every language-spoken or written-has a grammar, a set of principles that define parameters for constructing a sentence or successive sentences. Similarly, coding requires coders to be able to understand and implement fundamental coding concepts using the appropriate syntax (grammar). This is a requirement, no matter the programming language.

Step 2: Pick the Right Tool for the Job

The resource you use to teach coding will need to augment your instruction, taking students beyond following step-by-step directions. Moreover, it will need to get them grounded in the core coding concepts mentioned above and allow them to see the effects of each line of code executed in real time. That will provide them with moments of success, creating confidence and a willingness to tackle more complex coding tasks.

Code.org: Intro to Programming, part of the CS Principles Curriculum Guide, lets you adapt lessons to help students learn programming basics by applying algorithms and abstraction to draw pictures.

littleBits Code Kit: The Code Kit offers a comprehensive solution for teaching kids to design their own games and physical inventions. It comes with over 20 hours of adaptable standards-based lessons, videos, presentation slides, an inventor log, rubrics, and code tutorials addressing key coding concepts in tandem with game-based coding.

Scratch for Educators: With a plethora of resources and tutorials, the Scratch platform provides teachers with tools for coaching students in programming interactive stories, games, and animations.

These tools come with curriculum resources that you can adapt to your coding lessons:

Step 3: Use the Workshop Model

Most likely, all of our students will not be coding at the same level. Once we know the basics of coding and have a resource for teaching, it's important to employ sound teaching strategies to reach them all.

For this purpose, I like to use the Workshop Model (WM) developed by Carmen Fariña and Lucy Calkins. The WM structure allows me to organize and monitor learning while helping my students become more responsible for their own mastery as they build competence in coding. Engaging them in this structure also leads to increased confidence and willingness to extend their presumed capabilities for the multilayered skill of coding.

Coding with the teacher: For learners who are very new, having me model and coach by their side gives them the confidence that they too can code their first program.

Pair programming: Pair programming (PP) is a strategy used by software developers and students in CS classes for learning collaboratively and completing big and complex projects. When both partners are newbies, the PP strategy has potential pitfalls, so be sure to provide rubrics and make time for frequent teacher check-ins and student reflection.

Learning core concepts using personalized tutorials: As students gain more confidence with both the core concepts and edtech, I allow them to build further mastery independently by using tutorials that address specific coding skills (i.e., loops, functions, etc.). Again, have them use rubrics and provide frequent check-ins.

In my adaptation of the WM, I conduct mini-lessons and allow groups of students to create programs and build their coding skills with appropriate activities for their varied levels. Teachers can facilitate learning for learners new to coding by having them participate in the following station rotations within the WM structure:

Coding is a multilayered skill that requires time, patience, effective use of edtech, and sound strategies for achieving mastery. Moreover, creating a computer scientist could take up to 25 years -it cannot happen in one class, lesson, or semester. Therefore, focus your teaching on the basics, building student capacity and getting them where they need to be, which is the rigor level appropriate to their current understanding and grade level.

# data[].attributes.attachment_link.description
A three-step plan to help teachers in any subject and any grade teach the foundations of coding.

# data[].attributes.body
This website focuses on the why - why teachers need to implement coding in their teaching.

# data[].attributes.attachment_link.readable_text
Envision a classroom of second-graders working in pairs to record data, crawling around on their hands and knees to follow bee-shaped robots as both construct knowledge on large pieces of chart paper. Meanwhile, teachers circulate to answer questions while students collect data based on their current math workshop unit of study.

To an outsider, it may appear that the students are engaged simply because a new and exciting robotic tool is in front of them, but in reality, the students are employing critical thinking, computational thinking, and math reasoning skills that go far beyond what typically happens in a math classroom.

If you peek inside this simple math workshop, you'll see students applying the principles of sophisticated data analysis. First, our young coders work together to sort themselves by birth month as a computer would. After creating a Google Sheet with the sorted and collected data, they work in groups of four with the robot Bee-Bot to draw a bar graph of the data and correctly label the X and Y axes.

In addition, these second-graders draw on their understanding of robotics and what they have learned about data, sorting, organizing, and graphing to create a "logo programmed" bar graph. Logo programming is a coding language in which commands represent movement and connect to an object, or a "Turtle," to move. In this lesson, the "Turtle" was the Bee-Bot robot, and with a sharpie carefully velcroed to the front of the robot, Bee-Bot drew a bar graph on white paper after receiving the proper commands.

Bee-Bot Robots are a great tool for teaching young student to code. Here one is graphing according to student commands. Photo credits: Pine Crest School

This is just a normal day at Pine Crest School, a preK-12 school of 2,600 students in Fort Lauderdale and Boca Raton, FL, where risk-taking, debugging - the process of identifying errors in code - and a willingness to fail forward are encouraged.

"The single most important skill that children need to develop at a young age is the ability to collaborate to solve a complex problem," says Alexis Cobo, a lower school computer science and technology specialist. "The process of 'debugging' often happens best when students have a large pool of resources - not only web text-based, but also a greater community of tangible student, teacher, and mentor resources to support them as they build trust, acquire confidence, to help them feel safe to fail, and learn how to persevere."

Launching MakerEd and a Comp Sci Curriculum
The activity I have described above is part of ongoing work at Pine Crest School to reimagine how students learn and gain the skills they need to succeed in our fast-changing world. To that end, we established the Department of Educational Design and Innovation as a result of our strategic planning initiative in January 2014. We opened three Innovation Labs in the summer of 2015 and extended our computer science curriculum beyond high school to include grades pre-kindergarten through grade 8. We have found that MakerEd - problem-based learning and computational thinking - to students of all ages has ignited engagement, self-directed discovery, and deeper learning throughout our school community.

Problem-based learning is at the crux of our curriculum. In Lower School computer science classes, all students are taught computational thinking skills that include:

Decomposition, which encourages students to break down a problem into more manageable steps;

Functions nested in loops and conditionals - a specific programming terminology and tasks, which require students to create complex algorithms (a series of directions) with stored actions that can be executed in a repeated manner for either a finite or infinite amount of time; and

Transmission and sorting of data, which focuses students on designing and building a digital environment.

This skill development begins in the early grades. The youngest learners in Pre-Kindergarten through grade 1, known as "Pre-Coders," gain foundational computational thinking, develop programming skills, and are able to recognize patterns, rules, and trends when solving a problem. In a typical day, students may create basic algorithms by using visual and block code in iPad applications and participate in "unplugged" games without the use of robots and various tech toys.

Students learn how to code by doing unplugged activities - ones without the use of robots or tech toys.

Upper elementary students in grades 2 through 5 explore computing practice and programming through technology tech toys such as Dash and Dot, Ozobots, Sphero, Robot Mouse, Code-a-Pillar, Cubetto, Kibo, Lego WeDo, and the MIT block programming language Scratch.

For third-graders, a favorite activity is Rosie Runtime, which introduces young coders to the way computers "think." We teach students to put precise commands into the correct sequence to create a working program - just like a computer! Using a life-sized game board and code cards, students direct Rosie the Robotic Dog through a maze. As they help Rosie jump over mud puddles and gather bones, students have opportunities to learn from failed attempts by finding and fixing "bugs" in their program. Not only do the students learn valuable critical thinking skills from this unplugged activity but they also develop perseverance whenever they encounter an obstacle.

"Teaching the principles and applications of coding to our youngest learners brings them opportunities to expose their brains to deep critical thinking and logical reasoning skills, which they would otherwise not exercise until much later in school," says Cobo.

Student task cards for Rosie's Runtime Unplugged Activity.

The Power of Play
Teaching coding also allows our youngest learners, in preK, to stretch their creative abilities. When children play, they combine their existing knowledge with new ideas to solve problems and create understanding. In the process, they make mistakes, learn from those mistakes, and discover alternative solutions.

Our coders as young as pre-kindergarten use Ozobots, a small "smart toy" or programmable robot, that executes codes by following different colored paths. The color, or visual programming language, provides an excellent foundation for logic expression with students who do not read yet. Even more powerful, students use play to create an imaginary city for their Ozobot to weave through after only a few lessons coding in the color-programming language.

As students' progress through the lower school, they move from visual programming to block programming languages. Pine Crest uses the Scratch block programming language with students as young as second grade. Developed by MIT and free for all users, Scratch is designed as an easy-to-use tool for programming, using a drag-and-drop interface, interactive stories, video games, and simulations.

"To keep pre-primary students engaged in computer science, it is important to 'wow' them with new games and change things often. Focusing on unplugged activities, such as Robot Turtles, Jenga, and Code Master board games, before having them code helps to build interest in the language," says Debra Jacoby, lower school computer science and technology specialist.

Talented, Specialized Instructors
Lower School Computer Science and Technology Specialists
Alexis Cobo and Debra Jacoby
Jacoby's and Cobo's positions are two of several Pine Crest School added in the 2015-2016 school year. They join other computer science specialists charged with instructing students and teachers in grades PreK through grade 8 on computational thinking, robotics, and creative computing activities supported by technology devices and tools, such as iPads, laptops, and Lego Robotics. Computer science specialists also facilitate ongoing professional development in technology and innovation.

These 15 faculty members across Pine Crest School's two campuses and the classroom teachers they partner with compose the iTeam. Together they work to create meaningful project-based learning experiences connected to the core curriculum in all subject areas, including science, social studies, humanities, arts, etc. Many faculty members have professional experience in engineering, while others have technology, computer science, and other STEM-related degrees. All are passionate about helping students make ideas tangible, and radiate enthusiasm for out-of-the-box learning.

Our Growing Program
To keep the team current with the latest instructional methodologies and technology tools, Pine Crest's president, Dr. Dana Markham, strongly supports faculty growth and development. Markham believes that great teachers are great learners. From teacher institutes at the Exploratorium to FabLearn at Stanford University to the Computer Science Teachers Association's annual conference, the iTeam at Pine Crest School is constantly learning innovative methodologies to enhance technology integration and instruction. The iTeam regularly presents at educational conferences nationwide on computer science, project-based learning, and innovative teaching strategies. The team also hosts their own conference, the Innovation Institute, where they showcase dynamic learning strategies and emerging technologies to transform the classroom.

"True innovation happens during the iterative process when one seeks feedback and learns to build or create for the greater good, not just for personal fulfillment. As part of a team of creative and passionate educators, we seek to model the design thinking process, and therefore implement units in which students can plan, identify needs, test, build, seek feedback, and iterate utilizing maker and computational thinking skills learned over the course of direct instructional classes," says Cobo.

Measuring for Success
As a school that values continuous improvement, we have developed metrics to help us gauge the success of the innovation and technology program. Examples include:

The number of students involved in STEAM related clubs, electives, competition teams in Lower, Middle, and Upper School has quadrupled over the past three years.

The number of students self-selecting to take computer science AP and Post- AP courses in the Upper School has tripled.

108 students earned 4's and 5's on the AP Computer Science Principles exam in the first year.

The number of faculty members who are requesting to attend conferences and workshops that focus on innovative teaching practices has doubled.

From 2015 until today, we have doubled the number of faculty members working in our innovation and technology department.

Since the summer of 2015, more than 500 educators from across the country have visited Pine Crest School to learn about the innovation and computer science curriculum.

About The Blog

Independent Ideas explores the issues and trends that matter most in education in a storytelling format. It features a diversity of voices and perspectives.
Read More

# data[].attributes.attachment_link.title
Why We Teach Coding in Elementary School

# data[].attributes.attachment_link.description
Envision a classroom of second-graders working in pairs to record data, crawling around on their hands and knees to follow bee-shaped robots as both construct knowledge on large pieces of chart paper. Meanwhile, teachers circulate to answer questions while students collect data based on their current math workshop unit of study.

# data[].attributes.body
This website is a hub for teachers to go to to find articles and resources about teaching coding for all age levels.

# data[].attributes.attachment_link.readable_text
We have included articles that are geared towards all educators, from grades 1-8 and 9, who are looking for support, frameworks, and ideas related to coding in the classroom. There are also additional pages that are focused on coding in primary (grades 1-3), junior (grades 4-6), and intermediate (grades 7-8 and 9) education, which you can access using the buttons above or the links below.

Thank you for visiting our hub. We look forward to sharing, supporting and inspiring ideas for Coding in the Classroom.

# data[].attributes.attachment_link.title
Coding in the Classroom | Educator Resources | TVO.me Outreach

# data[].attributes.attachment_link.description
Support for educators as they adapt their practice to incorporate coding into their classrooms.

# data[].attributes.body
This gives teachers access to a variety of coding lessons as well as activities and games involving coding that their students can complete. There is a wide variety of age levels included here.

# data[].attributes.attachment_link.title
Computer Science: Coding lessons for teaching K-12 students

# data[].attributes.attachment_link.description
Explore lessons and resources for teaching computer science in K-12 classrooms. Integrate coding in the classroom for CSEd Week and beyond.