高中信息技术选修1《算法与程序设计》2.5.2过程与函数教学设计_第1页
高中信息技术选修1《算法与程序设计》2.5.2过程与函数教学设计_第2页
高中信息技术选修1《算法与程序设计》2.5.2过程与函数教学设计_第3页
高中信息技术选修1《算法与程序设计》2.5.2过程与函数教学设计_第4页
高中信息技术选修1《算法与程序设计》2.5.2过程与函数教学设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高中信息技术选修1《算法与程序设计》2.5.2过程与函数教学设计一、教材与学情分析本节内容选自粤教版高中信息技术选修1《算法与程序设计》第二章第五节第二部分,是模块化程序设计思想落地的关键一课。在此之前,学生已经掌握了顺序、选择、循环三种基本结构,能够用VB编写解决单一问题的小程序,也初步接触了自定义过程的概念。本节的核心任务,是让学生理解“过程”与“函数”作为程序功能封装单元的本质区别与内在联系,学会通过参数传递实现模块间的数据交换,并能将复杂问题拆解为若干可独立编写、独立调试的功能模块。从学情看,授课对象为高二年级学生。他们具备一定的语法基础,但普遍存在三个突出问题:一是习惯把所有代码堆写在窗体事件里,程序超过五十行后思路开始混乱,调试时牵一发动全身;二是对“参数到底传了什么”缺乏直观认识,常把形参、实参混为一谈;三是对函数要有返回值这一特征理解不深,写出来的函数要么忘记赋值,要么直接在函数体内输出结果,违背了模块职责单一的原则。教材给出的案例偏向语法演示,缺乏真实问题情境的牵引。本设计以“班级综合成绩处理系统”为主线情境,把“计算平均分”“判定等级”“查找最高分”三个功能分别封装为子过程和函数,让学生在逐步搭建系统的过程中,自然经历“代码冗余带来的痛苦——抽象出复用单元——定义接口完成协作”的完整认知链条。这样的处理契合课程标准中“通过项目实践,体验模块化程序设计思想,发展计算思维”的要求,也回应了学科核心素养中“能够针对具体问题,设计并实现结构清晰、可复用的算法方案”的能力目标。二、教学目标知识与技能方面:能准确说出Sub过程与Function函数在定义格式、调用方式、返回值上的三点区别;能正确编写带参数的过程与函数,理解形参与实参按位置一一对应的传递规则;会区分值传递与引用传递在程序运行结果上的差异,并能解释原因。过程与方法方面:经历“发现代码重复——提炼公共逻辑——定义功能模块——组装主程序”的问题求解过程,体会自顶向下、逐步求精的设计策略;通过给模块设计“输入—加工—输出”说明卡的活动,形成先想接口、再写实现的工程习惯。情感态度与价值观方面:在小组协作搭建系统的过程中,体会分工与接口约定在团队开发中的价值;通过对比“一坨代码”与“结构化代码”的调试体验,建立对程序可读性、可维护性的审美追求。三、教学重点与难点教学重点:过程与函数的定义与调用方法,参数传递机制的理解。重点确立的依据在于,这是学生从“写程序”走向“设计程序”的第一道门槛,后续递归、文件处理乃至面向对象的初步认识都以此为基础。教学难点:形式参数与实际参数的对应关系,传值与传址的行为差异。难点之所以难,在于它涉及内存层面的概念,而学生没有物理地址的直观经验。突破策略是采用“变量盒子”实物教具配合单步跟踪调试,让抽象的参数传递变成可观察、可验证的运行事实。四、教学准备教师准备:机房安装VB6.0环境并预装半成品项目文件“成绩处理系统_骨架.vbp”;制作“变量盒子”教具一套,即标有变量名的纸盒与写有数值的卡片,卡片可放入盒子表示赋值;调试微课视频一段,时长两分钟,演示单步执行与立即窗口查看变量值的方法;分层任务单按基础版、进阶版、挑战版三档印刷。学生准备:课前完成问卷星小测,内容为Sub过程定义格式与调用语句的回顾,正确率低于百分之七十的题目将成为课堂导入的切入点。五、教学过程(一)情境导入:一段让人崩溃的代码(约6分钟)教师投影展示一段真实的学生作业代码:用三重循环为三个班级分别计算总分、平均分并排序,代码长达一百二十行,其中几乎相同的计算逻辑复制粘贴了三次,仅变量名略有差异。教师现场演示修改需求——“把平均分保留两位小数改为保留一位”,需要在三处位置分别修改,故意漏改一处,运行结果随即出错。教室里给出安静的两分钟,让学生自己找一找这段代码的毛病。随后师生对话聚焦三个问题:这段代码最让你难受的地方是什么?如果班级数从三个变成三十个怎么办?同一个计算逻辑写了三遍,说明了什么?学生在切身体验中得出共识:重复的代码应该被“收编”,只写一次、随处可用。教师顺势板书课题:把可复用的功能装起来——过程与函数。并抛出本课主任务:为一个班级成绩处理系统设计三个功能模块,让它们各司其职、随时调用。(二)旧知唤醒与新知建构:过程与函数的三点区别(约8分钟)教师不直接讲定义,而是并排展示两段代码:左边是打印成绩单的Sub过程,右边是计算平均分的Function函数。学生观察两分钟后,用自己的话描述差异。教师引导提炼并板书三条:第一,职责不同。Sub过程完成一个动作,比如输出、排序、保存文件,它做事但不汇报结果;Function函数完成一次计算,它必须交回一个答案。这个区别用生活例子类比:请同学帮忙擦黑板,擦完不需要报告“擦干净了”这个值,这是过程;请同学帮忙算一笔账,他必须告诉你得数,这是函数。第二,形式不同。函数定义语句里有As声明返回类型,函数体内必须有“函数名=表达式”这样的赋值语句把结果交出去,缺了这一句,函数悄悄返回零或空串,是最隐蔽的错误来源。第三,调用方式不同。Sub用Call语句或直接写过程名调用,独占一行;函数的调用嵌在表达式里,比如“avg=Average(s,n)”或者“PrintAverage(s,n)”,因为它带回了一个值,这个值必须被接住——要么赋给变量,要么直接参与运算。为检验理解,安排一分钟快问快答:想在窗体左上角画一条分隔线,该写过程还是函数?想判断一个数是否为质数并供后续判断使用,该写什么?学生举牌作答,教师点评时强调判断依据只有一条:这个模块需不需要交回一个值。(三)难点突破:参数传递的可视化探究(约12分钟)此环节分三步走。第一步,实物模拟。请两组学生上台。每组发一个写有“实参a”的盒子,放入数字卡片5。第一组模拟传值调用:把卡片上的数誊抄到一张新卡片上,放进标有“形参x”的新盒子,函数体内对x做加一操作。学生发现原盒子里的卡片仍是5。第二组模拟传址调用:形参盒子不装新卡片,而是贴一根红绳连到实参盒子上,表示形参就是实参本人。操作x加一时,顺着红绳改动了原盒子,a变成了6。台下学生记录两组结果,教师点出VB中ByVal与ByRef关键字正是这两种机制的开关,默认不传则为传址。第二步,代码验证。学生在机房运行一段对比代码:两个Swap函数,一个参数前加ByVal,一个加ByRef,交换后输出原变量。多数学生预测传值版交换失败、传址版成功,运行结果验证预测。对于结果与预测不符的学生,教师引导其用F8单步执行,在立即窗口中敲击“?a,b”逐行观察。第三步,易错点拨。教师总结参数传递三条铁律:实参与形参按位置对应,不靠名字对应;个数与类型必须匹配,否则编译即报错;不想让模块改动原始数据时,显式写上ByVal,这是保护数据的职业习惯。学生在任务单上完成三道判断题巩固,答案通过课堂反馈系统实时汇总,错误率最高的一题当堂再讲。(四)项目实践:搭建班级成绩处理系统(约14分钟)这是本课的主体活动,采用“接口先行、分模块实现、集中集成”的流程。活动开始前,教师发放“模块说明卡”,与学生共同完成三张卡的填写。第一张卡:模块名Average,职责为计算平均分,输入为数组s与元素个数n,输出为一个单精度数,形态为函数。第二张卡:模块名PrintReport,职责为格式化输出成绩单,输入为数组与个数,输出无,形态为Sub过程。第三张卡:模块名Grade,职责为依据分数判定等级字符,输入一个分数,输出一个字符,形态为函数。填卡的要求是只描述模块对外承诺什么,不涉及内部如何实现。这一步骤把“面向接口编程”的思想以低门槛的方式落到实处。随后学生按四人小组分工:一人编写Average函数,一人编写PrintReport过程,一人编写Grade函数,一人担任集成工程师,负责编写窗体按钮事件,调用三个模块完成“读入成绩—输出报表—统计等级”的总流程。小组内约定:模块编写者之间不许看对方的函数体,只能依据说明卡对接。这一约束迫使学生真正依赖接口而非招呼沟通,体验团队协作的本质。任务分层实施。基础任务为完成三个模块并通过集成测试,数组预置十个成绩即可;进阶任务要求Grade函数处理异常输入,分数超出0到100区间时返回字符“E”并在报表中标注;挑战任务要求把排序也封装成一个过程,并讨论排序过程用ByVal还是ByRef更合适——这一问直击参数传递的理解深度,因为排序必须改动原数组,只能传址,而数组参数在VB中本身即按引用传递,学生将在实践中领悟这一细节。教师巡视期间重点关注三类典型问题并即时记录:函数体忘记给函数名赋值;调用时实参个数与形参不符;把输出语句写进Average函数导致模块职责混乱。巡视中不直接替学生改错,而是提示“用模块说明卡对照一下,你的模块承诺了什么、实际做了什么”。(五)展示评价与思想升华(约5分钟)选取两个小组现场演示。第一组为顺利完成基础任务的代表,重点展示其说明卡与代码的对照关系;第二组为出现“函数未返回值”错误的典型,教师现场带大家用单步调试定位根源,让错误成为最有价值的教学资源。评价采用三维量表:功能正确性占四成,模块划分与接口设计占四成,代码规范与注释占两成。学生依据量表互评打分,教师点评时只讲两点:一是好的模块像称职的职员,拿进来的是数据,交出去的是结果,不多嘴、不越权;二是今天写下的每一个Function,都是在为明天上千行规模的程序储备组织能力。最后师生共同回望导入环节那段一百二十行的“崩溃代码”,请学生口述如何用本课所学重构它:把“求平均”写成函数,把“打印报表”写成过程,三个班级循环调用。首尾呼应,模块化思想从需求中生长出来,而不是从定义中灌输进去。六、板书设计主板书分为三栏。左栏为概念对照:Sub过程——做事不交值,Call调用;Function函数——算完必交值,表达式中调用,函数体内必须给函数名赋值。中栏参数传递三铁律:按位置对应;个数类型匹配;ByVal护数据,ByRef改原件。右栏项目流程图:说明卡定接口,分头写模块,主程序做集成。副板书随堂生成,记录学生提出的精彩问题与典型错误。七、作业设计基础层作业:把课堂上未完成的模块补全并调试通过,提交工程文件与一张运行截图,截图需包含立即窗口中验证参数传递的观察记录。提高层作业:编写函数IsPrime判断质数,再编写过程ListPrimes调用该函数输出100以内全部质数,两模块之间只能通过返回值与参数协作,不得使用公共变量传递信息。拓展层作业:调研一个开源小项目或信息科组提供的历届作品,找出其中一个你认为设计得最好的模块和一个最差的模块,各写一百字理由,下节课用三分钟分享。此题意在为后续“程序的模块化与软件工程初步”埋下伏笔。八、教学反思预设本设计最大的风险点在于项目时间控制。若学生在参数传递探究环节耗时过长,项目集成就可能被挤压。预案是将集成环节的数组预置为固定十人成绩,削减数据输入的代码量,保住“调用三个模块”这一核心体验。第二个风险点是分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论