人人都要学编程?编程到底有没有前途?
这个问题第一次被提出来,是在20世纪80年代,那时,个人电脑方兴未艾。后来,软件产业的发展似乎已经给出了明确而否定的答案。然而现如今,它带着猛烈的势头再一次出现在人们面前。这一次,我们必须认真来对待它。
采访对象:Serge Abiteboul (信息管理学者)
巴黎高科评论:计算机素养在今天越来越重要。对学生和社会而言,其中的利害关系如何?
Serge Abiteboul:很简单,信息技术是今天这个数字世界的核心。要理解这个世界,了解它的基本构造并参与其中,计算机技能至关重要。而且从经济竞争力角度来看,我们确实需要掌握计算机技术和科学,这就如同在19、20世纪掌握数学和物理学一样重要。
美国总统奥巴马亲自呼吁美国年轻人学习编程,包括几乎所有日常应用和机器程序。亲自编写程序和请别人替我们写这两条道路之间,从宏观角度来看,后者不是不可以,但意味着丧失了主动权,意味着在创新竞赛中弃权,因为创新和编写代码这两件事已日益变得密不可分。
从个人角度,不会写程序也会令你在程序面前非常被动,除了依据使用手册按部就班,毫无自主权可言。作为网站站长,如果有些功能不尽人意,除非你能搞明白实现这些功能那10行代码,并能写出两行代码来改变它们,否则,你就永远是一个技术的奴隶。
一个人想掌控技术,随心所欲,就必须了解诸如云和电子投票之类的知识,必须能独立编写小的手机app或网站代码。这与你从事什么职业毫无关系,而且任何人都可以掌握。计算机技能并不比写英文报告或设计物流系统更难。关键是真正参与到其中,扯下其神秘面纱。这是我们大家的挑战,而不是企业IT部门的专利。
人们总是把计算与数字化混淆,它们的区别和相互关系究竟是什么?
这是一个数字化的世界,在这个世界里,有计算机科学。人们阅读电子书而不是纸质书籍;课堂上使用的是数字显示屏而不是粉笔与黑板;人们的相机和汽车都已经数字化;孩子们刚学打字就知道如何使用拼写检查,刚学算术就可以使用Excel,这些都是数字化工具,但我们仍要学习有关书写和计数的知识。人们能够熟练使用谷歌或Facebook,但不知道谷歌搜索背后复杂的算法和Fackbook是如何保护隐私的。
计算机和编程是数字世界的核心。信息科学开发出软件来让整个世界数字化成为可能。它是一种教育、一门科学和一门艺术——而不仅仅是赋予人们以工具和操作。人们一次又一次地将使用数字工具和编程相混淆,其实两者毫无关系。
所以,信息科学绝对有必要进入课堂,与物理、化学和数学平起平坐。但它又有很强的技术属性,你必须学会自己编程、使用计算机来解决问题。这是计算机科学必不可缺的一个方面。
我们应该设立一门独立的IT课,还是根据它跨学科的特点,将其结合在其他学科的学习当中?
注意不要造成混淆。学习数字化工具意味着不同的课程(建筑设计工具、数据库和搜索工具、科学计算工具等)。但计算机科学本身是一个独立领域。只有一种算法思维。不管是你编写程序来计算莎士比亚或普鲁斯特作品中某些词出现的频率,还是用来计算矩阵乘法,基本流程都是一样的(排序操作、测试、循环等)。只有通过这种科学的训练,人们才能根据不同领域和情况来选择不同的编程项目。
那么,教授内容都包括哪些呢?
计算机科学提供了一种全新的思维方式:算法思维,即如何用程序来解决问题。算法思维的概念已经存在了很长时间。当你进行加法、乘法或除法等计算,你就是在学习算法。但是对智能工具和应用的编程要复杂得多。你必须掌握更抽象的概念如loop——允许特定任务的迭代。
然而,IT确实很实用。这门科学的美妙之处在于,你可以付诸实践,你刚刚学到的东西马上就可以用来编写小而简单的程序。即使在小学里,孩子们利用Scratch这样的编程语言就可以从小熟悉编程。问题的关键是了解计算思维这种帮助我们理解周边世界的基础性思维,并通过编写小的程序来不断发展它。
因此,人们可以在很小的时候就开始学习?
每个人都应该从小开始,因为儿童最容易接受新的想法。在“知某数,识某文”之外,我们还应该加上“写代码”。它必将进入到国家基础教育的核心层面。显然,IT不仅是编程,就像数学不仅仅是代数,文学不仅仅是写作。但编程仍然是计算机科学的基础,需要让人们从小学习。
学校是这种教育的最佳途径吗? 或者它需要通过社会来完成?
很多学校都开始教孩子们编程,学校外也有许多小组、俱乐部、协会等,组织很多又酷又好玩儿的活动。然而,即使这些校外活动很有用,我们必须认识到,要让所有儿童得到公平受教育的机会,还是需要尽快将这些课程整合进常规的学校教育。
那些已经离开学校但没有受过任何计算机教育的人呢?
他们可以在职学习相关知识技能,通过各种协会、在线培训,甚至用游戏来学习编程。工程人士必须现在就开始学习。此外,还必须对其他科目的老师进行培训。
通常情况下,我们可以设想三个重要的校内学习时段。首先要在小学阶段熟悉主要概念,学习算法和计算思维的基础知识,并通过游戏和Scratch这类编程语言,让人们动手体验;中学应真正成为每个公民学习计算机技术基础知识的地方,包括实际的算法编程、信息架构、硬件等。这不是完全式教育,但至少要将其提升到与中学物理、生物相同的地位。为学生以后的专业学习和接受更高级知识打好基础。
到了大学,我们可以为学生量身定做计算机课程。选择理工科的学生可能会对计算的数学应用更感兴趣,而走上人文道路的学生可将更多精力放在文本索引、语言学等方面。今天职业学校里的年轻人已经开始将更多的时间分配在学习计算机上。事实上正是在这些学校,你会意识到学习计算机的重要性和必要性。
具体来说,不发达国家能够从全球的计算机文化蓬勃发展中得到什么启示?
一些国家已经解决了迎面而来的挑战。总体而言,发达国家在这方面非常先进。英国已决定将计算机考试加入高中毕业考试来推广计算机教育。在德国,地方政府掌握着这方面的权力和责任,巴伐利亚州就很积极,并因此受益,它们甚至在将计算机科学纳入课程体系之前,就开始大规模聘用拥有IT技能的教师。一些新兴国家如以色列和韩国已在这方面展开竞赛。今天,计算机课程正在全球遍地开花,而且受教育者年龄也越来越小。
-END-