Tag Archives: programming

Add the A to STEM Education

Educators agree that STEM education is essential to prepare students for the challenges of the 21st century workforce. The skills they learn in science, technology, engineering, and math subject areas also develop vital skills necessary for success: critical thinking, creativity, problem solving, and collaboration. Although there’s quite a debate about whether the A for the arts needs to be added to STEM to make STEAM or if it’s already there inherently, it’s evident that fine arts, language, and music play a key component in a curriculum to prepare young people to face the complex challenges of the future.

steam career readiness

The Arts are a vital part of STEM education

Education Models for the Future

Traditional school curriculum segregates studies into separate subject areas. However, project-based learning is an instructional approach that blends subjects. Students are faced with an authentic, meaningful, real world challenge. And these are non-Googleable questions! Students investigate a problem and propose viable solutions in an interdisciplinary study. Technology is commonly used as a tool. Whatever skills are required to solve the problem – math, science, language arts – must be learned and mastered. Students need to be able to think innovatively, plan, create, and communicate the resulting project. Usually STEM subject areas are needed, and students build valuable job skills such as computational thinking, initiative, perseverance, and communication.

Where Do the Arts Appear?

To answer these ‘big’ project-based challenges, students need to integrate the arts. Creative thinking and design are a central part of innovation. Being able to imagine an outcome, visualize a product, or communicate an abstract idea requires artistic skills integrated with multiple STEM skills.

Here are a couple of examples of the arts integrated with STEM in the real world:

STEM Education requires the Arts

  • Product Design
    Designing an innovative product may require engineering, mathematical, and scientific problem solving. But it also needs an attractive appearance to make an emotional connection to consumers. These are artistic decisions.
  • Advertising
    When a new product is brought to the market, communication skills are essential. Advertisers excel in persuasive writing. In addition, the creation of new logos requires a knowledge of graphic design. The success of a venture often depends on artistic choices.
Arts and STEM education

Infuse the arts into STEM education.

The Arts in Computer Science

We’ve been working with Scratch recently to develop a STEM project, TechnoCode, that teaches coding skills. The students will learn programming skills as they make animations, games, or interactive stories.

Coding design decisions should be engaging so that the user who interacts with the finished product is intrigued and captivated. Also, artistic choices affect if the project is user friendly and fun to play. Some of the stylistic choices students need to make when programming include:

  • Drawing custom characters
  • Designing backgrounds
  • Adding sensory cues – motion, sound, visual – to build interest, express an idea, and hook the user
  • Creating “Game over” messages that encourage and entice the user to try again
  • Making scoring and timing decisions using aesthetic choices that appeal to players

The brainstorming, problem-solving, and decision making involved in programming demand innovation and ingenuity in design choices. To foster the trailblazers of tomorrow, STEM education needs to acknowledge and incorporate the arts.

New Release! Programming Project for STEM Classrooms

In response to the recent spotlight on building STEM skills, TechnoKids is announcing the first of a new and innovative series of computer science technology projects designed to teach programming learning objectives.

Teach Coding

programming

Use Scratch and TechnoCode to teach programming skills

The first of these projects is TechnoCode, just released for junior and middle school grades. The focus of the all new TechnoCode project is to spark an interest in coding. Using Scratch, students become young programmers. They learn computational thinking as they construct a collection of scripts to develop animated scenes, mazes, interactive stories, and games. Additional activities challenge students to create artwork, compose music, construct a diorama, and more! Jam packed with fun programming activities, TechnoCode is ideal for students new to Scratch – a popular, free program that uses graphical blocks to teach logical reasoning.

Programming Fun

Through guided discovery and exploration, TechnoCode teaches students to build algorithms that sequence commands, events, loops, and conditions. After each activity, they complete coding journal logs to reflect on their learning, track their progress, express feelings, and celebrate successes.

coding and programming with Scratch

Scratch is a free program to teach coding developed by MIT. Graphic blocks are stacked to create scripts for animations, games, stories, and more!

In TechnoCode, students follow illustrated, step-by-step instructions to learn how to:

  • Use programming terminology and understand the role of a programmer
  • Code a scene with characters, a backdrop, movement, and sound
  • Build an animated aquarium
  • Design a one-of-a-kind maze game
  • Construct an animated story about a magical place
  • Plan and develop a unique game with timing and a scoring system

Learning is chunked and scaffolded: skills learned in each of the six sessions are reviewed and extended in following sessions. Challenges and extension activities offer optional enrichment opportunities. Junior and middle school teachers can elect to complete as many of the projects as time, grade level, and curriculum learning standards require.

programming with Scratch

Students learn computational thinking, reasoning, problem solving, and creativity as they build scripts.

Foster Digital Citizenship Skills

The collaborative element of Scratch is its online community.

To get inspired, Scratchers can browse a huge gallery of sample interactive stories, music, art, animations, and games. They can remix: start with a project someone else has coded and shared, and then add their own creative touches. When the remixed project is uploaded, Scratch automatically credits both the originator and the contributor, thereby promoting the essential skill of citing the source. The See Inside button on any shared Scratch project allows others to view the code to ‘see how it’s done’, an ideal learning opportunity. Finally, students can share their own work and invite ‘likes’ and comments.

Experiencing success and support of other budding programmers is a key ingredient to building enthusiasm for computer science.

Prepare Students for Jobs

Empower students with the essential, real-world skills they will need in the workplace of tomorrow. Both STEM and CTE – Career and Technical Education – highlight the value of preparing young people with technical as well as employability skills. Ideal skillsets include a diverse combination of higher-level thinking, technology, and interpersonal proficiencies. Teaching programming can do that. TechnoCode is a fun, challenging series of hands-on activities to master a foundational set of computer science standards. As they achieve success, students become enthusiastic, confident problem solvers – critical skills to make them “future proof”.

TechnoCode – STEM, CTE, and ICT Project to Integrate Programming

TechnoCode has everything an educator needs to teach beginning coding skills to students: a teacher guide and student workbook in pdf format, sample completed projects to inspire young imaginations, planning sheets with questions to help design scripts, coding journal logs for reflection, and assessment tools to evaluate student work. Hook tech-savvy young people. Equip your students with practical, creative, and authentic twenty-first century skills.

programming and coding

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?

Computational Thinking and Scratch

It is important to develop computational thinking. In my last blog about computer science learning standards, I wrote about the benefits of students learning to program. Coding was once thought to be a mysterious, obscure skill restricted to a few masterminds. But in light of the STEM demands of the future job world, it’s now considered the ‘new literacy’. Learning to code prepares students for the challenges of the careers of tomorrow. Not only are computers an integral part of daily life but learning how to engage with and control them is a powerful leverage that we can give our young people.

Additionally, programming teaches skills that apply to all jobs: logical or computational thinking, flexibility, persistence, problem-solving, confidence, creativity, and collaboration. Best of all, it’s challenging and it’s fun!

What is computational thinking?

computational thinking like a programmer

Teach students to think in sequential steps like a programmer

Computational thinking is the ability to break down a big problem into smaller sub-problems and to arrange them in an appropriate sequence. It’s a step-by-step procedure that is the foundation of science hypotheses and experiments, diagnoses such as medical evaluations and mechanical problems, and even tying up shoelaces. This cognitive, methodical approach to problem solving is the basis of algorithmic thinking: define the steps to complete the task.

How can computational thinking be taught?

computational thinking

Now that there are graphical programming tools such as Scratch and ScratchJr to teach coding to very young students, we should prepare them to think in a sequential, logical way. Before turning to the computer, break down some simple daily tasks into steps.

Here are some offline activities to try. Have students list all the ‘baby steps’, in the correct order, to complete a task. Then you may want to put their lists to the test by having one student instruct another to follow the steps literally as directed!

  • drink from a juice box
  • go out the door
  • put toothpaste on a toothbrush
  • make a peanut butter sandwich
  • get on a bicycle
  • add 2 two-digit numbers
  • shuffle playing cards
  • take out the garbage
  • get out of bed
  • blow up a balloon

They will soon find that ‘Get a balloon and blow’ might have the tester holding a balloon in his hand but blowing into the air. The steps should be broken down into something like this:

  1. Pick up a balloon.
  2. Place the open end of the balloon between your thumb and index finger.
  3. Put the open end of the balloon into your mouth.
  4. Blow into the balloon.
  5. Squeeze the open end of the balloon shut.
  6. Continue to blow until the balloon is full of air.
  7. Squeeze the open end of the balloon shut.
  8. Tie the open end of the balloon into a knot.

Use natural language first

Scratch cat

Before using the blocks in Scratch have students explain, in their own words, what steps are needed to perform a task.

For example, to make Scratch the cat walk and talk to the viewer, use natural language to list the instructions to the cat:

  1. Begin.
  2. Then take 10 steps forward.
  3. Say “Hello!”

After the steps have been explained verbally or written in natural language sentences, then go to the Scratch program and find the coding blocks that will perform those steps.

computational thinking

Preparing students to think logically and plan their ideas using their own words offline first will ensure success as they begin to construct code.

Scratch lessons and computational thinking.

Develop computational thinking skills using Scratch lessons in TechnoCode.

Are you looking for programming lessons for kids?

TechnoCode, a STEM project, includes activities that emphasize computational thinking. The lesson plans use Scratch to build games, puzzles, and animations. The instructional goal is to have students think like programmers. Easy to follow instructions with natural language help students to understand coding. Resources include planning sheets with guiding questions, coding challenges to differentiate learning, and coding journals.