
教材分析:
本单元主要内容是算法思想,算法就是问题解决的方法和步骤,并使其与计算机程序相相结合,充分发挥计算机的独特优势来帮助我们简化运算方法,提高工作效率。
学习目标:
1、理解算法的概念和特征,理解计算机解决问题(即算法实现)的过程。
2、学会利用自然语言、流程图来描述算法;能针对具体问题选择适合的算法。
3、理解算法优化的重要意义,能初步分析算法的效率,形成算法优化思想并将其用于指导自身的学习和生活。
教学重难点:
重点:算法的概念和特征,理解计算机解决问题(即算法实现)的过程;利用自然语言、流程图来描述算法;能针对具体问题选择适合的算法。
难点:计算机解决问题(即算法实现)的过程。
课时安排:3课时。
教学措施:
1、通过课上小组合作探究学习,配合上机操作练习,达到学习、巩固、提高的目的。
2、参考网络教程,进行直接快速学习,以提高学生自主学习的能力。
3、通过学习优秀案例,操作计算机的能力,提高学生的分析能力,充分发挥计算机的独特优势来帮助我们简化运算方法,提高工作效率。
第1课 算法的概念
教材分析:
本课主要学习生活中的算法,算法的概念和特征,计算机处理问题的原理。理解算法思想,掌握分析处理问题的一般方法和步骤。提高学生分析处理问题的能力。
学习目标:
1、掌握算法的概念和特征。
2、掌握计算机处理问题的基本原理,理解计算机执行算法的过程。
3、理解算法在生活、学习中的重要意义;通过对算法的学习感受问题分析的严谨性,养成解决问题的良好习惯。
教学重难点:
重点:法的概念和特征;计算机处理问题的基本原理,理解计算机执行算法的过程。
难点:计算机处理问题的基本原理,计算机执行算法的过程。
课时:1课时。
教学措施:
小组合作自主探究学习、通过上机操作练习,加深对算法的概念和特征,计算机处理问题的基本原理的理解。
教学过程:
一、导入新课
阅读课本第1页“丁渭修皇宫”。谈一谈感受。
学生阅读,找学生来谈一谈感受。
再看课本2页“曹冲称象”,曹冲巧妙地给大家称了体重,这种方法的原理是什么呢?曹冲称象的具体步骤是怎样的?(参照“如何把大象装进冰箱)
学生思考后回答。
二、探究学习
活动一:生活中的算法
在日常学习和生活中,做事需要遵循一定的方法和步骤,解数学题,购物消费,洗衣做饭等等都有一套解决的方法和步骤。这种解决生活中问题的方法和步骤,我们称之为“生活中的算法”。
算法:我们把做某一件事或者完成某项工作的方法、步骤或程序称为“算法”。要确立算法,先明确问题要求,然后做需求分析,在需求分析的基础上确定问题解决的方法,最后列出解决问题的具体步骤。
在计算机科学中,算法是很重要的概念。它指明了问题的处理、求解过程,是对给定问题解决方而完整的描述。生活中的许多算法是和数学结合在一起的。很多时候,算法形成的过程就是数学推理与演算的过程。设计算法就是寻求解法。
练习:
一家三口在户外野餐。只有一个烤肉架,正好能容纳两片烤肉。已知烤一片肉的两面需要20分钟,怎样才能在最短的时间内烤完3片肉?列出你的步骤。
借助计算机,生活中的算法在信息技术领域得到广泛实现。如国际象棋、围棋、五子棋等算法规则在计算机博弈中得到了应用;越来越多传统的人力密集型生产工序正被具有精密智能控制的机器设备所代替;能够理解人的语法规则、与人进行各种交流的机器人得到迅猛发展。
活动二:计算机处理问题的原理
计算机具有运算速度快,计算精确高、存储容量大、能自动运行特点。根据计算机的上述特点,人们设计了丰富的软件,从而使计算机被广泛应用于社会各领域,用于解决人们遇到的问题。那么,计算机是怎样解决问题的呢?
按照冯·诺依曼存储程序的原理,计算机在执行程序时必须先将要执行的相关程序和数据存入内存储器中。在执行程序时,CPU根据当前程序指针寄存器内取出指令并执行指令,然后再取出下一条指令并执行,如此循环下去,直到程序执行到结束指令时才停止执行。
计算机运算的工作原理如图所示:
人工智能是研究用计算机模拟人的思维过程和智能行为(如学习、推理、思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似人脑智能的计算机。该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等,目的是使计算机能实现更高层次的应用。
“阿尔法狗”(AlphaGo)是第一个战胜人类围棋世界冠军的人工智能程序,由谷歌(Google)公司的研发团队开发。
练习:搜索一下相关“阿尔法狗”相关资料,谈谈对这件事的看法。
活动三:算法的特征
“特征”用于描述事物的突出特点,是对单一事物或一组事物特性的抽象。生活、学习中存在形形色色的算法,这些算法除了应用于解决具体问题这一个特性外,还具有一些共同特征。认识算法的特征有利于我们加深对算法概念的理解。
一个算法必须具备哪些性质呢?
1、算法必须是正确的,即对于任意的一组输入总能得到预期的输出。如果一个算法只是对合理的输入才能得到预期的输出,而在异常情况下却无法预料输出的结果,那么它就不是正确的。
2、算法必须由一系列具体步骤组成的,并且每一步都能够被计算机所理解和执行,而不是抽象的模糊的概念。
3、每个步骤都有确定的执行顺序,即“上一步在哪里”、“下一步是什么”都必须明确,无二义性。
4、无论算法有多复杂,都必须在有限步之后结束并终止运行,即算法的步骤必须是有限的。在任何情况下,算法都不能陷入无限循环中。
算法都有哪些特征呢?
1、输入项
2、输出项:问题解决必须有结果
3、有穷性:算法必须能在执行有限个步骤之后终止,每一步都可在有穷时间内完成。
4、确定性:算法中每一条指令必须有确切的含义,并且在任何条件下,算法只有唯一的一条执行路径。
5、可行性:每个步骤原则上可以精确运行,能在有限时间内完成。
练习:
用算法特征的相关知识对“曹冲称象”的算法进行分析。
三、课堂总结
这节课,我们主要了解了生活中的算法,算法的性质和特征,计算机处理问题的原理。(让学生说出具体内容)
四、实践创新
怎样把长颈鹿放到冰箱里?说出具体步骤。
五、评价
| 评价项目 | 评价 | 小组议价 | ||||
| 一般 | 良好 | 优秀 | 一般 | 良好 | 优秀 | |
| 理解算法的概念 | ||||||
| 掌握计算机解决问题的原理 | ||||||
| 掌握算法的特征 | ||||||
第1课 算法的概念
一、生活中的算法
二、计算机处理问题的原理
三、算法的特征
教学反思:
第2课 算法的描述
教材分析:
本课主要内容是算法的常见描述方法,用自然语言描述算法、用流程图描述算法和用计算机语言描述算法。通过对算法的描述,体会算法对解决问题的重要性,养成清晰描述问题的习惯。
学习目标:
1、了解算法的常见描述方法。
2、通用自然语言、流程图来描述日常生活中的算法,能用计算机计算机语言描述一些简单算法。
3、通过对算法的描述,体验描述算法对解决问题的重要性,养成清晰描述问题的习惯。
教学重难点:
重点:通用自然语言、流程图来描述日常生活中的算法,能用计算机计算机语言描述一些简单算法。
难点:用计算机计算机语言描述算法。
课时:1课时。
教学措施:
通过小组合作自主探究学习,配合教师讲解,结合大量生活学习事例,加深对自然语言、流程图来描述算法,用计算机计算机语言描述算法的理解,体验描述算法对解决问题的重要性,养成清晰描述问题的习惯。
教学过程:
一、新课导入
上节课我们学习了算法的概念,哪位同学可以说说什么是算法?有哪特征?
看课本第7页“农夫过河”,怎样才把狼、羊、菜安全带到对岸呢?
学生思考后回答。
那么我们怎么把这个算法表达出来呢?
二、学习探究
活动一:用自然语言描述算法
人们日常生活中使用的语言被称为“自然语言”,如汉语、英语、日语等。通常,人们使用自然语言来描述遇到的各种问题以及问题解决的方法或步骤。这种使用自然语言描述解决问题的方法称为“用自然语言描述算法”。
练习:用自己的语言清晰地描述一下整个过程。
第1步:农夫带羊过河。
第2步:农夫返回。
第3步:农夫带狼过河。
第4步:农夫带羊返回。
第5步:农夫放下羊,带菜过河。
第6步:农夫返回。
第7步:农夫带羊过河。
算法描述是指对设计出的算法用一种恰当的方式进行详细的描述,以便与他人交流。算法可采用多种描述语言来描述,各种描述语言在对问题的描述能力方面存在一定的差异。自然语言描述的算法通俗易懂,易于被大众所理解,但一般比较冗长,容易产生歧义,有时会导致算法执行的不确定性。当问题比较复杂时,用自然语言描述的算法则显得不够条理性,甚至有些混乱。
活动二:用流程图描述算法
图形化表示的信息具有形象、直观的特点,人们除了自然语言描述算法外,还常借助图形使算法描述更清晰。这种以特定的图形符号和说明表示算法的图,称为“算法流程图”。它由一套标准的图形符号构成,结合一定的文字可描述问题解决的方法和流程。
常用的流程图符号及其功能:
| 符号 | 符号名称 | 功能说明 |
| 起止框 | 表示算法的开始和结束。 | |
| 处理框 | 表示执行一个步骤。 | |
| 判断框 | 表示要根据条件选择执行路线。 | |
| 输入输出框 | 表示需要用户输入或由计算机自动输出的信息。 | |
| 流程线 | 指示流程的方向。 |
1、用自然语言表达算法步骤。
2、确定每一个算法步骤所包含的逻辑结构,并用相应的程序框表示,得到该步骤的程序框图。
3、将所有步骤的程序框图用流程线连接起来,并加上终端框,得到表示整个算法的流程图。
程序流程图又称“程度框图”,是用统一规定的标准符号描述程序运行具体步骤的图形表示。程序框图通过对输入、输出数据和处理过程的详细分析,将计算机的主要运行步骤和内容标识出来,是进行程序设计的最基本依据。它的质量直接关系到程序设计的质量。
练习:
1、根据课本第9页“水费计算”流程图,用自然语言表达水费计算的方法。
2、完成课本第10页,医生给病人注射青霉素或头孢类抗生素的流程图。
活动三:用计算机语言描述算法
自然语言和流程图描述的算法能够被人们所理解,但当遇到需要精确控制和大量运算的问题时,人工运算就有些费时费力,而且容易出错,这时,我们可以利用计算机强大的运算功能和逻辑控制能力快捷地解决问题。由于计算机不能直接理解自然语言和流程图描述的算法,我们需要把算法用计算机能够“理解“的语言——计算机语言表示出来并“告诉”计算机,这个过程就是用计算机语言描述算法的过程,也就是编程。用计算机语言描述算法,主要是把算法解释为计算机能够识别、接受的指令代码。计算机程序主利用计算机语言将算法表达出来的具体形式。
阅读课本“百钱买百鸡”,观察用Python语言编写的解决“百钱买百鸡”问题的程序。
将算法描述成一个计算机可执行的程序的语言有多种,如logo、Scratch、Java、C++、Python等。不同语言具有不同的语法和特点,编程时,尽量根据任务需要和个人能力水平选择合适的语言。
三、课堂总结
这节课,我们学习了算法的描述方法,用自然语言描述算法、用流程图描述算法和用计算机语言描述算法。
四、实践创新
有任意3个整数,由键盘输入,输出其中最大的数。画出该问题的算法流程图。
五、评价
| 评价项目 | 评价 | 小组议价 | ||||
| 一般 | 良好 | 优秀 | 一般 | 良好 | 优秀 | |
| 应用自然语言描述算法 | ||||||
| 应用流程图描述算法 | ||||||
| 简单运用计算机语言描述算法 | ||||||
第2课 算法的描述
一、用自然语言描述算法
二、用流程图描述算法
三、用计算机语言描述算法
教学反思:
第3课 算法的优化
教材分析:
本课主要讲述生活中算法的优化,排序的算法优化和查找的算法优化。其中、排序的算法优化和查找的算法优化是计算机科学中算法研究的重点。
学习目标:
1、理解算法优化的意义。
2、学会用不同的算法来解决问题,并能对算法进行优化。
3、学会多视角分析问题,能利用高效的方法解决问题,养成细致缜密思考问题的慌里习惯。
教学重难点:
重点:排序的算法优化和查找的算法优化。
难点:排序的算法优化和查找的算法优化。
课时:1课时。
教学措施:
通过小组合作自主探究学习,配合教师讲解,结合大量生活学习事例,加深对自然语言、流程图来描述算法,用计算机计算机语言描述算法的理解,体验描述算法对解决问题的重要性,养成清晰描述问题的习惯。
教学过程:
一、导入新课
齐国的大将田忌,很喜欢赛马,有一回,他和齐威王约定,要进行一场比赛。各自的马都可以分为上,中,下三等。比赛的时候,齐威王总是用自己的上马对田忌的上马,中马对中马,下马对下马。由于齐威王每个等级的马都比田忌的马强一些,所以比赛了几次,田忌都失败了。
有一次,田忌又失败了,觉得很扫兴,比赛还没有结束,就垂头丧气地离开赛马场,这时,田忌抬头一看, 人群中有个人,原来是自己的好朋友孙膑。孙膑招呼田忌过来,拍着他的肩膀说: “我刚才看了赛马,威王的马比你的马快不了多少呀。” 孙膑还没有说完,田忌瞪了他一眼: “想不到你也来挖苦我!” 孙膑说:“我不是挖苦你,我是说你再同他赛一次,我有办法准能让你赢了他。” 田忌疑惑地看着孙膑: “你是说另换一匹马来?” 孙膑摇摇头说: “连一匹马也不需要更换。” 田忌毫无信心地说: “那还不是照样得输!”孙膑胸有成竹地说: “你就按照我的安排办事吧。” 齐威王屡战屡胜,正在得意洋洋地夸耀自己马匹的时候,看见田忌陪着孙膑迎面走来, 便站起来讥讽地说: “怎么,莫非你还不服气?” 田忌说:“当然不服气,咱们再赛一次!”说着,“哗啦”一声,把一大堆银钱倒在桌子上,作为他下的赌钱。 齐威王一看,心里暗暗好笑,于是吩咐手下,把前几次赢得的银钱全部抬来,另外又加了一千两黄金,也放在桌子上。齐威王轻蔑地说:“那就开始吧!” 一声锣响,比赛开始了。 孙膑先以下等马对齐威王的上等马,第一局田忌输了。齐威王站起来说: “想不到赫赫有名的孙膑先生,竟然想出这样拙劣的对策。” 孙膑不去理他。接着进行第二场比赛。孙膑拿上等马对齐威王的中等马,获胜了一局。 齐威王有点慌乱了。 第三局比赛,孙膑拿中等马对齐威王的下等马,又战胜了一局。这下,齐威王目瞪口呆了。 比赛的结果是三局两胜,田忌赢了齐威王。 还是同样的马匹,由于调换一下比赛的出场顺序,就得到转败为胜的结果。
从算法角度讲,孙膑的策略是一种经过优化的算法。
二、学习探究
活动一:生活中的算法
我国著名数学家华罗庚先生在19年所著的《统筹方法平话》里举了一个“烧水泡茶”的例子,怎样才能在最短的时间喝上茶水呢?
“条条大路通罗马”出自《罗马典故》,是指达到同一个目的可以用多种不同的方法。但方法不同,解决问题的效率也会有差别。在解决实际问题时,我们要尽可能选择高效的算法。
统筹方法是一种安排工作进程的数学方法。它的应用范围广泛,在企业管理、生产建设中,在关系复杂的科研项目的组织与管理上,都可以应用。华罗庚先生将数学方法应用于实际,筛选出以提高工作效率为目标的优选法和统筹法,改进了工作的流程,带来显著的社会效益。统筹方法与算法相结合,可以优化算法流程,为数据的高效利用提供理论和实践支持。
练习:
一位商人有9枚银币,其中有1枚略轻,是假银币,你能用天平(不用砝码)将假银币找出来吗?请给出最优化的算法。
活动二:排序的算法优化
所谓“排序”,就是使一串记录按照其中的某个或者关键字的大小递增或递减排列的操作。排序的算法有很多,对空间的要求及其时间效率也不尽相同。生活中存在很多排序的例子,如图书馆的图书索引卡,字典里字词的排列顺序等,这些按一定规则的排序使事物排列更有规律,方便我们查找与使用信息。
1、冒泡排序法
计算机有许多对数据排序的方法,其中“冒泡排序法”是排序的常用方法。以给出的5个数据为例,在比较时,如果第1个数与第 2个数比较,则交换两个数的位置,接着比较第2个数与第3个数。依此类推,直到最后两个数比较完毕。数据从左到右比较一遍为一轮排序,每轮排序都把需要排序的数据列中最大的数据交换到最后位置。这种排序将一直进行到全部数据都有序、没有交换为止。
练习:
①、按照“冒泡排序”算法,完成课本第16页“试一试”。
②、模拟计算机使用冒泡排序法对数据“11、-2、4、+9、-6”进行排序,写出每轮排序的结果。
2、快速排序法:
快速排序法是对冒泡排序法的一种改进。它的基本思想是:
①把一组需要排序的数据分成两部分,让其中一部分的所有数据都比另外一部分的所有数据小。
②按第1步方法对这两部分数据分别进行多次快速排序,直到完全将数据按要求排序。
实践证明,快速排序法是所有排序算法中最高效的一种。它采用了“分治”的思想:先保证列表的前半部分的思想:先保证列表的前半部分都小于后半部分,然后分别对前半部分和后半部分排序。这样样整个列表就有序了。
练习:
当一回图书管理员,把学生还回来的书(100本)放入书架,写出算法过程。
活动三:查找的算法优化
查找是在大量信息中寻找一个特定的信息元素。在计算机应用中,查找是常用的基本算法。用关键字标识一个数据元素,查找时根据给定的某个值,在表中确定一个关键字的值等于给定值的数据元素。在计算机中进行查找的方法是根据表中的记录组织结构确定的。快速高效地查找到需要的信息,是对计算机查找功能的一个重要要求。
1、顺序查找是从第一个元素开始一个一个向下查找,如果有和目标一致的元素,查找成功;如果到最后一个元素仍没有目标元素,则查找失败。
2、二分查找则是先找有序数列的中点,利用中点将范围分为两部分,再经比较不断找中点并一步一步逼迫目标,最后按要求确定一个较小范围。
三、课堂总结:
这节课我们主要学习了生活中的算法优化,还有排序算法优化和查找算法优化,虽然这些内容,有些听的似懂非懂的,这不要紧,咱们的主要目的是让大家领会算法优化的思想,提高学习和工作效率,做到事半功倍。
四、实践创新
用冒泡排序法对下列7个数字进行排序,并写出排序过程。
81 35 97 23 48 16 55
五、评价
| 评价项目 | 评价 | 小组议价 | ||||
| 一般 | 良好 | 优秀 | 一般 | 良好 | 优秀 | |
| “烧水泡茶”问题的分析与优化 | ||||||
| 运用冒泡排序法对简单数列排序 | ||||||
| 简单运用计算机语言描述算法 | ||||||
第3课 算法的优化
一、生活中的算法
二、排序的算法优化
三、查找的算法优化
教学反思:
第二单元 Python程序设计
教材分析:
Python是计算机程序设计语言,是一款开源软件。由于Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。例如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用Python语言讲授。众多开源的科学计算软件包都提供了Python的调用接口,例如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。而Python专用的科学计算扩展库就更多了,例如如下3个十分经典的科学计算扩展库:NumPy、SciPy和matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图功能。因此Python语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。
学习目标:
1、了解程序设计的基本知识;知道Python程序的3种基本结构——顺序结构、分支结构和循环结构;了解模块化程序设计的思维和方法。
2、通过程序设计,熟练掌握顺序、选择、循环3种结构的特点:能够使用相关语句完成程序设计;掌握常用函数的使用,学习自定义函数的含义及其一般使用方法。
3、通过分析与解决生活中常见问题,掌握程序的设计方法和技巧;体验程序设计强大功能,逐步产生对程序设计的的兴趣;在程序设计地过程中,了解计算机的工作原理,能用计算思维解决生活中的问题。
教学重难点:
重点:了解程序设计的基本知识;知道Python程序的3种基本结构——顺序结构、分支结构和循环结构。
难点:掌握顺序、选择、循环3种结构的特点:能够使用相关语句完成程序设计。
课时安排:7课时。
教学措施:
1、通过课上小组合作探究学习,配合上机操作练习,达到学习、巩固、提高的目的。
2、参考网络教程,进行直接快速学习,以提高学生自主学习的能力。
3、通过学习优秀案例,操作计算机的能力,提高学生的分析能力,充分发挥计算机的独特优势来帮助我们简化运算方法,提高工作效率。
第4课 初识Python
教材分析:
本课主要内容是介绍Python程序设计语言的启动,简单的计算机,新建程序,添加注释等内容,是Python程序设计语言的开篇。Python的语法简洁、类库丰富,是免费开源软件。
学习目标:
1、初步了解Python编程环境,认识简单的数据类型。
2、学会在Python交互模式下使用print()函数,掌握Python程序的新建、设计、保存、运行的一般流程,并熟悉注释的使用方法。
3、初步感受程序设计的魅力,在调试程序过程中养成耐心细致的好习惯。
教学重难点:
重点:学会在Python交互模式下使用print()函数,掌握Python程序的新建、设计、保存、运行的一般流程,并熟悉注释的使用方法。
难点:学会在Python交互模式下使用print()函数,掌握Python程序的新建、设计、保存、运行的一般流程,并熟悉注释的使用方法。
课时:1课时。
教学措施:
通过小组合作自主探究学习,配合教师讲解,结合大量生活学习事例,加深对Python程序的新建、设计、保存、运行的一般流程,并熟悉注释的使用方法,学会在Python交互模式下使用print()函数。
教学过程:
一、导入新课:
今天我们来学习Python程序设计,Python英文意思是蟒,大蛇的意思,在这里,它是程序设计语言,是一款开源软件。由于Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。
二、学习探究
活动一:启动Python
启动Python IDLE,编程实现打印输出简单的字符串:“Welcome to Python World!”
启动Python IDLE:点“开始”→“所有程序”→“Pyhon 3.6” →“IDLE(Python 3.6)”。
认识Python界面:
菜单栏:file文件 Edit编辑 Shell函数 Debug调试 Options设置 Window窗口 Help帮助。
启动Python在使用时注意以下几点:
(1)“>>>”是命令提示符,输入相应的命令即可执行程序。
(2)Print()()是一个Python内置函数,主要作用是打印输出。
(3)在输入命令时,使用的标点符号是英文符号,否则会出现语法错误。
(4)程序中只能使用“()”,没能使用“[ ]”、“{}”,且必须成对出现。
练习:
用Python编程实现打印输出“体胖还须勤锻炼,人丑就要多读书”。
学生练习,巡视检查学生的语法错误。
活动二:简单的计算
Python程序中,还可以进行科学计算,幂运算的优先级比较高,其次是乘法、除法、取余和取整,最后是加减法,如果需要改变运算顺序,可以使用括号“()”或多层括号,但不可以使用“[]”。
常用的运算符号:加法+ 减法- 乘法* 除法/ 取余% 取整// 幂运算** 。
练习:
在Python交互模式下,计算下列数学表达式
1、7.25×1.8-100÷0.16
2、3.14×38+14.165
3、求365÷7的余数
4、对365÷7结果取整
5、[(-3.52+6.15) ×150+15.5] ÷3.2
在Python交互模式下,这些数学表达式变成Python表达式:
学生操作练习。
第5小题
活动三:新建程序
新建一个程序文件,并保存为“dream”。
点菜单栏“file” →“New file”新建文件→Untitled窗口→点本窗口菜单栏“file” →“Save AS”另存为→在对话框中输入“dream”。
录入代码
保存:菜单栏中“file” →“Save”。
运行程序:菜单栏中“run” →“Run Module”命令,或使用快捷键F5。
注意事项:
程序就是命令的集合。根据需求设计一组语句,执行程序并保存文件。这就是编程。在Python程序中,可以使用汉字作为字符串,但需要注意使用英文状态下的引号、括号等符号。
学生输入练习并保存运行。
活动四:添加注释
同学对这个程序还比较陌生,如果程序有注释就容易理解了。现在给这个程序添加注释吧。
Python程序的单行注释可使用“#”后面加注释语句。所有注释的内容只作为设计者阅读使用,不会被程序执行。要使用多行注释需用前后各3个引号将注释的内容包含在内,其中的内容就可以分为多行。
三、课堂总结
这节课,我们认识了Python程序设计语言的界面环境,练习了Python的简单使用,还很多关于Python程序设计的知识,我们会在今后几课慢慢学习。
四、实践创新
课本第26页,1、2两题。
五、评价
| 评价项目 | 评价 | 小组议价 | ||||
| 一般 | 良好 | 优秀 | 一般 | 良好 | 优秀 | |
| 熟练使用print语句 | ||||||
| 完整编写一个程序 | ||||||
| 合理使用注释 | ||||||
第4课 初识Python
一、启动Python
二、简单的计算
三、新建程序
四、添加注释
教学反思:
第5课 变量
教材分析:
变数或变量,是指没有固定的值,可以改变的数。变量以非数字的符号来表达,一般用拉丁字母。变量是常数的相反。变量的用处在于能一般化描述指令的方式。若果只能使用真实的值,指令只能应用于某些情况下。变量能够作为某特定种类的值中任何一个的保留器。
学习目标:
1、认识变量,了解变量在程序设计中的作用,认识基本的数据类型。
2、掌握变量的定义,赋值和调用的过程;学会使用输入函数进行交互式程序设计。
3、提高用程序解决生活中常见问题的能力。
教学重难点:
重点:变量的定义与应用。
难点:变量的定义,赋值和调用的过程;学会使用输入函数进行交互式程序设计。
课时:1课时。
教学措施:
通过小组合作自主探究学习,配合教师讲解,结合大量生活学习事例,加深对Python程序的新建、设计、保存、运行的一般流程,并熟悉注释的使用方法,学会在Python交互模式下使用变量,熟悉数据类型。
教学过程:
一、新课导入
在程序设计中,经常会听到变量这个词,在不同的程度设计环境,变量的用法也不一样。那么,什么变量呢?它有什么作用呢?
小组研究讨论,可在网上查找资料。
二、学习探究
活动一:用变量表示数
在Python程序中,变量就是一个标签符号,用标识符表示,用于暂时存储一个数据。定义变量时,需要先为其赋一个初始值。
Python 中的变量赋值不需要类型声明。
每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。
每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
等号(=)用来给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。
练习:
定义一个变量r,表示圆的半径,赋值为1.8。计算半径为r的圆的面积,并打印显示计算结果。
活动二:面积的计算
圆环的内圆半径r1=1.8,外圆半径r2=2,计算出圆环的面积。
圆环的面积=r2*r2*3.14-r1*r1*3.14
r1=1.8 #内圆半径
r2=2 #外圆半径
s=r2*r2*3.14-r1*r1*3.14
print("圆环的面积是:" ,s)
学生动手操作练习。
活动三:命名与保留字
在Python程序中,变量名使用标识符表示。标识符的命名有一定的规则。
1、标识符可以包括字母、数字、下划线,但数字不能作为标识符的开头。
2、系统关键字不能用作标识符。
3、在Python语言中,标识符是区分大小写的。
查看Python的保留字。
>>>import keyword
>>>print(keyword.kwlist)
练习:
输入查看保留字命令。
活动四:输入与数据类型
Input()与print()类似,是Python内置函数,主要用于数据的输入,结果返回一个字符串。括号内可以添加字符串参数作为提示语。
在Python语言中含有多种类型数据:字符串、数字、列表、元组、字典、集合。
Type()函数主要用于对象类型的查看。
练习:
完善程序,计算并显示圆环的面积。
三、课堂总结
本课主要学习了变量的定义,赋值和调用过程,使用输入函数进行交互式程度设计。
四、实践创新
完成课本第33页“实践创新”。
五、评价
| 评价项目 | 评价 | 小组议价 | ||||
| 一般 | 良好 | 优秀 | 一般 | 良好 | 优秀 | |
| 会定义变量,给变量赋值 | ||||||
| 掌握程序中使用变量 | ||||||
| 掌握输入函数的使用方法 | ||||||
第5课 变量
一、用变量表示数
二、面积的计算
三、命名与保留字
四、输入与数据类型
教学反思:
第6课 条件语句
教材分析:
本课主要内容是介绍程序的分支结构,了解Python语言语句的缩进,if语句的语法格式,提升学生的逻辑思维能力,体会算法及思想。
学习目标:
1、认识程序的分支结构,了解Python语言语句的缩进的特点。
2、熟练应用条件表达式,掌握if语句的语法格式。
3、能用条件语句编写程序解决生活中的问题,提升逻辑思维能力,进一步体会算法及其思想。
教学重难点:
重点:Python语言语句的缩进的特点,掌握if语句的语法格式。
难点:Python语言语句的缩进的特点。
课时:1课时。
教学措施:
通过小组合作自主探究学习,配合教师讲解,结合大量生活学习事例,加深对Python程序的分支结构,语言缩进的特点,条件表达式,if语句的语法格式等理解,用条件语句编写程序解决生活中的问题,提升逻辑思维能力。
教学过程:
一、新课导入
在我们的生活中有很多事情都需要根据条件作出判断和选择,在程序设计中,分支结构可以帮助我们依据条件控制程序的流程,使程序的条理更清晰。这节课,我们就来学习程序设计中的条件语句。
二、学习探究
活动一:比较两个数的大小的算法
任意输入两个整数x和y,按从小到大的顺序输出显示。写出这一程序的算法。
比较大小的算法主要分几步?每一步要做什么?
先用自然语言描述算法,再完成该算法的流程图。
比较大小的一般步骤:
1、输入x和y,转换整数类型。
2、比较x和y的大小。
3、如果x>y,则交换位置,否则不变。
4、显示x和y的值。
流程图:
分支结构:分支结构是程序根据条件判断而选择不同执行方式的一种程序结构。
练习:
生活中有哪些问题需要用到分支结构?分支结构和顺序结构有什么不同?
活动二:比较两个数的大小的程序
输入两个整数x和y,先判断大小。如果x>y,则交换位置。完成后,显示x和y的值。
1、如何比较两个数的大小?
2、如何交换两个数的位置?
if语句的一般格式:
if条件1:
语句1
elif条件2
语句2
elif条件3
语句3
…………
else:
其他
在条件语句中,elif和else是可选项。
在if条件语句后输入冒号“:”,下面的程序会强制缩进(一般为4字符),以表示一种从属的关系。如果程序不按规则缩进,将导致语法错误。
活动三:整数的四则运算
设计一个整数四则运算的程序,先输入两个整数x和y,再提示输入运算符号(+、-、*、/),然后根据运算符号进行计算,输出计算结果,否则提示错误。
1、判断“+、-、*、/”需要几个分支?
2、如何使用if语句控制程序的流程?说一说程序的算法。
四则运算参考程序:
根据算法设计,测试程序。
活动四:密码验证
在互联网高速发展的今天,密码的安全越来重要。
密码验证需要哪些步骤?需要判断的条件有什么?
密码判断程序中,既要判断用户名,又要判断密码,因此,必须两个条件都符合才可以进入系统。
使用if判断语句先判断用户名是否正确。如果正确,再判断密码是否正确。如果不正确,则进行错误提示。
使用判断语句的嵌套可以解决多重判断的问题,参考程序:
程序输入完成后,进行程序验证:
三、课堂总结
这节课,我们学习了程序的分支结构,了解Python语言语句的缩进,if语句的语法格式。并且练习了“四则运算”和“密码验证”的程序。
四、实践创新
课本第39页,实践创新。
五、评价
| 评价项目 | 评价 | 小组议价 | ||||
| 一般 | 良好 | 优秀 | 一般 | 良好 | 优秀 | |
| 掌握if语句的格式 | ||||||
| 了解分支结构的流程 | ||||||
| 理解语句缩进的作用 | ||||||
第6课 条件语句
一、比较两个数的大小的算法
二、比较两个数的大小的程序
三、整数的四则运算
四、密码验证
教学反思:
第7课 循环语句
教材分析:
本课主要介绍程序的循环结构,for循环和while循环的用法。循环变量在循环中的作用,range()函数等。体验计算机利用循环结构解决问题的方法和算法的巧妙运用。
学习目标:
1、认识循环结构,掌握for循环和while循环的用法。
2、理解循环变量在循环中的作用,能够熟练应用range()函数。
3、通过问题探究,体验计算机利用循环结构解决问题的方法,体验算法的巧妙运用。
教学重难点:
重点:for循环和while循环的用法。
难点:for循环和while循环的用法。
课时:1课时。
教学措施:
采用小组合作、自主探究的学习模式,配合老师讲解加例题分析练习,达到熟悉熟练使用循环语句的目的,来完成学习任务的。
教学过程:
一、新课导入
有一个皇帝的女儿不幸落水,被一个农夫救上来,皇帝问农夫想要什么以报答他的救女之恩。农夫指着旁边的一个国际象棋棋盘,对皇帝说:您在第一个格子里放一粒大米,在第二个格子里放2粒,在第3个格子里放4粒,在第4个格子里放8粒,以此类推,每一格子里的大米粒数都是前一格的两倍。就这样把这个格子都放好了,我就要这么多大米粒。皇帝听后,觉得农夫的要求很容易满足,就笑着满口答应下来。但是一个聪明的大臣告诉皇帝,把全德国生产的大米都拿来,也填不完这格……。
这是一道中学数学题,就是“等比数列求和”的问题。棋盘上个格子里总共究竟要放多少粒大米?其实是很容易计算出来的:设格里的大米粒数总和是S,则
S=1+2+4+8+……+263 (1)
(等号右边第项是2的63次方)
我们把(1)式等号两边都乘以2,等式仍然成立:
2S=2+4+8+……+263+2 (2)
(等号右边第63和项分别是2的63和次方)
(2)式等号右边从第一项开始到第63项,与(1)式等号右边从第二项开始到第项完全一样,所以,我们把(2)式等号两边分别减去(1)式等号两边,等式仍然成立,并且变成:
S=2-1 (3)
也就是说,棋盘上格里的大米共有“2的次方减去1”这么多粒, 即18,446,744,073,709,551,615粒。
有人用电子秤计量过,一公斤大米约有52000粒。
我们保守一点算,假设一公斤大米有216 = 65536粒,“2的次方减去1”这么多粒大米就有248公斤,2814亿吨。
从这个故事看到,复利的力量比原子核的力量还大!
二、学习探究
活动一:初识for循环
用“*”代替故事中的麦粒,每1行代表一格,第1格放1个,第2格放2个,第3格放3个……第格放个,设计程序,用“*”代替麦粒,按照这一规则打印出格的麦粒。
Range()函数表示产生一个序列,默认从0开始,range()则产生0—63行的一个序列,循环语句共执行次
使用for循环语句打印行“*”:
在for I in range(1,65)语句中,i是一个自定义变量,每次循环等于range序列中的一个数,直到循环结束。
活动二:棋盘与米粒
如果按照第1格放1粒,第2格放2粒,第3格放4粒,以后每格都是前一格的2倍,计算出格棋盘所放米粒的总数。
运行程序:
for循环语句的基本格式:
for<循环变量>in<遍历结构>:
<语句块>
练习:生活中还有哪些事例可以用for循环来解决?
活动三:恺撒密码
在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。这个加密方法是以罗马共和时期恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。
1、字符串是字符的序列表示,字符串中的每一个字符都可以用序号单独表示,比如定义一个字符串变量s,可以用序号表示该字符串的每个字符。字符串的序号从左至右第1个字符的序号为0,第2个字符的序号为1,以此类推。
2、在for循环语句中,遍历结构可以是range()函数、字符串、文件、列表、元组等可遍历的类型。
3、使用find()函数可检测字符串中是否包含子字符串str,如果包含子字符串,返回开始的索引值,否则返回-1。
练习:
1、定义一个字母表变量,使用find()函数查询字母“a”和“z”对应的序号。
2、完善恺撒密码的程序,完成后对程序进行测试
活动四:折纸测珠峰
珠穆朗玛峰简称“珠峰”,海拔约为8844米,是世界第一高峰。如果有一张足够大的纸(厚0.1毫米),对折多少次,纸张的厚度可以超过珠穆朗玛峰的高度?
在无法确定遍历结构时,可以使用while语句。根据条件进行循环,while循环的格式如下:
while<条件>:
<语句块1>
else:
<语句块2>
其中“条件”与if语句中的判断条件一样,结果为True或False。当条件为True时循环体重复执行,当条件为False时,循环终止。
练习:
编写“折纸测珠峰”程序并测试。
活动五:百钱买百鸡
百鸡问题是一个数学问题,出自中国古代约5—6世纪成书的《张丘建算经》,是原书卷下第38题,也是全书的最后一题,该问题导致三元不定方程组,其重要之处在于开创“一问多答”的先例。
题目要求:用100文钱买100只鸡,公鸡5文钱1只,母鸡3文钱1只,小鸡1文钱3只。在这100只鸡中,公鸡、母鸡、小鸡各是多少只?
练习:
设计程序,求出“百钱买百鸡”问题的所有组合并打印出结果。
三、课堂总结:
这节课,我们学习了for循环和while循环的用法。通过课本中的例子,加深了对for循环和while循环的用法的认识。
四、实践创新
完成课本第47页“实践创新”。
五、评价。
完成课本第48页“自我评价”。
板书设计:
第7课 循环语句
一、for循环
二、while循环
教学反思:
第8课 列表、元组和字典
教材分析:
本节主要内容是认识列表、元组、字典的数据结构,认识它们之间的联系和区别,定义和调用操作。
学习目标:
1、认识列表、元组和字典的数据结构,理解它们之间的联系和区别。
2、学会列表、元组和字典的定义和调用,掌握简单的操作函数。
3、在程序设计中,根据需要灵活使用列表、元组和字典表达、处理数据。
教学重难点:
重点:认识列表、元组和字典的数据结构,学会简单的定义和调用。
难点:根据需要灵活使用列表、元组和字典表达、处理数据。
课时:1课时。
教学措施:
采用小组合作、自主探究的学习模式,配合老师讲解加例题分析练习,达到熟悉熟练使用循环语句的目的,来完成学习任务的。
教学过程:
一、新课导入
如果用变量表示很多数据,将会增加程序的复杂性,如果使用列表、字典等数据类型表示就会更清晰,也更容易处理。
二、学习探究
活动一:认识列表
列表(list)是包含0到多外引用对象的序列。定义列表时,用“[]”把数据包含其中,每一个数据(或称元素)用“,”隔开。列表内可以包含任何数据类型。如数字、字符串,同一个列表也可以包含不同数据类型。
练习:
用for循环遍历height列表的数据,打印出每个元素的供过于值。
活动二:列表的操作
使用help()函数查看列表的操作有哪些?
>>>help(list)
活动三:元组的使用
元组(tuple)可以理解为一个不可修改的列表,在定义时与列表相似。不同的地方在于列表使用“[]”,而元组使用“()”。元组的调用同列表一样,也用“[]”和下标来表示某一个元素。
Seasons=[spring,summer,autumn,winter]
元组一旦创建就不可修改,所有试图修改的操作都会产生异常。
练习:
元组与列表相比较,有什么相同点和不同点?
活动四:字典的使用
定义字典时用“||”把数据包含其中,每一个元素由键(key)和值(value)组成,键和值之间用“:”分开,两者是一种映射关系。在这些元素中,键是唯一的,不可重复。
用字典表示数据:
字典主要用于查找与特定键所对应的值,通过“键”来调用“值”。字典中的元素没有固定的顺序,所以不能用下标来表示元素。
字典的操作:
添加操作:
删除操作:
练习:
给codeDict字典添加一个元素,再删除一个元素。
三、课堂总结:
今天,我们认识了列表、元组和字典的数据结构,对列表、元组和字典的定义和调用,大家要在编写程序代码的时候注意表达式的编写。
四、实践创新:
完成编写课本“实践创新”中的“建立简易图书管理系统”,并调试运行。
五、评价:完成课本55页“自我评价”。
板书设计:
第8课 列表、元组和字典
一、认识列表
二、列表的操作
三、元组的使用
四、字典的使用
教学反思:
第9课 自定义函数
教材分析:
这节课的主要内容是学习函数的基本含义、语法,使用函数进行模块化程序设计,学习体验模块化程序设计的理念,把复杂的问题条理化,分步解决。
学习目标:
1、了解函数的基本含义,掌握自定义函数的语法。
2、学会定义和使用自定义函数,能够使用函数进行模块化程序设计。
3、初步体验模块化程序设计的理念,能够将复杂的问题进行有条理的分析,逐步解决问题。
教学重难点:
重点:掌握自定义函数的语法。
难点:掌握自定义函数的语法。
课时:1课时。
教学措施:
采用小组合作、自主探究的学习模式,配合老师讲解加例题分析练习,达到熟悉熟练使用自定义函数的目的,来完成学习任务的。
教学过程:
一、导入新课
在程序设计中,有些问题既长又复杂,编写起来会很困难。如果我们将一个复杂的问题分解成很多个较小、较简单的子问题,就会比较容易解决。
Python语言程序设计中,有很多内置的函数,为了解决实际问题,我们也可以自定义函数。这节课我们就来学习自定义函数。
二、学习探究
活动一:自定义函数
前面,我们学习过print()函数打印输出图案,但该项函数只能一次输出一个图案。如果能自定义一个打印输出三角形的函数,就可以无数次调用了。
函数是指可重复使用的程序功能模块。自定义函数,为了解决实际问题,我们可以自定义函数。自定义函数的使用def保留字。
练习:
自定义一个sjx()函数,输入打印三角形图形的语句。
函数的参数即函数内部的变量。定义时,在括号里设置一个变量即可。在print()、range()这些函数中,改变参数可以使函数具有不同的效果。
练习:
给sjx()函数设定参数,使其根据参数打印不同行数的三角形图案。
活动二:函数的返回值
在函数内部的变量称为“局部变量”,在函数外部的变量称为“全局变量”。如果程序需要修改全局变量,应在变量前添加global保留字,这样在函数执行修改完成后,该变量值修改后的结果。
使用全局变量保存计算结果,虽实现了计算的效果,但对程序的模块化和重复使用上有所影响。
练习:
在方程ax+b=0(a不等于0)中,设计一个自定义函数,给定a和b的值,即可计算出x的值。
活动三:基本统计
统计能过收集数据,描述数据,分析数据的过程,使人们作出合理的决策。在Python中,列表等数据结构能够支持基本的数据统计应用。
练习:
1、定义getNum()函数,以输入的方式获得一组数据,按回车键结束输入,函数值返回为列表类型。
2、定义mean()函数,计算列表的平均值,并输入数据测试程序。
三、课堂总结
今天,我们共同学习了自定义函数的基本语法、定义和使用,用函数进行模块化程序设计。体会一下函数的语法特点,将复杂的问题分成多个较小的问题,简单的问题。
四、实践创新
课本,第60页“实践创新”。
五、评价:
完成课本第60页“自我评价”。
板书设计:
第9课 自定义函数
一、自定义函数
二、函数的返回值
三、基本统计
教学反思:
第10课 图书小管家
教材分析:
学习目标:
1、了解程序设计的一般步骤,知道模块化程序设计的一般方法。
2、能够综合运用所学知识、解决生活中常见问题;能够规划到设计,有步骤地完成一个简易程序。
3、进一步提升分析问题、解决问题的能力,培养做事有条理的好习惯。
教学重难点:
重点:解程序设计的一般步骤,知道模块化程序设计的一般方法。
难点:能够综合运用所学知识、解决生活中常见问题;能够规划到设计,有步骤地完成一个简易程序。
课时:1课时。
教学措施:
教学过程:
五、提出问题
二、分析问题
三、解决问题
四、智能应用
五、评价
板书设计:
教学反思:
第三单元 手机App基础应用开发
教材分析:
本单元主要介绍期App及App Inventor开发工具的使用, 开发App的一般方法和制作过程,意在培养学生在项目开发过程中体验合作的快乐,分享成功的经验;树立合理运用技术、服务生活的价值观。
学习目标:
1、认识App Inventor的界面组成。
2、学会使用App Inventor开发工具开发具有语音识别、语音合成、随机事件和浏览器基本功能的App。
3、在项目开发过程中体验合作的快乐,分享成功的经验;树立合理运用技术、服务生活的价值观。
教学重难点:
重点:学会使用App Inventor开发工具开发具有语音识别、语音合成、随机事件和浏览器基本功能的App。
难点:学会使用App Inventor开发工具开发具有语音识别、语音合成、随机事件和浏览器基本功能的App。
课时安排:5课时。
教学措施:
1、通过课上小组合作探究学习,配合上机操作练习,达到学习、巩固、提高的目的。
2、参考网络教程,进行直接快速学习,以提高学生自主学习的能力。
3、通过学习优秀案例,操作计算机的能力,提高学生的分析能力,充分发挥计算机的独特优势来帮助我们简化运算方法,提高工作效率。
第11课 认识App Inventor
教材分析:
学习目标:
1、学习App Inventor程序的启动,认识项目、设计和逻辑编程界面。
2、掌握新建项目、导出项目、添加和删除组件,编译和下载的方法。
3、在项目开发过程中学会合作,体验成功的快乐,分享成功的经验。
教学重难点:
重点:学习App Inventor程序的启动,认识项目、设计和逻辑编程界面。
难点:掌握新建项目、导出项目、添加和删除组件,编译和下载的方法。
课时:1课时。
教学措施:
教学过程:
一、提出问题
二、分析问题
三、解决问题
四、智能应用
五、评价
板书设计:
教学反思:
第12课 我的语音识别器
教材分析:
学习目标:
1、了解App中语音识别的原理和方法,并且能够设置和修改按钮、标签组件的属性,养成良好的编程习惯。
2、掌握App设计的一般步骤和方法,能正确对按钮、语音识别器等积木进行编程并生成完整的App。
3、能够对程序提出合理的改进建议,学会合作与分享。
教学重难点:
重点:
难点:
课时:1课时。
教学措施:
教学过程:
一、提出问题
二、分析问题
三、解决问题
四、智能应用
五、评价
板书设计:
教学反思:
第13课 我的个性浏览器App
教材分析:
学习目标:
1、了解浏览器App工作的原理和方法。
2、能够合理布局组件,根据需要设置、修改按钮组件属性,养成良好的编程习惯。
3、能正确对Web浏览框的积木进行逻辑编程,学会与同伴分享有用信息。
教学重难点:
重点:
难点:
课时:1课时。
教学措施:
教学过程:
一、提出问题
二、分析问题
三、解决问题
四、智能应用
五、评价
板书设计:
教学反思:
第14课 “石头、剪刀、布”游戏
教材分析:
学习目标:
1、掌握标签、按钮、图片、表格布局等常用组件的使用方法和属性设置。
2、理解文本积木,列表积木和列表中的任意项积木在程序中的作用。
3、正确认识生活中的随机现象和概率事件,正确认识生活中彩票、抽奖等活动的数学本质。
教学重难点:
重点:
难点:
课时:1课时。
教学措施:
教学过程:
一、提出问题
二、分析问题
三、解决问题
四、智能应用
五、评价
板书设计:
教学反思:
第15课 我的电子相册App
教材分析:
学习目标:
1、掌握图片、对话框、水平布局等常用组件使用方法及属性设置。
2、理解控制积木、逻辑积木和变量积木在程序中的作用和原理,增强分析解决实际问题的能力。
3、坚持在程序开发之前设计流程图的好习惯。
教学重难点:
重点:
难点:
课时:1课时。
教学措施:
教学过程:
一、提出问题
二、分析问题
三、解决问题
四、智能应用
五、评价
板书设计:
教学反思:
