惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
V
Vulnerabilities – Threatpost
Google Online Security Blog
Google Online Security Blog
Hugging Face - Blog
Hugging Face - Blog
L
LINUX DO - 热门话题
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
D
Docker
C
Cyber Attacks, Cyber Crime and Cyber Security
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
T
Tenable Blog
P
Privacy International News Feed
Google DeepMind News
Google DeepMind News
小众软件
小众软件
Cisco Talos Blog
Cisco Talos Blog
aimingoo的专栏
aimingoo的专栏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
A
Arctic Wolf
C
Cybersecurity and Infrastructure Security Agency CISA
C
Cisco Blogs
T
Threat Research - Cisco Blogs
NISL@THU
NISL@THU
The Hacker News
The Hacker News
Project Zero
Project Zero
AWS News Blog
AWS News Blog
Simon Willison's Weblog
Simon Willison's Weblog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Threatpost
V
Visual Studio Blog
The GitHub Blog
The GitHub Blog
The Cloudflare Blog
Last Week in AI
Last Week in AI
Jina AI
Jina AI
Cyberwarzone
Cyberwarzone
The Register - Security
The Register - Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
Vercel News
Vercel News
D
Darknet – Hacking Tools, Hacker News & Cyber Security
MongoDB | Blog
MongoDB | Blog
U
Unit 42
Scott Helme
Scott Helme
A
About on SuperTechFans
WordPress大学
WordPress大学
F
Fortinet All Blogs
大猫的无限游戏
大猫的无限游戏
G
GRAHAM CLULEY
Latest news
Latest news
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
Schneier on Security

CORP-MIDS1 (MDS)

Tech Tools and Tips for Teaching Coding to Students with Learning Disabilities How to Use Sleep Data to Effectively Improve Rest How to Make the Jump from the Military to the Cybersecurity Field How to Prevent Cyberbullying with Technology Resources to Teach and Learn Data Science in High School 17 Data Science Scholarships A Parent’s Guide to Internet Safety for Kids How to Nail Your Data Science Tech Interview Networking and Professional Development Resources for Women in STEM
Visual Programming Resources for K–12 Students
2022-02-24 · via CORP-MIDS1 (MDS)

There are coding camps, programs and lesson plans for children as young as six years old. But how can kids learn to code before they learn to write?

Visual programming is a way for kids to graphically write code, usually with drag-and-drop “building blocks.” The focus is on overall structure, methods and programmatic thinking instead of specific rules.

For example, the loop below is shown in both graphical code and regular Python. The fundamentals remain the same, but the visual version is similar to a puzzle. The pre-made pieces can be modified but need to be moved into place.

This starting point makes it easier for young and beginner programmers to build algorithms that would otherwise seem hidden behind text.

Versions of these kinds of languages are often bright and colorful to help engage children. Also, the pre-made blocks mean that kids don’t have to worry about typing, spelling or syntax errors.

Visual programming also helps tap into a different kind of learning than traditional text does. An experiment comparing the efficacy of using visual and verbal cues to teach science found that “creating a visual explanation was superior and benefitted participants of both high and low spatial ability.”

Age-by-Age Guide to Coding With Visual Languages

There are programming and algorithm curriculum guidelines for students throughout the K–12 range, compiled by the K–12 Computer Science Standards from the Computer Science Teachers Association (CSTA) (PDF, 346 KB). Graphical programming can facilitate these learning goals at every stage.

Elementary School Students

For the youngest coders, the focus should be on getting them excited about problem solving and creativity. CSTA recommends that students start learning algorithms by modeling step-by-step processes and working on sequencing. By fifth grade, these coders should be able to create variables and basic events.

Visual programming is suitable for this age because it is colorful and engaging. It also does not require typing skills, so there is a lower barrier to entry than traditional coding.

Middle Grade Students

CSTA recommends these students begin addressing more complex algorithms and structures through pseudocode. They should also begin trying new data types, nested loops and functions to make code easier to reuse.

Visual programming can graphically display new, more complex concepts such as nested loops and compound conditionals. These languages can also help students start to plan and implement larger projects at a high level before working out the details.

High School Students

At this level, CSTA says students should be able to create algorithmic prototypes and begin implementing object-oriented programming strategies such as arrays. They should engage in informed decision making about the readability, efficiency and performance of their code.

Students can use visual programming tools as a complementary system to text-based coding languages. Much like an artist uses thumbnails or a web designer creates wireframes, visual programming can be used to pseudocode a project and outline the larger idea. Visual programming languages can also be a good resource to build the basics of a complicated loop or coding problem before adding more syntactically complex lines.

What Visual Programming Languages and Editors Are Available for Kids?

Visual programming languages often simulate the syntax of an existing coding language. For example, Blockly can be arranged to imitate languages such as Python and JavaScript. The languages below have their own interfaces or editors, and some can be integrated into other applications.

Scratch
From The Scratch Foundation and MIT
A free coding community and visual coding interface for kids to create digital stories, games and animations. Primarily meant for kids ages six to 18, Scratch is available in more than 70 languages and does not require an internet connection. ScratchJr is for children younger than seven years old.

Blockly
From Google developers 
The Blockly editor can represent JavaScript, Python, PHP, Lua or Dart as interlocking blocks and can export the text form of the code. Blockly is free and can be integrated into any application, with attribution.

MakeCode
From Microsoft
The MakeCode platform includes free block-based programming tutorials, games and “open” playgrounds. Users can flip from graphical programming to text mode and convert their code to JavaScript or Python.

Pencil Code
From The Pencil Code Foundation
A programming site and code editor that uses visual programming to draw art, make games and play music. This editor primarily imitates the CoffeeScript language.

Alice
From Carnegie Mellon University
A free visual programming software with an accompanying library of how-tos, lessons, exercises, projects, textbooks and curriculums. Alice also has an audio library available for users to code things such as music videos.

What Resources Are Available to Teach Children Visual Programming?

There are games, apps and lesson planning services available to help teach visual programming languages. Browse some of the options below to find kid-friendly options.

Blockly Games: A series of educational games that get progressively more complex using Blockly programming.

CodaKid: A set of coding courses with hundreds of challenges centered around video and gamification using games like Minecraft.

Google CS First: One-hour lessons using Scratch to build stories and games or to augment existing coding curricula.

Tynker: An interactive coding platform using story-based learning to transition kids from block-based programming to JavaScript and Python.

Daisy the Dinosaur: Available for iPad, a drag and drop interface application for children to animate a dinosaur using code blocks.

Game Builder Garage: Available on the Nintendo Switch, step-by-step lessons on the foundations of game design and visual programming.

iRobot Coding App: An app that allows students to program physical responses from the accompanying robot, progressing from graphical to text coding.

micro:bit: A miniature computer that connects to the Microsoft MakeCode platform to animate the display, code rhythm or make a compass.

ITCH Lessons: Coding courses and a lesson building platform for educators using Scratch.

SAM Labs: Wireless blocks and coding platform featuring lesson plans and dedicated educator support.

Kai’s Clan: A toolset compatible with Blockly and micro:bit that allows users to collaboratively code their robots.

GameSalad: A professional visual programming platform that allows users to create games from scratch and share them with the community.

LearnToMod: Minecraft modification software where users can learn how to create their own mods, texture packs and schematics for the Minecraft community.

Programming Terms and Definitions

Object-oriented programming: A programming style in which code is formulated into sections of data, or “objects;” programmers create objects to modularize complex programs.

Pseudocode: A plain language description or plan for code that can help with outlining or determining the overall structure of a program.

Algorithm: Instructions that explain to the computer how to make a calculation or process information. Algorithms use ordered directions and are written in a language meant for computers (programming languages).

Variable: A reference or given name for a set of information. For example, a variable can represent an entire file of data, a single character or a list of numbers

Event: Something that happens and triggers code to run. This is often user-driven—for example, when a user clicks a button or enters text into a text box.

Function: A named set of instructions that can be created and reused by a programmer. For example, you could create a function titled “append_A,” which tacks the letter “a” to the end of a specified word. Once defined, “append_A” can be called or executed throughout a program.

Conditional statement: Decision-making logic for a computer to check circumstances before executing code. Conditional statements always contain an “If” portion; “If” the condition is met, the computer will continue running the code that follows.

Loop: A set of code that is repeated for a predetermined number of iterations or until a set of given conditions is no longer met.

Array: A data storage and access method that contains a series of objects of the same type. For example, an array of characters (c, o, d, e) or floats (1.2, 5.7, 9.4, 10.2).

Nested and compound code: Code performing a function that is contained within the confines of another function—for example, a loop that executes inside another loop.