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

 

(一)教材分析
  教育科学出版社《算法与程序设计》(选修)模块第二章第三节《程序的基本结构》一共三课,本课选用的是第一小节《顺序结构》。众所周知,无论多么复杂的程序都可以分解为顺序、选择、循环这三种基本结构,因此本节内容的学习效果将影响后续章节的程序编写效率。
    (二)教学目标
  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 查找有关“两变量值互换”的其它算法,进一步体验顺序结构程序设计的思想。

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

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
第五单元 进阶程序设计(总10课时) 1. 选择编程语言(1课时) 一、教学目标 1、了解程序设计语言和两种翻译方式; 2、了解Python背景、功能、安装,熟悉Python编程环境; 3、编程初体验。体验一个小程序从建立、输入、调试、运行、保存的全过程。掌握 Turtle模块的调用,并尝试修改Turtle图案属性。 二、重点难点 教学重点:熟悉 Python 编程环境;编程初体验 教学难点:编程初体验;程序的书写规范和调试窗口的使用。 三、教学过程 (一)认识Python语言 1、Python语言 Python在英文中的意思是"蟒蛇",这个语言的标识就是两只缠绕的蟒蛇。 Python语言的应用范围非常广泛。例如,它可以用在游戏开发中;电影中的3D渲染也 会用到Python语言;互联网中Python语言的声音更是无处不在,谷歌、豆瓣和知乎等网 站都是使用Python语言搭建。 Python语言是著名的Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。Guido van Rossum从2005年开始就只于谷歌公司,在谷歌以及编程社区的大力支持下,Python也迎 来了大发展。 2、启动Python 3、Python开发环境 (二)编程初体验——我的第一个Python程序 chengxu1.py代码: import turtle #调用turtle模块 a1=turtle.Turtle() #窗口中显示一只海龟,并给他命名为"a1" 关于程序的书写: Python语言是区分大小写的,比如此处的Turtle()中的T要大写; Python语言中的字母和符号只能是半角英文符号; (三)实践与思考 1、把a1.shape("")语句添加在chengxu1.py程序的后面: 提示:请你每次在""中输入以下不同的内容:square、circle、arrow、turtle,然后, 保存并运行程序,观察每次的运行结果。 说一说,shape()的作用。 "语句 "显示结果 " "shape("turtle") " " "shape("arrow") " " "shape("circle") " " "shape("square") " " 2、把a1.color("")语句添加在chengxu1.py程序的后面: 提示:请你每次在""中输入以下不同的内容:red、green、blue,然后,保存并运行程 序,观察每次的运行结果。 试一试:除了red、green、blue,其他颜色能不能用? 说一说,color()的作用。 "语句 "显示结果 " "color("red") " " "color("green") " " "color("blue") " " 2. 选择编程语言(3课时) 第1课时 控制"海龟"移动 一、教学目标 1、学会用函数控制海龟运动; 2、掌握几个函数及参数的设置:forward()、speed()、write(); 3、了解程序的三种结构之一——顺序结构。 二、重点难点 教学重点:函数forward()、speed()、write() 教学难点:顺序结构编程及简单应用。 三、教学过程 (一)函数forward() 格式:forward(参数) 功能:向前移动(这里的"向前指的是箭头指示的方向") 例如:forward(100) ##向前移动100个像素 (二)函数speed() 格式:speed(参数) 功能:设定速度 例如:speed("slowest") ##以最慢的速度 "不同参数的speed() "功能 " "speed("slowest") "最慢 " "speed("slow") "慢速 " "speed("normal") "正常速度(系统默认值) " "speed("fast") "快速 " "speed("fastest") "最快 " (三)函数write() 格式:write(参数1,参数2) 功能:在屏幕上显示文字 例如:write("起步",font=("黑体",16)) ##屏幕上显示黑体16号的"起步"两个字。 (四)程序1——海龟的简单移动 import turtle a=turtle.Turtle() a.forward(100) 程序解释: forward(100)——海龟向前移动100个像素(这里的"向前指的是箭头指示的方向") (五)程序2——海龟的多样运动 (六)实践与思考 结合两节课学过的知识,修改程序2,使之实现如下功能: 提示: color()函数——设置颜色 write()函数——设置字体字号 第2课时 控制"海龟"移动 一、教学目标 1、了解常量、变量、表达式、赋值; 2、掌握变量的命名、表达式的组成; 3、掌握函数Shap

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值