The evolution of children’s programming languages

With President Obama’s Computing for All (#CSforall) initiative and the growing focus on STEM (Science, Technology, Engineering, and Mathematics), we are at a point where we need to build computers for kids It’s time for standards and best practices in education. The industry agrees that visual programming is the best way to teach children computer science and computational thinking. This can get rid of difficult programming syntax and allow children to flexibly master the essence of software programming at a very young age.

Improved logo language

Over the past fifty years, designers have continued to improve the Logo programming language created by Seymour Papert (LCTT Annotation: Some students should have seen the "little turtle"), and a large number of programming languages ​​with slightly different interfaces but the same core ideas have emerged. . The current teaching standard is based on module (blocks) programming, thanks to the popularity of MIT's Scratch programming language. CSTA's K-12 computer science teaching standards require the programming ability to "build and test solutions using a module-based visual programming language" for grades K-5 .

Getting younger and younger

Another trend in computer science education is that the audience is getting younger and younger. Studies show that children as young as five years old are able to grasp the concepts of computer programming, so this is an inevitable trend. To teach programming to children who don't yet know how to read, you need to avoid using words. Recent first-level courses like Scratch Jr and Code.org use icons instead of text in module-based programming languages.

Robot programming

Seeing your code come to life is a magical thing. As early as the beginning of this century, LEGO and MIT collaborated on a project to bring module-based programming to the real world. Students can write programs on their computers and then download them into the robots they build. The early RIS (robotics invention system) looked very much like Scratch.

The 2013 version of Lego Mindstorms does most of the same things as the previous version, although it has become more complex. It is now possible to add input parameters to the module to specify distance, time, output, etc.

Martin Exner has created a concise infographic summarizing the programming languages ​​derived from Logo and, more recently, Scratch. Many derivatives of the Logo language are centered around specific scenarios, such as creating games, making 3D storyline environments, drawing pictures, programming robots, and even controlling virtual fish tanks. This approach appeals to a variety of children, but many children still find it difficult to learn to write a program.

Programming ideas based on logo

In real life, computer programming usually requires considering various types of inputs and dynamically processing various logical judgments at the same time. Let us give a simple example of what to do after getting up: if it is Saturday and Sunday, we will go outside to play; if it is Monday, we need to put on sports clothes; if it is Thursday, we need to take out the trash; not on the weekend days we need to go to school. The logic implemented using Scratch is shown below.

In addition to these module-based programming languages, there is a new language that takes a different approach to teaching kids programming. In 2015, Wonder Workshop designed a new programming language called Wonder, using a stream-based programming interface. Wonder allows students to focus on the connections of some predefined functional units (or statements) to build a state machine. At any moment, the robot is in a single given state; it does some action, and given some input it changes to do a different action.

The figure below shows how to use a flow-based approach to determine tasks after getting up.

In addition to moving away from the linear programming paradigm, this programming language offers a different approach to computing that allows students to simulate responses to real-world changes in an easy-to-grasp way. Students can more easily break problems into smaller parts and then use these parts to solve complex problems. Students only need to focus on one problem at a time when solving problems. This process is called decomposition, which is both basic knowledge in the computer field and the design purpose of Wonder.

There are many examples of robots and state machines in our daily lives, and they are becoming more and more common. When you put in the correct combination of coins, the vending machine will give you the corresponding food. A self-driving car will decide how to move based on the obstacles around it. State machines can also further model a wide range of problems, including language parsing, artificial intelligence, communication protocols, character changes in games, and even neural networks.

As robots become more widely used, teachers are being trained to use module-based programming as the standard for teaching kids computer science. As it makes its way into more and more classrooms, we should wonder if this is the right direction? Is there any other better way to teach children computer programming.

The pirated resources of "Celebrating More Than Years 2" were uploaded to npm, causing npmmirror to have to suspend the unpkg service. Microsoft's China AI team collectively packed up and went to the United States, involving hundreds of people. The founder of the first front-end visualization library and Baidu's well-known open source project ECharts - "going to the sea" to support Fish scammers used TeamViewer to transfer 3.98 million! What should remote desktop vendors do? Zhou Hongyi: There is not much time left for Google. It is recommended that all products be open source. A former employee of a well-known open source company broke the news: After being challenged by his subordinates, the technical leader became furious and fired the pregnant female employee. Google showed how to run ChromeOS in an Android virtual machine. Please give me some advice. , what role does time.sleep(6) here play? Microsoft responds to rumors that China's AI team is "packing for the United States" People's Daily Online comments on office software's matryoshka-style charging: Only by actively solving "sets" can we have a future
{{o.name}}
{{m.name}}

Guess you like

Origin my.oschina.net/u/7184990/blog/11125290