Zigo Cursos

Coding for Teachers



    Idioma: INGLÊS


    Course Proposal

    Duration: Four weeks

    Course Materials Cost: none

    Prerequisites: none

    Resources Used: PDF files, discussion forum, free software

    Computer requirements:  Chromebook, Macintosh, Windows

    Course Designers: David Thornburg, PhD and Norma Thornburg, MA

    Start date: coming soon

    Certification: digitally certified by Zigo Educação and Thornburg Center


    Course abstract:

    The idea that students should learn to program computers is not a new one, but it has largely fallen by the wayside in the past few decades.  As a result, many young people are adept at using computer applications, but lack the skills to create applications of their own.  Computer languages have syntax and grammar, just like natural languages, and learning to program builds thinking skills.  This course is designed for educators who want to introduce programming to their students without having to start with complex languages.  While the programming languages we’ll explore are easy to learn, they can be used to create programs of great complexity.

    Through a series of activities and projects, participants in this course will develop familiarity with a popular class of programming languages that can be introduced to students of all ages.  Furthermore, students will also work with special languages that can be used to design projects to be built on 3D printers, and to operate the Arduino interface card that connects computer activities to the physical world.

    You will take part in class discussions and build programs of your own to demonstrate your learning.  Your final activity will be to create a program that addresses a personal challenge for which current software does not address.


    What you will learn:

    Week 1:

    1. Why programming is an important topic
      • Develops logical thinking skills
      • Can lead to careers
      • Combines math, science and artistic elegance
    2. History of programming languages for children
      • BASIC
        • Challenge: students usually create sloppy programs ― hard to read and debug
        • Advanced programming ideas (e.g., extensibility, recursion) are not available.
      • Logo
        • Derivative of LISP designed by Seymour Papert and his colleagues
        • Example of Logo programming
        • Language with no floor or ceiling
        • Several versions have been developed
        • “First Class” language ― extensible and supports recursion
        • Challenge: requires some keyboard skills
    1. Activities
      • Read the background of the BASIC and Logo languages and discuss their underlying philosophies
      • Download a version of Logo and create a program to draw a house (a square with a triangle for the roof.)
      • Explore the process of “debugging.”
      • Comment on the ease or complexity of working with text-based


    Week 2:

    1. Introducing block languages
      • Unlike purely text-based programming languages, block languages borrow from the idea of jigsaw puzzle parts to assemble programs. This reduces typing and creates programs that look elegant and are easy to read.
      • Many of the languages focus on the creation of graphic images, although some of them work as easily with traditional text-based tasks
    2. Scratch and Scratch Jr.
      • History of these languages from MIT’S Lifelong Kindergarten Group
      • Differences between Scratch and Scratch Jr.
      • Features of Scratch
      • Creation of Scratch programs
      • Create a simple game or project in Scratch
      • Discuss the process of game design and debugging
      • Share your game with other students and comment on other’s work.


    Week 3:

    1. Exploring Snap as an advanced block language
      • History of Snap and its connection to Scratch ― derived from the Build Your Own Blocks language
      • Additional features
      • Extensible ― allows the programmer to define new capabilities for the language
      • Supports recursion ― allows the programmer to define procedures that refer to themselves in the definition. This allows the creation of simple programs that produce complex results.
      • Works nicely with words and lists as well as graphics
    2. Building your own procedures in Snap
      • Define and run a program that illustrates the creation of your own procedures (blocks)
      • Build a program using recursion to compute a special math function (e.g., factorial)
      • Design and build a Snap program to generate an elegant graphic (for example, a fractal tree)
      • Discuss your experiences with this language.
      • Share your program with others and comment on other’s designs


    Week 4:

    1. Extending block languages into other domains
      • Block language for designing parts for 3D printers
        • Explore blockscad by designing and exporting a part that can be made on a 3D printer
      • Block languages for programming the Arduino computer interface board
        • Explore Snap4Arduino or Scratch X as a tool for controlling outputs and reading sensors on an Arduino board
      • Introduction to Blockly ― a professional tool for making new block languages
    2. Discuss your overall experiences with other students
    3. Create a final project of your choosing using any of the block languages we’ve explored.


    About David Thornburg

    • 4 Semanas
    • 50 VAGAS
    • Certificado do curso
    • Curso em Inglês

    Posts Recentes