您好, 访客   登录/注册

初探新课标:领会算法基础, 从容入门程序设计

来源:用户上传      作者:

  高中信息技术学科核心素养由信息意识、计算思维、数字化学习与创新、信息社会责任四个核心要素组成,它们是高中学生在接受信息技术教育过程中逐步形成的信息技术知识与技能、过程与方法、情感态度与价值观的综合表现。《普通高中信息技术课程标准(2017年版)》明确了高中信息技术课程旨在全面提升高中学生的信息素养,通过提供技术多样、资源丰富的数字化环境,帮助学生掌握数据、算法、信息系统、信息社会等学科大概念,了解信息系统的基本原理,认识信息系统在人类生产与生活中的重要价值,学会运用计算思维识别与分析问题,抽象、建模与设计系统性解决方案,理解信息社会特征,自觉遵循信息社会规范,在数字化学习与创新过程中形成对人与世界的多元理解力,负责、有效地参与到社会共同体中,成为数字化时代的合格公民。笔者根据新课标理念的指导,设计了一节基于Swift Playgrounds应用的课——《iPad编程——函数》,以帮助学生领会算法基础,从容入门程序设计。
  ● 选材背景
  “数据与计算”是新课标指导下高中信息技术课程结构必修部分的重要内容,也是帮助学生提升计算思维的重要途径,这里要求学生掌握算法与程序设计的基本知识,体验程序解决问题的一般过程,并能总结利用计算机解决问题的方法迁移到其他与之相关的问题解决中去。
  从以往教材的内容来看,很多都轻算法重代码,而设计算法是编写代码的前提,对于起点不一又没有系统的程序知识铺垫的学生来说,如果要体验程序只能照抄代码,无法理解程序功能的基本原理,所以在编写代码之前有必要进行算法的学习。
  这里笔者选择了iPad上基于Swift语言的Playgrounds应用,这是一款门槛低、易学易用的编程语言,很多小学也选用它来帮助学生入门编程,但是学生在不同认知阶段对同一事物的理解程度是不一样的,让高中生选择它的理由有:①可以在iPad的APP上学习编程,能够提高学生的学习兴趣;②游戏闯关形式的编程情境,更容易检验程序的执行过程,降低了学习难度,弱化代码的拼写,更适合算法的学习;③闯关任务答案开放,有利于拓展学生思维,激发学生思考如何进一步优化程序。
  ● 学习背景
  本节课是iPad编程的第2节课《函数》,在上一节课里,学生已了解了Swift语言的编程环境和基本代码的使用,通过逐步设计都能达成目标。本节课的学习目标是要让学生在上节课的基础上进一步去思考程序的效率,虽然条条大路通罗马,但怎样走可以减少代码、节省运行时间、提高执行效率,也是算法设计中要考虑的重要因素。在本节课学生需要认识并理解函数的概念,掌握函数的代码格式,并能运用函数的方法解决实际问题提高算法效率。
  ● 流程设计
  1.旧任务引发深层思考
  课堂开始简单复习上一节课学过的“向前走”“向左转”“收宝石”“点开关”四条基本代码,并用一个热身任务,帮助学生快速进入状态。
  在完成任务过程中学生遇到一个必须解决的问题,即只学过“向左转”的代码,而没有“向右转”的代码,怎样用已有的知识实现向右转的任务?
  学生不难想到用三次“向左转”来实现“向右转”的效果。任务是完成了,但此时教师需要引导学生深入思考:为什么没有一个现成的“向右转”代码?难道每次需要向右转的时候都要写上三句“向左转”吗?这样的代码会不会很烦琐?带着这些思考,笔者引出一个可以解决的办法,也是本节课的学习主题——函数。
  2.新概念需要解释透彻
  提到“函数”学生会立即联想到数学里的y=f(x),自变量、应变量等一堆严谨的学术阐述会让学生畏惧,这里的关键是要通过简单的比喻和形象的描述帮助学生了解程序设计里函数的概念和作用。尤其是要让学生知道Swift语言里的函数就是用来完成特定任务的一段独立的代码块,更可以用人人都会的“系鞋带”过程帮助学生理解函数的意义。
  “系鞋带”是大家都非常熟悉的过程,但如果教一个孩子系鞋带,我们通常会把动作分解成“绕圈”“穿线”“拉紧”三个步骤。整个“系鞋带”的过程就可以理解为是一个函数,而其中“绕圈”“穿线”“拉紧”三个步骤就是程序块的每一条代码。学生熟练掌握了“系鞋带”这个技能,以后每当再需要“系鞋带”时就可以直接调用这个函数,而不必再去思考其中的每一步的细节。
  同样的原理,在刚才的任务中,如果需要经常用到“向右转”或是别的一系列动作,我们完全可以把它做成一个像“系鞋带”那样的自定义函数,在每次需要用的时候进行调用。
  3.新技能在任务中实践
  本节课不仅要认识并掌握函数的概念及作用,还要掌握自定义函数的格式和调用方法以及使用场合。格式并不难,但要熟练掌握需要在任务中巩固实践。本节课围绕函数的应用笔者设计了三个任务,逐层递进,合作探究,在任务中发现问题、解决问题,从而升华问题。
  (1)基础任务,解决新动作
  与导入部分的热身任务相比,基础任务仍然是在解决“向右转”的问题,但热身任务只是帮助学生掌握如何解决“向右转”的方法,而这个任务中需要多次调用“向右转”函数,更能让学生理解函数的作用和意义(如图1)。
  基础任务的目标:①巩固掌握自定义函数格式的正确使用;②在实践中体验如何使用函数设计新动作;③在情境中检验程序的正确性。
  (2)提高任务,实现重复,优化程序
  相对基础任务而言,提高任務中没有新动作,但有动作的重复,一个优化高效的程序是不能有重复繁杂的代码来影响程序的可读性和效率的,所以需要学生通过自主探究,分析路线,思考使用怎样的自定义函数来实现重复(如上页图2)。
  (3)进阶任务,使用嵌套
  基础任务使用函数设计新动作,提高任务使用函数实现重复,而进阶任务则是课堂的高潮,此任务既需要设计新动作“向后转”,又需要重复四次每边的动作,这里就需要考虑“函数嵌套”的使用。所谓的“函数嵌套”即在一个自定义函数中调用之前定义过的函数,虽然有点绕,但对帮助学生理清思路还是很有效果的。而且在本例中,学生最后会发现每边的动作是完全相同的,也就是最后要连续调用四次单边的动作函数,由此也可以引出下节课的循环问题(如上页图3)。   4.课堂总结实现升华与拓展
  课堂的尾声需要清晰的总结帮助学生理清本节课的所学,这节课的尾声主要分为三部分。
  (1)由程序升华至生活
  需要多次调用的任务就可以定义为函数,如程序中多次要用到的程序块,现实生活中也是一样,这里可以启发学生思考。例如,每周晨会中的第一个环节升旗仪式都是固定的内容,也可以理解成函数,那么在下一期的方案中升旗仪式不用另作考虑,直接调用上一周的就行。
  (2)总结本课知识要点
  本节课认识了函数的概念和作用,学习了自定义函数的格式和使用,在具体的案例中体会了函数嵌套在优化程序中的意义。
  (3)拓展任务延伸课堂
  40分钟的课堂即将结束,但知识的学习并未停止,笔者还设计了一个创新拓展任务留给感兴趣的学生在课后继续钻研(如图4)。这个任务答案很开放,用各种方法都能完成任务,但可以让学生相互比一比,看看完成相同的任务谁的程序更优化,谁的执行更高效。
  ● 辅助技术
  信息技术教学尤其是程序设计章节的教学中最头疼的问题莫过于学生起点不一的矛盾,如何实现课堂中的分层次教学、教师的分身答疑一直都是需要不断思考的命题。这节课设计的任务较多,且环环相扣,学生如果一步跟不上就有可能步步跟不上,因此,笔者选用了教学平台进行辅助,每一个案例都做成了微课,学生可以在线获得帮助。课堂的时间是有限的,知识的探究是无限的,尤其是信息技术的课堂中教师只是引路人,更多的成果需要学生自己探索获得,所以笔者把更多的学习资源放在学习平台上引导学生主动学习。
  ● 課后反思
  本节课虽然教学目标基本达成,技术上无卡壳,学生表现积极性高,但整节课时间略显紧张,每个问题的挖掘深度还可以再有所增加。
  本节课设计的创新之处在于:①选用iPad编程为VB程序教学做铺垫,让学生在游戏闯关的情境中掌握程序设计的一般过程和算法基础,为学生降低程序设计的入门门槛,以提升学生的学习积极性;②任务设计环环相扣、层层递进,推进有力,注重启发学生积极思考、主动探究,在思考中发现问题、解决问题、升华问题,注重知识与生活相结合;③教学平台的运用,为课堂的分层次教学、课后的拓展延伸以及学生的数字化学习意识培养提供了实践的平台。
转载注明来源:https://www.xzbu.com/9/view-15134129.htm