编程:一种观察世界的新视角

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:myloft2w
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:让学生学习编程,引导学生深度思考算法及其工作流程,亲历问题建模、算法设计、程序实现及优化的完整过程,引领学生从计算机科学家视角分析问题、解决问题,对于学生而言,无疑是一种观察世界的全新视角。
  关键词:算法;程序;计算思维;冒泡排序
  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)35-0126-03
  伴随面向对象程序语言的兴起,算法思维与建模能力的培养在高中信息技术课堂中一度被弱化,原因是编程环境的可视化和控件的事件响应,以及追求程序课堂的趣味性,让算法与程序设计课向多媒体技术方向发展。这样的课堂虽然没有抛弃程序基本语言的学习,但是漂亮的程序代码、严谨规范的语言风格、计算思维的训练却被忽视。我们在程序教学的路途中,常有茫然失措、忘了初心的感觉。
  著名的计算机科学家、图灵奖得主艾茲格·迪杰斯特拉说:“我们所使用的工具影响着我们的思维方式和思维习惯,从而也将深刻地影响着我们的思维能力。”计算机给我们提供了一种全新的思维方式——计算思维。美国卡内基梅隆大学周以真教授认为:计算思维是人们运用计算机科学思想与方法进行问题求解、系统设计,以及人类行为理解等涵盖计算机科学广度的一系列思维活动。新课标将“计算思维”引入课堂,使信息技术课程教学从注重实践操作的技术素养层面上升到注重思维素养培养的层面。
  下面,我们以《冒泡排序》为例来谈如何在程序设计课中落实计算思维的养成,以期抛砖引玉,与同行们一起努力建构更好的算法与程序设计教学模式。
  1 第一层次思维:实际问题的抽象与量化
  计算机思维的本质是以“0”和“1”为基础的数字量来反映真实世界。“模”“数”的转换是人类与计算机建立联系的纽带。因此,实际问题的抽象与量化是计算思维形成的第一层次。下面是我在课堂中引导学生体验实际问题抽象量化的一个课堂片段:
  师:生活中,我们经常碰到排队的情况,比如:操场上排队做操、医院里排队看病。
  我邀请第一排6位同学上来,要求学生按身高进行排序。“不对不对,生一应该排在生二后面……”,下面学生囔囔着。6位学生前前后后调整了几次总算排好了位置。
  接着,我让后面一排6位同学先用记号笔把身高写在A4纸上,然后到上面排队,大家互相看看身高,不一会就排好了。
  师(指着其中一位换到前面去的同学):请这位同学说说为什么第二次排队效率比较高。
  这时学生一般会提到数字标明比较明确,方便比较大小。
  (学生体验到了抽象与量化,在问题处理中的优势。)
  师:学生身高抽象为数学量以后,使问题简洁明确,方便我们处理,所以下面的同学一看就知道顺序了。排队是一种排序——通过调整位置,把杂乱无章的数据变成有序数据。
  师:当学生数量比较多,比如在操场上,我们就没法一眼看出谁身高第一、谁第二、谁第三……。其实,我们人脑的计算力是有限的,当随之人数的增加,数据规模就会扩大,人脑处理就会越来越困难,这时我们可以借助计算机。要让计算机帮我们排序,我们首先要记录6位同学的身高数据。我们用哪种变量类型比较适合?
  生:数组。
  师:嗯,数组。但计算机生活在“01”世界里,有它自己的布尔智慧,我们生活中的排序思维方法不能直接移植给计算机,而需要通过计算机的布尔逻辑特性进行算法设计以做到人机互适。计算机排序算法的类型很多,这节课我们来学习一种比较典型的排序算法“冒泡排序”。
  2 第二层次的思维:基于模型建构算法
  计算思维源自数学思维,像所有的科学一样,其基础建筑于数学之上。计算思维又源自工程思维,基本计算设备的限制迫使计算机学家必须考虑计算机的特性。在教学中能突破简单问题的求解,挖掘人机共存算法思维显得尤为重要。教师可以通过模拟执行法、自顶向下逐步求精法,特殊到一般归纳总结法等,给学生展示与剖析算法的原理与思想。
  2.1 模拟执行,体验计算机处理数据的过程。
  教师通过PPT展示冒泡排序数据存储结构:
  表1
  [下标 1 2 3 4 5 6 数组a() 49 97 65 13 76 38 ]
  教师模拟计算机完成第一趟数据的比较和交换过程后:
  师:数据两两比较一共比较了几次?
  生:5次。
  师:第一趟完成后数据有什么特征?
  学生交流讨论得出结论,最大数97被交换到了最后。
  师:第二趟比较需要比较几次?
  学生交流讨论,得出结论第二次比较只需比较4次,因为最大数已经排定。
  教师再演示第二遍的过程让学生印证自己的想法。
  第二遍排序结束后,让学生写出第三趟排序结果,了解学生的掌握情况。之后教师进行适当的总结,让学生继续观察第四、第五遍的排序结果。总结出冒泡排序的规律:
  (1) 从一端开始,逐对进行相邻元素比较
  (2) 如果前一个数比后一个数大,则进行交换
  (3) 重复(1)、(2)步骤直到得到一个最值(位置右端)
  (4) 重复(1)、(2)、(3)步处理n-1趟,完成排序
  2.2 画流程图,感悟自顶相下逐步求精的思想
  教师以具体的6个数升序排序为例,由最简单的流程图1开始,让学生回顾冒泡排序的特点,每趟比较可以确定一个最数(最大或最小),确定完成6个数排序需要5趟,得出流程图2。
  得出流程图2后,教师让学生思考:这种结构实际上属于什么结构?(循环结构)引入变量i进行计数,使用循环结构流程图进行进一步细化,得到流程图3。后拓展到n个数的情况,得到流程图4。
  这里需要引入一个j变量来标识正在参加比较的数组元素。确定第i趟j的取值范围为:1到n-i,得到图6。   在分析相邻数据比较交换模块时,可以描述为a(j)与下一个数a(j 1)比较大小。如果a(j)>a(j 1)就交换数据位置,得到图7。
  再将“a(j),a(j 1)数据交换位置”流程细化为:t=a(j):a(j)=a(j 1):a(j 1)=t得到图8。数据交换需结合变量赋值原理进行讲解:变量名的实质是申明内存单元,赋值的过程是数据写入变量名所指内存单元的过程,新数据写入会覆盖原来的数据,造成数据丢失。
  至此,所有问题、难点自顶向下逐一解决后,用自底部向上的思路形成下面总流程图,如图9。
  3 第三层次思维:从算设计到代码实现
  要让计算机解决问题,需要将算法用计算机“语言”表示并告知计算机,这个过程称为“代码实现”或“编程”。学生若缺乏上机编程,就无法充分理解变量定义、逻辑运算、循环嵌套、形参实参等运行机制,无法深度思考算法及其工作流程。本环节通过关键代码引导的方式让学生动手编写程序,旨在让学生通过编写代码、调试程序,亲历完整的编程过程,加深对算法的理解与应用,同时培养学生认真、严谨、坚韧的优秀品质,教学环节如下:
  首先,讲解关键程序段实现方法。
  1) i:控制冒泡排序的趟数,由1到n-1
  for i=1 to n-1
  每趟确定一个最大数
  next i
  2) j:控制每一趟的处理过程,控制数组下标,由1变到n-i
  for j=1 to n-i
  a(j)与a(j 1)进行比较判断是否互换
  next j
  3) a(j)与a(j 1)互换
  t=a(j):a(j)=a(j 1):a(j 1)=t
  接着,让学生对照流程图,自下往上,写出主要参考代码:
  for i=1 to n-1
  for j=1 to n-i
  if a(j)>a(j 1) then
  t=a(j):a(j)=a(j 1):a(j 1)=t
  end if
  next j
  next i
  在编程实现环节,学生遇到的错误五花八门,一般我们可以分为三类:编译错误;运行错误;逻辑错误。错误是课堂的生成性教学资源,是教师进一步展开教学的依据:如运行错误往往与数据溢出有关,可以加深学生对变量存储的理解,如逻辑错误,往往与学生对算法理解不到位有关,可以引导学生正确理解算法。教师要引导学生用分类的思想判别错误,用模块化的思想缩小错误范围,用逐步调试的方法锁定错误,最终达到预期效果,使学生分析问题,解决问题的能力得到提升。
  4 第四層次思维:逐步养成“迭代”的思维
  学习的最高层次是应用,即解决实际问题。当我们面对实际问题,通常通过观察弄清问题,抓住问题的特征进行广泛的联想、检索和回忆,制定选择最优解决方案。能否找到合适的策略与观察问题的角度及联想范围有关,受学生已有知识与经验的制约。在学生思维受阻时,我们应引导学生调整思维方向,变换角度进行分析思考,直到产生新的思路,对培养学生解决问题的能力与创新能力十分有益。
  在程序与算法模块的实际教学中,可以通过对算法变形、优化及情境模拟,培养学生联想、检索、回忆等解决问题的能力。教学环节设计需要注意以下几点:第一要有目的性,要明确通过拓展是使学生掌握算法的哪些外延与内涵,还是渗透一些算法思想与方法,第二要有适度性,过于简单易陷入简单的重复,无法提高学生思维品质,过于复杂会挫伤学生学习积极性。第三要学会放手,静待花开。通过教师的信任与等待,以及必要时机的释疑,最终厚积薄发,学生会成为独立自主、敢于质疑、有创造力与创新精神的学习资者。
  在冒泡排序教学中,可以安排一系列递进的教学任务,如同质化任务:将“升序冒泡排序程序”改为“降序冒泡排序”,加深了学生对相邻元素比较判断的理解;优化任务:让学生讨论当某趟比较过程中没有数发生交换,是否需要在进行下一趟比较交换,给学生灌输流程优化的思想;变形任务:将“从前向后冒泡排序”改为“从后往前冒泡排序”,综合检验学生对冒泡思想的掌握与编程实现的能力;应用任务:评委打分,去掉最高分、最低分的实现,提高学生解决实际问题的能力……
  正式在这种算法不断优化的“迭代”过程中,学生的计算思维才能获得不断的提升。
  5 结束语
  当“程序驱动”的数字化工具渗透到人们生活、学习和工作的方方面面,甚至成为人们生活的一部分时,人们不仅需要具
  备操作这些技术工具的技能,同样需要深层次理解这些技术工具,知道它们的工作原理和工程思想,并学会运用这些思想,优化我们的工作与生活,即发展计算思维。让学生学习编程,引导学生深度思考算法及其工作流程,亲历完整的编程过程,学会像计算机科学家一样思考,对于他们的意义可谓一种观察世界的全新视角。
  参考文献:
  [1] 李锋,熊璋.面向核心素养的信息技术课程:数据与计算”模块[J].中国电化教育,2017,1(360).
  [2] 邵红祥.基于计算思维的高中信息技术选修课程设计与开发[J].中国信息技术教育,2016(17).
  [3] 任樟辉.数学思维论[M].南宁:广西教育出版社,1996.
其他文献
摘要:随着互联网 时代的到来,智能手机、PDA等移动设备的广泛运用,作为企业与个人便捷移动工作与生活的桥梁之一,APP的运用与开发已被提上开发人员的记事日程。该文以移动办公APP”云端”软件开发为蓝本,阐述了基于HTML5web技术快速开发APP的优势及HTML5web技术的发展前景,为基于HTML5web技术APP快速开发研究做一些实践经验积累与案例提供。  关键词:HTML5 web技术 AP
摘要:该文分析了目前惠州技工院校人事管理信息系统的现状和普遍存在的问题,从实现人事信息流程化、自动化和规范化的角度出发,结合当前技工院校人事管理的业务流程和笔者所从事的人事工作实际,阐述了技工院校人事管理信息系统的设计思路。  关键词:技工院校;人事;管理;系统;设计  中图分类号:TP315 文献标识码:A 文章编号:1009-3044(2016)02-0055-03  1 当前技工院校人事管理
摘要:针对当前计算机专业转型发展需要以及人才培养存在的问题,结合地方高校的办学实际情况,提出了计算机应用型人才培养的措施,并在人才培养方案、校企合作、实践教学、双师型教师培养以及学生团队建设等方面进行研究和探讨。  关键词:计算机专业;转型发展;应用型人才;学生团队建设  中图分类号:G642 文献标识码:A 文章编号:1009-3044(2016)11-0106-02  1 引言  计算机专业是
摘要:20世纪70年代以来,随着互联网科技和信息技术的兴起和发展,互联网 下的人力资源管理也取得了巨大突破,EHR信息系统就是人力资源管理信息化的产物,21世纪企业的核心竞争力已经开始从资本、技术等传统资源转向人力资源的开发,EHR系统设计与发展对于企业管理尤其是国有企业战略性人力资源管理来讲将是一大福音,该文以方正集团为例,从企业对EHR系统设计的需求出发,阐述国有企业HER系统设计的功能及需要
摘要:我国视障人士数量逐年增加,他们对于助行产品的需求日益显著。该文根据视障人士的出行需求,结合调研盲校师生所给出的建议,对视障人群出行中需要考虑的各个问题进行综合分析,提出“安全绳”的设计理念,力图帮助每一位使用者获得环境交互信息,保障安全出行,并且在通用设计的理念下完成该产品的开发与设计。  关键词:通用设计;信息交互;“安全绳”  中图分类号:TP311 文献标识码:A 文章编号:1009-
摘要:网络渗透测试是网络攻防体系中核心的技术之一。随着移动互联网的迅速发展,移动智能终端可作为渗透测试的重要工具。该文介绍了基于Android虚拟机的网络渗透测试过程,利用VirtualBox、Android_x86等软件构建测试环境,并成功验证了网络渗透测试的效果。  关键词:网络渗透测试;Android;VirtualBox;Santoku  中图分类号:TP309 文献标识码:A 文章编号:
摘要:互联网技术的持续发展为企业管理带来了更多的优势,1990年美国Gartner Group公司为了提高企业资源管理的效率提出了企业资源计划即ERP,实现了对于企业库存资源的盘点、查询,同时随着科学技术和企业结构的不断变化和发展,ERP系统也在不断的更丰富和改革,所以该文结合笔者的实际工作经验,提出了以X公司为例的基于ERP的库存管理优化,并结合实际的案例进行详细的说明,以期望能够为企业的库存管
摘要:反向物流一直是困扰着现代物流发展的节点,传统物联网体制下的食品安全管控制度的效率有待考量。随着大数据时代的迅猛发展,二维条码和RFID技术给予了技术上的支持。通过食品溯源系统将食品信息具体化以低成本和方便化的形式呈现在监管者和消费者面前。本溯源系统基于整个供应链的角度,通过一张二维码将供应链的各环节信息有效的串联起来,给予企业营销提供电子化支持。  关键词:成本效应;二维码技术  1概述  
摘要:随着时代的发展,泰勒目標评价方式的不足开始逐渐显露,CIPP评价模式能克服目标评价方式的某些弊端,强调评价的形成性和改进性,真正实现教育评价的目的,推动教育事业不断向前发展。该文介绍了C1PP评价模式,并阐述了CIPP评价模式在高职院校计算机基础课程教学改革中的实践研究。  关键词:CIPP;评价模式;高职院校:计算机基础  中图分类号:TP393 文献标识码:A 文章编号:1009-304
摘要:高校多媒体管理人员作为多媒体教学的技术保障者,数量的不足直接导致教师遇到问题无法得到及时的服务,耽误教学的进行,而文献梳理的结果发现,现有的研究对策并不能有效地解决管理人员少的问题。本研究以绩效导向与成本控制的思想为理论依据,以研究者提供的高校内部其他部门解决类似问题的实践经验为现实依据,综合考虑多媒体管理工作的实际特点,得到N名半个多媒体管理员大于1名多媒体管理员的问题解决思路,提出了招募