程建娜

在数字时代,数据既是信息的载体,也是计算机加工的对象。信息技术的发展,在某种意义上就是构造、存储、计算相应数据的能力的发展。从应用角度看,信息技术已然成为人们日常生活、学习和工作中不可或缺的工具,我们习惯利用计算机来解决各式各样的问题,可以说,“程序驱动”的数字化工具不仅改变了我们的生活与学习方式,而且改变着我们的认知结构与思维品质。因而,在“算法与程序实现”模块内容的教学中,教师要引领学生在学习处理数字化环境下复杂性问题的过程中,深层次理解这些技术工具,知道它们的工作方法和应用流程,明白其中的数据是如何进行“计算”的,并能用计算机编程方式进行问题求解,从中发展计算思维。在学习中,既要强调对算法这一关键学科知识的学习,也要注重形成运用计算思维解决问题的关键能力的培养。实际上,无论算法的学习还是计算思维的培养,都不是孤立存在的,也不能单独教学习得,它们渗透在计算机解决问题的过程中。我们要有意识地帮助学生亲历计算机解决问题的全过程,从分析问题、设计算法并编程实现的过程中,逐步培养计算思维。

理解用计算机解决问题的全过程,把握算法与程序的关系

用计算机解决问题需要借助编程的方式实现,但这并不等同于简单的程序设计的教学,不是纯粹的代码编程。在教学中,教师要首先帮助学生理解用计算机解决问题的一般过程与方法,明晰这种问题解决方式的特点和优势,从中把握算法、程序和计算思维之间的关系,以便在后续的学习中迁移应用。

例如,教师可以通过常见问题解决的两种方式对比,如比较“路口交通指挥问题”中交警用手势指挥交通和用“程序控制”的信号灯指挥交通的异同,帮助学生理解解决问题的方式并不唯一。使用人工方式进行问题处理时,人们主要是借助解决同类问题的经验寻找求解方法,带有较强的尝试、试探的意图,一种方法行不通,就换一种方法。而用计算机解决问题时,则需要在问题分析的基础上,具体规划求解方案并设计出具体的算法步骤,然后根据制订的这些步骤编写程序,最终实现问题的自动化求解。在对比分析中,教师要引导学生归纳出其中问题解决的共性过程,即需要先对问题进行分析,随后隐性或显性地设计出解决方案,然后再进行问题解决,并且在此过程中还要根据解决的结果随时修正过程。同时教师要让学生在对比中对用计算机解决问题的过程有更深入的理解,计算机解决问题并不神秘,其中最为核心的关键环节是算法的设计,计算机需要按照制订好的算法步骤执行相应的指令,而编写程序实际上就是实现算法的过程。

通过这样的分析,学生很容易区分“算法”和“程序”,理解二者间的关系,进而能透过生活中技术应用的“现象”认识其“本质”。同时,理解了用计算机解决问题的过程,学生也就不会再过于纠结程序设计语言的选用,不会畏难于某些代码的编写。实际上,算法与程序的学习,并不是要求学生系统地掌握程序设计专业知识,更不是要把他们培养成编程专家,而是希望学生在体验计算机解决问题的过程中,能真切认识到从“工业社会思考与解决问题方式”到“信息社会思考与解决问题方式”变革的内在原因,理解当今数字化世界的运转方式,能有意识且负责任地使用信息化工具,掌握信息化社会中解决问题的一般方法。

亲历用计算机解决问题的全过程,关注问题分析与算法设计

在以往的编程解决问题的教学中,经常会出现这样的状况:学生对问题还没有理解清楚,还没思考出具体的问题解决步骤,就急于编写程序代码。对他们而言,写出代码就等于解决了问题,但实际上这种学习的结果是学生一直在盲目地修改代码,而问题却最终也无法得到很好地解决,能力也没得到发展,甚至产生学习挫败感。因此,在教学中教师一定要引导学生关注对问题的分析和设计算法的过程,所谓“谋定而后动”,只有明确要做什么和确定好如何做,后面的编程实现才能“水到渠成”。

1.分析问题,关注问题的可计算处理

在解决问题前,教师要帮助学生弄清楚需要计算机解决什么问题,即“做什么”的问题,并确定解决问题的相关因素,如已知信息、求解目标和条件关系等。问题分析的过程可以采用抽象的方法提取问题关键细节,并转化成可计算的问题。此时,不同的问题对应的抽象模型可能不同。例如,分析红灯变绿灯问题,可以从问题解决过程入手,确定出初始状态、中间状态和终止状态;而分析画50个同心圆问题,可以从已知条件(同心圆的个数和相邻同心圆的半径差)出发,明确与求解目标之间的隐含关系(同心圆的圆心相同)。

2.分解问题,着眼于问题解决的全过程

当要解决的问题比较复杂时,需要引导学生先将问题按照求解过程分解为若干个相对独立的功能,然后再对各个特定功能分别进行算法设计(描述出详细的操作步骤)。在分解问题时可以采用“分而治之”的方法,按照問题求解过程或者系统功能分解为若干功能模块(每个模块实现每个模块的特定功能)。其中,如果分解的某些功能仍然比较复杂,还可再进行细分,从而建立多层的结构体系。通过这样的问题功能分解,可以帮助学生着眼于问题解决的全过程,先全局后局部,先整体后细节,先抽象后具体,分层逐步解决。教学中需要注意的是,问题分解的角度并不唯一,不同的角度所得的功能分解的结果不尽相同,我们要允许和鼓励学生进行多样化的问题思考。

3.聚焦算法设计,突出算法在问题解决中的核心作用

在以往的教学中,有的教师经常会弱化算法的学习,将其作为某一知识内容,学习后就不再过多关注,不太强调其在编程解决问题中的作用,甚至在后面的编程解决问题中也常常脱离算法的设计,直接进行程序语句的编写。其实,每个程序都是用来解决特定的计算问题。其中,计算处理数据的过程是程序最重要的组成部分,也是算法实现的关键。因此,在教学中,教师要引导学生重视问题解决的算法设计,要先将算法设计并表示出来。实际上,设计算法的过程,也是显性化、明确化地展现问题求解的过程,是学生思维结果的可视化呈现,便于其直观分析问题解决过程的合理性和有效性,对后续编写程序、实现问题解决起到至关重要的作用。

教学中,我们还要注意问题解决的算法设计许多时候不是一蹴而就的,而是迭代完善的。教师要根据具体问题,通过提问、追问等方式,逐步引导学生思考,最终实现问题解决。例如,在编写体重指数“计算器”程序的过程中,可以先让学生编写“计算体重指数”的程序,从中理解“输入数据—处理数据—输出数据”的算法步骤的执行过程。然后提出问题:如何实现对用户的体重指数给出等级判定?从而引出迭代任务“评定体重指数等级”,这时学生先要对不同用户的体重等级情况进行不同的分支表示,用流程图描述出该算法,再根据分支情况使用适合的程序语句进行编程。最后,教师还可以引导学生自己发现程序还存在哪些问题,有学生会提出:该程序运行一次只能判定一个人的体重指数等级,不能实现多次判断。由此,进入程序的再次迭代完善,教师引导学生思考哪些操作需要重复进行,如何控制重复的次数,从而进入循环结构的学习,并利用循环语句完成最终的体重指数“计算器”程序。这样的学习过程,既体现了真实的问题解决过程,即不断发现问题、解决问题,也让学生在潜移默化中理解了迭代的思想。

4.理解算法的多样性及其对问题解决效率的影响

教学中,教师既要强调问题解决中算法设计的多样、解决同一问题可能会有不同的算法、不同算法求解的过程可能有所不同,又要引导学生分析不同的算法在问题解决效率上的差异,同时还要突出计算机程序实现算法自动化的优势,帮助学生理解数字化工具在解决问题中的核心特征。例如,“从若干个相同的零件中找出质量较轻的零件”活动的问题求解算法并不唯一,可以用一一比较的枚举法,也可以采用二分法。显然,当零件个数n足够大,如n=10000时,后一种方法解決问题的速度更快。这里,教师也可以提供程序,让学生通过运行程序,填写实验报告,具体感受算法的效率,从而加深对算法在计算机解决问题中作用的认识。

借助真实的问题情境,更自如地参与到用计算机解决问题的过程中

在教学中,教师要有意识地提供一些生活中真实的数字化应用案例,引导学生思考其中问题解决的核心,将算法和程序的学习与具体的生活应用场景相关联。因而,学生不再是仅仅学习纯粹的知识技能,更重要的是对真实情境中技术实现原理进行剖析,从而揭开数字化工具背后的“神秘面纱”。学生不再是被动地使用技术,而是能够真正理解这些技术的实现,从而更自如地应用技术来解决问题。例如,在学习程序三种基本结构时,可以让学生尝试解释某些现实场景应用背后的技术实现思想,如空调的定时开关机、车库的自动抬杆、音乐播放器反复播放歌单曲目等,帮助学生理解其中蕴含的顺序、选择和循环思想。再如,在学习解析算法时,可以基于真实情境提出案例分析,如手环中给出的运动消耗卡路里值是如何计算出来的?打车软件中预估车费是怎么实现的?通过生活实际应用,分析其中程序功能实现的关键技术,学生在认识算法、编程实现的同时,也进一步提高对数字化工具背后技术思想和方法的感悟,甚至激发进一步改进完善技术的兴趣。

计算思维是一种处理信息问题的重要思考方式,是未来科技创新的重要助推力,更是21世纪学生自主发展的核心素养之一。发展计算思维,能让学生像信息技术专家一样思考,理解信息社会问题,并成长为合格的“数字公民”。信息技术的学习虽然包括了技能学习,但不等同于单纯的操作训练,还必须让学生掌握必要的应用方法,以便在不同情境下,能应用这些技能解决问题。因此,在教学中不仅要强调学生动手参与实践,尝试编写程序、调试运行代码,更要注重引导学生进行问题的分析和算法的设计,让其“综合应用”各种知识(甚至跨学科知识)进行真实“问题解决”,使其亲历编程解决问题的全过程,重视对用计算机解决问题过程中方法的分析与梳理。其中无论是用抽象的方法分析问题,用分而治之的思想分解问题,用算法步骤描述问题解决过程,还是编写程序实现自动化求解,甚至调试运行程序等,都是计算思维能力发展的核心要素,都需要学生在亲历计算机解决问题的全过程中逐步掌握。

用计算机解决问题时 为什么要用计算思维,在亲历计算机解决问题的全过程中发展计算思维...相关推荐

  1. 用计算机解决问题时 为什么要用计算思维,在问题解决活动中培养计算思维

    金婧 计算思维作为信息技术学科的核心素养之一,出现在新修订的课程标准中.本文以计算思维的"形式化""模型化""自动化"特点为依据,以< ...

  2. 访问别人的计算机时默认密码是多少,计算机访问时怎样设定访问密码.doc

    计算机访问时怎样设定访问密码 计算机访问时如何设置访问密码? 计算机是xp的,已经连接到工作组中,怎样设置可以使在工作组中其他的计算机要打开我的共享文件时需要访问密码 首先取消默认的"简单共 ...

  3. 计算机长时间不黑屏怎么设置,当计算机长时间不移动鼠标时,如何设置黑屏?如何将计算机设置为长时间不出现黑屏?...

    相关问题 如何设置计算机黑屏时间?如果W7电脑长时间不移动,为什么不保持黑屏? 右键单击右下角任务栏中的电源图标,更改计划设置,"关闭显示器"和"使计算机进入睡眠&quo ...

  4. 计算机工作时电磁,电磁辐射影响计算机主板的模拟计算

    摘要: 在现代电子设备中,随着电路密度和复杂度的迅速增大以及时钟频率的不断提高,印制板电路(PCB),多芯片组件(MCM)等电路系统的电磁辐射效应也明显加剧,导致了较为严重的电磁兼容(EMC)和电磁干 ...

  5. 计算机与计算思维读后感论文,计算机与计算思维读后感.docx

    "计算机与计算思维"读后感 科学界一般认为理论科学以数学为基础,实验思维以物理等学科为基础,计算思维以计算机科学为基础.而在计算机发展日新月异的今天,计算机与计算思维也在飞速的发展 ...

  6. 使用计算机先按ON键,小学四年级上册数学课件:《用计算器计算》

    [导语]课件是根据教学大纲的要求,经过教学目标确定,教学内容和任务分析,教学活动结构及界面设计等环节,巧设课件,激发兴趣,可以给数学学习动力:情注文本,感受数学体温,则可以让数学学习成为生活需要.下面 ...

  7. 学前教育怎么利用计算机思维,在早期教育中,培养孩子计算思维的4个方法

    原标题:在早期教育中,培养孩子计算思维的4个方法 随着技术的迅速发展,操作这些技术已经成为一项关键的技能,教学生如何编码.提问和操作数字设备在学校日益普及.但是编码是理论学习的一种应用.在学生能够有效 ...

  8. 大学计算机理解和运用计算思维知识总结,计算思维论文,关于基于计算思维的本科计算机专业课教学方法相关参考文献资料-免费论文范文...

    导读:这是一篇与计算思维论文范文相关的免费优秀学术论文范文资料,为你的论文写作提供参考. (哈尔滨华德学院 黑龙江哈尔滨 150025) 摘 要:该文阐述了计算思维的思想内涵及其重要性,并提出了目前在 ...

  9. 描述一下普适计算时代中的计算机,《课程总结报告-普适计算及其应用》.doc

    <课程总结报告-普适计算及其应用> 课程总结报告 Course Paper 报告编号 Paper No:1306010512 撰写日期 Date: 2013-12-3 计算机新技术课程总结 ...

最新文章

  1. 使用easyexcel导入时间数据转换成Data的坑
  2. html5 canvas实现图片玻璃碎片特效
  3. mysql 20小时内,mysql中关于date(Y-m-d H:i:s) 入库慢8小时的解决
  4. IdentityServer4 4.x版本 配置Scope的正确姿势
  5. 关于JAVA_HOME, CLASSPATH和PATH的设置
  6. mysql访问60s出现timeout_websocket 每60s报WsHttpUpgradeHandler.timeoutAsync
  7. java sendredirect报错_java 中sendredirect()和forward()方法的区别
  8. CentOS7发布ASP.NET Core网站
  9. 基于HTML5实现的在线3D虚拟试衣系统(试衣间)解决方案
  10. 无线网卡、以太网驱动消失,“没网络”并且重新下载驱动仍然出现感叹号(windows仍在设置此设备的类配置,代码56)解决方法,绝对绝对有效
  11. 计算机 教学活动设计方案,青岛出版社初中信息技术 七年级下册第二单元 第5课 设计活动策划方案 教学设计...
  12. XIO: fatal IO error 25 (Inappropriate ioctl for device) on X server “localhost:11.0“
  13. 狂神说 | Spring完整版笔记
  14. 百度地图坐标拾取系统自定义页面
  15. 显示你个性的鼠标指针(转)
  16. Windows环境下32位汇编语言程序设计 相关资料
  17. java springboot分销商城小程序源码
  18. 百度首页设计(HTML)
  19. 一款关联钉钉打卡作弊软件非法获利近 500 万元,CEO 被判刑 5 年 6 个月!
  20. 基于javaweb的酒店客房管理系统(java+jsp+html+bootstrap+jquery+servlet+mysql)

热门文章

  1. 基于Android宠物领养救助系统app
  2. linux系统调用创建无名管道,无名管道系统调用
  3. 阿里云视频点播播放出错,控制台访问出现code:4400
  4. pythonl list去子集
  5. “电脑下乡”必须坚持创新之路
  6. yarn ignore-engines
  7. NBA直播 1223.html,犹他爵士官方:NBA传奇主教练杰里-斯隆去世,享年78岁
  8. 经典龙格-库塔法(四阶龙格-库塔法)求解求一阶常微分方程相应的特解的Python程序
  9. 万能码码上付给你一个惊喜(安全扫码专业委员会)
  10. 图论(图、树基本知识)