Coding

Using the Ontario Curriculum Teacher Supports

Computational Thinking: Using Flowcharts and Pseudocode

Computational thinking is a problem-solving process that involves breaking down complex problems into smaller, manageable steps, identifying patterns, and creating a clear, step-by-step solution. 

A flowchart is a visual representation of a pathway using shapes and arrows to illustrate the sequence of events and convey the logic. This makes it easier to see the flow of decisions, loops, and processes without getting bogged down in syntax.

Next, pseudocode can act as a bridge between the steps in the flowchart and actual code.  Pseudocode is a text-based description of a program that describes what the program should do in plain language, which makes it easier to translate into real code later.

The document to the left compiles all references to flowcharts and pseudocode from the Teacher Supports on the Digital Curriculum Platform. It provides a clear overview of how these concepts are introduced and developed across Grades 3 to 9. Many of the student task exemplars integrate mathematical concepts from other strands to support the development of coding skills.

Coding Lessons

Coming soon…

Coding Tools and Resources

Assessment Ideas

Coding Journals

"Coding journals or learning logs can also be a powerful tool for learning programming, consolidating coding skills, and self-reflection.  

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."

https://www.technokids.com/blog/technology-skills/coding-journals-students/

Coding & Social-Emotional Learning

Learning to code is a process that requires students to become patient and persistent problem-solvers.  They will routinely make mistakes and have to find and resolve them.  This has the potential to frustrate and deter some learners.  As such, this is a great opportunity to focus on social-emotional learning and in particular, recognizing sources of stress and coping with challenges and maintaining positive motivation and perseverance.  Here are self-assessment tools you can use with your students for each of the SEL expectations.  

SEL Self Assessment for Coding

Monograph: Student Self-Assessment

Back to: