版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高中信息技术选修1《算法与程序设计》4.4过程和函数教学设计一、教材分析本节课选自浙江教育出版社高中信息技术选修1《算法与程序设计》第四章第四节"过程和函数"。此前学生已经掌握了顺序、选择、循环三种基本控制结构,能够编写中小规模的程序解决简单问题。但随着问题规模扩大,学生普遍会遇到代码冗长、重复书写、调试困难的困境,程序的可读性与可维护性急剧下降。过程与函数正是解决这一困境的关键机制,它标志着学生从"写出能跑的程序"迈向"写出结构良好的程序",是结构化程序设计思想的集中体现。从教材编排看,本节承接4.3节循环结构,为后续综合项目开发和面向对象思想的渗透奠定基础。教材以VisualBasic为载体,介绍了Sub过程与Function函数的定义、调用、参数传递机制,涉及形参与实参、传值与传址、局部变量与全局变量等核心概念。这些内容抽象度较高,是学生编程学习中公认的分化点,也是本册教材从"语法学习"转向"思想建构"的枢纽。本节的育人价值不止于技能。模块化思维本质上是一种"分而治之"的问题解决策略,与生活分工、工程项目管理高度相通。教学中若能让学生在真实的认知冲突中体会"为什么要模块化",远比灌输"这样写更规范"更有力量。二、学情分析授课对象为高二年级选修信息技术课程的学生。从知识基础看,多数学生已能熟练使用For、DoWhile等循环语句完成累加、枚举类任务,对变量、表达式、输入输出语句较为熟练。从思维特点看,高二学生抽象逻辑思维趋于成熟,但在程序设计情境中仍习惯"线性铺陈"式编码,缺乏将程序切分为功能单元的意识。前期教学观察暴露出三个典型问题。其一,面对需要重复执行某段逻辑的任务,学生普遍采用复制粘贴,改错时顾此失彼,却并未意识到这是结构性缺陷;其二,学生对"变量在哪里有效"缺乏清晰认识,常因变量命名冲突产生莫名其妙的错误;其三,部分学生虽然接触过数学中的函数概念,但难以迁移到程序设计中"参数—计算—返回值"的输入输出模型。基于此,本课设计遵循"制造冲突—体验优势—建构概念—迁移应用"的路径,先用一个真实的低效代码场景引发学生的"痛感",再引导其亲手重构代码,使过程和函数成为学生主动寻求的工具,而非教师强加的规矩。三、教学目标信息意识目标:学生能够识别程序中重复出现的功能模块,意识到代码复用与结构组织对程序质量的影响,初步建立"好程序不仅正确,而且清晰、易改"的质量观。计算思维目标:学生能够运用自顶向下、逐步求精的方法分析任务,将复杂问题分解为若干功能独立的子任务;理解参数作为模块间信息传递接口的作用,能区分形参与实参、理解传值与传址的差异及其后果;理解变量作用域规则,能合理选择局部变量与全局变量。数字化学习与创新目标:学生能够正确定义和调用Sub过程与Function函数,完成含参数传递的模块化程序,并通过改造已有程序体会重构的过程。信息社会责任目标:在小组协作的开发活动中,学生体验模块化分工对团队效率的意义,认识到规范接口约定(参数约定)如同协作中的契约精神,养成编写注释、命名规范的职业习惯。四、教学重点与难点教学重点是Sub过程与Function过程的定义和调用方法,以及模块化程序设计思想的初步形成。重点的确定依据是:这是本节全部内容的落点,也是学生后续一切程序开发的基本功。教学难点有二。一是形参、实参、传值、传址这组概念的辨析,其抽象性在于学生必须跳出"代码文本"层面,进入"内存中的数据如何流动"的运行层面思考;二是变量作用域的判断,学生极易把"名字相同的变量"误认为"同一个变量"。突破策略是采用可视化类比与对比实验相结合的方式,让学生在可观察的运行结果差异中自己归纳规则,而不是背诵规则。五、教学方法与教学准备教法上综合运用情境教学法、任务驱动法、对比实验法与小组合作法。情境负责制造认知冲突,任务驱动保证每个环节学生手脑并用,对比实验攻克传值传址难点,小组合作承载综合实践任务。课前准备包括:机房安装VisualBasic6.0(或兼容环境),确保每台机器可正常运行;教师准备半成品"抽奖程序""图形打印程序"两个项目文件,内含故意保留的重复代码;制作参数传递过程的动态演示课件,用不同颜色标注实参与形参在内存中的对应关系;设计纸质任务单,包含三个层次的练习与自我评价量表;按异质原则四人一组提前分组,指定组长并明确记录员、操作员角色轮换规则。六、教学过程(一)情境导入:一段"让人崩溃"的代码上课伊始,教师在大屏幕展示一个转盘抽奖程序的运行效果:点击按钮,标签中的数字快速滚动,停止后显示获奖者。学生试玩两轮,兴趣被调动起来。随后教师打开代码窗口,展示实现代码——三段几乎一模一样的滚动逻辑被复制了三次,分别对应一等奖、二等奖、三等奖的抽取。教师现场提出修改要求:"甲方改需求了,滚动时间要从2秒改成0.5秒。"教师开始逐处修改,改到第二处故意遗漏,运行后发现二等奖滚动时长与其余两档不一致,界面出现明显的不协调。教师停顿,向学生发问:"这段代码错在哪不重要。我想请大家思考,如果抽奖分十个等级,这段逻辑要复制十遍,改动要改十处,漏一处的概率有多大?有没有办法,让同样的逻辑只写一遍?"学生热烈讨论,有学生提出"循环",有学生提出"复制后注意点",也有学生模糊地提到"把公共部分提出来"。教师顺势小结:当同一段逻辑需要反复使用,最聪明的做法不是复制,而是把它包装成一个独立的"功能块",需要时喊它的名字。这个"功能块",就是今天的主角——过程与函数。设计意图在于,认知冲突先于概念讲授。学生亲眼看到复制粘贴带来的维护灾难,"为什么要模块化"这一问题便有了真实的答案,后续学习成为解决问题的主动行为。(二)新知建构一:认识Sub过程教师以抽奖程序为例,现场演示将滚动逻辑提取为Sub过程。板书定义格式:PrivateSub过程名(参数列表)语句块EndSub演示的关键动作分三步。第一步,把三段重复代码剪切出一份,放入新建的Sub过程GunDong中;第二步,在原来三处代码的位置分别写上一句CallGunDong;第三步,运行程序,功能与之前完全一致。教师强调"代码总量少了近三分之二,逻辑只在一处",并再次接受"改滚动时长"的挑战——这次只改一行,三个奖项全部生效。教室里能明显感到学生的认同感。紧接着抛出新问题:"三个奖项的滚动时长其实不一样,一等奖要滚5秒制造悬念,三等奖只滚1秒。只写一份代码,怎么让每次调用行为不同?"由此自然引出参数。教师修改过程定义为SubGunDong(tAsSingle),调用处改为CallGunDong(5)、CallGunDong(2)、CallGunDong(1)。教师用一个生活类比作锚定:"这就像学校的打印室,你只说'打印'不够,还得告诉它打印多少份。'打印'是过程名,'份数'就是参数。"随后明确术语:定义时括号里的t叫形式参数,是占位符;调用时传入的5、2、1叫实际参数,是真正的值。格式要求上,调用可写"Call过程名(实参)"或"过程名实参",两种写法教师均演示一遍,并提醒后者不加括号。学生随即完成分层任务单的任务一:把教材配套练习中打印九九乘法表的程序,用Sub过程改写,要求外层行数通过参数控制。基础组完成固定九行的版本,提高组实现"打印到第n行"的参数化版本。教师巡视,重点观察学生对"先有定义,才能调用"这一顺序的理解,对出现的"未定义子程序"错误现场剖析。(三)新知建构二:认识Function函数教师创设第二个微情境:"学校体检系统要批量判断学生BMI是否超标。判断本身是一次计算:吃进去身高体重,吐出来一个结论。这种'有去有回'的操作,用Sub合适吗?"学生尝试后发现Sub只能"干活"不能"交结果",代码里不得不用全局变量传结果,既别扭又危险。教师引出函数的概念:函数是一种带"返回值"的过程,像一个数学上的映射——输入经过加工,产出唯一结果。板书定义格式:PrivateFunction函数名(参数列表)As类型语句块函数名=返回值EndFunction以Area函数为例现场编写:PrivateFunctionArea(rAsSingle)AsSingleArea=3.14159rrEndFunction并演示调用:s=Area(2.5)。教师用对比表强化Sub与Function的差异:Sub完成作业,不直接交回结果,调用时独立成句;Function必须交回一个结果,调用时通常出现在表达式或赋值语句右侧;Function体内必须有一条"函数名=值"的语句,这是新手最易遗漏之处。此处的学科联结点值得浓墨重彩:数学中的f(x)=x²在程序中如何表达?请学生口述,教师落笔。多数学生能顺畅完成迁移,教师点拨:"数学函数关注对应关系,程序函数additionally关心这件事由谁、在何时、用什么数据去执行——这就是参数与调用的意义。"学生完成任务二:编写函数IsLeap(yAsInteger)AsBoolean判断闰年,并用文本框输入年份、标签输出结果。提高组追加挑战:用该函数统计1900至2100年间闰年总数,体会"函数一次定义、两百次调用"的威力。教师巡视中收集两类典型错误——忘记给函数名赋值、返回值类型声明缺失——集中投屏讲评,让犯错的学生自己说明原因。(四)难点突破:传值与传址、变量作用域教师不先讲规则,而是安排一个对比实验。投影两段程序:第一个Sub过程声明为SubSwap1(ByValaAsInteger,ByValbAsInteger),内部交换a与b;第二个声明为SubSwap2(aAsInteger,bAsInteger),内部同样交换。主程序分别调用后输出原变量。学生先预测结果,多数认为两个都能交换成功。运行结果令人意外:Swap1调用后原变量纹丝不动,Swap2调用后成功交换。教室里响起疑惑声。教师抓住这一刻,用"保管箱与复印件"的类比展开讲解:ByVal传值,相当于把数值复印一份交给过程,过程怎么涂改,原件不动;默认的ByRef传址,相当于把变量在内存中的地址交出去,过程顺着地址直接改写原件。配合课件动画,实参x与形参a在传值时指向两个不同的内存格子,在传址时指向同一个格子,画面直观,规则不言自明。教师随即给出使用建议:除非有意让过程修改实参,否则显式写出ByVal,这是防御性编程的习惯;Swap这类函数正是传址大显身手的场合。变量作用域通过第三个微实验处理。教师在窗体通用区声明全局变量count,又在某Sub内部用Dim声明同名局部变量count,分别自增后输出,两个数值互不相干。教师用"班内的张伟与校内的张伟"作类比:名字相同,指向的人未必相同,要看你站在什么范围里喊。随后归纳规则:过程内Dim的是局部变量,生于此过程、终于此过程;模块级声明的变量各过程共享;能用局部就不用全局,因为全局变量谁都改得动,大型程序中它是bug的温床。(五)综合实践:团队开发"班级成绩分析器"实践任务以项目形式下发:为班主任开发一个成绩分析小工具,输入若干名学生成绩,程序输出总分、平均分、最高分、及格率四项统计结果。硬性要求:每一项统计必须实现为独立的Function;输入输出由窗体界面负责;至少一处使用ByVal;每组代码中关键过程必须有注释和编写者署名。小组内执行"模块承包制":四名学生各认领一个函数,先共同商定接口——函数名、参数类型、返回值类型——再分头编码,最后由组长汇总联调。教师强调接口约定先行这一工程惯例:"你们签下的接口约定,就是小组内的合同,谁擅自改参数类型,谁负责让全组程序跑不起来。"实施过程中教师巡视并有针对性介入。观察到某组将数组作为参数传递遇到困难,教师给予提示:数组作为参数时写数组名加空括号,如FunctionMaxOf(a()AsInteger)AsInteger,并顺势指出数组默认传址的特征。另一组出现"各人函数名风格混乱"问题,教师引导其订立命名共识,如动词加名词的IsXXX、GetXXX、CalcXXX形式。十分钟后各组展示成果。评价采用组间互评加教师点评:评价维度包括功能正确性、模块化程度、命名与注释规范、接口遵守情况。一个小组的分工协作记录被特别表扬——他们在任务单上预先画出了模块结构图,顶层是主程序,下层四个函数并列,这正是自顶向下设计思想的自然呈现,教师将其投影供全班参照。(六)课堂小结:思想的回顾而非知识的罗列教师不采用"今天学了什么"的提问套路,而是回到课初的抽奖程序:"如果开学第一天你就拿到那个需求,你会怎么写?现在你会怎么写?变化的仅仅是语法吗?"学生发言中出现了"先想清楚要几个功能块""重复的坚决不复制""参数就是模块之间的约定"等表述。教师据此提炼板书结构:模块化是思想,过程和函数是载体,参数是接口,作用域是边界。随后布置一道凝练的判断题收束全课:"有人说,学会过程和函数,就是学会了两条新语法。你同意吗?"学生齐声否定。教师结语:"语法一周会忘,分解与抽象的思维会跟你们走很远。下节课我们将用这套思想挑战更大的项目。"(七)作业设计基础作业:完善课堂上的成绩分析器,为每个函数补充完整注释,将最高分和最低分合并为一个返回数组的过程,体验Sub过程的合理运用。提高作业:编写函数Gcd(mAsInteger,nAsInteger)AsInteger用辗转相除法求最大公约数,进而编写求最小公倍数的函数,要求后者调用前者,体会函数之间的协作。拓展作业:阅读教材二维码资源中关于递归函数的节选,思考"函数调用自己"与循环有何相通之处,下节课前在班级网络平台用一百字以内发表自己的猜想。七、板书设计板书分三栏布局。左栏呈现问题驱动的演进线索:重复代码→提炼模块→参数化→返回结果。中栏为语法核心,Sub与Function定义格式上下对照,关键差异处用红粉笔圈注"函数名=返回值"。右栏为概念辨析区,纵向排列四组关键词:形参与实参、传值与传址、局部与全局、Sub与Function,每组下方附一句话口诀,如"传值给复印件,传址给钥匙""能用局部不碰全局"。主板书随教学进程逐步生成,课终时构成一幅完整的知识结构图,供学生拍照留存。八、教学评价设计本课采用过程性评价与结果性评价相结合的方式。过程性评价依
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 急性发热复习试题及答案
- 仓管员计算模拟试题及答案
- 小学二年级冀教版克和千克单元提升卷
- 高中生物(人教版必修2)第7章同步教学设计7.1现代生物进化理论的由来
- 初一7班廉洁教育班会
- 分子遗传学8细菌和噬菌体的遗传和重组B
- 2026真空热成型包装生产线智能化改造投资效益报告
- 2026住院医师规范化培训考试(耳鼻咽喉科)历年参考题库含答案详解
- 2026住院医师规培-黑龙江-黑龙江住院医师规培(临床病理科)历年参考题库含答案详解
- 其他税收的税收筹划
- 化工厂事故应急处理流程及预案
- 唐诗宋词人文解读知到智慧树章节测试课后答案2024年秋上海交通大学
- 中医诊所急救处理制度
- 《学习指导与练习 语文 基础模块 上册》参考答案
- 《这是我们的校园》第一课时教学设计-2024-2025学年道德与法治一年级上册统编版2024秋
- 《口腔颌面外科学》课件-第四章 拔牙器械和使用方法
- 穴位注射课件
- TDT1056-2019县级国土调查生产成本定额
- CNAS-CL02-A001-2023 医学实验室质量和能力认可准则的应用要求
- GB/T 43572-2023区块链和分布式记账技术术语
- 花生良种繁育技术-花生收获与荚果入库
评论
0/150
提交评论