版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于计算思维培养的Python语言教学流程探索——以项目式学习《计算存款总额》为例摘要:本文以教科版高中信息技术教材必修1《数据与计算》第2单元项目式学习《计算存款总额》为例,把运用计算思维解决问题的过程融入到创设情境、分析问题、设计算法并解决问题、实施反馈、项目迁移和分享总结六个教学流程中,从而对基于计算思维培养的Python语言教学流程进行新的探索。关键词:计算思维、Python、项目式学习、教学流程计算思维的概念自2006年提出以来,一直受到国际社会广泛关注,尤其在教育领计算思维已成为第四种学生必备的基本能力。而计算思维的一种重要应用方向是在编程领域,在众多编程语言中,Python语言因其简单明了、高效直接、接近自然语言等众多优点而成为培养学生计算思维的首选工具。鉴于此,对Python编程语言在高中信息技术课程中的教学流程新模式有必要进行积极的探索。传统的编程语言教学,老师教学的起点往往是编程语言的基础知识,包括常量、变量、数据类型、各种语句、各种运算符与表达式等,而后是Python的算法设计及程序结构等内容,再应用明显可以使用编程解决的案例进行教学展开。本文提出基于计算思维培养的Python分析问题、设计算法并解决问题、实施反馈、项目迁移和分享总结六个教学流程中,并从计算思维的问题界定、问题分解、模式匹配、数据表达与抽象、算法设计、评估反思的几个方面进行深入分析。其具体流程如下图:问题分解算法设计模式匹配导入案例问题分解算法设计模式匹配导入案例提出问题任务驱动开展教学组织讨论组织分组任务分享评价展示项目情境和问题引导学生分析、设计、解决问题下发分组任务开展评价创设情境分析问题设计算法解决问题实施反馈项目迁移分享总结问题界定数据表达与抽象评估反思理解情境明确问题运用计算思维分析、表达、解决问题分组讨论交流分享教学过程学生行为图1:基于计算思维培养的Python编程教学流程下面以项目“计算存款总额”为情境,先提出初级问题“计算利率不变情况下的到期存款总额”,之后逐渐增加问题的复杂度,提出高级问题“计算利率变动情况下的到期存款总额”。对于初级问题,学生可能会使用顺序结构算法来解决问题。对于复杂问题,则需要使用循环结构来设计算法。在这个过程中会体现出顺序结构算法的劣势,学生会产生使用新算法的迫切需要,计数循环算法应势而出,求解问题更加畅快淋漓。一、创设情境项目式学习是需要情境的。在正式的学习活动开始之前,老师要向学生创造项目的情境、提出项目需要解决的问题,激发学生产生探究的期望。在该环节中教师让学5万元存入银行,选择‘1年定期、自动转存’的存款方式,假设5年内存款利率不变,均为3.25%,5年后到期存款总额是多少?”学生思考后将问题抽象后建立数学模型,通过数学公式来统一处理:50000*(1+0.0325)5。二、问题解决——“存款总额”初级问题1.界定问题该环节首先涉及的是计算思维的问题界定。教师先提出问题:“计算存储总额除了用数学公式解决之外,能用计算机解决吗?如果能,该问题的输入、输出、终止条件分别是什么?”学生思考、交流后认为该问题能用计算机解决,输入是存放金额、利率和存款年数的数值,输出是5年后到期的存款总额。2.分解问题该过程是计算思维的分解问题过程。在此环节,教师提出问题:“利用计算机计算利率不变情况下的到期存款总额,需要经过哪几个步骤?”学生讨论交流后将问题分解成三个子问题:如何存放金额、利率和存款年数的数值;如何计算5年后到期的存款总额;如何显示存款5年后到期的存款总额。3.解决问题该过程涉及的计算思维有数据抽象与表达、算法设计和模式匹配。学生通过以前的课程已系统掌握Python编程语言的基础知识,包括常量、变量、各种运算符与表达式、数据类型及赋值、输入输出语句等。教师要引导学生确定哪些子问题是能够通过运用已掌握知识解决的,哪些子问题是暂时不能解决的。然后指导学生运用模式匹配思维将已有知识与子问题关联,找出解决问题的办法。并且判定子问题与子问题之间是否有联系,分析异同之处,并尝试把不能解决的子问题和其他子问题同理求解。子问题1学生分组讨论交流后提出,可以运用学过的变量知识和输出语句:使用变量money存放金额的数值、变量rate存放利率的数值、变量years存放存款年数的数值、使用print语句输出存款5年后到期的存款总额。教师又提出问题:“我们在第2.12money存放存款总额的数值,然后重复以上的步骤计算变量money5循环结构的语句格式,学生写出的是顺序结构算法及Python程序代码如下表:表1:算法设计及程序代码算法流程图程序代码money=50000rate=0.0325years=5money=money*(1+rate)money=money*(1+rate)money=money*(1+rate)money=money*(1+rate)money=money*(1+rate)print('5年到期存款总额为:',money)代码调试运行后,部分学生首先提出问题:重复变量money的计算5次所以有5行重复的代码,是不是可以用循环结构简化算法来求解问题?学生讨论后期待老师的解惑。教师给出回应:计算机程序中某些代码的反复执行称为循环,循环重复次数一定时,我们通常称为计数循环。在Python中,可以使用forin语句来创建计数循环。适合该问题的forin语句的基本格式如下:for循环变量inrange()函数:语句或语句组其中的设计循环结构算法,写出新的程序代码。新方案的算法和代码如下表:表2:新方案算法设计及程序代码算法流程图程序代码money=50000rate=0.0325years=5foriinrange(years):money=money*(1+rate)print(money)4.实施反馈该环节是计算思维的评估反思。此阶段学生对算法设计和程序调试运行结果进行评估反思,对解决问题的效果进行评价,从而提出算法中存在的问题:顺序结构算法年存款总额”问题,应该使用循环结构算法来设计程序代码。在这个迫切需求下,教师带领学生学习使用forinrange()计数循环完美解决了问题。三、问题解决——“存款总额”高级问题1.界定问题该环节涉及的仍是计算思维的问题界定。教师先提出问题:“将5万元存入银行,5年内存款利率分别为1.75%,5年后到期存款总额是多少?”与上一个初级问题不同的是5年内的各年的存款利率不同,那么应该如何解决这个问题呢?学生交流讨论后认为,既然还是重复性计算问题,使用循环结构算法依然可以解决问题。2.分解问题该过程是计算思维的分解问题过程。教师提出问题:“我们计算利率变化情形下的5年后到期存款总额,需要分成哪几个步骤?”学生讨论交流后仍将问题分解成三5年后到期的存款总额;如何显示存款5年后到期的存款总额(已解决)。3.解决问题该过程涉及的计算思维有数据抽象与表达、算法设计和模式匹配。子问题1和3在初级阶段已经解决。教师针对子问题25年利率不变的情况下,我们使用forin语句配合range()函数来计算存款总额,由于新问题的利率每年都在range()函数来计算存款总额了呢?”学生类比分析后得出结论,既然range()函数的作用是生成某个范围内的数字列表,现在我们不使用range()函数而直接使用列表来存放5年内各年的存款利率不就可以了吗?上个问题range(5)会生成[0,1,2,3,4]这样一个列表,在新问题中直接使用列表[0.0325,0.03,0.03,0.02,0.0175]就可以了。学生在分析完要解决的问题后,进行算法描述,设计的算法及Python代码如下表:表3:高级问题算法设计及程序代码算法描述程序代码1.使用变量money存放金额的数值money=500002.使用变量rate存放利率的数值rates=[0.0325,0.03,0.03,0.02,0.0175]3.计算每一年到期的存款总额,使用变量money存放存款总额的数值forrateinrates:money=money*(1+rate)4.重复以上的变量money的计算5次5.输出存款5年后到期的存款总额print('5年到期存款总额为:',money)4.实施反馈该步是计算思维的评估反思。此阶段学生对算法设计和程序调试运行结果进行评估反思,对解决问题的效果进行评价。循环重复次数一定时,我们可以使用计数循环来实现。但forinrange()与forin列表两种计数循环应用的场合不同:forinin列表语句适合于在循环体中需要遍历使用列表中的元素下使用。四、项目迁移在本环节中,教师为学生下发内容相似或难度更大的任务,学生分组合作探究完成任务。学生在熟练本节课知识点和思维方法的基础上举一反三,利用该项目中获得的经验,去解决其他类似的问题。找出任务之间的关联,设计算法并编程实现。这是对模式匹配这一计算思维的强化训练,也是对新课内容的加深巩固。教师下发分组任务:“小学数学中的九九乘法表我们都背得滚瓜烂熟,同学们能不能利用Python软件编写一个程序打印出九九乘法表呢?”这是一个难度相对提高的任务,教师引导学生找出九九乘法表问题和计算存款总额问题两者之间异同:两个问forin计数循环语句可以实现算法;不同的是乘法表算法中循环中包含另一个循环,即循环嵌套,需要使用双重循环来实现输出九九乘法表。五、分享总结分组任务完成后,各小组代表在课堂上展示本小组的作品或运行结果。并讲解本小组算法设计的思路、代码实现过程中遇到的阻碍和解决办法,取长补短促进共同进步。教师对各小组的成果横向比较,进行过程性和总结性评价,并组织学生之间的互评和学生的自评。通过总结和评价,评估反思学生利用计算思维解决问题的闪光点和不足之处,从而进行改进,强化思维。本文观点打破了传统Python编程语言以学生死记知识点的教学模式,提出基于计算思维培养的Python分析问题、设计算法并解决问题、实施反馈、项目迁移和分享总结六个教学流程中,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 十借款合同范例
- 房屋全款协议合同范例
- 天津滨海汽车工程职业学院《水墨艺术》2023-2024学年第一学期期末试卷
- 卡车维修合同范例
- 双方自愿离婚合同范例
- 消防隐患租房合同范例
- 档案仿真合同范例
- 医学心理伦理学测试题(附答案)
- 辐射安全考核核医学模考试题+答案
- 公司货款欠款合同范例
- 现代药物制剂与新药研发智慧树知到答案章节测试2023年苏州大学
- 肺结核的学习课件
- 心肺复苏术最新版
- 2023-2024学年贵州省贵阳市小学数学六年级上册期末自测提分卷
- GB/T 9115.2-2000凹凸面对焊钢制管法兰
- 永久避难硐室安装施工组织措施
- 元旦节前安全教育培训-教学课件
- 芯片工艺流程课件1
- 化工原理设计-苯-氯苯分离过程板式精馏塔设计
- 新教材人教A版高中数学选择性必修第一册全册教学课件
- IEC60335-1-2020中文版-家用和类似用途电器的安全第1部分:通用要求(中文翻译稿)
评论
0/150
提交评论