教科版2019信息技术必修1数据与计算第4单元计算与问题解决4.3 初识非数值计算教学设计0
- 格式:docx
- 大小:38.73 KB
- 文档页数:6
教科版2019信息技术必修1数据与计算第4单元计算与问题解决4.1 算法及其特征教学设计【教材分析】程序设计是给出解决特定问题程序的过程。
程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。
算法是程序设计中的核心,算法依赖程序设计语言来实现。
程序设计语言有较大的局限性,不能用来解决所有类型的问题,人们要根据所需解决的问题不同而选择不同的语言,而语言本身也在不断变化和更新。
因此,语言具有不稳定和变化更新快的特征;算法则比较稳定,它与描述算法的语言无关,可以在更长的时间内发挥作用。
程序设计语言只要多实践多使用就能熟能生巧,算法则需要比较深入的理论基础知识,必须经过严格的科学训练。
基于以上认识,程序设计语言知识可以作为一种技能来培养,程序设计方法可以作为一个规则来遵循,算法可以作为科学方法来传授,这样才能适应时代的需要,跟上技术的飞速发展。
通过前面单元的学习,我们可以认为学生具备初步编写程序的简单技能,如基本的输入输出语句、选择结构和循环结构的语句实现、列表及文件的初步操作等。
本项目既要唤醒学生已有的技能,又要让学生初识算法,因此在项目及活动设计时,抛开晦涩难懂的概念和语法,不做内容上的堆积和罗列,采用了生动有趣的活动形式,每个活动中会涉及到一个或几个知识点。
代码不是最终目的,而是作为载体,让学生初步了解程序设计的基本方法,在面对实际问题的时候,可以换一种思维,找到有效的算法。
本节的项目“软件开发社招新”主要包含“探讨面试题的解决方案”和“求解‘谁是冠军’”两个任务,包含4个活动。
任务一的重点在已有知识和技能的唤醒,任务二的重点是最基本算法思想的介绍。
【教学建议】通过本项目的教学应让学生了解程序设计的基本方法和基本流程,利用学生感兴趣的实例,让学生感觉程序设计并不是遥不可及的,而是人机对话的一种方式,让学生带着轻松的心情,在游戏中学习,在学习中游戏。
以活动为中心,增加拓展类知识,兼顾到不同层次学生的需求。
《非数值计算》作业设计方案(第一课时)一、作业目标本作业旨在帮助学生理解非数值计算的基本概念,掌握常用计算工具和方法,以及如何使用这些工具和方法解决实际问题。
二、作业内容1. 实践操作:选择一种常用的计算工具(如Excel、Python 等),模拟一个简单的非数值计算任务,如统计一组数据、绘制图表等。
任务难度可根据学生掌握程度进行调整。
2. 阅读理解:阅读一篇关于非数值计算的科普文章,回答其中涉及的问题。
这些问题可以是文章中提出的疑惑,也可以是对文章内容的进一步解释和思考。
3. 案例分析:针对一个具体的非数值计算问题(如数据分析、人工智能应用等),分析问题背景、涉及的计算方法和工具,并给出解决方案。
解决方案可以是文字描述或简单的代码实现。
三、作业要求1. 作业应在规定时间内完成,并提交电子版作业文档。
2. 实践操作部分需展示所选工具的使用过程和结果,并附上相关说明和注释。
3. 阅读理解部分需回答正确率不低于80%。
4. 案例分析部分需详细描述问题背景、计算方法和工具选择,并给出合理解决方案。
解决方案应包括必要的代码实现和注释。
四、作业评价1. 作业评价将根据完成质量、正确率、创新性等方面进行评分。
2. 学生可参考教师提供的参考答案自行检查作业完成情况,如有疑问可与教师沟通解决。
3. 评价结果将作为学生平时成绩的参考之一。
五、作业反馈1. 学生提交作业后,教师将对作业进行批改,并及时将反馈结果通知学生。
2. 对于作业中存在的问题,教师将提供指导和建议,帮助学生更好地理解和掌握相关知识。
3. 学生可针对作业反馈提出疑问,与教师进行交流和讨论,共同提高教学质量。
在实践操作部分,学生需要选择一种常用的计算工具并展示其使用过程和结果。
教师可以通过观察学生的操作过程和结果来评估学生对该工具的理解和掌握程度。
在阅读理解部分,教师需要评估学生对非数值计算的基本概念和常用计算工具的理解程度。
在案例分析部分,教师需要评估学生是否能够针对实际问题选择合适的计算方法和工具,并给出合理的解决方案。
《非数值计算》作业设计方案(第一课时)一、作业目标本作业旨在帮助学生理解非数值计算的基本概念,了解计算机在处理非数值数据方面的应用,并掌握一些基本的编程技巧和方法。
二、作业内容1. 编程任务:编写一个简单的程序,用于模拟计算机中的二进制数到十进制数的转换。
要求使用编程语言(如Python)编写程序,并输入一组二进制数,输出对应的十进制数。
2. 查阅资料:在互联网上搜索并阅读关于计算机非数值计算的相关文章或书籍,了解计算机在处理非数值数据方面的应用,并记录自己的心得体会。
3. 小组讨论:与同学组成小组,讨论计算机在非数值计算方面的优势和局限,以及如何更好地应用计算机处理非数值数据。
三、作业要求1. 按时提交程序代码和相关资料,确保内容真实有效。
2. 程序代码应符合编程规范,逻辑清晰,易于理解。
3. 查阅资料和小组讨论中,应积极参与,认真思考,提出有建设性的观点和建议。
4. 作业字数不少于500字,包括心得体会和小组讨论的总结。
四、作业评价1. 程序代码的评价:根据编程规范和逻辑清晰度,对提交的程序代码进行评价,指出优点和不足之处。
2. 查阅资料的评价:根据阅读的文章或书籍的质量和心得体会的深度,对查阅的资料进行评价。
3. 小组讨论的评价:根据小组讨论的参与度、观点的提出和总结的质量,对小组的表现进行评价。
五、作业反馈1. 在作业提交后,将及时对学生的作业进行批改和反馈,指出存在的问题和改进的建议。
2. 对于普遍存在的问题,将在课堂上进行讲解和讨论,加深学生对非数值计算的理解。
3. 鼓励学生在课堂上分享自己的作业心得和体会,促进师生之间的交流和互动。
通过本次作业,学生将能够了解计算机在非数值数据方面的应用,掌握一些基本的编程技巧和方法,同时培养自主学习和团队合作的能力。
此外,通过小组讨论和心得体会的撰写,学生将能够更好地理解和应用所学知识,为后续学习打下坚实的基础。
作业设计方案(第二课时)一、作业目标本次作业旨在帮助学生进一步理解非数值计算的基本概念,掌握基本的数据处理方法,并能够应用这些方法解决实际问题。
教科版2019信息技术必修1数据与计算第4单元计算与问题解决4.4 综合问题的解决教学设计教材分析基于核心素养的教学,要符合课标的规定要求,又要在此基础上有所建构与创新;要充分体现学科思维,又能促进学生核心素养的全面、均衡发展;既保证知识技能的系统性,又注重项目与活动对学生创新意识与核心素养的驱动。
从知识、技能和综合素质方面锻炼自己,培养综合能力和创新意识是中学生职业规划中很重要的内容。
以项目为情景,以任务为目标,以活动为载体,使学生具有分析算法、设计算法和实现算法的初步能力,让学生通过实践将书本知识转化为解决实际问题的能力。
针对一个实际需求,将一个复杂的问题分解成若干较为简单的问题,从而提高开发简单实用系统的初步能力。
把基础知识、基本概念和应用程序开发有机地结合起来,通过对具体案例或任务的分析,引出了Python模块中pygame模块的应用,介绍了应用软件的程序设计方法。
任务驱动型教学能激发学生学习兴趣,提高学生的动手能力和解决问题的能力,达到事半功倍的效果。
本节我们围绕项目“接福游戏”展开学习,体验软件开发的流程,感受综合问题的处理方法,本项目主要包含“基于需求,分解任务”和“组装程序,测试运行”两个任务。
教学建议在关注生活趣味的同时,更关注学生的实际认知发展水平。
高中生的形式逻辑思维比较发达,但辩证逻辑思维能力有待加强。
考虑学生已有的知识和经验(包括生活经验与社会经验),也应注意其经验对课程知识及思维发展的支持程度和水平。
开发流程按顺序可以划分为:需求分析;软件的总体结构设计和模块设计;程序开发和调试;运行维护等。
在教学过程中,让学生了解面向需求的常用的软件设计方法,培养学生分析问题,整体把握、关注细节的能力,训练学生的综合问题解决能力;在解决复杂问题时,要学会将复杂问题分解成难度较小的小问题,一一突破,小问题解决了,大问题就迎刃而解了。
本节的游戏项目是一个较大的工程,我们将它分解为:显示窗体,窗体上显示物体,物体怎样运动,怎样使物体连续运动等多个易于解决的小问题,便于学生理解和掌握,提高学生战胜复杂问题的信心。
教科版2019信息技术必修1数据与计算第4单元计算与问题解决4.3 初识非数值计算教学设计教材分析强调“项目—任务—活动”结构与核心素养达成的一体化设计思想,强调在项目的真实情境下,通过任务的达成,展开一系列活动,在活动过程中通过搭建思维支架,不断建构知识,发展思维,使得生活、学习、知识技能、思维发展浑然一体,最终促进学生核心素养的全面、均衡发展。
“项目—任务—活动”式结构不是一个静态的结构,它反映了学生知识建构与思维生成的动态过程。
知识建构、思维发展乃至核心素养的形成都是在特定情境中围绕活动而自然生成的。
如果说本单元4.1为模仿阶段,4.2为形象思维阶段,4.3就是抽象思维阶段。
本项目的重点应是基本思想和方法的教学,要能够恰当地引导,就能够使学生准确地领悟思想,从而较好地掌握基本方法。
分治是最常用的算法设计思想,查找是算法中最常见的操作,递归是算法在实现时的常用手段。
本节我们将围绕项目“生活中的算法”展开学习,尝试用计算机的视角去解决实际问题。
本项目主要包含“巧翻字典”和“玩转‘汉诺塔’游戏”两个任务。
任务一主要介绍分治中最经典的二分思想;任务二借助汉诺塔游戏重在介绍递归思想及算法实现。
教学建议针对学生的认知水平及认知习惯,通过引导、启发、设问等方式,为学生设置真实项目或问题情境,在活动中为学生知识建构关键点和思维生发关键点搭建思维支架,使学生在自主探究或解决问题的过程中产生较强的学习动机,在不断发现中习得知识、发展思维、提升能力。
在该课程的教学方法上,应以程序设计的实例带动语言知识的学习,把程序设计当作科学方法的训练,把语言知识的应用作为技能的培养,全面推行“模仿——形象思维——抽象思维”三个由浅入深的阶段的教学。
学生的主要活动是积极思考、广泛交流、主动探究。
他们学到的不仅仅是新知识,更重要的是学会了解决问题的方法,知道了什么时候、在什么地方去应用所学的知识。
任务一通过巧翻字典的情境引出二分查找的思想,分治的思想学生很容易理解,理解二分查找也不是难点,算法的实现需要给学生充足和时间和必要的帮助。
教科版2019信息技术必修1数据与计算第4单元计算与问题解决4.2 数值计算教学设计【教材分析】采用“提出问题—分析问题—引入新知识—解决问题—总结提高”的编写模式,通过每一个典型的、针对性强的、贴近现实的案例,把相关的基本概念、解题的基本方法和思路传授给学生,从而使学生形成深刻、形象、牢固的记忆,对启发思维、激励热情、提高学习效率起到重要作用。
程序设计不仅仅是让学生掌握一两门计算机语言,而是要让学生学习程序设计的基本概念和方法、掌握编程的技术,更重要的是培养学生逻辑思维和逻辑推理能力、自学能力、动手能力、分析问题和解决问题的能力、创新意识和创新能力。
数值计算作为计算数学的主要部分和关键环节,研究求解数学模型的理论及其算法和软件实现。
算法针对实际问题求得符合精度的近似解,并对算法的收敛性、稳定性和误差进行分析、计算。
数值计算方法的内容十分丰富,它在科学技术中正发挥着越来越多的作用,许多计算领域的问题,如计算物理、计算化学、计算经济学等都可归结为数值计算问题。
本节我们将围绕项目“与数学公式面对面”展开,探讨在中学数学领域中常见的数学公式与程序设计的有趣结合。
本项目主要包含“绘制数学函数曲线”和“求解‘裴波那契’数列”两个任务。
用学生熟悉的数学问题作为活动的主线,任务一重在实现学科知识的融通,将数学函数与计算机模拟相融合,突出计算机在问题解决过程中的地位和作用。
任务二重在介绍数值计算中最常用的计算方法——迭代。
【教学建议】在本项目的教学过程中,对于基本概念、基本理论不应过度强调,可通过案例演示,激发学生学习的积极性和求知欲;同时要向学生介绍该项目的学习方法,强调学习程序设计是培养耐心、毅力、务实、严谨的学习方法的有效途径。
建议教师选取一些可激发学生思考的问题,在共同讨论、探究的过程中体验基本概念和基本理论。
在教学过程中,引导学生学习数值计算方法内容的同时,训练和提升自己的计算思维能力,重视并积极探索如何通过程序来解决实际问题,并将其引入到教学内容中,推荐采用理论求解与计算机模拟相融合的教学模式。
教科版2019信息技术必修1数据与计算第4单元计算与问题解决4.3 初识非数值计算教学设计教材分析强调“项目—任务—活动”结构与核心素养达成的一体化设计思想,强调在项目的真实情境下,通过任务的达成,展开一系列活动,在活动过程中通过搭建思维支架,不断建构知识,发展思维,使得生活、学习、知识技能、思维发展浑然一体,最终促进学生核心素养的全面、均衡发展。
“项目—任务—活动”式结构不是一个静态的结构,它反映了学生知识建构与思维生成的动态过程。
知识建构、思维发展乃至核心素养的形成都是在特定情境中围绕活动而自然生成的。
如果说本单元4.1为模仿阶段,4.2为形象思维阶段,4.3就是抽象思维阶段。
本项目的重点应是基本思想和方法的教学,要能够恰当地引导,就能够使学生准确地领悟思想,从而较好地掌握基本方法。
分治是最常用的算法设计思想,查找是算法中最常见的操作,递归是算法在实现时的常用手段。
本节我们将围绕项目“生活中的算法”展开学习,尝试用计算机的视角去解决实际问题。
本项目主要包含“巧翻字典”和“玩转‘汉诺塔’游戏”两个任务。
任务一主要介绍分治中最经典的二分思想;任务二借助汉诺塔游戏重在介绍递归思想及算法实现。
教学建议针对学生的认知水平及认知习惯,通过引导、启发、设问等方式,为学生设置真实项目或问题情境,在活动中为学生知识建构关键点和思维生发关键点搭建思维支架,使学生在自主探究或解决问题的过程中产生较强的学习动机,在不断发现中习得知识、发展思维、提升能力。
在该课程的教学方法上,应以程序设计的实例带动语言知识的学习,把程序设计当作科学方法的训练,把语言知识的应用作为技能的培养,全面推行“模仿——形象思维——抽象思维”三个由浅入深的阶段的教学。
学生的主要活动是积极思考、广泛交流、主动探究。
他们学到的不仅仅是新知识,更重要的是学会了解决问题的方法,知道了什么时候、在什么地方去应用所学的知识。
任务一通过巧翻字典的情境引出二分查找的思想,分治的思想学生很容易理解,理解二分查找也不是难点,算法的实现需要给学生充足和时间和必要的帮助。
任务二汉诺塔问题,重点应落在对问题状态的描述及状态间的转移上。
在4.2中回顾了函数的定义及调用方式,为递归函数设计做了很好的铺垫。
教学目标1.运用合适的算法形成解决问题的方案。
2.了解算法设计中的分治思想,并运用二分查找解决实际问题。
3.体验递归算法,并结合具体问题开展编程实践。
教学重点、难点运用合适的算法形成解决问题的方案。
算法设计中的分治思想,并运用二分查找解决实际问题。
递归算法,并结合具体问题开展编程实践。
教学方法讲授法,演示法,任务引导法教学过程第一课时引入在数值计算中,我们更多考虑的是“数”,但计算应该是一个更广泛的领域。
计算的对象可以是自然界和人类社会的一-切事物。
更确切地说,计算的对象可以是某些信息,如数据、文字、语言、图形、知识、事物的运动过程及思维过程。
如果说数值计算主要探讨数学问题的话,那么非数值计算更多探讨“算法”问题。
数据是普遍存在的,甚至可以说对象即数据;对数据的分析、处理都属于计算的范畴。
选择--个合适的算法,设计出平实、易读、易懂的程序,正确、高效地解决实际需求,是计算的本质。
新课许多程序设计问题的解决,要依靠标准算法和现成的模型,更需要编程者开阔思路,提出一些新颖、巧妙的算法,或者设计出一些独特的数据结构来支撑和实现算法。
在解决非数值类计算问题时,一些基础的思维方式可以借鉴,如分治、递归、解析等。
本节我们将围绕“生活中的算法”项目,尝试用“算法的眼睛”看待生活,用“算法的思维”去解决实际问题。
本项目主要包含“巧翻字典”和“玩转‘汉诺塔’游戏”两个任务。
任务一巧翻字典活动统计查字典次数查汉字、查单词、查成语等查字典的活动,早已成为我们学习生活的一部分。
假设一本字典大约1000页,目标信息在第328页。
请在表4.3.1中记录你的翻页过程,和同学们比一比,看谁翻的次数最少。
有的同学翻得特别快,他们用了什么方法呢?原来看似普通的翻字典,不仅是一门技术,更是一种能力,是算法思想的体现。
分治策略分治的设计思想,是将一个难以直接解决的大问题,分割成一些较小的同类问题,各个击破,最终达到解决问题的目的。
二分查找实际上就是分治策略的一种典型运用。
二分查找二分查找又叫折半查找,该方法主要将数列有序排列,采用跳跃式的方式查找数据。
以递增数列为例,先以中点位置的元素作为比较查找的基本算对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。
每一次比较后都可以将查找区间缩小一半。
二分查找是一种高效的查找方法。
它可以明显减少比较次数,提高查找效率。
在一个有n个元素的有序序列中,利用二分查找大约需要log2n次。
但是,二分法查找的前提条件是被查找的数据必须是有序的。
实践操作在翻页过程中借助两个书签,划定目标所属范围,然后翻到两个书签的中间位置。
每次目标区域都更新为原来的“二分之一”,当数据范围缩小到只有1个数的时候肯定能得到问题的解。
1000以内的页码,最多翻10次肯定能找到解。
有了翻字典的实际操作经验,我们来尝试完善下面的二分查找程序。
x=int(input("请输人要查找的数据:"))step=0 #记录查找次数flag1=1 #目标区域左边界flag2=1000 #目标区域右边界while( ): #区间数据范围小于1则结束循环mid= #中间值#查找次数加1if mid>x:#右边界前移elif mid<x:#左边界后移else:break #恰好找到目标数据,退出循环print("查找次数为:",step) #输出次数问题:如果输入的数据不在范围内,会出现什么结果呢?程序还需要在哪些地方进行完善?大家一起来试试吧。
算法研究涉及计算机科学和数学中令人着迷的话题。
面对海量数据的处理,算法选择得当,解决问题时便游刃有余;算法选择不当,则可能出现程序运行错误、运行时间长或占用空间大等问题。
所有这些都促使我们深入学习,感悟化繁为简的编程魅力。
第二课时任务二玩转“汉诺塔”游戏活动剖析问题, 设计游戏策略“汉诺塔”游戏源于一个古老的印度传说。
如图4.3.1所示,木板上有A 、B 、C 三根杆,A 杆上有若干木盘,规定每次移动一个木盘,且小的木盘只能叠在大的木盘上面。
请设计算法,用尽可能少的次数把所有木盘从A 杆全部移到C 杆上。
要使移动次数尽可能少,必须排除无效移动。
现在有8个木盘,不妨先以3个木盘为例,观察一下移动的过程。
请在图4.3.2中 记录木盘移动的过程。
递归递归是计算科学领域中一种重要的计算思维模式。
它既是一种抽象表达的手段,也是一种问题求解的重要方法。
直接或间接地调用自身的方法称为递归。
可以将递归简单类比为具有自相似性重复的事物。
图4.3.3所示 就是递归的一-种形象表示。
在数学与计算机领域中,递归函数是指用函数自身来定义该函数的方法。
如著名的斐波那契数列“1, 1, 2, 3, 5, 8,13,..”,以递归定义为⎩⎨⎧2)>(n 2)-F(n +1)-F(n 2)=n 1=1(n =F(n)或递推关系是递归的重要组成,而边界条件是递归的另一要素,它保证递归能在有限次的计算后得出结果,而不会产生无限循环的情况。
面对一个大规模复杂问题的求解,递归的基本思想是把规模较大的问题层层转化为规模较小的同类问题求解。
对递归而言,递推与回归,二者缺一-不可。
结合分治策略,递归也可用“分”“治” “合”三个字概括。
(1)分:将原问题分解成k 个子问题。
(2)治:对这k 个子问题分别求解。
如果子问题的规模仍然不够小,则将其再分解为k 个子问题,如此进行下去,直到问题足够小时,就很容易求出子问题的解。
(3)合:将求出的小规模问题的解合并为一个更大规模问题的解,自下而上逐步求出原问题的解。
实践操作移动3个木盘的方法是:根据木盘叠放规则,要使A杆上最大的木盘(记为x)移动到C 杆上(子问题1,如图4.3.2中的第4步) ,必须先把x上方的所有木盘移动到B杆上(子问题2,如图4.3.2中的前3步),然后再将B杆上所有的木盘移动到C杆上(子问题3,如图4.3.2中的后3步)。
3个木盘的移动问题成功解决了,就可以解决更多木盘的移动问题了。
将n个木盘从A 杆移动到C杆,需要借助中间的B杆。
只要超过一个木盘,在移动过程中,总会存在起始杆、过渡杆及目标杆的问题。
因此,定义函数时,用到了4个参数: hanoi(n,s,m,l), n表示需要移动的盘子数量,s表示盘子的起始杆,m表示中间过渡杆,l表示目标杆,如图4.3.4所示。
让我们根据图示一起完善程序吧。
def hanoi(n,s,m,t):#定义一个函数,将n个木盘从s借助m移到tif n==1: #当只有一个木盘时,直接从起始杆移动到目标杆print( )else:#将前n-1个木盘借助t从s移到mhanoi( ,s, , )print( )#将最下面的木盘从s移到t#将m上的n-1个木盘借助s移到thanoi( , , ,t )#主程序n=int(input( '请输人木盘的个数: '))#调用函数,将n个木盘从A借助B移动到Chanoi(n,'A','B','Cc)运行程序,输入3个木盘,记录程序运行结果。
将一个难以直接解决的大问题,分割成一些规模较小的同类问题,以便各个击破,分而治之,此为分治。
分治与递归就像一-对孪生兄弟,经常同时应用在算法设计中,并由此产生了许多高效的算法。
练习1.结合4.2的知识,计算“汉诺塔”游戏移动的次数。
2.尝试用二分法求解x3- x2+x- 1=0。
操作提示:令f(x)=x3-x2+x- 1,针对有解的单调区间(a,b),取xo=(a+b)/2:若f(a)*f(x0)<0,则f(x)在(a, x)内有解;若f(xo)*f(b)<0,则f(x)在(Xo, b)内有解;若|f(x0)|< 10^*,则x为方程的解。
拓展知识迭代与递归的关系迭代算法与递归算法都需要重复执行某些代码,两者既有区别又有着密切的联系。
迭代是重复反馈过程的活动,其目的通常是逼近所需目标或结果。
递归是重复调用函数自身。
递归中,遇到满足终止条件的情况时逐层返回。
迭代则通常使用计数器结束循环。
迭代程序可以转换成等价的递归程序。
以上--节中计算斐波那契数列第n项的值为例,程序间的转换如表4.3.2所示。
拓展训练项目:编程之美活动:比比谁更快活动描述:选取两种或三种排序的算法,对比它们的效率,分析优缺点。
1.选题理由排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。