常州市金坛区第一中学 213200
2017年教育部颁布的《普通高中信息技术课程标准(2017年版)》中将计算思维定义为“运用计算机科学领域的思想方法,在形成问题解决方案的过程中产生的一系列思维活动”,强调“具备计算思维的学生,在信息活动中能够采用计算机可以处理的方式界定问题、抽象特征、建立结构模型、合理组织数据;通过判断、分析与综合各种信息资源,运用合理的算法形成解决问题的方案”。
由于课时、学业要求、教材解读、教师自身的编程能力等多方面因素的影响,在以往的编程教学中往往出现这样的问题:学生对编程语言的学习动机小,编程内容脱离实际生活、抽象、枯燥,学习兴趣难以维持,教学方法单一、学习评价缺失等。因此如何在编程教学改进编程教学的方式、落实编程教育的内容、实现培养学生的计算思维能力进而提升学生信息技术核心素养是我们目前信息技术学科教学的重要任务。我认为可以从以下几个方面展开。
一、关注算法思想培养,弱化程序语言学习
编程内容的学习主要在面对实际问题找到合适的解决方法,也就是算法。高中阶段,学生的思维从形象思维逐渐向抽象思维过渡,辩证逻辑思维日趋发展,因此,在高中编程学习阶段,我们应该更加关注学生算法思维的培养,让学生能够从现实问题中找到普遍规律,抽象数学模型,构建算法,进而解决问题。目前新教材中都选择使用Python编程设计语言作为学生学习的语言,主要也是由于Python语言语法简单、可读性强、代码开源、容易入门等特点,非常适合作为高中生编程学习使用。它更加注重解决问题的算法实现,更有利于学生在实现程序的过程中将重点放在问题解决的思考和培养计算思维的实现上,而不是放在语法错误的修正上。
二、关注问题的解决过程,避免只强调结果
学生的思维实在问题解决过程中锻炼和提高的。
我们可以让学生在对具体问题进行分析的基础上提高系统建构和分解能力的培养。如完成一个动画作品时,作品的规划是一个系统工程,要从需求分析、概要设计、详细设计到编码测试等等进行一个系统的规划,而制作过程就是把这种复杂的问题分解成许多简单问题,在这些简单问题解决后再进行系统整合的一个完整的分解-整合的过程。
在高中Python编程教学中,教师可通过现实问题情境的创设,对学生思维进行分步递进式引导,让学生在自主探究、合作探究等多种形式的学习活动中对该问题情境进行分析、设计、编程、汇报、点评,使学生在整体的教学过程中完成抽象建模、设计算法、编写程序能力的提升,进而达到计算思维能力培养的目标。
例如在“非数值计算”中,我们以“核酸检测的十混一检测法”为情境引出分治策略,再通过生活中的一些实际问题,如“巧翻字典”、“猜数游戏”等有趣的例子展开学习,通过具体的问题分析过程,使学生理解分治策略的“分-治-和”思想,同时也体会分治策略在节约资源、提高工作效率方面的优势,理论联系实际,让学生也感觉到所要学习的知识在实际情境中是如何使用的。
三、关注改进教学方法,避免单一讲解
教学方法的选择和使用对学生学习兴趣的唤起、学习动机的维持和学习效率的提升具有举足轻重的作用。在Python编程教学中,可以分阶段采用不同的教学方法到达不同的思维培养目标。
在编程学习的初期,由于学生的编程知识比较薄弱,因此可以采取“读程序-改程序-写程序”三个阶段来展开教学。在“读程序”中通过让学生读通、读懂程序,掌握Python程序编写的常用关键字、基础的概念、语法和基本的算法结构,消除对程序语言的神秘感和畏难心理;在“改程序”中通过设定一定的障碍(错误或待完善处),让学生通过完成修改和调试程序的任务来进一步掌握相关编程语法的使用和算法的设计的相关知识,达到能够灵活运用;在“写程序”中可以让学生模仿完成类似问题代码的编写,甚至有些学生可以自主独立完成某些问题的代码编写,学生可以举一反三,面对实际问题能创造性地完成算法和程序设计。
对于综合性问题,可以开展“项目式”学习,学生们可以分组在教师的引导下通过自主探究、小组合作等方式就项目任务中的某些知识点展开学习、讨论,在探究中培养独立思考、团结合作、创造性解决问题的能力。
在算法设计等理论性较强、思维品质要求较高的内容,教师可以借助丰富的网络资源和其他多媒体手段,把抽象的知识逐步剖析开来,以多种方式呈现给学生,再引导学生把直观形象化的内容进行概念化、结构化、构建数据模型,设计并完善算法。在这个过程中学生的逻辑思维能力和抽象思维能力将得到相应提升。
四、关注多元评价,避免只学不评
Python编程学习重在实践,无论你设计的算法如何,最后都是要编写出代码来调试运行验证其正确性的。然而并不是每一个学生都能够顺利完成学习任务,这对学生学习成就感的获得和学习动机和学习热情的保持是不利的。因此在学生学习编程的过程中给予恰当的评价就比较重要了。编程学习的评价可以从学习态度、学习过程、学习结果、任务完成度、思维达成等方面进行。要坚决杜绝
在编程学习中只学不评和只看程序运行结果而不看思维过程的这种评价方式。我们还可以对每一个学习阶段设计相应的量表来对学生过程进行评价,也可以借助网络中的一些评价软件来评价。
总之,在编程学习中,通过分析问题、寻找解决问题的思路和方法、编写程序、通过上机调试与运行程序,体验各种指令的功能,分析程序的运行过程,及时地验证及反馈运行结果,都会使学生产生成就感,激发求知的欲望,逐步形成一个心智活动的良性循环,培养出勇于进取的精神和独立探索的能力,从而形成良好的思维品质。在信息技术高速发展的今天,拥有这种不断探索的精神和思维的能力比掌握单纯的知识更为重要。