计算机解决问题的过程
金婧
项目设计依据
《普通高中信息技术课程标准(2017年版)》引入“计算思维”,旨在强调学科思维的养成,在教学实施建议中提出把项目整合到课堂教学中,让学生在真实情境中以学科思维方式思考、用知识和技能分析,在解決问题中完成知识建构。
本案例内容出自教育科学出版社出版的《信息技术必修1:数据与计算》第2单元“编程计算”第1节,具有承上启下的作用。同时,本节作为本单元的开篇,围绕“算法”学科核心概念展开,其中,对问题的抽象或形式化描述是算法的基础。
针对这一部分内容,课程标准中的相关要求为:“1.6从生活实例出发,概述算法的概念与特性,运用恰当的方法和控制结构表示简单算法。1.7掌握一种程序设计语言的基本知识,使用程序设计语言实现简单算法。通过解决实问题,体验程序设计的基本流程,掌握程序调试与运行的方法。”
项目教学目标
高一学生在生活中会用到“算法”解决问题,但缺乏对计算机解决实际问题的过程的系统化梳理,对软件工具等工作方法和应用流程不了解,他们虽然具备利用计算机解决一些基本问题的工具操作技能,但多为被动的技术使用者。此外,在认识发展水平上,他们的逻辑思维能力趋于成熟,具有一定演绎归纳能力,自我表现、求知欲较强。
基于课程标准的要求和内容、学情的分析,将本项目的教学目标设定为:①通过观察生活实例,能够主动发现规律,抽象特征。②在实现“定时提醒”功能的探究过程中,体会计算机解决问题的过程,理解其基本思想,并了解算法,能使用自然语言描述算法。③借助画程软件学会用流程图描述算法,知道算法的三种基本结构类型,感受利用数字化工具的优势。④通过剖析研究“定时”功能,认识到算法在学习生活中的应用价值,体会计算机解决问题的优势。
教学重点为计算机解决问题的过程、算法的描述,难点为算法的描述、算法的三种基本结构。
项目概述
随着技术的发展,计算机以及由计算机控制的智能系统几乎渗透到各种领域,给我们的生活带来了许多便利。但电子产品的长时间、高频率使用也引发了眼部不适等健康问题。生活中学生经常接触到的智能设备都具有“定时”功能,我们可以将这种自动化的管理思想“移植”到合理管理用眼时间中。
因此,本项目以探究“定时提醒”功能为主题,通过对“定时提醒”功能的分析、设计与实现,体验计算机解决问题的过程。教材预设本节需两课时,但从项目学习完整性以及实际教学安排考虑,将其设计为1课时。
项目教学准备
硬件环境:网络机房(配有音箱或耳机);学习工具:画程软件,Python3.7(安装time、pygame、pywin32模块);项目资源:PPT课件、电子活动导案、Python半成品程序、“参考助手”文档。
项目实施流程(如下页图1)
项目教学过程
1.项目引入
知识技能:分析和获取有价值的信息,迁移学习。
活动形式:学生讨论、代表发言、教师引导。
问题:计算机技术在给人们带来极大便利的同时也带来副产品,如长时间面对电脑引起眼部不适等健康问题。有什么方法、手段合理管理用眼时间?
聚焦:从生活中智能设备“定时”功能得到启发,尝试通过编程实现“定时提醒”,倡导健康的生活方式。
设计意图:“计算机解决问题的过程”,作为抽象而非静态的概念,贯穿整个“算法与程序设计”活动。所以,本课从真实生活中的用眼问题出发,以学生日常接触到的智能设备“定时”功能来引导其思考如何“趋利避害”,由此提出以“定时提醒”功能为研究主题,探讨如何编程实现用眼时间的管理。本次课以项目进程为明线,设计相应的活动,让学生从分析功能到设计方案再到编程实现,经历“计算机解决问题的过程”这条暗线,从而了解算法的描述与基本结构。
2.项目分析
活动1:“定时提醒”的功能分析。
知识技能:问题的界定和描述。
活动要求:①思考:明确项目问题。经常使用电脑设备的人应该注意用眼卫生,建议工作每隔1小时左右休息10~15分钟,所以,我们希望能实现定时提醒休息。②讨论:找出问题的条件与求解目标,根据教师提供的表格填写“定时提醒”问题分析。
设计意图:本环节明确项目问题,通过表格帮助学生以计算机领域的方式分析问题,界定和描述问题,找出条件与求解目标,有助于学生发现问题的基本要素与特征,即以“定时提醒”问题中的时间节点为条件,换言之,特定的时间点触发相应的事件响应。
3.项目设计
活动2:“定时提醒”功能的方案设计。
知识技能:算法、自然语言描述算法。
活动要求:①想一想:学生2~3人一组思考以下问题。问题1:如何确定到达时间点?(计时/倒计时/计算时间差……)问题2:以何种方式提示?(文字/声音/弹窗……)②说一说:小组代表分解实现“定时提醒”功能的步骤。
设计意图:本环节以问题搭建脚手架,引导学生寻找问题条件到目标实现之间的方法途径,实现思路与技术实践之间的连接。学生分组讨论解决方案,形成良好的互动与分享,既发挥学生的自主性,又扩展了方案设计的空间。在此基础上,教师通过梳理学生的方案引出“算法”概念,加深理解,同时也可以根据学生的设计方案来调节难易程度。
活动3:“定时提醒”功能的算法描述。
知识技能:流程图描述算法、算法结构。
活动要求:①阅读教材第20页内容,了解流程图的符号与功能。②尝试利用画程软件绘制流程图。③阅读教材第20~21页,观察绘制出的流程图,说一说设计方案中用到哪种(些)算法结构。④思考并调整:“重要的事情说三遍”,若需要提醒3次,如何修改流程图?
设计意图:从自然语言到直接编写代码以实现设计方案,对于初学编程的学生有困难。活动3作为过渡,引出使用流程图描述算法。为了正确绘制流程图,学生自然会去阅读了解流程图的规范表示方法。学生通过绘制流程图描述算法,体会自然语言描述与流程图描述的区别,提高逻辑抽象思维能力,为以后算法与程序设计的学习做好铺垫。这一部分利用“画程”软件可以让学生借助快捷的数字化工具表达自己的思想,将思维可视化。最后,引导学生结合完成的流程图了解算法结构。
4.编程实现
活动4:“定时提醒”功能的编码实现。
知识技能:程序运行、根据算法分析理解代码。
活动要求:①试一试:打开半成品Python程序“2-1time.py”,尝试运行,实现“定时提醒”(参考代码如图2)。②比一比:对比预设效果与运行结果,分析代码功能。③改一改:程序可以如何修改完善?需要在什么位置修改代码?
设计意图:在活动3的基础上,根据绘制好的流程图,进行编程实现。针对学生第一次接触Python的学情,以“半成品”教学法降低程序编写难度。这一部分提供“参考助手.txt”,以便学生修改完善时参考,在降低活动难度的同时也尽可能发挥学生的自我创新能力。
5.项目总结
知识技能:计算解决问题的过程、算法的描述、算法的三种基本结构。
活动形式:学生代表总结、教师补充。
梳理提升:梳理学习过程,以此提升到编程解决问题的一般过程。
拓展探究:定时提醒功能是以时间为判断依据,调节用眼时间,促进自律。其实,生活中,“定”不限于“时间”,如智能电饭煲,具有恒温保温作用,它是如何工作的?我们是否遇到过其他场景应用了类似的工作模式?
设计意图:让学生将知识体系的构建与实践经验结合,进一步加深对计算机解决问题的过程的理解。通过拓展,让学生继续思考类同模式,理解其他应用原理及意义,实现“来源生活”到“回归生活”,激发学生学习“编程与计算”的热情。
设计后感
信息技术学科拥有着自身的话语体系和探究方法,《计算机解决问题的过程》在新版教材中,不仅是一个教学内容,更是贯穿“算法与程序设计”的学科思想方法。以项目教学法开展教学,知识框架虽然被打散,但知识本身是具有情境性的。因此,我们需要对教材内容所涉及的知识点进行解构与重组,嵌入到真实的问题情境中,通过“问题串”搭建脚手架、“活动链”促进思维持续,引导学生在完成项目的同时落实学科核心素养,让学生成为真正具备数字化生存能力的数字化公民。