以培养计算思维为导向的初中《Python程序》教学实践研究

2019-11-29 06:28
中小学电教 2019年11期
关键词:课堂作业解决问题程序

(杭州市萧山区新桐初级中学,浙江 杭州 311200)

引言

进入21世纪,信息技术发展迅猛,学生的各种素养逐渐得到提升,用计算机的相关方法和技术解决现实中的问题成为当代学生的基本素质之一。义务教育阶段的信息技术课程纲要明确指出:义务教育阶段的信息技术课程目标将围绕发展学生核心素养内容展开,高中信息技术学科核心素养包括信息意识、计算思维、数字化学习与创新,信息社会责任四个方面[1]。计算思维作为其内容之一在中小学的信息技术课程中至关重要。

笔者在与信息技术一线教师交流过程中了解到,初中生的信息技术课程主要以实际操作为主,在教学过程当中,主要是采用教师讲授+学生操作的模式,学生在这个过程中收获更多的是练习和模仿,对学生思维和问题解决能力关注甚少,并且在程序的课程中,抽象的逻辑思维和编程更加让学生无从下手,学生的学习兴趣和学习热情慢慢降低,甚至出现放弃课程的想法。

本研究试图以八年级的Python程序设计为研究对象,提出以培养计算思维为导向的教学设计思路,并以此为依据,选择部分内容进行教学设计,然后将设计方案应用于实践教学,通过实践教学收集的相关数据来验证本设计的有效性。该案例的设计以培养学生的计算思维能力为导向,达到提高学生用计算机科学的基础概念来分析问题和解决问题的能力,帮助学生增强学习程序课程的信心与决心。

一、计算思维

(一)计算思维概念

2006年,周以真教授提出“计算思维”概念,她认为:计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解的思维活动[2]。此后,“计算思维”受到越来越多研究者的关注和研究[3],但思维是一个抽象的范畴,很难对其进行理解。2010年C9计算机课程研讨会(九大联盟)在西安交通大学成功举办,并发表联合声明:计算机基础教学的核心任务是培养学生的计算思维能力[4]。至此国内关于计算思维教学的研究日益增加。

(二)计算思维相关特征点

为了更好地培养学生的计算思维,2011年,ISTE和 CSTA等国际组织给出其“操作性定义”,归纳出计算思维包含的九个核心部分[5],如表1所示。这有助于国内外学者和学科一线教师对计算思维的理解。

表1 计算思维包含的核心概念和含义

本文参考计算思维的操作性定义把计算思维特征点归结为:问题分析、抽象、算法与程序和自动化四个方面,这将是作为本研究教学设计思路和学生计算思维评价的依据,具体如表2所示。

表2 相关特征点的应用

二、计算思维在初中信息技术课程中的内容分析

(一)计算思维在教材中的体现

湖北省义务教育阶段信息技术课程指导意见中指出义务教育阶段信息技术课程目标围绕学生发展核心素养展开,内容包括信息意识、计算思维、数字化学习与创新和信息社会责任四个方面。指导意见中对计算思维的培养在不同阶段作了不同要求:

小学阶段计算思维要求学生能够分析、界定简单问题;掌握用自然语言描述算法的方法;初步认识程序的三种基本结构;能够调试和运行简单程序。

初中阶段的计算思维要求学生能用计算思维界定问题;掌握用自然语言或流程图描述算法的方法;掌握程序的三种基本结构;能使用编程语言,解决生活中的问题。初中阶段的计算思维要求是小学阶段的一个深化,学生从能够分析简单问题到能够用计算思维界定问题;从初步认识程序的三种基本结构到掌握三种基本结构;从选择简单编程工具到能使用编程语言等等,具体如表3所示。

表3 计算思维不同阶段的不用要求

(二)教学内容的选择

通过教材可以发现,七年级的信息编码、数据库等知识点较为抽象,学生在学习的过程中容易理解,八年级涉及到了学生未接触过的Python程序设计,九年级的Python编程进阶知识点难度较大。Python程序设计内容抽象,面对复杂的问题情境学生很难分析和理解,而代码的成功运行对于初中生来说更是一个难题,初中阶段的计算思维要求学生掌握程序的三大基本结构:顺序、选择和循环。所以本研究选取的内容是八年级的Python程序设计中的三大基本结构:《顺序结构》、《选择结构》和《循环结构》。力图在学生学习程序的第一步以培养学生的计算思维为导向,激发学生的学习兴趣,帮助学生分析问题和解决问题,提高学生解决复杂问题的信心。

Python程序设计是八年级信息技术第六单元和第七单元的内容。根据前面章节的研究分析,本研究最终确定选取的教学内容是第七单元中的Python程序设计的三大基本结构《顺序结构》、《选择结构》和《循环结构》。根据湖北省信息技术教材可知,第六单元的学习,学生首先认识并安装了Python,学习了变量、变量赋值和数据间的转换,并且深入学习了用input语句和print语句对数据进行输入和输出,这为第七单元的学习奠定了基础。

从计算思维的角度看,这三大基本结构要求学生能够在面对复杂问题情境下,找出问题的关键所在,写出解决问题的步骤和编写程序,最终调试与运行程序。

三、以培养计算思维为导向的程序设计教学思路

本研究将计算思维的相关特征点归结为:问题分析、抽象、算法与程序和自动化。经过2.2节计算思维相关特征点的分析,整理了以培养计算思维为导向的程序设计解决问题的一般过程,包括问题分析—找到问题关键—用自然语言写出算法—编写程序—调试与运行程序—问题解决,该过程如图1所示。

图1 程序设计解决问题的一般过程

在问题分析环节,包含发现问题和分析问题。通过情境或任务导入问题,引导学生发现问题,在问题中找出已知和要求,明确相关问题。

在抽象环节,主要是找到问题关键。在问题分析之后,帮助学生将复杂的问题简单化,即将现有的问题结合学生原有的认知结构,找到解决问题的关键点,明确解决问题的核心。

在算法与程序环节,包括写出算法和编写程序。利用自然语言或流程图的形式写出解决问题的步骤,然后将一系列步骤用算法语言转换成程序语言。

在自动化环节,包含运行程序和代码优化。借助计算机运行程序语言,不断调试与运行,最终问题得到解决,同时思考代码能否进一步优化创新。

以上环节是程序设计课程解决问题的一般过程,通过这些过程帮助学生提高问题分析与抽象、算法与程序和自动化能力,进而培养学生的计算思维能力。

在此基础上,将程序设计解决问题的一般过程渗透在教学设计中,并进行教学实践。以培养计算思维为导向的教学设计思路,包含教学环节和学生活动。在教学环节中,教师通过情境导入引导学生发现问题和分析问题;通过任务驱动和探究新知环节引导学生找到问题的关键,写出算法和编写程序;通过巩固练习、交流评价和总结提升环节再次让学生感受解决问题的过程,内化思维,教学设计思路如图2所示。

图2 以培养计算思维为导向的教学设计思路

根据国外计算思维的操作性定义并结合本研究的具体内容,将培养计算思维为导向的教学设计中的教学环节分为以下几个步骤:(1)情境导入:创设合适的情境引导学生主动发现问题;(2)任务驱动:布置一定的任务,要求学生分析问题并写出算法;(3)探究新知:指导学生探究新知,编写程序并调试运行;(4)巩固练习:布置课堂作业,引导学生再次体会解决问题的过程,感受思维的变化;(5)交流评价:带领学生交流评价,取长补短;(6)总结提升,内化思维。其步骤具体说明如下:

(一)情境导入

教师在创设情境时一定要考虑学生已有的认知结构和学生的身心发展特点,可以采用贴近学生实际生活的案例或者学生感兴趣的数学小知识,激发学生的学习兴趣和求知欲,引导学生主动发现问题,从而引发学生思维的活动。例如在讲解选择结构时,选择学生感兴趣的身高和体重相关内容,采用测试学生“偏胖”和“偏瘦”的案例进行导入,激发学生思考Python程序是怎么来测试“偏胖”和“偏瘦”的。

(二)任务驱动

任务的布置要符合维果斯基的最近发展区理论,学生通过自身的努力或者教师的引导可以解决的——即在这个过程中教师要明确告诉学生解决问题的第一步是分析问题,引导学生找到问题的关键点并写出算法,帮助学生养成分析问题的良好习惯。例如:在“偏胖”和“偏瘦”案例中,为了符合学生的身心发展特点,教师先设置简单的分类方法使学生利用单分支if语句就能实现,而后在这个基础之上再布置更深难度的任务。

(三)探究新知

教师在明确教学目标后,在探究新知环节指导学生明确任务解决的同时且自然的融入本节课的新知识,将抽象复杂的内容具体化,通过对新知识的讲解帮助学生找到解决问题的关键,从而能够顺利编写程序并运行,这是涵盖计算思维相关特征点中的算法与程序和自动化。例如:在分析“胖瘦”案例中,引导学生将解决问题的步骤(1)输入身高 weigh和体重 height;(2)计算BMI值=weight/pow(height,2);(3)输出体重指数;(4)判断BMI值一一写出来,然后学生自己探究采用单分支if语句或双分支if语句或多分支if语句进行求解。

(四)巩固练习

课堂作业的完成不仅仅是写出程序,解决问题,还包含分析问题、写出解决问题等一系列步骤。课堂作业的布置渗透计算思维的相关特征点,培养学生养成分析问题、找到问题关键、写出算法与程序,调试和运行程序的良好习惯。通过布置类似的作业或稍加深入的课堂作业让学生进行巩固练习,指导学生在一个全新的问题前体验独立解决问题的过程,感受思维的变化。例如在讲解顺序结构时,先利用三角形的相关知识讲解顺序结构,之后布置课堂作业时选取贴近学生生活的水果单价和总金额问题,让学生在巩固本节课知识的同时,再一次感受利用计算思维解决问题的过程。

(五)交流评价

小组之间的合作交流与评价,能够培养学生的合作与交流精神。在评价过程中,学生之间取长补短,明确自己的优势与缺点,提高自己解决问题的能力,增强解决问题的信心。例如在循环结构讲解中,学生完成布置的课堂作业求出1*2*……*100的积之后,让学生相互交流自己在解决此问题时遇到的困难是什么,解决循环结构类似的问题时最需要注意的是什么,这有助于学生更好地吸收循环结构的相关知识。

(六)总结提升

对本节课内容进一步强化,新知识点的归纳和解决问题步骤的归纳,提高学生在面对不同的问题时能坚持处理并解决的勇气,内化学生思维。例如讲解完循环结构的知识之后,最后一个环节教师将对整节课的重点内容进行归纳,(1)明确循环的次数,我们应该采用for…in…循环;(2)掌握for循环的格式;(3)不管遇到任何程序题,我们第一步都应该找到这个问题的关键是什么,然后用自然语言或流程图的形式记录下来,最后编写并运行程序。

在整个教学环节和学生活动过程中,每一个教学环节都包含学生解决问题的活动,始终围绕着程序设计解决问题的一般过程,渗透着计算思维的相关特征点,尝试通过这样的教学环节和学生活动增强学生学习程序设计课程的信心,内化思维,培养学生的计算思维能力。

四、计算思维教学实施

在教学实施过程前,一方面和一线教师探讨相关教法,了解学生现有知识水平;另一方面查阅相关文献,充分了解计算思维的内涵和相关特征点,并思考如何在教学设计中渗透计算思维的相关特征点,在这一基础上,确定了教学内容为Python程序的三大基本结构:顺序结构、选择结构和循环结构,并完成详细的教学设计方案。

在实施过程中根据教学设计方案进行教学的具体实践和数据收集,通过课堂观察记录表,课堂作业测验和个别访谈三个方面进行具体的评价。

(一)课堂观察记录表

课堂观察记录表是以本研究教学设计思路中的教学环节和学生活动为观察视角,教学环节方面依据具体的6个教学环节设置了6个观察点,学生活动方面根据程序设计解决问题的一般流程设置了5个观察点,如表4所示。

表4 课堂观察记录表

由于本人既是研究者又是教学实施者,在教学中无法客观地对课堂进行观察,所以在教学实施中由观察者观察情况,反馈观察结果。本研究中每个阶段的教学邀请了该班的任课教师廖老师实施课堂观察,完成课堂记录表。

(二)课堂作业测验

课堂作业测验是以计算思维相关特征点:以问题分析、抽象、算法与程序和自动化四方面为依据,设置相关问题。具体的课堂作业测验模板如表5所示。

表5 课堂作业测验模板

(三)课堂作业评分表

课堂作业评分表是根据课堂作业测验模板和已有的计算思维研究并结合本研究的需要制作而成,评分表采取百分制,分别从问题分析、抽象、算法与程序和自动化四方面进行评分,问题分析占20分,抽象占30分;算法与程序占30分,自动化占20分。教学实施者根据评分表对课堂作业进行打分,最后通过课堂观察记录表的反馈和课堂作业测验得到的数据分析学生的计算思维能力是否得到提高。课堂作业评分表如表6所示。

表6 课堂作业评分表

五、总结与展望

本研究主要从Python程序设计的具体内容出发,选取顺序结构、选择结构和循环结构为例,并将计算思维的一些相关特征点渗透到教学设计中,然后进行教学实施和教学效果分析,通过以上研究,可以得出以下结论。

(一)教学设计角度

1.创设学生感兴趣的案例或者符合现有认知水平的案例,可以提高其求知欲

顺序结构选择的案例是求出三角形的半周长、选择结构选取的案例是求身体质量指数并判断胖瘦,循环结构选择的案例是累计求和。简单有趣的案例不仅可以使课程顺利导入还可以激发学生的学习兴趣和求知欲,使学生有强烈的探索欲望。

2.教学设计中各个环节应层层递进,知识内容逐渐深化,易于学生接受

教学设计应制作严谨,各个环节要依据学生的认知结构和教学内容进行,不能跳跃与简单重复,在选择结构的案例中,先是巩固顺序结构内容,求出身体质量指数,然后根据不同的分类标准,从单分支if语句到多分支if语句再到双分支if语句,层层深入,学生在课堂作业中也取得了较好的成绩。

3.课堂交流与评价,可以提高学生的课堂参与度,促进教学

课堂的交流环节,让更多的学生参与到课堂的讨论中,相互交流与讨论,提高学生互帮互助的意识,促进学生共同进步;教学评价环节可以让学生相互借鉴,取长补短,更好的优化自己的成果。

(二)教学效果角度

1.学生的问题分析能力总体提高

在顺序结构的教学中,学生分析问题的能力普遍较好。经过选择结构和循环结构的教学实践之后,学生的分析问题能力得到了提高,且成绩总体处于高分状态,表明在学生计算思维的教学前后,分析问题能力一直较好,存在整体上升的趋势。

2.学生的抽象能力直线上升

在计算思维的教学实践中,低分数段学生人数总体呈减少趋势,高分数段人数逐渐上升,且每组数据之间存在显著性差异 这说明经过培养计算思维的教学实践之后,大部分学生能够更好地发现解决问题的关键步骤,学生抽象思维能力直线提高。

3.学生的算法与程序能力得到了提升

基于计算思维培养的三大基本结构教学实践后,学生的算法与程序成绩整体均值得到了很大的提高,说明顺序结构中涉及的算法与程序教学为后期的选择结构和循环结构做了铺垫,学生能够根据问题的分析和解决问题的关键写出解决问题的算法和程序。

4.学生的自动化能力发生了变化

计算思维教学前后,学生的自动化能力发生了变化,尽管选择结构的教学对循环结构无显著性差异,但整体还是发生了变化,学生的自动化能力逐渐提高,学生能够根据编写的程序实现自动化运行代码,然而在代码的优化之处仍有较大上升空间。

5.以计算思维为导向的教学设计有助于培养学生的计算思维能力

通过教学数据分析和学生的访谈结果以及其他教师的课堂观察反馈,以培养计算思维为导向的教学设计更关注学生,更注重课堂中学生的体验感和成就感,学生的学习参与度和热情高涨,思维得到进一步内化,计算思维能力得到提高。

随着信息技术的高速发展,计算思维会成为人们的一项基本能力之一,但计算思维的培养并不是一蹴而就的,而是一个渐进的过程。如何利用计算思维指导教学,提高学生的计算思维能力,同时评价其能力是否提高,是值得我们去探索的课题。笔者相信将计算思维融入教学,也会有助于学生其他学科的学习,对学生的生活和学习都会产生更加积极的影响。

猜你喜欢
课堂作业解决问题程序
联系实际 解决问题
助农解决问题增收致富
在解决问题中理解整式
课堂作业本助力小学语文教学工作的更好组织与开展
课堂作业本助力小学语文教学工作的更好组织与开展
解决问题的设计
高中地理课堂作业的有效性研究
试论我国未决羁押程序的立法完善
“程序猿”的生活什么样
浅谈数学课堂作业的设计