Tag Archives: coding journals

Design a Coding Unit for the Classroom

STEM learning objectives are being included in many school, district, and national curriculum standards. As a result, educators are challenged with creating engaging and challenging instructional materials to teach computer science skills. But most teachers don’t have a technology background, much less knowledge of programming. Here’s some help. Whether you’re using ScratchJr, Scratch, HTML and CSS, or Python and the Turtle Library, the activities will be similar. Following are some basic strategies to consider when you start to design a coding unit for the classroom.

Practice Sequencing Algorithms Offline

Design a coding unit to include offline exercises. This will develop computational thinking. A starting point for instruction is to build algorithms. An algortithm is a description of the program. It uses words and symbols to sequence the instructions.

The logical order of coded instructions is critical. To build this skill, instruct students to physically act out and order a list of directions in simple, everyday language first. For example, if a programmer had to write a program for the task of putting a piece of paper into the trash, it may have the steps:

design a coding unit

Have students act out the steps they listed to check them. Or, have a list of mixed up steps that students must unscramble to place them in the correct order.

Start Simple

When you design a coding unit, move from simple to more complex code slowly.

Don’t offer a complete set of instructions in code and have the students copy it and run it to see the result. This may intimidate young programmers and even make them think that coding is too difficult. Moreover, they won’t learn what each part of the code does.

Instead, write a few lines. Then test the result. The instant response will create a connection between the coding and its function.

coding for kids

In TechnoWhiz, primary students are introduced to ScratchJr by using one block at a time to move the character on the stage. They observe the resulting motion. Then they combine a series of blocks to create a script and see the effect. Next, they add more characters and move them, and learn to loop their actions. By the end of the project, they are able to make an interactive, one-of-a-kind racing game with a background, formatted text, and characters moving at different speeds, dancing, and talking!

Use Trial and Error

Invite students to experiment with values to figure out what works. Try a number or value. Does it need to be higher or lower? Test often to see what works.

Encourage exploration. For example, when using Python and the Turtle Library, circle(50) draws a circle with a specific size. Students can explore by changing the number to a higher value and a lower one. Or code left(90) to turn the turtle symbol. Then change the value to see what angles the turtle turns. The repeated experimentation will result in learning that can be applied in subsequent activities.

Teach Debugging

Don’t wait until mistakes are made. Early in the project, create errors with intention. Have students ‘break‘ the script, then fix it. As a result, they will recognize mistakes that may be made later in their own programming and be more likely to correct them independently.

design a coding unit

Apply Skills

Introduce a skill, repeat or review it, and then transfer it to another application using the program. Avoid teaching a concept in isolation. When students re-use skills in different contexts, they will accumulate their knowledge and be able to apply it in their own creative projects.

teaching coding to kids

For example, in TechnoTurtle students learn to use Python to control the movement of a turtle symbol. Then they apply their skills to write scripts to draw pictures and to move the turtle through a maze. In other parts of the project, they learn about variables. Then they use this concept to create Mad Libs and to produce an interactive carnival game.

Show Samples

Demonstrate how a completed project might look at the beginning of a lesson. This will serve multiple purposes: students will have a clear idea of what they’re making, they will be inspired to create their own unique version, and the sample can be a coding reference guide to use if trouble shooting is needed.

In TechnoHTML, a sample web page about skateboarding sparks student interest and demonstrates the skills they will learn using HTML and CSS:

design a coding unit

  • Formatting text
  • Adding images
  • Making lists
  • Linking to sites

Provide an Opportunity to Share

At the completion of the project, ensure that students have an authentic audience. This helps students to connect their work in the classroom to the real world and see a purpose for their efforts. Their peers are a perfect audience. Celebrate the finished projects and encourage interaction and feedback. The digital nature of programming projects makes it easier than ever to share work with classmates, family, and friends.

design a coding unit

For example, in TechnoCode, middle school students place their collection of completed animated scenes, stories, mazes, and games into an Activity Studio to share with others.

Then they invite feedback and recommendations for improvements.

Reflect on Learning

Finally, give students an opportunity to reflect on their experiences in learning to code. In either written form in a journal or as a class discussion, ask:

  1. What did you like about learning to program?
  2. Is there anything in your project that you would like to change?
  3. What do you wish you knew how to do?
  4. Have you learned anything about yourself?
  5. What advice would you give to a beginner programmer?

design a coding unit

In TechnoTales, students in grades 2 to 5 use five simple reflection responses to gain some insight into their learning.

The young programmers used Scratch to design a story with four scenes, multiple animated characters, a plot with a dilemma to solve, and a happy ending!

Design a Coding Unit

TechnoKids has elementary and middle school programming projects for Scratch Jr, Scratch, Python and the Turtle Library, and HTML. Before starting to design a coding unit of your own, try one! Visit the TechnoKids online store.

design a coding unit

TechnoKids has programming projects to teach ScratchJr, Scratch, Python, and HTML and CSS

Tips for Teaching Coding to Kids

Teaching coding to kids is more than just giving them lines of code to copy and then run. We want to empower students to become critical thinkers and innovative programmers. To build programming skills, beginners need to be provided with a variety of analytical and engaging experiences. To do that, we should spark their enthusiasm with a collection of activities that ensure success and an understanding of essential coding concepts. As they learn how to code original creations, students will become keen, competent programmers. They will have the foundational STEM skills for the workplace of the future.

tips for teaching coding

Here are some suggested types of activities to consider when teaching coding to kids.

Explore and Investigate

Teach code a line at a time. Then ask students to analyze and experiment with the code. Explore with different values and see the outcome. What happens with a higher or lower number? When the line of code is moved to a different place, what happens? What happens when a character is omitted? This strategy builds student insight into the meaning of the code so much better than just asking them to copy a given set of instructions and then running them.

Guess and Check

Provide completed code and ask your students to be detectives. By reading the lines of code, comments, or scanning for words they recognize, they can try to infer what the code will do. Then run the code and see if their guesses were accurate. This makes students keen observers and critical thinkers.

Use Templates to Jump Start Learning

Young programmers have the ability to understand the code, but don’t always have the keyboarding skills needed to type many lines of code accurately. When introducing specific coding concepts, consider giving the students templates with parts of the code already written. The students just add code to make the desired result.

Teach Debugging Early

Don’t wait until errors occur and students are frustrated with the inability to correct them. Near the beginning of the coding unit, have the students generate specific errors to break the code. Have them see the resulting problem. Then fix it. As a result, students will become familiar with common mistakes such as omitting characters, mistyping, or placing code in the wrong order. They will recognize errors and know how to correct them.

Provide Samples to Spark Inspiration

Before starting a new project, inspire students by showing them a completed sampler. The goal is to ignite their interest but not to provide a set of instructions for them to copy. The code becomes a guide for students. They can use it as a starting point or to compare their work for troubleshooting. The sampler becomes the foundation for students to produce their own original projects.

Offer Support References

Online programming reference lists and libraries are usually so complete and exhaustive that they are ominous for kids to use. Instead, build a list of basic commands that will be used in the project and have it handy for the class to use and check.

Present Opportunities for Extra Challenges

Differentiated learning studies have shown us that students build skills in a highly diverse way. When teaching coding to kids, they are certain to progress at different rates. Students who struggle need support, repetition, and review activities to grasp coding skills. Some students will ‘get’ the concepts quickly and be ready for new ways to apply and extend their learning. Be prepared for these young experts with optional challenges to keep them excited and involved.

Reflect on Learning

During, and definitely after the end of the project, provide an opportunity for students to think about their coding experience. Write a journal entry. Ask questions such as: What was your favorite part of the program? What was the hardest part of learning to program? Which skills would you like to learn next? What advice would you give to a person learning how to use this program?

Teaching Coding to Kids Using TechnoTurtle

teaching coding to kids

TechnoTurtle, a new project by TechnoKids Inc., is an introduction to Python coding for beginners. It is designed for elementary and middle school students to learn basic programming skills. The fun activities include building a maze, creating artwork and spirographs, and inventing interactive games. TechnoTurtle incorporates all the above strategies to inspire young programmers to acquire fundamental technology expertise.

Coding Journals for Computer Science

coding journals

I’ve been having lots of fun learning to code with Scratch over the past month. It inspired me to write blogs about the benefits of teaching programming skills and computer science standards. But it also prompted me to ponder about teaching practices associated with coding. Many of the resources I researched suggested that students write coding journals or logbooks.

Some technology curriculum even incorporates learning journals as an essential component. A case in point is the Robotics unit of the Prince Edward Island Career and Technical Education Curriculum. Students write routine, specific journal entries and these are included in assessment.

Journal writing is a common task for primary students to build writing fluency. But journals can also be a powerful tool for learning programming, consolidating of coding skills, and self-reflection for young people in junior, middle school, and senior grades.

Guide Students to Reflect Upon Learning

Reflection can be difficult. Providing guiding questions can help students think about the coding experience. In TechnoCode, a STEM project by TechnoKids, coding journals log entries are part of the coding experience. Open-ended questions, rating scales, and checklists guide students to reflect upon their learning. It is valuable to include prompts about the design process, debugging, coding block usage, and attitude towards programming.

coding journals

Include guiding questions to help students reflect upon learning when using coding journals.

What to Use to Write a Coding Journal?

OneNote, Microsoft Word, and Google Docs are common tools with which students are familiar. The app used should be easily accessible for students at the beginning, during a coding class, or as an end of class activity. Anything that can generate a text file and can be kept open on the desktop will work. Students should be able to open the learning journal file as ideas come to them.

Why Write a Coding Journal?

There are many benefits to support writing a coding journal. In addition to the basic journal writing learning objectives of improving written communication, coding journals can:

  • Articulate ideas
    Students write about their creative plans, list coding steps, document their work, and/or set realistic goals. Rather than jumping right in and starting to write code, journals can be a tool to plan and organize animations, stories, or games.
  • Build coding skills
    When natural language is used to express the actions that are to be translated into coding language, understanding and retention is enhanced. As they write in their own voice, students build a firm foundation for coding terminology. Listing both the plain text and the programming algorithms can become a personal ‘how to’ dictionary to be referenced as needed.
  • Problem solve
    Debugging is a routine part of learning to code. When students are stuck, they can turn to a coding journal to figure out a solution. Writing about the problem forces the programmer to slow down their thinking and use self-talk to describe the issue and trouble shoot. Each part of the code needs to be checked in a logical manner. This process has been referred to as rubber ducking. The term came from a programmer who carried a rubber duck around with him. Whenever he had a problem, he would explain it to the duck. In listing the code line by line, he would often find the error and fix it. In this case, the journal becomes the rubber duck to which the author is ‘speaking’.
  • Reflect and track progress
    A programmer can write down all the attempts made to solve a problem in a journal. When the journal is reviewed afterwards, it represents a progress report of all the knowledge gained and growth achieved. This is authentic evidence of learning. Written communication of ideas can make a student become more thoughtful about their new skills. A journal can be a form of self-assessment.
  • Express feelings
    The process of coding frequently leads to challenges and trouble shooting. In a coding journal, students can be encouraged to reflect critically on their feelings, whether it is hope and enthusiasm for new projects or detailing frustrations with algorithms that don’t ‘work’. Writing about obstacles can defuse the feelings and modify perspective.
  • Promote collaboration
    Instead of private writing, coding journals can be composed using social media. Blog posts and tweets encourage commenting. As students help each other they build responsible digital citizenship skills while developing programming skills at the same time. Positive support from peers and input from teachers forms connections, fosters teamwork, and boosts confidence.

What to Write in a Coding Journal?

  1. Develop a learning plan
  2. Celebrate successes and new learning
  3. List problems, describe attempted solutions, and explain lessons learned
  4. Describe experiments tried to promote logical thinking and the scientific method
  5. Record creative ideas and inspirational thoughts to remember and tackle at another time
  6. Take notes of questions still unanswered
  7. Complete a self-assessment
  8. Respond to specific prompts, such as:
    • Write about something you still want to learn.
    • Outline a coding task that you found difficult.
    • Describe what you accomplished today.
    • How would you rate your final project?
    • What are your strengths in learning to code?

Next Steps to Coding Journals

Teachers who use coding journals make a convincing case for their value. There are still more issues to think about. Here are a few of them:

✓ Can the student share the journal with the teacher and/or peers?
✓ Should the teacher provide feedback to the thoughts in a student’s coding journal?
✓ Will the coding journal be part of the evaluation of the programming project?