《顺序结构的程序设计》教学设计

 

(一)教材分析
  教育科学出版社《算法与程序设计》(选修)模块第二章第三节《程序的基本结构》一共三课,本课选用的是第一小节《顺序结构》。众所周知,无论多么复杂的程序都可以分解为顺序、选择、循环这三种基本结构,因此本节内容的学习效果将影响后续章节的程序编写效率。
    (二)教学目标
  1、知识与技能:理解程序设计的顺序结构基本思想;掌握顺序结构语句特点
  2、过程与方法:学会用算法分析问题;能够使用顺序结构编写简单的程序解决具体问题
  3、情感态度与价值观:体会用结构化方法解决数学问题的便捷性;明确结构化在程序设计中的重要作用;激励尝试使用多种方法解决问题;培养良好的编程习惯和态度。
  教学重点:理解程序设计的顺序结构基本思想
  教学难点

1、顺序结构实现语句的格式和功能
  2、编写简单的程序的过程 
  3、变量的特点
  
  二、教学方法
  任务驱动法、直观演示法、师生互动法、比较教学法
  
  三、学生分析
  课程改革之后,各学校立足于学校实际选开的选修模块各有不同。在没有选修《算法与程序设计》(选修)模块的情况下,对于高一的学生只在必修模块接触过一些关于程序设计的知识,而对于高二学生只有在数学必修模块三中有对算法及程序的描述。因此学生对于程序设计的知识还是相对匮乏的。因此,在学习设计的过程中,应弱化对于某一编程语言的学习,应更注重学生编程思想的培养。
  在让学生实践的环节,我安排了随堂笔记这一形式,让学生随着教学的不断深入,充分发挥自己的思维想象,让学生与教学的进度同步进行,最后能够较好的理解程序的基本结构这一思想,并能较为系统地了解算法分析的一般过程。
  
  四、教学过程
  一、导入
  在上课前,我故意引入一般人对程序的看法,设置悬念,引起学生的好奇心,勾起学生探索新鲜事物欲望。为拉近程序与生活的距离,举例说明生活中程序与生活的关系。
  
  二、以任务驱动展开教学
  以学生感兴趣的游戏形式展开,一起体验程序设计的过程.。学生从游戏中分析算法,本课设置了三个算法思路让学生分析。
  1、顺序结构的第一次亲密接触
  依照人的正常逻辑,必有学生想到直接互抛法来交换两个球的方法。引导学生分析算法,引出程序。由于算法1不是满足要求的算法,因此我先引出程序,再分析程序设计的过程。算法1是一个铺垫。这其中也涉及到顺序结构程序的语句描述。
  2、顺序结构的第二次亲密接触
  这是本课学生必须掌握的程序,因此让学生分析算法的同时,能够模仿算法1编写出算法2的程序。
  3、顺序结构的第三次亲密接触
  算法3是本节课的扩展知识,重在培养学生了解解决问题的多种思维方式,理解程序运行过程中变量值的变化,培养学生具有算法分析创新意识。

具体流程如下表:

课题

程序与生活 ------ 顺序结构程序设计

教学目标

知识与技能

•  理解程序设计的顺序结构基本思想

•  掌握顺序结构语句特点

过程与方法

•  培养用算法分析问题的能力

•  能够使用顺序结构编写简单的程序解决具体问题

情感态度与价值观

•  体会用结构化方法解决数学问题的便捷性

•  明确结构化在程序设计中的重要作用

•  激励尝试 使用多种方法解决问题

•  培养良好的编程习惯和态度

教学重点

理解程序设计的顺序结构基本思想

教学难点

1 、顺序结构实现语句的格式和功能 3 、变量的特点

2 、编写简单的程序的过程 

教学方法

任务驱动法、直观演示法、师生互动法、比较教学法

教学过程

教师活动

学生活动

设计意图

导入

•  导入

[ 教师 ] :一直以来编写程序被认为是一项高深莫测的技术,精通这门技术常被冠以“软件工程师”的美名。难道程序设计真的就这么高不可攀吗?今天这节课我们一起走近程序的世界,揭开程序设计的神秘面纱。

[ 电子板书 ] : 程序总是围绕着人的生活需要而编写的。

举例说明

引起学生的好奇心,探索新鲜事物欲望

联系实际,拉近程序与生活的距离

•  新课

1 、 [ 教师 ] :今天同学们要设计的程序来源于一堂体育课的游戏。

[ 电子板书 ] : 有一次在上体育课的时候, a 同学想和 b 同学做一个换球的游戏,同学们能不能帮他们出出主意?

( 如 a 原来拿篮球, b 原来拿排球,交换后, a 拿排球, b 拿篮球 ) (图略)

游戏规则:要求每次交换只允许每人手中最多有一个球

2 、顺序结构的第一次亲密接触:

( 1 )依照人的正常逻辑,必有学生想到直接互抛法来交换两个球的方法。分析算法,引出程序

算法 1 直接互抛法 : Step1 : a( 或 b) 拿篮球

       Step2 : b( 或 a) 拿排球

       step3 : a 将篮球(或排球)给 b

       step4 : b 将排球(或篮球)给 a

•  step5 :结束

让两个学生先用简洁语言描述交换的过程,并演示

以游戏形式展开讨论,学生的兴趣被调动起来。

限定交换规则为下面的算法 2 和算法 3 做铺垫

教学过程

教师活动

学生活动

设计意图

算法1程序可描述为: Dim a as integer

          Dim b as integer

          a=1

          b=2

          a=b

          b=a

[ 教师 ] :请同学们对比算法 1 与算法 1 程序,你能猜猜程序每一行语句的含义吗?(提示 1 代表篮球, 2 代表排球, integer 为整型的意思)

( 2 ) 分析程序设计的过程的一般步骤。(图略)

A 、变量应该先声明后使用。

B 、 VB 的赋值语句

变量名 = 表达式

功能:计算右边的表达式的值赋给左边的变量,得出

a=1

b=2

a=b

b=a

( 3 )运行程序无结果。比喻程序没有发言权,要给装上一个一个发言功能。引出 print  语句。

A 、算法 1 程序完善如下:

……

a = 1

b = 2

Print “交换前 :a="; a, "b="; b

a = b

b = a

Print " 交换后 :a="; a, "b="; b

B 、 让学生理解记忆,并将程序写到第一次亲密接触中

(4)运行程序不正确,设下疑点

[提问]:程序运行结果为什么会和我们交换的结果不一致呢?

[电子板书]:

变量的特点: 每个变量占用一个内存空间,有新的内容被送到这个变量中,旧的内容就被冲刷掉了。

结论: 程序运行结果不能满足要求,直接互抛法程序不成功。

•  顺序结构的第二次亲密接触:

[教师]:编写程序贵在有创新,而创新的关键就是算法,一种新的算法不亚于建造一种新的机型。引导学生进行算法2探讨。

学生分析每一行程序对应的含义

学生操作运行程序,观察结果

做随堂笔记

学生立刻发现程序运行结果不正确

学生简洁说明交换过程,并模拟演示

让学生对程序的格式有一个初步的印象,增强学生对程序编写的信心

算法 1 是不符合游戏规则的算法,因此直接给出程序,类似于语文中倒叙的方式,然后再分析

引入自然,加深印象

学生可以在默写的过程,理清程序的结构

激励教学法,使学生对学习充满期望和信心

教学过程

教师活动

学生活动

设计意图

(1)算法2 “ 第三人 ” 交换法:

Step1 : a( 或 b) 拿篮球, b( 或 a) 拿排球

step2 :输出交换前 a,b 的值

step3 :第三人 <- a( 或 b)

step4 :第三人 <- a( 或 b)

step5 : b( 或 a)<- 第三人

Step6 :输出交换后 a,b 的值

Step7 :程序结束

 

(2) [教师]:纵观整个算法,第三人扮演着什么角色?

小结: 第三人就像一个邮递员,

它是 a 和 b 换球的中转站

模仿第一次亲密接触的程序, 让学生将算法 2 程序写到第二次亲密接触中(教师随堂辅导)

(3)算法 2 程序如下 ( 传递变量 c) :

Dim a as integer

Dim b as integer

a = 1

b = 2

Print " 交换前 :a="; a, "b="; b

c = a

a = b

b = c

Print " 交换后 :a="; a, "b="; b

结论:小小“邮箱员”,交换真方便

学生思考,并回答

学生自己模仿算法 1 程序编写算法 2 程序

学生观看教师演示,并思考

了解中间变量作用,加深对程序的理解

5、顺序结构的第三次亲密接触:

游戏规则 2 :允许某一瞬间有人可以同时拿着两个球

[教师]:有了前面两个程序编写的经验,同学们已经基本掌握了程序编写的过程。即分析问题,寻找算法,计算机识别模式转化,及程序语言编写程序的过程。同学们还能不能带给我们更多的惊喜呢?

算法较复杂,可引导学生从模拟的算法中,将提示的交换程序补充完整。

算法 3 近距离互换:

……

a=1

b=2

Print “交换前 :a="; a, "b="; b

a=a+b

b=a-b

a=a-b

Print " 交换后 :a="; a, "b="; b

[ 教师 ] :分析交换过程 a,b 的值

学生回答

既是复述程序设计的过程,让学生记忆一个程序设计的概念,又能扩大学生的思维方式

算法复杂,学生可能无法想到,可以让学生描述程序在交换过程中变量 a,b 的值

理解程序的运算过程

总结

[提问]:纵观上述三个程序,无论是算法1的程序,还是算法2和算法3的程序,从运行的结构上说都有一个共同的特点。从程序开始到程序结束,程序运行有没有出现某一行语句重复运行,或者某一行语句不执行的情况呢?

程序设计的顺序结构:

在程序执行过程中,语句按先后顺序一行一行执行,没有分支,没有重复,直到程序结束。

学生回答

通过三次体验顺序结构的程序设计,学生能够深刻理解顺序结构的基本思想

实践练习

实践练习:

通过 Internet 查找有关“两变量值互换”的其它算法,进一步体验顺序结构程序设计的思想。

培养学生对算法的探究精神

你可能感兴趣的:(《顺序结构的程序设计》教学设计)