王爱胜
新课程标准已经出台,新课程即将实施,信息技术教学又将迎来一个全新的春天。在这个春天里,将是一派程序教学、技术实验、人工智能、开源设计、移动应用设计等百花争艳的局面。在此情形之下,从教学一线到教育媒体都是群情激昂、跃跃欲试,这非常令人鼓舞。特别是,本次课标修订从理念、内容到过程都得到了充分的酝酿与打造,把计算思维、人工智能、开源设计等纳入其中,给一线教学带来更时尚、更前沿的方向,这的确值得期待。当然,有些媒体或舆论借此东风,推出了程序教学、创客教育成为新课程的核心等稍有夸张的观点或倡议,也有殷切地盼望人工智能教育从小学抓起的美好愿景等,欢欣的气氛展现的场面很大、角度很新,这是一种可喜的序幕,也希望是能够持续的故事。
但是,教育是面对全国人民素质和国家人才培养的教育,在主观的激情过后,毕竟还是要面向客观现实,让理想照进现实,用现实推动理想,这才是正常的教育秩序。为此,教师需要根据新课标、新教材、新高考去设计、实施、推进新课程,程序教学也是如此。本文在此不讨论程序教学在新课程教学、新高考评价中应占有的份量,也不讨论新课程中程序教学在全国中学的实施程度,更不讨论新课标中程序教学是不是核心主体。本文只对程序教学在新课标、新课程实施中,受客观现实的影响可能发生的方向嬗变进行讨论,以使教师在教学中有所预见,注重把控,及时调整,防止在盲目狂热中因受到冷水的浇泼而失望,折中、钝化课标的期望。
不论是小学科,还是大学科,只要面向考试,就要小心教学走向应试化。信息技术学科不论是仿真式的操作题、概念还是分析式的填空题,一直很难走出应试的窠臼。观察以往各地的学业水平考试甚至相关的高考,想要充分体现真实的能力还是比较难的。虽然,这并非是考试的初衷,也不会因此阻碍教学的推进,但对程序教学而言预先知道这种最普通的“俗化”路径,就可以适当地避免,或者采用更多技能创新式教学来纠正或弥补程序教学本来的意义。
应试程序教学的语法教学典型的特征就是以繁琐的语法常识讲解为主。新的程序教学将更多地采用Python这门灵活而开放的语言,如果想讲更多的语法那就太漫长了。单是模块导入,各种不同功能的模块就让人眼花缭乱,更别说根据不同的环境去安装繁杂的工序。因为Python更多的是面向过程入门,而不是面向对象入门,如果纠结在命令和语法的细节上,教学进程将会非常缓慢,再加上传统课堂的教师讲解,那又将重回到死气沉沉、不知所云的教学。更可悲的将是用大量的对照习题研究变量、表达式的值,分析程序的执行过程等应式技能训练了。
克服这种现象的方法是:以问题解决为主线在编程中不断积累语言知识、技术能力,抛弃详细的语法讲解;练习、测试以编程任务为主体,大幅减少填空、选择这类教条式记忆。
教育的目标是一个最根本的问题,也是一个最受关注的问题。高中信息技术课程面向大众教育与精英教育在上一轮课标中就已经有了很好的限定,即通过“必修+选修”的方式处理。在程序教学方面,必修只有一部分关于利用计算机解决问题的一般方法,在选修中通过算法与程序设计对学生进行全面培养。因为上一轮新课程走向了统一选修的局面,多数学校根据自己学校的师资和当地的情况集体选择了一门选修课,程序教学在经济中偏下的地区都被忽视了。
这一轮课标在结构上又有很大的变化。首先,必修一“数值与计算”会大量地进行程序教学的一般方法教学,对基本的编程技术、算法设计进行基于计算思维的学习;其次,在选择性必修中通过“数据与数据结构”对编程中常用的数组、链表、队列、栈、树等存储结构,以及排序与查找、迭代与递归等经典算法进行学习,这就进一步强化了编程的专业化学习;最后,在选修中通过“算法初步”对较高难度的贪心、分治、动态规划、回溯等进行深化学习。另外,在移动应用设计、开源设计、数据管理等领域也涉及相关的编程语言,从应用开发的角度进行编程学习。可以说,整体上程序教学应在教学中占有更多的分量。
但教学实践中在“培养什么人”的问题上教师们可能会对课标、教材的学习方向产生分歧。虽然在必修一“数值与计算”中明确通过1.6、1.7两条提出了基本算法、程序设计语言的要求,但毕竟前面五条是基于数据、信息及数字化等方面的内容。可见,此必修中的程序设计仍然是面向大众、基于计算思维的一种普及教育、素养提升,并非单纯面向编程教育。即使教材、教学都用更大量的内容占用学时,但其难度、深度也都是面向大众的素养。这样做当然也是有道理的,因为编程虽然很重要,但毕竟国家是需要各种人才的,这些人才都了解、体验到计算思维是合适的。过度要求学生编程技能是不现实的,也是不应该的。青少年阶段是知识储备期,更是技能成长期,以生为本的个性化教学也好,国家人才储备战略也好,多样化人才的培养、职业生涯规划教育等都指向一个公理:编程教学不具有强制性。再说,编程本身是一种比较耗时的学习过程,偏向其他专业方向的学生不宜耗费大量的编程学习时间。而后面选择性必修、选修的设定也都是有针对性设计的。
因此,教师要给学生充分的自由以进行选择性必修、选修,避免再次出现统一选修,只有给对编程热爱的学生更多的独立氛围和时间,才能真正实现利用编程教学进行IT精英教育的目标,避免因为大众和精英教学的混搭而再次出现不伦不类,精英方向上浅尝辄止、大众方向上又强人所难的问题。
另外,在编程教學的方向上还存在一些具体的任务模仿式学习、项目探究式学习、竞赛专项式训练等教学方向,这都期待教师针对学生提高效益,把课标深化落实而不是只作旗帜。等过几年,浪花淘尽,我们一起再次审视编程教育是脚踏实地还是呐喊摇旗时,就自然会发现预先分析教学的定位、方向是多么现实而重要了!