欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

计算机算法的概念教案,《算法的概念》教学设计

发布时间:2024/3/12 编程问答 65 豆豆
生活随笔 收集整理的这篇文章主要介绍了 计算机算法的概念教案,《算法的概念》教学设计 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

一、教材背景分析

1.教材的地位和作用

《算法的概念》是全日制普通高级中学教科书人教B版必修3第一章《算法初步》的第一节内容,《算法初步》是课程标准的新增内容,它是数学及其应用的重要组成部分,是计算科学的重要基础.在信息技术高度发达的现代社会,算法思想应该是公民必备的科学素养之一.而《算法的概念》则是《算法初步》的奠基石,它非常重要,但并不神秘.新教材的编写特别强调了知识的螺旋形上升,所以在前面的学习中,已经让学生积累了大量的算法的实际经验,这个重要的数学概念其实早已存在于学生的意识之中,而且在不同场合都已经不自觉的“实际使用”,只是没有明朗化,概念化.此时引入算法概念可以说是水到渠成,教师的责任就是为学生建立概念修通渠道.让学生借助他们已有的大量经验抽象出算法的概念并认识其特点;再依据算法的概念和特点来认识和设计某些具体的算法,进一步深化对概念的认知;最后通过实际问题的算法处理以及中国数学家在算法上的贡献介绍,使算法思想进一步得到升华.整个教学过程不仅有利于培养学生的思维能力、理性精神和实践能力;也有利于学生理解构造性数学,培养其数学应用意识.

本节是这一章的起始课,不仅让学生体会概念,认识到这一概念的重要性,还要为进一步学习程序框图,算法的基本结构和语句奠定基础.而且算法思想是逻辑数学最重要的体现形式.这一切都决定了本节课的重要地位.

2.学情分析

知识结构:学生在以前的学习和生活中已经认识过大量的算法实例,本节课就是在此基础上使学生进一步理解和提炼算法的概念,体会算法的思想.

心理特征:高二的学生已经具备了逻辑推理的能力,高度的语言概括能力,能够从具体问题中去体会和提炼重要数学思想.

3.教学重点与难点

重点:理解算法的概念及其特点,体会算法思想,能用自然语言描述算法.

难点:根据实例抽象概括算法的概念和特点;依据概念设计算法.

关键:算法思想的渗透.

二、教学目标

知识与技能目标:

1.了解算法含义,形成算法概念的雏形,认识算法的特征,进一步培养归纳总结、提炼概括的能力.

过程与方法目标:

1.通过解决具体问题的实例感受,理解算法的特点,体会算法的基本思想.

2.通过由浅入深,特殊到一般的思维过程让学生进一步完善对算法的理解,准确把握算法的基本特征,学会用自然语言描述算法,进一步培养学生逻辑思维能力.

情感、态度与价值观目标:

1.通过具体实例渗透算法的基本结构,为学生后继学习奠定基础,同时通过古代数学家的成就来激励学生的民族自豪感和使命感.

2.通过典型解题步骤抽象出算法这一过程的设计,进一步渗透算法的思想,培养程序化解决问题的意识.

三、教法选择和学法指导

教法:问题引导、合作探究.

学法:数学学习实际上是“认知结构”的完善过程,算法的学习就体现了这一过程.从经验中提炼概念,再从设计运用中深化对概念的认知,最后从实际应用中进一步体会算法的思想.

四、教学基本流程设计

五、教学过程

教学

过程

教学内容

设计意图

古老传说引发的思考

汉诺塔(Towers of Hanoi)问题来自一个古老的传说:在世界刚被创建的时候有一座钻石宝塔,其上有64个金碟.所有碟子按从大到小的次序从塔底堆放至塔顶.紧挨着这座塔有另外两个钻石宝塔.从世界创始之日起,婆罗门的牧师们就一直在试图把塔1上的碟子移动到塔2上去,其间借助于塔3的帮助.由于碟子非常重,因此,每次只能移动一个碟子.另外,任何时候都不能把一个碟子放在比它小的碟子上面.按照这个传说,当牧师们完成他们的任务之后,世界末日也就到了.

图1-1

问题:

1、已知有三个塔(1、2、3)和n个从大到小的金碟子,初始状态时n个碟子按从大到小的次序从塔1的底部堆放至顶部.

2、要求把碟子都移动到塔2(按从大到小的次序从塔2的底部堆放至顶部).

3、每次移动一个碟子.

4、任何时候、任何一个塔上都不能把大碟子放到小碟子的上面.

5、可以借助塔3.

情景创设:

选择学生比较感兴趣同时在计算机应用中又非常经典的汉诺塔模型来引出本节课内容.

由古老传说引发的思考,更能吸引学生的学习兴趣,让学生用数学眼光关注情景,体会数学的应用价值,感受学习数学新知识的必要性.

学生能够动脑解决简单的汉诺塔问题,但随着碟子数量的增多,对复杂问题仍然没有完美的解决思路,让学生带着问题进入到下面的学习中.

由三个案例探究算法特点并初步形成算法的概念.

案例1.由的图象经过怎样的变换能得到 的图象?

学生讨论回答:

第一步:把的图象上所有点的横坐标变为原来的,纵坐标不变,得到的图象;

第二步:把图象向左平移个单位长度,得到的图象;

第三步:把图象上所有点的纵坐标变为倍,横坐标不变,得到的图象.

思考:还有没有其他变换方法?

探究1:算法的规则性,规则不同,算法不同

案例2.解一元二次方程

学生讨论回答:第一步:计算

第二步:若,则

若则

若则方程无根.

探究2:算法的明确性

案例3.如何判断1999是否为质数?

学生讨论回答:第一步:令i=2;

第二步:用i除1999;

第三步:判断余数r=0是否成立,

若是,则1999不是质数,结束算法;

否则,将i的值增加1,仍用i表示;

第四步:判断i > 1998是否成立,

若是,则1999是质数,结束算法;

否则,返回第二步.

探究3:算法的有限性

现将1999改成任意大于2的正整数n你会处理吗?

学生直接在上个问题中做修改

第一步:给定大于2的整数n;

第二步:令;

第三步:用除,得到余数.

第四步:判断“”是否成立.若是,则不是质数;否则将的值增加1,仍用表示;

第五步,判断“”是否成立.若是,则是质数,结束算法;否则,返回第三步.

回顾刚才研究的整个过程,从1999变化到任意大于2的正整数n,其判断方法完全相同.

探究4:算法的一个重要特征----能解决一类问题的普适性.

通过观察以上算法实例,从算法的特点出发,师生共同总结算法的概念:算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤,或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤或序列能够解决一类问题.

案例选择:

从算法的典型性,代表性,趣味性,与原有知识联系性和可接受性的角度出发,使学生通过对案例的学习理解算法的特点,渗透算法思想。

(1)三个案例都选择学生比较熟悉的问题,一方面可以打破学生对算法的陌生感,另一方面有助于学生把注意力集中在算法概念的理解上,而不是算法所涉及的问题本身.

(2)三个案例体现了算法的几个特征,同时也包含了算法的三种逻辑结构,为后续学习做好铺垫.

(3)三个案例曾出现在学习过的必修模块中,当时没有站在算法的角度来考虑,这里安排它,体现整套教材的内在联系.

在案例3中由1999过渡到n采用类比的思想即符合学生认知规律,又突破了难点.

由特殊到一般,体会由一道到一类题的飞跃, 旨在传达这样一个思想,尽管算法可以用来解决一个具体问题,但是人们更为关注的是用来解决某一类问题的算法。同时让学生感受到算法与解法的不同,算法具有普适性的特点.

注意:在案例处理时对几个问题的探究中,要始终从计算机程序角度出发考虑分析问题,让学生理解算法通常都可用计算机来执行,让学生养成用程序化思想来解决问题的能力,同时概括出算法的几个特点.

概念提炼:

算法概念的形成必然会经历逐步完善的过程.在描述定义时让学生大胆尝试,进而培养他们归纳总结,提炼概括的能力.

例1观察下面算法,指出这个算法是在解决什么问题

第一步:假定max=,令i=2

第二步:判断是否成立,若是,则max不变;

否则将max换成,但仍用max表示

第三步:将i增加1,仍用i表示

第四步:判断是否成立,若是,则重复第二步;

否则结束算法.

例2将下面计算的算法填充完整

第一步:s=0,i=1

第二步:将s换成,仍用s表示.i增加一个,仍用i表示

第三步:判断是否成立,若是,则结束算法

若否,则重复第二步.

例3在平常的学习中,是否可以通过一些典型问题的解法,从具体到抽象,总结出同类型问题共有的解题步骤和程序呢?现在就请大家根据一些典型习题的解题方法来寻求其对应的算法.

例题的选择与处理:

例习题是学生加深理解学习内容,进行有效学习的载体,是沟通知识与能力的桥梁.学习数学概念的关键是数学概念的形成与数学概念的深化.

学生对循环结构这类问题的解决感觉很费力.例2的探索解决,为后续的学习打下了伏笔.

新课改的理念就是要关注学生,就像打开窗户,阳光能撒到每个学生身上.例3让学生从思维近区来自主编题,使不同程度的学生均有提高.

学生自主探究,从自身知识结构出发,加深理解算法的概念.

另外,合作交流,能培养学生团队意识.

回顾汉诺塔问题,展示游戏背后的程序框图和计算机语言,达到首尾呼应的效果.

汉诺塔问题程序框图:

计算机程序实现如下:

#include "stdio.h"

void main()

{

void hanoi(int n,char one,char two,char three);

int m;

printf("input the number of diskes:");

scanf("%d",&m);

printf("The step to move %d diskes:\n",m);

hanoi(m,'A','B','C');

}

void hanoi(int n,char one,char two,char three)

{

void move (char x,char y);

if (n==1)

move (one,three);

else

{

hanoi(n-1,one,three,two);

move(one,three);

hanoi(n-1,two,one,three);

}

}

void move(char x,char y)

{

printf("%c->%c ",x,y);

}

对即将学习的内容和作用作介绍,使学生对后续的学习充满了信心和兴趣.

回顾汉诺塔问题,展示游戏背后的程序语言,达到首尾呼应的效果.

本节课是一章的起始课,它的功能不仅仅是本节知识内容的落实,还需要对后面的学习起到铺垫的作用.

(1)知识内容

(2)思想方法

教师引导学生自己总结的方式,有助于学生主动认清所学知识的本质,理清知识的脉络,使知识系统化,同时使学生在认知上达到一个新的高度.

作业:

1.(必做题)

2.(选做题)

进一步理解和巩固所学知识.

总结

以上是生活随笔为你收集整理的计算机算法的概念教案,《算法的概念》教学设计的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。