Coding is more than just typing lines of instructions for computers to follow; it is a powerful skill that can empower us to transform ideas into real-world applications, tackle complex challenges, and better understand how the digital world operates. In today’s tech-driven society, coding has become an essential literacy, enabling us to create and shape everything from simple web pages to cutting-edge artificial intelligence. Learning to code offers youth a deeper insight into the technology they interact with daily, while also building critical skills in problem-solving, creativity, and logic. 

This section will introduce the fundamentals of coding, guiding you through the different ways to integrate it into your STEM programs and adapt it for various learning environments. You will gain the tools to inspire and guide youth as they take their first steps into the world of coding.

If you already have a strong coding background, we encourage you to still explore this section. While it may serve as a helpful refresher, it also offers unique approaches tailored to exploring coding with youth in ways that are engaging, accessible, and age appropriate. These strategies can support you in adapting your existing knowledge to effectively facilitate coding activities in your workshops, camps, or programs. 

If you feel confident with the fundamentals, consider starting with Beyond the Screen below, which explores considerations for implementing coding activities in various learning environments.

Computational Thinking

As we begin exploring coding, it is important to understand the mindset that aligns naturally with it: computational thinking. Coding is more than just knowing the rules and syntax (the ‘grammar’) of the instructions for computers to follow; it is about learning how to break down problems, recognize patterns, and create solutions. 

This problem-solving framework helps us approach complex tasks logically and creatively. You are likely already fostering computational thinking with youth through your STEM activities—it’s a natural, intuitive way of thinking that involves problem-solving, learning, and discovery. Coding sharpens computational thinking, helping us tackle larger and more complex challenges more effectively. Computational thinking involves four main stages, each completed in order:

  1. Decomposition: Breaking down a complex problem or system into smaller, more manageable parts.
  2. Pattern Recognition: Looking for similarities among and within problems.
  3. Abstraction: Focusing on the important information only, ignoring irrelevant detail.
  4. Algorithms: Developing a step-by-step solution to the problem, or the rules to follow to solve the problem.

To effectively nurture computational thinking in your STEM programs, it is important to design activities and scenarios that promote key skills and mindsets. Some approaches to integrate computational thinking into the learning environment include: 

  • Build confidence in tackling complexity: Create tasks that involve multiple interconnecting steps, such as navigating a maze or building a robot. Encourage youth to break down the complexity into manageable parts, demonstrating that large challenges can be solved through small, logical steps. 
  • Cultivate persistence when facing difficult problems: Foster a supportive environment where challenges are seen as opportunities for growth, encouraging resilience and creative problem solving. 
  • Encourage tolerance for ambiguity: Encourage creativity by presenting open-ended projects where youth can explore multiple pathways to find viable solutions, helping them embrace curiosity, develop patience, and understand that not all problems have immediate solutions. 
  • Foster a problem-solving mindset: Create space for youth to think critically by asking open-ended questions, hypothesise potential solutions, and consider different possibilities. 
  • Develop collaboration and communication skills: Prepare group activities where teamwork becomes essential in reaching common goals, emphasising the importance of sharing ideas, working together, and learning from each other. 

Activity 3: Recipe for Success

Practise the foundations of computational thinking by designing a flowchart for preparing your favourite meal. Similar to how algorithms guide the computer to perform tasks, you will create a step-by-step guide for making your meal.

  • You can prepare this in your workbook, on paper or digitally with platforms such as Canva, draw.io, Google Slides, or Microsoft Powerpoint. 
  • Use simple shapes (e.g., rectangles for steps, diamonds for decisions) to create a flowchart that guides someone through the steps of your recipe. 
    • Add some complexity by including basic decision-making steps in your flowchart. For example, if a dish is not done baking in an oven, loop back and continue the baking process. 
  • Reflect on the following question: In what ways can the principles of computational thinking and algorithm design be applied to the process of content development?


Block-Based Coding

Coding takes many forms and languages, each with its unique rules and syntax (grammar of a coding language). A great starting point for introducing coding to youth is through block-based coding. This method allows youth to assemble algorithms by dragging and dropping pre-designed “code blocks” that fit together like puzzle pieces, with each block representing a specific instruction or function. 

Block-based coding allows youth to concentrate on the logic, structure, and problem-solving without being hindered by complex syntax or typing errors. It provides an accessible, visual approach to learning coding concepts, making it an engaging and beginner-friendly entry point into the world of programming.

Activity 4: Storytelling with Scratch

Practice block-based coding by learning the fundamentals of Scratch, a free web-based platform for block-based programming. Follow the slide deck below for a quick guide to using Scratch, which covers its features and includes some helpful resources to enhance your learning and facilitation.

Web Application: Scratch Platform (Account Creation is Optional)

After starting a new Scratch coding project, complete the “Create a Story” and “Animate a Character” tutorials after creating a new Scratch coding project, and consider the following questions as you code:

  • How did assembling sequences of blocks in Scratch help you grasp the concept of algorithms and reinforce your understanding of computational thinking?
  • What opportunities do you notice for incorporating block-based coding into your STEM programs? How can you use Scratch to transform your STEM lessons and activities? 
  • How can you adapt the Scratch activities to align with your youths’ interests and learning levels? 

Some tips when bringing block-based coding into your STEM programs include: 

  • Start Simple: Begin with basic coding concepts, like creating a simple sequence of commands. As they become more familiar with the platform and concepts, gradually introduce more complex ideas, such as loops. 
  • Promote Inquiry-Based Learning: Encourage youth to explore and experiment with code on their own. Ask open-ended questions to prompt critical thinking and problem-solving (Example, “What do you think will happen if you change this code block?”). Emphasize the importance of testing and iterating on their code. 
  • Connect to Real-World Applications and Cross-Curricular Topics: Incorporate block-coding into various subjects such as math, science, and art, while helping youth recognize the connection between coding and real-world challenges. 
  • Incorporate Storytelling: Leverage storytelling or creative projects as a way to learn coding, allowing youth to connect coding concepts to their own interests and experiences. 

Text-Based Coding

While block-based coding uses visual elements, text-based coding involves typing out the commands and instructions using text and syntax of a programming language. This approach mirrors how coding is done in professional settings and offers greater flexibility and control. Although it may feel more complex at first, it is an essential skill for pursuing more advanced projects in coding, software development, or STEM careers. 

Activity 5: From Block to Text

Compare and contrast block-based and text-based programming by exploring EduBlocks, a free web-based platform that uses familiar drag-and-drop blocks to help users code with text-based languages like Python. Follow the slide deck below for a quick guide to EduBlocks, which covers its features. It also introduces various text-based programming languages, providing insights to help you decide which coding language to incorporate into your camps, workshops, and programs.


Web Application: EduBlocks Platform (Account Creation is Optional)

Complete the “Create a Happy Birthday Song” tutorial under the Learn section using Python 3, a text-based coding language, and consider the following questions as you code. 

  • How did exploring both block-based and text-based programming methods help you understand different approaches to coding?
  • What insights did you gain about the learning curve for youth when transitioning between block-based and text-based programming?
  • What creative projects or learning opportunities could you introduce through text-based programming, and how might these activities connect to STEM? 
  • What strategies can you use to balance the introduction of coding concepts with experiential learning activities to keep youth motivated and interested?

When introducing text-based coding to youth, it is important to consider their age, experience, and comfort with coding and technology. Some tips when bringing text-based coding into your STEM programs include:

  • Start with Simple Steps: Begin introducing a text-based coding language by exploring basic commands, such as displaying text, while guiding youth through the syntax and basic structures step-by-step. 
  • Build on Previous Knowledge: If you have previously introduced block-based coding, build on that foundation by explaining how the “code-blocks” that they have worked with earlier are equivalent to the lines of text in text-based coding. Highlight how the logic and structure remain consistent across both approaches. 
  • Offer Interactive Opportunities: Engage youth by providing interactive, experiential (hands-on) coding tasks, exercises, and projects. Foster experimentation by encouraging them to test their code step-by-step and observe the results in real-time. 
  • Foster Inquiry Through Code: Support youth in independently solving problems and experimenting, helping them not only grasp the coding language and its syntax but also understand the logic and concepts behind it. 
  • Prepare Visuals and Resources: Use visuals such as diagrams to give an overview of the coding environment; flowcharts to illustrate how code operates, and one-pagers to summarize the rules and syntax of a coding language. 
  • Create Collaborative Projects: Apply a paired programming approach for collaborative learning, allowing youth to work together on coding projects.
  • Be Patient and Provide Support: Create a playful and creative learning environment when youth are experimenting with code. Offer plenty of encouragement, use clear examples, and be patient as you guide them through the process of troubleshooting and debugging their code.

Beyond the Screen

Incorporating coding into the STEM learning environment can take many forms, depending on the resources available and the desired outcomes. Some activities require the use of technology, while others can be done without it, allowing for creative approaches to exploring coding concepts. Whether using devices or focusing on offline activities, both approaches can encourage youth to think critically, collaborate effectively, and practice computational thinking.

We will explore how these different approaches can be integrated into your STEM camps, workshops, and programs to create engaging and effective learning experiences.


Activity 6: Low-Tech Solutions

Explore Actua’s suite of coding and digital skills activities for youth in Grades 5-12 and brainstorm ways to adapt this content for various settings, including remote (online) learning or unplugged (no tech) environments. Using the chart below or one similar, add your notes.

Actua Activity
Remote Learning

How might you adapt this activity for online settings? 

Unplugged

How could you adapt this activity for environments with no or minimal technology?

Program Adaptations
How might you modify this activity using the resources you currently have? 











Viewed 108 times