
教科版2019信息技术必修1数据与计算
第4单元计算与问题解决4.3 初识非数值计算教学设计
教材分析
强调项目任务活动结构与核心素养达成的一体化设计思想,强调在项目的真实情
“——”
境下,通过任务的达成,展开一系列活动,在活动过程中通过搭建思维支架,不断建构知识,
发展思维,使得生活、学习、知识技能、思维发展浑然一体,最终促进学生核心素养的全面、
均衡发展。“项目—任务—活动”式结构不是一个静态的结构,它反映了学生知识建构与思
维生成的动态过程。知识建构、思维发展乃至核心素养的形成都是在特定情境中围绕活动而
自然生成的。
如果说本单元4.1为模仿阶段,4.2为形象思维阶段,4.3就是抽象思维阶段。本项目的
重点应是基本思想和方法的教学,要能够恰当地引导,就能够使学生准确地领悟思想,从而
较好地掌握基本方法。
分治是最常用的算法设计思想,查找是算法中最常见的操作,递归是算法在实现时的常
用手段。
本节我们将围绕项目“生活中的算法”展开学习,尝试用计算机的视角去解决实际问题。
本项目主要包含“巧翻字典”和“玩转‘汉诺塔’游戏”两个任务。任务一主要介绍分治中
最经典的二分思想;任务二借助汉诺塔游戏重在介绍递归思想及算法实现。
教学建议
针对学生的认知水平及认知习惯,通过引导、启发、设问等方式,为学生设置真实项目
或问题情境,在活动中为学生知识建构关键点和思维生发关键点搭建思维支架,使学生在自
主探究或解决问题的过程中产生较强的学习动机,在不断发现中习得知识、发展思维、提升
能力。
在该课程的教学方法上,应以程序设计的实例带动语言知识的学习,把程序设计当作科
学方法的训练,把语言知识的应用作为技能的培养,全面推行“模仿——形象思维——抽象
思维”三个由浅入深的阶段的教学。
学生的主要活动是积极思考、广泛交流、主动探究。他们学到的不仅仅是新知识,更重
要的是学会了解决问题的方法,知道了什么时候、在什么地方去应用所学的知识。
任务一通过巧翻字典的情境引出二分查找的思想,分治的思想学生很容易理解,理解二
分查找也不是难点,算法的实现需要给学生充足和时间和必要的帮助。
任务二汉诺塔问题,重点应落在对问题状态的描述及状态间的转移上。在中回顾了
4.2
函数的定义及调用方式,为递归函数设计做了很好的铺垫。
教学目标
1.运用合适的算法形成解决问题的方案。
2.了解算法设计中的分治思想,并运用二分查找解决实际问题。
3.体验递归算法,并结合具体问题开展编程实践。
教学重点、难点
运用合适的算法形成解决问题的方案。算法设计中的分治思想,并运用二分查找解决实
际问题。递归算法,并结合具体问题开展编程实践。
教学方法
讲授法,演示法,任务引导法
教学过程
第一课时
引入
在数值计算中,我们更多考虑的是“数”,但计算应该是一个更广泛的领域。计算的对
象可以是自然界和人类社会的一-切事物。更确切地说,计算的对象可以是某些信息,如数
据、文字、语言、图形、知识、事物的运动过程及思维过程。如果说数值计算主要探讨数学
问题的话,那么非数值计算更多探讨“算法”问题。
数据是普遍存在的,甚至可以说对象即数据;对数据的分析、处理都属于计算的范
畴。选择- - 个合适的算法,设计出平实、易读、易懂的程序,正确、高效地解决实际需求,
是计算的本质。
新课
许多程序设计问题的解决,要依靠标准算法和现成的模型,更需要编程者开阔思路,提
出一些新颖、巧妙的算法,或者设计出一些独特的数据结构来支撑和实现算法。在解决非数
值类计算问题时,一些基础的思维方式可以借鉴,如分治、递归、解析等。本节我们将围绕
“生活中的算法”项目,尝试用“算法的眼睛”看待生活,用“算法的思维”去解决实际问
题。
本项目主要包含“巧翻字典”和“玩转‘汉诺塔’游戏”两个任务。
任务一巧翻字典
活动统计查字典次数
查汉字、查单词、查成语等查字典的活动,早已成为我们学习生活的一部分。假设一本
字典大约1000页,目标信息在第328页。请在表4.3.1中记录你的翻页过程,和同学们比
一比,看谁翻的次数最少。
有的同学翻得特别快,他们用了什么方法呢?原来看似普通的翻字典,不仅是一门技术,
更是一种能力,是算法思想的体现。
分治策略
分治的设计思想,是将一个难以直接解决的大问题,分割成一些较小的同类问题,各个
击破,最终达到解决问题的目的。二分查找实际上就是分治策略的一种典型运用。
二分查找
二分查找又叫折半查找,该方法主要将数列有序排列,采用跳跃式的方式查找数据。以
递增数列为例,先以中点位置的元素作为比较查找的基本算对象,如果要找的元素值小于该
中点元素,则将待查序列缩小为左半部分,否则为右半部分。每一次比较后都可以将查找区
间缩小一半。二分查找是一种高效的查找方法。它可以明显减少比较次数,提高查找效率。
在一个有n个元素的有序序列中,利用二分查找大约需要log次。但是,二分法查找的前
2
提条件是被查找的数据必须是有序的。
实践操作
在翻页过程中借助两个书签,划定目标所属范围,然后翻到两个书签的中间位置。每次
目标区域都更新为原来的“二分之一”,当数据范围缩小到只有1个数的时候肯定能得到问
题的解。1000以内的页码,最多翻10次肯定能找到解。
有了翻字典的实际操作经验,我们来尝试完善下面的二分查找程序。
x=int(input("请输人要查找的数据:"))
step=0 #记录查找次数
flag1=1 #目标区域左边界
flag2=1000 #目标区域右边界
while( ): #区间数据范围小于1则结束循环
mid= #中间值
#查找次数加1
if mid>x:
#右边界前移
elif mid #左边界后移 el: break #恰好找到目标数据,退出循环 print("查找次数为:",step) #输出次数 问题:如果输入的数据不在范围内,会出现什么结果呢?程序还需要在哪些地方进行完善? n 大家一起来试试吧。 算法研究涉及计算机科学和数学中令人着迷的话题。面对海量数据的处理,算法选择得 当,解决问题时便游刃有余;算法选择不当,则可能出现程序运行错误、运行时间长或占用 空间大等问题。所有这些都促使我们深入学习,感悟化繁为简的编程魅力。 if f(x0)==0: break print("解为:",x0) input("运行完毕,请按回车键退出...") 5.计算“汉诺塔”游戏移动的次数。 参考答案: def f(n): if n==0: return 0 el: return 2*f(n-1)+1 x=int(input("请输入塔的个数:")) print("需要移动",f(x),"次") input("运行完毕,请按回车键退出...")

本文发布于:2023-10-29 00:55:44,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/169851214425476.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:新教材】教科版(2019)高中信息技术必修一教案.doc
本文 PDF 下载地址:新教材】教科版(2019)高中信息技术必修一教案.pdf
| 留言与评论(共有 0 条评论) |