我们使用工具并不意味着需要亲自制作工具。然而,如果我们希望能够与现有的这个由代码构成的环境交互,而不是处于完全被动的话,就需要了解基本的编码。我们不应该把这种技能完全地推给某一阶层或精英。

  巴黎高科评论:首先,代码是什么?

  尼古拉斯·达内:有很多定义方式。首先,代码是使机器运行的程序。如果没有代码,我们的电子设备包括电脑、手机就没有生命。代码是让我们最接近机器灵魂的方式,使机器能根据我们的需求而运作。它是一些通过算法来自动完成任务的句法。这是第一个定义。

  但是代码也可以被定义为一种语言。因为它基于数学算法,我们过去倾向于认为它只是一个属于数学家和工程师的领域。但实际上,许多语言学者已经对编码和发明新的编程语言产生兴趣。有些人甚至用代码写诗!斯坦福大学的学生就创立了一个俱乐部,将诗歌和编程融合在一起。代码完全可以被视为一种说话和表达方式。

  从某种意义上说,学习代码和学习一门外语相似:开始会很艰难,但渐渐地,我们开始理解语言的逻辑性——每个人都有能力掌握它,因为说话谁都会。

  因此,我们都能学会代码,但有必要所有人都学吗?

  没错,任何人都可以学习代码,包括儿童。只要使用合适的界面,孩子也可以轻松地码代码,而不必非得是编程天才或计算机学博士。就像你不必非得是莎士比亚才能说好英语一样。理解基础的编程语言并不复杂。事实上,大多数人每天都会处理几行代码:每个人都要在网络浏览器中输入 URL 地址;每个人都知道删除 .com 后的整个序列会带你回到首页。

  根据美国著名的网络文化作家道格拉斯·洛西克夫所说,一个当代性难题在于“编程还是被编程。”这可能略有些极端:我们并不需要因为使用手机,而必须成为手机程序员。我们使用工具并不意味着需要亲自制作工具。然而,如果我们希望能够与现有这个由代码构成的环境交互,而不是处于完全被动的话,就需要了解基本的编码。我们不应该把这种技能完全地推给某一阶层或精英。

  公民需要基础教育,所以对编程有所认识是有意义的。当我们学习读写时,最好能有一些编写代码和“阅读”那个我们身处其中的数字世界的经验。

  对我来说,这几乎与公民学一样必要。不传播民主的价值,公民将永远无法找到自己在社会上的位置。同样,如果我们不懂编程的逻辑,身处这个由代码构成的世界就会感到不自由。就以 Google 这个每个人每天都会使用好多次的搜索引擎为例,如果我们不了解它是如何工作的、如何生成信息索引、信息又来自哪里、为什么一个查询能反馈很多结果等等,就可能轻易地被这个工具欺骗。永远不要以为,搜索引擎给出的结果就一定是真理;不要以为,除了搜索结果的前几条其他都是无关紧要的。

  简而言之,你认为数字教育、唤醒学生对代码的认识很重要。当然,这是公民教育的使命之一,但学校真的是教这门课的最好地方?

  近年来在几乎所有的西方国家都出现了是否应该在学校教授代码的争论。然而,改变整个学校计划通常是很艰难的,而且我们没有足够的计算机教师来使编程成为一门像数学和英语那样的主课。同样,当法国于 2010 年将算法这门课引入高中课程体系时,那些没有受过相关训练的教师就有了麻烦。

  有人会问为什么编程要单独成为一个学科:如果编程就像写作,那么所有学科都将涉及到。

  我倾向于从另一个角度理解这个问题。在我看来,更重要的是采纳学生的观点进而了解什么才是对他们最有利的,而不是把精力集中在如何将编程加入到教育课程中去。

  我们经常抱怨孩子们花太多的时间在屏幕前,这可能是正确的。但最重要的是,我们需要确保当孩子们在屏幕前时不只是处于一个被动的状态。这就是编码可以发挥至关重要作用的地方。如果一个孩子可以开始编程,通过适当的界面,他们很快就会体验到其中的乐趣。因此,他们在使用 IT 工具时将有完全不同的体验。

  在这一点上,存在一个关于学习范式的基本问题:是从理论出发更好呢?还是将实践和理论结合更好?就个人而言,我不认为你可以在不亲自运行代码的情况下理解编程。从实践出发总是最好的,而不是通过阅读代码理论的书。当我还是个孩子时,我就是从尝试编写几行代码起步来学习编程的。我的代码远非完美,但这不重要,重要的是了解它们的背景和它们的运作方式。通过实验来学习算法思想比单纯阅读理论书更有效。

  但学校能提供这种方式吗?

  不一定。这种学习模式可以在课堂之外实现。每个学校的代码和计算机文化是非常不同的,水准也有很大差别:教师、学生、硬件……相反,代码的世界主要基于自学者和网络支持。总之,这正是整个宇宙的创建方式。不将这些理想的水平协作模式融入到教学中,使之不同于传统教学,将是一种耻辱。在第二个阶段,这些处于传统教育边缘的主动性学习可以被重新组合、获得进一步开发。不断在边缘地带试验、更新、整合,其实就是一种非常“数字化”的思维方式。

  这种方式也会部分解决人力资源的问题,也就是说,大规模地招聘教师或是同等力度地将编程引入到小学或中学课程中去。然而,如果没理解错的话,你认为在中期内,学校的课程体系应该包含这些课外活动。我们甚至可以想象,如果数字时代必须改变学校,代码就可以被视作触发这一变化的特洛伊木马,允许不同学习文化的发展。那么你如何看待学校的未来呢?

  理想情况下,它应该比现在更加强调协作能力。孩子们需要学会通过与人交往来了解自己。这是一个巩固知识的好方法。如果一个学生需给他的同学做出解释,那么他就需要首先加强自己的知识水平。在这种背景下,老师在课堂上的位置也会改变。老师的工作将成为一种催化剂,而不只是传递知识。理想情况下,这种协同维度可以扩展到与来自其他国家班级的交流,在伊拉斯谟计划的初高中教育体系下。

  未来的学校也将关注创造力。在实践中学习,给日常生活中的问题提供解决方案:制作一个网站、设计一个小程序来自动化一组任务、编程连接对象、玩一个光传感器,等等。在某种意义上,代码非常类似于其他的创造性领域,如视觉艺术或音乐:在程序设计中,一个给定的问题很可能引起在优雅性和时效性方面全然不同的解决方案。最后,学习编程是一种发现和深化学习风格、培养创造力的方式。

  注:伊拉斯谟计划(Erasmus Programme,European Community Action Scheme for the Mobility of University Students),是欧洲各共同体在 1987 年成立的学生交换项目,2014 年 1 月在它的基础上创建了应用于欧盟现有教育、训练及青年体育领域的交换计划 Erasmus+。其国际版为伊拉斯谟世界计划。

编程还是被编程?这是个问题相关推荐

  1. java 函数式编程_函数式编程杂谈

    比起命令式编程,函数式编程更加强调程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断演进,逐层推导出复杂的运算.本文通过函数式编程的一些趣味用法来阐述学习函数式编程的奇妙之处. 一 ...

  2. C语言网络编程:TCP编程模型

    编程模型 TCP编程模型如下 TCP服务器的工作过程如下: 服务器创建一个专门的"文件描述符"来监听来自客户端的"三次握手",然后建立链接 链接建立成功后,服务 ...

  3. python向量化编程_向量化编程思维。

    首先恭喜你找到工作:) 在我看来,编程和向量化思维一点关系都没有.向量化思维是只有在处理矩阵运算的时候,才会使用的方式.而且,本质上,在我看来,向量化思维本质是数学能力,而非编程能力.在这个课程中,你 ...

  4. php 取对象数据_过程式编程和面向对象编程有什么区别?怎么理解php对象的概念?...

    PHP编程中对象的概念? 在上一篇文章咱们介绍了使用了php中的new pdo来连接数据库MYsql,其实在我们学习编程语言时经常会碰到"对象"这个词汇,准确来说是"面向 ...

  5. java什么是函数式编程,Java 函数式编程(一)初识篇

    本文已授权"后端技术精选"独家发布. 开发者使用Java8编写复杂的集合处理算法,只需要简单的代码就能在多喝cpu上高效运行,这就是Lambda表达式的初衷. 提示:函数式编程和语 ...

  6. python快速编程入门课后简答题答案-编程python入门 编程python入门课后习题

    编程python入门 编程python入门课后习题 米粒妈咪课堂小编整理了填空.选择.判断等一些课后习题答案,供大家参考学习. 第一章 一.填空题 Python是一种面向对象的高级语言. Python ...

  7. python网上编程课程-少儿编程 为你解读Python编程课程

    少儿编程 为你解读Python编程课程.重庆乐博乐博少儿编程培训学校的老师好评率高,具有很好的亲和力,专业知识讲解清晰,授课思路明晰,合理课程安排和辅导,针对学员的学习心理状态也会及时关注,赢得了广大 ...

  8. ug后处理如何加密_什么叫UG编程?UG编程是干嘛的?不得不看哦!的UG

    点击上方"蓝字",发现更多精彩. 什么叫UG编程?UG编程是干嘛的? UG是Unigraphics的简称,Unigraphics是一个交互式的CAD/CAM系统.它功能强大,可以方 ...

  9. 高阶函数||编程范式: 命令式编程/声明式编程 || 编程范式: 面向对象编程(第一公民:对象)/函数式编程(第一公民:函数)

    编程范式: 命令式编程/声明式编程 编程范式: 面向对象编程(第一公民:对象)/函数式编程(第一公民:函数) 高阶函数 filter/map/reduce filter中的回调函数有一个要求: 必须返 ...

  10. 别为了学编程而学编程

    "所有人都应该学习编程"(Everyone should learn programming)--这个"病毒"已经广为扩展,达到了失控的地步,以致于纽约市长竟然 ...

最新文章

  1. 深入理解Java中的final关键字
  2. 大数据环境下数据科学的知识体系
  3. java如何爬取304_HTTP 304错误的详细讲解
  4. 特征图注意力_向往的GAT(图注意力模型)
  5. 贷款,别相信这些人!
  6. Anaconda日志
  7. LeetCode 1776. 车队 II(单调栈)
  8. “70后”清华教授,任大学校长
  9. what's new in vs 2005
  10. 想要羊毛薅得少,欺诈防控少不了
  11. 贝叶斯推理(Bayes Reasoning)、独立与因式分解
  12. 电脑右下,电脑右下图标怎么显示出来怎么办
  13. CentOS 6.X配置 NFS以及启动和mount挂载
  14. Python下安装Opencv
  15. IBM PowerAI编程大赛Q2场来袭!探秘金融语料大数据识别
  16. markdownpad2渲染组件出错——Awesomium sdk组件下载
  17. UDP sendto频率过快导致发送丢包
  18. (压位)高精度乘法,高精度加法,高精度减法,高精度除法
  19. 图解快速排序——通俗易懂(quick sort)
  20. 电视盒子和机顶盒有什么区别?哪个更值得买?

热门文章

  1. MQTT协议学习总结
  2. Vue 中的表格操作
  3. 关于Vivado和Modelsim联合仿真的爱恨情仇
  4. html5经常闪退,电脑闪退是怎么回事 电脑经常闪退的解决方法
  5. 利用FloatingActionButton实现底部凸起的导航栏
  6. java不重启服务动态加载properties文件
  7. win7_ahic改raid
  8. 初来日本全记录之赴日篇
  9. 笔记本硬盘故障与简单维修
  10. 荣耀平板 8 新款 8GB+256GB 版本 评测