{{indexmenu_n>4}}===== 程序设计 ===== ==== 编程语言 ==== 编程语言(Programming Language),是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。 电脑程序设计(Computer programming),或称程序设计(programming),是给出解决特定问题程序的过程,软件开发过程中的重要步骤。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应包括分析、设计、编码、测试、调试等不同阶段。 编程语言已超过上千种,大部分用在计算领域。最受欢迎的编程语言三强:Indeed 数据(2019年1月-7月)分别是Java、C++、Python,Tiobe 数据(2019年6月)分别是Java、C、Python,IEEE Spectrum 数据(2019年9月第六届编程语言排行榜)分别是Python、Java、C。 ==== 少儿编程与机器人编程 ==== 少儿编程一般针对的是小学及以下幼儿设计的编程模式,把原来复杂的英文代码编程语言转换成图形化的,以指令化,模块化方式让游戏和情景动画以积木构件的形式呈现。 机器人编程是以调用编程模块指令让机器动起来为目的。 {{:50.program:102c330b-2995-4bba-be0f-f1d628847f43.jpg|}} 基于少儿编程与机器人编程的学习工具不同、学习方向与深度不同、培养逻辑思维与编程思维的意义不同,以及在发展角度相应的学业、编程语言能力和就业能力不同,倾向于在STEM教育中推荐少儿编程,适当辅以机器人编程满足学员的好奇心、动手能力和团队乐趣。 参考链接:[[https://www.miaoxiaocheng.com/news-detail/55.html|少儿编程与机器人编程分别是什么?]] 酷码STEM实验室目前关注在少儿编程中推广Scratch和Python,重点介绍Scratch图形编程、Python代码编程,以及从Scratch到Python的平滑过渡;并辅以“开源硬件”来让学员熟悉机器人编程。 [[https://zh.wikipedia.org/wiki/程序设计|维基百科:程序设计]] ==== 程序设计入门建议 ==== 〇、英语 建议初学者努力学习英语,甚至可以把自学编程作为提升英语能力的契机。这一条实际上是《“写代码”以外的能力培养》的[[stem:ability_training#英语|第一条]]。 一、最佳浏览 几乎所有的工具、代码和教程都来自于网络,必须构建最佳网络浏览环境,包括习得正常访问国际互联网的能力,以保证学习者能够快速搜索、浏览和下载。这一条实际上是《“写代码”以外的能力培养》的[[stem:ability_training#上网|第二条]]。 二、找对版本 比如不同的包可能依赖不同版本的python,学习阶段有必要严格对应起来,否则可能随时出错。 三、换源 如果你在中国大陆使用开源软件,“换源”这个词是必知必会的,比如google一下“raspberry pi+换源”获得换源信息。 四、官方资源 官方文档、范例以及Troubleshooting需要首要、全面阅读,一定要读到最后。官方资源通常可以作为雅思/托福/GRE阅读题。 五、技术交流 首先要确认各开发者撰写教程的开发环境(包括版本)——你的电脑系统配置很可能和作者的不一样!而且,网络上很多的教程类贴子其实只是简单的抄来抄去,并不能够解决你的问题。 ==== 编程与开源硬件 ==== 编程是孩子们应对未来挑战的基本能力之一。编程教学一定要有趣、好玩、能与物理实体相关联,这样才能吸引学生主动参与。以micro:bit、Arduino、树莓派等为代表的开源硬件之所以能风靡全球,其渊源正是因为如此。 ==== 编程思想 ==== 用计算机来解决人们实际问题的思维方式,即编程思想。从编程技术发展的角度来看,历经过程性的编程思想和结构性的编程思想,到现在流行面向对象的编程思想。而从思维模式的角度看,则显然更具有社会意义。推荐图书:《黑客与画家》。 {{:program:s4669554.jpg?nolink&400|}} 《黑客与画家》是硅谷创业之父Paul Graham 的文集,主要介绍黑客即优秀程序员的爱好和动机,讨论黑客成长、黑客对世界的贡献以及编程语言和黑客工作方法等所有对计算机时代感兴趣的人的一些话题。书中的内容不但有助于了解计算机编程的本质、互联网行业的规则,还会帮助读者了解我们这个时代,迫使读者独立思考。 ==== 编程成长路线图 ==== 酷码STEM实验室设计的编程成长总路线图是[[program:scratch:scratch|Scratch]] → [[program:python:python|Python]] → [[program:c|C/C++]]。