(共53张PPT)
粤教版普通高中教科书
信息技术
必修1
数据与计算
算法基础
3.1
体验计算机解决问题的过程
3.2
算法及其描述
3.3
计算机程序与程序设计语言
第三章
同学从真实世界选择自己感兴趣的主题开展项目学习活动
做中学、学中创、创中乐
项目范例
设计从A市到B市耗时最少的旅行路线方案
第三章
算法基础
当从A市到B市没有直达的交通工具时(不考虑水上交通工具),人们可以利用铁路公司、汽车客运公司和航空公司公布的信息,设计出耗时最少的旅行路线。
图3-1
中国高铁
设计从A市到B市耗时最少的旅行路线方案
第三章
算法基础
项目范例-设计从A市到B市耗时最少的旅行路线方案
根据项目主题,在小组中组织讨论,利用思维导图工具,制订项目范例的学习规划,如图3-2所示。
图3-2
“设计从A市到B市耗时最少的旅行路线方案”项目学习规划
设计从A市到B市耗时最少的旅行路线方案
体验人工与计算机解决问题的过程
探究计算机解决问题的算法
了解计算机解决问题的程序
规划
进度安排
工具与方法
预期成果
组建团队,明确任务
设计方案,探究实施
形成作品,开展评价
思维导图,”头脑风暴”
搜索技术
数据建模方法
可视化设计报告
表3-1
“设计从A市到B市耗时最少的旅行路线方案”项目学习探究活动
究
根据项目学习规划的安排,通过调查、案例分析、文献阅读和网上资料搜索,开展“设计从A市到B市耗时最少的旅行线路方案”项目学习探究活动,如表3-1所示:
探究活动
学习内容
知识技能
体验人工与计算机解决问题的过程
设计从A市到B市耗时最少旅行路线问题分析。
人工解决问题的过程。
体验计算机解决问题的个过程。
计算机解决问题的过程。
探究计算机解决问题的算法
设计从A市到B市耗时最少旅行路线的算法。
算法的概念与特征。
理解和概述算法的概念与特征。
运用恰当的描述方法和控制结构表示简单算法。
算法描述方法。
了解计算机解决问题的程序
编写求解从A市到B市耗时最少旅行路线问题的程序。
计算机程序。
描述程序是基语言产生与发展的过程。
了解不同种类程序设计语言的特点。
程序设计语言的产生与发展。
第三章
算法基础
项目范例-设计从A市到B市耗时最少的旅行路线方案
实施项目学习各项探究活动,进一步设计耗时最少的旅行路线。
在小组开展项目范例学习过程中,利用思维导图工具梳理小组成员在“头脑风暴”活动中的观点,建立观点结构图,运用多媒体创作工具(如演示文稿、在线编辑工具等),综合加工和表达,形成项目范例可视化学习成果,并通过各种分享平台发布,共享创造,分享快乐。
图3-3
“从A市到B市耗时最少的旅行路线方案”可视化报告截图
第三章
算法基础
项目范例-设计从A市到B市耗时最少的旅行路线方案
图3-3
“从A市到B市耗时最少的旅行路线方案”可视化报告
第三章
算法基础
项目范例-设计从A市到B市耗时最少的旅行路线方案
根据“项目活动评价表”,对项目范例的学习过程和学习成果在小组或班级上进行交流,开展项目学习活动评价。
第三章
算法基础
项目范例-设计从A市到B市耗时最少的旅行路线方案
同学从真实世界中选择自己感兴趣的主题开展项目学习活动
做中学、学中创、创中乐
第三章
算法基础
同学们以3~6人组成一个小组,
围绕本章项目学习活动的大主题“设计从A市到B市的最优旅行路线方案”,根据自己感兴趣的问题,小组头脑风暴后确定项目选题,以小组为单位,填写《项目学习活动记录表》“项目选题”栏目。
项目选题
教材参考选题
1.设计从A
市到B
市耗时最少的旅行路线方案;
2.设计从A
市到B
市交通费最少的旅行路线方案;
3.设计从A
市到B
市路程最短的旅行路线方案;
4.在不超预算的情况下,设计从A市到B市耗时最少的旅行路线方案;
5.自拟...
项目范例-设计从A市到B市耗时最少的旅行路线方案
第三章
算法基础
小组依照项目范例(教科书P41图3-2),结合本组选题,制订本组项目规划方案,填写《项目学习活动记录表》“项目规划”栏目。
项目规划
编号
问题内容
工具与方法
项目规划(思维导图)
工具与方法:头脑风暴、思维导图、探究学习等。
项目范例-设计从A市到B市耗时最少的旅行路线方案
第三章
算法基础
编号
问题内容
工具与方法
1
用计算机求解最少耗时旅行路径问题的过程是怎样的?
实践研究法
2
求解最少耗时旅行的算法如何设计?怎样去描述这个算法?
文献查询
实践研究法
3
计算机程序怎样运行,程序语言有哪些?
网上信息查询
文献查阅
项目规划(思维导图)
工具与方法:网上期刊、文献查阅、实践研究等。
小组依照项目范例,结合本组选题,制订本组项目规划方案,填写《项目学习活动记录表》“项目规划”栏目。
方案交流
项目范例-设计从A市到B市耗时最少的旅行路线方案
体验计算机解决问题的过程
在现实生活中,我们经常需要对数据进行统计、分析。当数据量不多时,我们可以采用人工方法来处理;然而,当数据量变多时,我们运用计算机来解决问题将是一种更高效、更便捷的方案。
第三章
算法基础
3.1.1
人工解决问题的过程
问题:找出从A市经B1市到B市耗时最少的旅行路线。
A
B1
B
M1
M7
N1
N9
3.1体验计算机解决问题的过程
第三章
算法基础
体验人工解决问题
探究活动
体
验
分析题解决步骤:
1.用穷举法列出从A市经B1市的各班次的耗时,及相应可中转的B1市到B市的各班次的等待时长及行程耗时;
2.算出各组合的总耗时;
3.找到耗时最少的路线。
从A
到B1
编号
出发时间
到达时间
耗时
从B1
到B
编号
出发时间
到达时间
耗时
飞机
M1
09:00
12:00
3
飞机
无
无
无
无
M2
12:00
14:30
2.5
M3
16:00
18:00
2
火车
M4
08:00
20:00
12
火车
N1
09:00
10:30
1.5
M5
10:00
20:00
10
N2
11:00
12:18
1.3
M6
12:00
21:36
9.6
N3
15:00
16:00
1
M7
13:00
22:36
9.6
N4
18:00
20:00
2
汽车
无
无
无
无
汽车
N5
08:00
09:48
1.8
N6
09:00
11:00
2
N7
13:00
15:12
2.2
N8
15:00
17:12
2.2
N9
18:00
19:42
1.7
表3-1-1
从A市经B1市到B市的交通情况
3.1体验计算机解决问题的过程
体验人工解决问题
探究活动
体
验
从A市经B1市到B市的交通情况分析结果
表3-1-2
从A市经B1市到B市可组合班次情况
从A到B1
班次编号
耗时
从B1到B可中转班次
总耗时
编号
耗时
等待时长
M1
3
N3
1
3
7
N4
2
6
11
N7
2.2
1
6.2
N8
2.2
3
8.2
N9
1.7
6
10.7
M2
2.5
N3
1
0.5
4
N4
2
3.5
8
N8
2.2
0.5
5.2
N9
1.7
3.5
7.7
第三章
算法基础
3.1体验计算机解决问题的过程
探究活动
事实上,从A市到B市中转的城市有k个,且分别有不同的交通工具及班次:
组合班次有S=M1
×N1+M2
×N2+……
+Mk
×Nk
分
析
A
B1
…
Bk
B
当数据量很大,人工处理效率很低时,我们可以借助计算机工具,通过编制计算机程序来解决问题。
第三章
算法基础
3.1体验计算机解决问题的过程
探究活动
编制计算机程序解决问题需要经历哪些过程?请参考书本P46-47页了解。
问
题
计算机解决问题的过程
第三章
算法基础
3.1.2
计算机解决问题的过程
完成《项目活动记录表》中
活动1
知识技能
表里的相关内容。
项目实施
3.1体验计算机解决问题的过程
计算机解决问题的过程,程序代码分析
探究活动
第三章
算法基础
讨
论
解决问题的步骤(算法)
程序代码(部分)
(1)分别算出从A市到B1
,B2
,…,Bk市的班次所用的时间;
for?i?in?range(1,rs1):
?t14?=?table_1.cell(i,4).value
?t12?=?t14-table_1.cell(i,2).value
(2)找到能够中转到达B市的班次路线件k条,并计算出总耗时;
for?j?in?range(1,rs2):
??
t22?=?table_2.cell(j,2).value
??
if?t14
-
t22>=1/24:
m1=t12+(t22-t14)+(table_2.cell(j,4).value-t22)
(3)找出K条线路中耗时最少的班次组合为最佳旅行路线
?
if?m>m1:
????m=m1
?
??r1=i
????r2=j
3.1体验计算机解决问题的过程
体验用计算机解程序求解耗时最少旅行路线方案
探究活动
第三章
算法基础
体
验
步骤1:启动PythonIDLE集成开发环境
步骤2:执行“file”菜单中的“open”命令,选择打开程序“从A市到B市耗时最少的旅行路线问题的程序”(教材学习资源包“第三章\课本素材\程序3-1”)
步骤3:执行“run”菜单中的“run
module”命令
步骤4:观察程序运行结果
3.1体验计算机解决问题的过程
人工求解与计算机求解问题的方式的异同
探究活动
第三章
算法基础
讨
论
求解问题的方式
相同点
不同点
人工求解问题
用计算机求解问题
完成《项目活动记录表》“3.1体验计算机解决问题的过程”人工解决与计算机解决问题方式的异同讨论记录“讨论
项目实施
3.1体验计算机解决问题的过程
人工求解与计算机求解问题的方式的异同
探究活动
第三章
算法基础
讨
论
求解问题的方式
相同点
不同点
人工求解问题
分析问题、设计算法、得出结果、验算结果
每次只能对特定的问题进行解答,运算速度慢,不需要借助计算机工具。
用计算机求解问题
编写程序、调试程序、运行速度快,通用性强。
3.1体验计算机解决问题的过程
第三章
算法基础
课堂小结:
计算机解决问题的过程:1.分析问题;2.确定算法;3.编写程序;4.调试程序。
人工处理问题效率非常低时,这时就需要通过计算机来解决,而计算机解决问题本质上就是计算机程序解决问题,我们用WORD文字处理工具处理文本,而WORD文字处理工具实质就是程序,但当我们的问题非常特殊,没有现成的计算机工具可以使用时,我们就需要编写程序来解决特定的问题。
项目实施
完成《项目活动记录表》“3.1体验计算机解决问题的过程”小组项目成果(学习小结);
3.1体验计算机解决问题的过程
算法及其描述
算法是对解题过程的精确描述,且需要使用某种方法将其表示出来。
第三章
算法基础
3.2.1
算法
问题:学期结束时,老师打算花50块钱购买一些笔记本奖励表现优秀的同学,请班长小明帮忙,小明决定买三种单价分别为6元、5元、4元的笔记本,请问可以买多少本?
讨
论
3.2算法及其描述
买笔记本问题转化为求解方程:6x+5y+4z=50的正整数解
探究活动
第三章
算法基础
分
析
方案
x
y
z
合计
1
1
4
6
11
2
1
8
1
10
3
2
2
7
11
4
2
6
2
10
5
3
4
3
10
6
4
2
4
10
7
6
2
1
9
3.2算法及其描述
第三章
算法基础
学习教材“3.2.1算法”,完成《项目活动记录表》“3.2算法及其描述”
知识技能”算法的定义
“、”算法的特征“。
项目实施
认识算法:
算法是指在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗地说,算法就是用计算机求解某一问题的方法,是能被机械地执行的动作或指令的有穷集合。
算法的特征:有穷性、确定性、数据输入、数据输出、可行性。
3.2算法及其描述
1.用自然语言描述算法
用自然语言描述算法,就是用人们日常所用的语言,如:汉语、英语等来描述算法。
第三章
算法基础
3.2.2
算法的描述
t=0;
x=1;
y=1;
z=1;
如果满足式子6x+5y+4z=50,则购买的方案数加1(即t=t+1),并输出这种购买方案(即输出t、x、y、z的值)。
z=z+1;
如果z<=12则转⑤,否则继续⑧;
y=y+1;
如果y<=10则转④,否则继续⑩;
x=x+1;
如果x<=8则转③,否则继续?;
结束。
3.2算法及其描述
2.用流程图描述算法
用流程图描述算法是用程序框图来描述算法的一种表示方法。使用流程图描述算法,让人感到算法的流程描述清晰简洁。流程图的基本图形及其功能如下表所示。(例:教材图3-8)
第三章
算法基础
图
形
名
称
功
能
开始/结束
表示算法的开始或结束
输入/输出
表示算法中变量的输入或输出
处理
表示算法中变量的计算与赋值
判断
表示算法中的条件判断
流程线
表示算法中的流向
连接点
表示算法中的转接
表3-4流程图的基本图形及其功能表所示。
3.2.2
算法的描述
3.2算法及其描述
3.用伪代码描述算法
用伪代码描述算法就是用介于自然语言和计算机语言之间的文字和符号来描述算法。
第三章
算法基础
t=0
for
x
in
range(1,9):
for
y
in
range(1,11):
for
z
in
range(1,13):
if
x
6+y
5+z
4==50:
{t=t+1;
输出解的个数t和三个整数x,y,z}
3.2.2
算法的描述
3.2算法及其描述
探究活动
完成《项目活动记录表》活动2“算法及其描述”
三种算法描述方法比较
项目实施
讨
论
分析归纳算法三种描述方法的优劣
第三章
算法基础
算法描述的方法
优势
不足
自然语言表示法
流程图表示法
伪代码表示法
3.2算法及其描述
探究活动
完成《项目活动记录表》活动2“算法及其描述”
三种算法描述方法比较
项目实施
讨
论
算法三种描述方法的优劣对比
第三章
算法基础
算法描述的方法
优势
不足
自然语言表示法
用人们日常所用的语言,比较容易掌握。
当算法中含有多分支或循环操作较多时很难清晰地表示出来,由于自然语言的歧义性,容易导致算法执行的不确定性。
流程图表示法
用程序框图来描述,流程描述清晰简洁。
所占篇幅较大,由于允许使用流程线,过于灵活,不受约束。
伪代码表示法
用介于自然语言和计算机语言之间的文字和符号来描述,书写方便,格式紧凑,易于理解,便于向计算机程序设计语言过渡。
由于编程语言的种类繁多,伪代码的语句不容易规范,有时会产生误解。
3.2算法及其描述
探究活动
这三种基本控制结构的主要作用是:
(1)顺序结构表示程序中的各操作是按照它们出现的先后顺序执行的。
(2)选择结构表示程序的处理步骤出现了分支,它需要根据某一特定的条件选择其中的一个分支执行。选择结构有单选择、双选择和多选择三种形式。
(3)循环结构表示程序反复执行某个或某些操作,直到某条件为假(或为真)时才可终止循环。
讨
论
算法的三种基本控制结构
第三章
算法基础
3.2算法及其描述
探究活动
使用三种基本控制结构的组合来描述算法,可以改善算法的清晰度,提高算法的可读性。
讨
论
试结合教材P50“图3-8
求整数解的流程图”,说明算法流程图描述是如何综合三种基本控制结构组合来表示的。
第三章
算法基础
图1
顺序结构
图2
选择结构
图3
循环结构
3.2算法及其描述
探究活动
实
践
参考教材P51实践活动,探讨辗转相除法的算法描述
第三章
算法基础
自然语言表示法
流程图表示法
伪代码表示法
示例
完成《项目活动记录表》活动2“算法及其描述”,用流程图描述欧几里得算法
项目实施
3.2算法及其描述
探究活动
实
践
辗转相除法的算法描述展评
第三章
算法基础
自然语言表示法
流程图表示法
伪代码表示法
示例
①输入两个正整数m,n(m>n);
②计算m除以n所得的余数r;
③m=n,n=r;
④若r=0,则m,n的最大公约数等于m;否则转到步骤②;
⑤输出最大公约数m;
⑥结束。
m=input("m=")
n=input("n=")
if
m
<
n:
m,
n
=
n,
m
r
=
1
while
r
!=
0:
r
=
m%
n
m
=
n
n
=
r
print
m
3.2算法及其描述
请各项目学习小组对本小组所选的项目主题的问题解决设计一种算法,分别用自然语言和流程图的方法将算法表示出来并展评。
(完成《项目活动记录表》活动2:“算法及其描述”
小组项目成果“设计项目问题的算法”)
项目实施
第三章
算法基础
3.2算法及其描述
课堂小结:
算法是程序设计的核心,是程序设计的灵魂。算法的好坏,直接影响着程序的通用性和有效性,影响着问题解决的效率。恰当的算法描述更有利于编写程序。
要点:算法描述要完整,步骤要清晰,符合算法的特征,有效解决项目的关键问题。
第三章
算法基础
3.2算法及其描述
计算机程序与程序设计语言
探究活动
第三章
算法基础
各小组交流什么是计算机程序语言。围绕交流的问题展开“头脑风暴”活动,确定认识计算机程序需要解决的问题和知识,参考表3-6:
问题
信息的获取过程
选择信息来源
确定信息
获取方法
评价信息
分工及时间安排
认知程度
(认识/了解/描述/掌握)
问题1:什么是计算机程序?
问题2:程序设计语言有哪些?
问题3:
问题4:
3.3计算机程序与程序设计语言
探究活动
实
践
2019年7月20日IEEE
Spectrum
发布了第四届顶级编程语言交互排行榜前十位的高级语言依次分别是:Python、C、Java、C++、C#、R、JavaScript、PHP、Go、Assembly,请小组分工合作,通过网络搜索,分别找出它们诞生的时间,并完成时间线的制作。
第三章
算法基础
3.3计算机程序与程序设计语言
探究活动
实
践
2019年7月20日IEEE
Spectrum
发布了第四届顶级编程语言交互排行榜前十位的高级语言依次分别是:Python、C、Java、C++、C#、R、JavaScript、PHP、Go、Assembly,请小组分工合作,通过网络搜索,分别找出它们诞生的时间,并完成时间线的制作。
第三章
算法基础
Python(1991年)、C(1972年)、Java(1995年)、C++(1983年)、C#(2000年)、
R(1995年)、JavaScript(1992年)、PHP(1994)、Go(2007年)、Assembly(1951年)
3.3计算机程序与程序设计语言
1.计算机程序
在《计算机软件保护条例》中这样定义计算机的“程序”:指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。简而言之,计算机程序就是指计算机可以识别运行的指令集合。
第三章
算法基础
3.3.1
计算机程序
2.计算机程序运行
运算器
(内)存储器
控制器
输入设备
输出设备
数据流
控制流
程序
数据
请
求
信
号
响应
信号
反
馈
信
号
操
作
指
令
响应
信号
请
求
信
号
取
数
存
数
地
址
指
令
3.3计算机程序与程序设计语言
1.计算机程序设计语言
计算机程序设计语言是指一组用来定义计算机程序的语法规则。
第三章
算法基础
3.3.2
计算机程序设计语言
2.计算机程序设计语言的发展
(1)机器语言:
是由“0”和“1”这样的二进制代码指令组来表示。每一条机器指令包含两个主要部分:操作(指出计算机应做什么)和被操作的对象(指出处理的数据或它的地址),计算机能直接识别和执行。
(2)汇编语言:
使用了一种类似英文缩略词且带有助记性符号的语言,来替代一个特定的指令的二进制串,每条指令都和一条机器指令相对应。需要一个专门的语言翻译器,负责将程序中的每条语句都翻译成用二进制数表示的机器语言。
(3)高级语言:
接近于数学语言或人的自然语言,并且不再过度地倚赖某种特定的机器或环境,必须经过翻译器将其翻译成机器语言。
3.3计算机程序与程序设计语言
探究活动
实
践
完成《项目活动记录表》活动3:“程序与程序设计语言”
,表3-3-2:”三代计算机语言的优势与不足”。
第三章
算法基础
语言类型
是否翻译(编译)
优势
不足
一
机器语言
二
汇编语言
三
高级语言
3.3计算机程序与程序设计语言
探究活动
实
践
三代计算机语言的优势与不足
第三章
算法基础
语言类型
是否翻译(编译)
优势
不足
一
机器语言
否
能被计算机接受和执行,运算效率最高。
程序难以理解,程序设计任务繁重,移植性差。
二
汇编语言
是
针对计算机特定硬件而编制的汇编语言程序,比机器语言易于理解,效率仍十分高。
不能被计算机直接运行,移植性不好。
三
高级语言
是
接近于数学语言或人的自然语言,易于理解,移植性好。
不能被计算机直接运行。
3.3计算机程序与程序设计语言
探究活动
小组内展开交流活动,用图示法表述:算法、程序、程序设计、程序设计语言之间的关系,并展评。
完成《项目活动记录表》活动3“程序与程序设计语言”
中的
“(3)交流”。
第三章
算法基础
交
流
程序设计
算法
程序
程序设计语言
算法、程序、程序设计、程序设计语言关系
3.3计算机程序与程序设计语言
探究活动
分别运行两段求两个大整数的最大公约数的程序,对比分析后,归纳:一个高质量的程序,应具备哪些条件?
完成《项目活动记录表》活动3“程序与程序设计语言”
中的
“(4)实践归纳”。
第三章
算法基础
体
验
#
gongyueshu1.py
a=input("a=")
b=input("b=")
if
a
<
b:
a,
b
=
b,
a
r
=
1
while
r
!=
0:
r
=
a
%
b
a
=
b
b
=
r
print
a
#gongyueshu2.py
m=9147485
n=5147480
for
i
in
range(n,1,-1):
if
(m%i==0)and(n%i==0):
print
i
break
高质量程序应具备以下条件:
1.便于检查、修正、移植和维护。
2.程序具有良好的结构,逻辑清晰、可读性强。
3.结果必须正确,且在精度和其他各方面均满足要求。
4.程序运行时间尽可能短,同时尽可能合理地使用内存。
3.3计算机程序与程序设计语言
探究活动
完成《项目活动记录表》活动3“程序与程序设计语言”
探究、实施、成果展示活动中的
“(5)拓展”表3-3-4,
通过网络搜索相关知识,了解高级语言的编译过程和解释过程各有什么优势和不足。
第三章
算法基础
交
流
语言种类
优势
不足
编译型语言
程序执行速度快,程序执行效率高,同等条件下对系统要求较低。
跨平台性差些。
解释型语言
不同系统平台间的兼容性高。
程序执行效率比较低。
3.3计算机程序与程序设计语言
项目实施
讨
论
请各项目学习小组根据确定的项目主题及设计好的解决问题的算法,依据所学知识,讨论并选择实现该算法的比较合适的程序语言。
完成《项目活动记录表》活动3“程序与程序设计语言”
探究、实施、成果展示活动中的
“(6)决策”
第三章
算法基础
3.3计算机程序与程序设计语言
小
结
第三章
算法基础
活动评价
“综合得分”为:
“学生互评”为30%+“学生自评”为30%
+“教师评”为40%
第三章
算法基础
项目及分值
评分标准与分值
得分
自评
互评
作品选题
20
准确把握项目学习的意义和目的。
5
选题切合实际、符合科学。
5
选题有应用价值、创新价值。
5
选题适宜解决、可行性高。
5
规划与分析
15
准确分析设计的目的。
5
准确分析方案的需求。
5
准确描述方案的功能。
5
工具与方法
10
合理使用数字化工具及资源。
5
围绕项目进行自主、协作学习。
5
步骤与过程
30
能完整经历计算机解决问题的过程
10
运用流程图描述算法
10
通过探讨和网络检索了解计算机程序和计算机语言
10
成果与报告
15
明确问题,设计出最优线路选择的合适算法
10
能运用三种常用方法之一描述项目问题的算法流程
10
报告内容完整,结构清晰,排版美观。
5
合计得分
100交通工具
出发地
出发时间
到达地
到达时间
飞机
A
8:00
B2
11:00
飞机
A
10:00
B2
12:30
飞机
A
11:00
B2
14:20
飞机
A
14:00
B2
16:30
火车
A
7:30
B2
20:30
火车
A
9:20
B2
21:40
火车
A
11:00
B2
22:20
火车
A
13:00
B2
23:55
汽车
A
7:30
B2
21:30
汽车
A
8:20
B2
21:40
汽车
A
9:00
B2
22:50
汽车
A
10:00
B2
23:30
汽车
A
11:00
B2
23:55
交通工具
出发地
出发时间
到达地
到达时间
火车
B2
8:00
B
9:30
火车
B2
10:00
B
11:20
火车
B2
14:00
B
15:00
火车
B2
19:00
B
21:00
汽车
B2
8:20
B
9:50
汽车
B2
9:30
B
11:20
汽车
B2
13:40
B
14:20
汽车
B2
16:20
B
18:30
汽车
B2
20:10
B
22:00交通工具
出发地
出发时间
到达地
到达时间
飞机
A
9:00
B3
12:00
飞机
A
11:00
B3
13:30
飞机
A
15:00
B3
17:30
飞机
A
7:30
B3
20:00
火车
A
9:20
B3
21:20
火车
A
11:00
B3
22:10
火车
A
13:00
B3
23:55
汽车
A
7:30
B3
21:00
汽车
A
8:20
B3
21:30
汽车
A
9:00
B3
22:30
汽车
A
10:00
B3
23:30
汽车
A
11:00
B3
23:55
交通工具
出发地
出发时间
到达地
到达时间
火车
B3
8:00
B
9:30
火车
B3
10:00
B
11:20
火车
B3
14:00
B
15:00
火车
B3
19:00
B
21:00
汽车
B3
8:20
B
9:50
汽车
B3
9:30
B
11:20
汽车
B3
13:40
B
14:20
汽车
B3
16:20
B
18:30
汽车
B3
20:10
B
22:00交通工具
出发地
出发时间
到达地
到达时间
飞机
A
9:00
B1
12:00
飞机
A
12:00
B1
14:30
飞机
A
16:00
B1
18:00
火车
A
8:00
B1
20:00
火车
A
10:00
B1
21:00
火车
A
12:00
B1
21:40
火车
A
13:00
B1
22:30
交通工具
出发地
出发时间
到达地
到达时间
火车
B1
9:00
B
10:30
火车
B1
11:00
B
12:20
火车
B1
15:00
B
16:00
火车
B1
18:00
B
20:00
汽车
B1
8:00
B
9:50
汽车
B1
9:00
B
11:00
汽车
B1
13:00
B
15:10
汽车
B1
15:00
B
17:40
汽车
B1
18:00
B
19:40从A市到B市耗时最少的旅行路线方案设计报告
一、引言
数据在信息社会中具有重要价值,掌握数据处理的基本方法与技能具有重要意义。随着数据的快速增长,人工方式处理海量数据的效率正变得低下,因此掌握利用计算机和算法更高效地分析和解决问题的方法在计算机科学界的作用日益凸显。
二、设计目的
中国桥、中国路、中国车、中国港、中国网,一个个奇迹般建造起来的工程,让人民切切实实感受到生活的便捷、美好和幸福。截至2017年10月,中国高速公路里程13.1万千米,位居世界第一,2020
年将达15万千米;高铁里程2.2万千米,位居世界第一;城市轨道交通4153千米,位居世界第一;光缆线路3041万千米,位居世界第一;世界前10的斜拉桥,中国占7座;世界前10的悬索桥,中国占6座;港口吞吐量世界前10名中国占7席。当从A市到B市没有直达的交通工具时,人们可以利用铁路公司、汽车客运公司和航空公司公布的信息,设计出最佳的旅行路线。
体验计算机解决问题的过程,理解和概述算法的概念与特征,学会运用恰当的描述方法和控制结构表示简单算法,懂得描述程序设计语言产生与发展的过程,了解不同种类程序设计语言的特点。
三、需求分析和功能描述
1.需求分析
需求由以下三部分构成:
(1)体验人工与计算机解决问题的过程。
(2)探究计算机解决问题的算法。
?
(3)了解计算机解决问题的程序。
2.功能描述
(1)设计从A市到B市耗时最少旅行路线的问题分析。
(2)设计从A市到B市耗时最少旅行路线的算法。
(3)编写求解从A市到B市耗时最少的旅行路线问题的程序。
四、设计工具和方法
利用思维导图工具和“头脑风暴”的方法组建团队、明确任务;采用搜索技术,实施探究。
五、设计步骤与过程
1.设计从A市到B市耗时最少旅行路线的问题分析
我们从铁路公司、各航空公司和汽车客运公司网站得知,直达B市的交通工具只有火车和汽车两种,出发地有B1,B2,…,Bk市(没有A市),从A市出发到B1,B2,…,Bk市的交通工具有飞机、火车和汽车三种,这样从A市经B1,B2,…,Bk市到B市的交通情况如右图所示。
由于从A市到B1,B2,…,Bk市有不同的交通工具,每一种交通工具又有不同的班次,因此从A市出发到中转城市B1,B2,…,Bk市就有M1、M2,…,Mk种班次。同样,从中转城市B1,B2,…,Bk市到B市也有不同的交通工具,每一种交通工具有不同的班次,因此从中转城市B1,B2,…,Bk市到B市就有N1,N2,…,Nk种班次。于是从A市经B1,B2,…,Bk市到B市的交通班车(班机)数共有:
S=M1×N1+M2×N2+…+Mk×Nk
寻找从A市到B市耗时最少的旅行路线问题就转化为在S种联运班次中找到一种耗时最少的联运班次。这样就需要遍历每一个班次进行比较,人工方式找到能够中转且等待时间和行驶时间最少的班次,工作量极其浩大!
假设从A市到B市的中转城市只有B1,B2市,从A市经B1,B2市到B市的交通情况如表3-2和表3-3所示。
于是,从A市经B1市到B市的联运班次有7×9=63班;从A市经B2市到B市的联运班次有12×9=108班,合计为S=63+108=171班。然后在171班次中找到能够中转且等待时间加上行驶时间最少的联运班次,如下图所示。
当数据量很大,人工处理效率很低时,我们可以借助计算机,通过编写计算机程序解决问题。在利用计算机解决问题之前,我们首先要分析问题的需求情况、已知条件和需要解决的问题。
在从A市到B市耗时最少的旅行路线问题中,在不知道有多少个中转城市和每个城市有多少班车(或飞机)的情况下,我们可以利用大数据挖掘技术中的爬虫程序(参见配套学习资源包“第三章\课本素材\程序3-1”)到铁路网站、各航空公司和汽车客运公司网站获取从A市经中转城市B1,B2,…,Bk市到达B市的交通班次信息,经过数据清洗,形成结构化的数据存储为Excel文件。
2.设计从A市到B市耗时最少旅行路线的算法
从A市到B市耗时最少的旅行路线问题,根据获取的从A市到B市的中转城市B1,B2,…,Bk的班次,以及各城市各交通班次的发车时间和行驶时间等信息,采用以下的思想找出耗时最少的联运班次问题,即算法如下:
(1)分别找出能够中转的从A市经B1,B2,…,Bk市到达B市的联运班次,并计算所用的时间。
(2)分别找到能够中转的从A市经B1,B2,…,Bk市到达B市的联运班次中耗时最少的联运班次,共k条线路。
(3)取k条线路中耗时最少的联运班次为最佳旅行路线。
3.编写求解从A市到B市耗时最少的旅行路线问题的程序
Python语言编写从A市到B市耗时最少的旅行路线问题的算法的程序可参见配套学习资源包“第三章\课本素材\程序3-1”。其中,找出能够从A市经Bi(i=1,2,…,k)市到达B市的中转联运班次,并计算所用的时间以及找到耗时最少的联运路线的关键程序段如下。
六、设计成果
1.计算机解决问题更高效、更便捷
在现实生活中,我们经常需要对数据进行统计、分析。当数据量不多时,我们可以采用人工方法来处理;然而,当数据量变多时,运用计算机解决问题将是一种更高效、更便捷的方法。
在从A市到B市耗时最少的旅行路线问题中,我们分析并设计了算法和编写了程序之后,可以快速地找出从A市到B市耗时最少的旅行路线问题的结果,如下图所示。
2.算法是计算机解决问题的核心
算法是指在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗地说,算法就是用计算机求解某一问题的方法,是能被机械地执行的动作或指令的有穷集合。
描述算法的常用方法有自然语言描述算法、流程图描述算法和伪代码描述算法。
3.
计算机程序就是指计算机可以识别运行的指令集合
计算机程序是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。简而言之,计算机程序就是指计算机可以识别运行的指令集合。
在用计算机解决问题时,用自然语言、流程图或是伪代码所描述的解决问题的算法都不能被计算机直接执行,还必须将算法按照一定的规则编写成计算机能够识别和运行的程序。而人们编写程序的时候需要遵循的规则就是计算机语言规则。计算机程序设计语言,是指一组用来定义计算机程序的语法规则,通常简称为“编程语言”。它是一种被标准化的交流技巧,用于向计算机发出指令。正确地使用计算机程序设计语言,能让程序员准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应执行的命令。
七、结语
本章通过“设计从A市到B市最佳的旅行路线方案”项目,进行自主、协作、探究学习,让同学们体验计算机解决问题的过程,理解和概述算法的概念与特征,学会运用恰当的描述方法和控制结构表示简单算法,懂得描述程序设计语言产生与发展的过程,了解不同种类程序设计语言的特点,从而将知识建构、技能培养与思维发展融入运用数字化工具解决问题和完成任务的过程中,促进信息技术学科核心素养达成,完成项目学习目标。第三章
算法基础
教学设计
一、项目简介
项目主题
设计从A市到B市最优旅行路线方案
项目背景
目前,中国的桥、路、车、港口、网络规模都做得了世界第一,一个个奇迹般的工程,让人民切实感受到生活的便捷、美好和幸福。当从A市到B市没有直达的交通工具时(不考虑水上交通工具),人们可以利用铁路公司、汽车客运公司和航空公司公布的信息,设计出最优的旅行路线。为了获得高效的交通出行安排,人们根据需求设计好不同阶段的交通工具使用方案,方案中会设计到多条不同方式不同时间的交通工具的排列组合,编写程序来找出哪种方案最佳,比用人工寻找效率更高。在运用计算机解决实际问题的过程中,需要先分析问题,设计解决问题的方法和策略,运用具体的算法。需要了解程序相关的知识,包括计算机语言、计算机程序、解决问题的算法等。
对应教材
广东教育出版社普通高中教科书信息技术必修1《数据与计算》第三章
课时安排
3课时
二、课程标准及目标分析
(一)课程标准及教材分析
1.
本章对应课标的内容要求
从生活实例出发,概述算法的概念与特征,运用恰当的描述方法和控制结构表示简单算法。
2.
本章对应的学业要求
A-3:掌握数字化学习的方法。(信息意识、数字化学习与创新)
A-4:能根据需要选用合适的数字化工具开展学习。(信息意识、数字化学习与创新)
A-6:能够利用软件工具或平台对数据进行整理、组织、计算与呈现。(信息社会责任、计算思维)
A-8:在数据分析的基础上,完成分析报告。(信息社会责任、计算思维)
A-9:依据解决问题的需要,设计和表示简单算法。(计算思维)
3.
本章的地位和作用
本章是《数据与计算》的第三章,也是学习第四章、选择性必修模块《数据管理与分析》、选修模块《算法初步》的基础知识与技能准备。本章以培养信息素养为目标,以知识技能为载体,以项目学习活动为途径,开展自主、协作、探究学习,让学生理解算法的概念与特征,能够运用算法描述和三种基本控制结构合理表示算法。
(二)学科核心素养
信息意识:针对特定的信息问题,自觉、主动地比较不同的信息源,能描述数据与信息的关系,确定合适的信息获取策略。根据不同受众的特征,能选择恰当的方式进行有效的交流。依据特定任务需求,甄别不同信息获取方法的优劣,并能利用适当途径甄别信息。主动关注信息技术工具发展中的新动向和新趋势,有意识地使用新技术处理信息。
计算思维:针对给定的任务进行需求分析,明确需要解决的关键问题。能提取问题的基本特征,进行抽象处理,并用形式化的方法表述问题。运用基本算法设计解决问题的方案。
数字化学习与创新:针对特定的学习任务,运用一定的数字化学习策略管理学习过程与资源,完成任务,创作作品。在网络学习空间中开展协作学习,建构知识。
信息社会责任:在信息交流或合作中,尊重不同的信息文化,积极、主动地融入信息社会中。
(三)目标分析
1.
项目目标
本章通过“设计从A
市到B
市最佳的旅行路线方案”项目,组织学生进行自主、协作、探究学习,让学生体验计算机解决问题的过程,理解和概述算法的概念与特征,能够运用恰当的描述方法和控制结构表示简单算法,懂得描述程序设计语言产生与发展的过程,了解不同种类程序设计语言的特点,从而将知识建构、技能培养与思维发展融入运用数字化工具解决问题和完成任务的过程中,促进本章对应课标的学科核心素养达成,完成项目学习目标。
2.
学业目标
(1)针对特定的信息问题,自觉、主动地比较不同的信息源,能描述数据与信息的关系,确定合适的信息获取策略。(信息意识1)
(2)根据不同受众的特征,能选择恰当的方式进行有效的交流。(信息意识1)
(3)依据特定任务需求,甄别不同信息获取方法的优劣,并能利用适当途径甄别信息。(信息意识1)
(4)主动关注信息技术工具发展中的新动向和新趋势,有意识地使用新技术处理信息。(信息意识1)
(5)针对给定的任务进行需求分析,明确需要解决的关键问题。(计算思维1)
(6)能提取问题的基本特征,进行抽象处理,并用形式化的方法表述问题。(计算思维1)
(7)运用基本算法设计解决问题的方案。(计算思维1)
(8)针对特定的学习任务,运用一定的数字化学习策略管理学习过程与资源,完成任务,创作作品。(数字化学习与创新1)
(9)在网络学习空间中开展协作学习,建构知识。(数字化学习与创新1)
(10)在信息交流或合作中,尊重不同的信息文化,积极、主动地融入信息社会中。(信息社会责任1)
重点:
(1)计算机解决问题的过程。
(2)算法的特征与描述方法。
(3)程序设计语言的产生与发展。
难点:
(1)计算机解决问题的过程。
(2)算法的描述方法。
三、学情分析
学生经过前面两章的学习,对项目式学习的过程和方法有所了解,具有一定的数字化学习能力、一定的信息加工处理能力和数据分析处理能力。然而,对于编写计算机程序解决问题的相关知识了解不多,大部分同学处于零起点状态。结合新课程内容标准,在教学中要紧紧围绕学科核心素养,以项目方式整合课堂教学,重构教学组织方式,充份利用教材和数字化环境、资源,引导学生在数字化学习的过程中,领悟数字化环境对个人发展的影响,养成终身学习的习惯。
四、教学方法和策略
创设基于生活需求的活动情境,组织学生在分析和解决问题的过程中探究编制计算机程序解决问题的过程和方法,通过小组项目的自主、协作、探究学习,完成算法、计算机语言和程序设计相关知识的了解。
资源列表
资源名称
清单及描述
形式(类型)
来源
课件
第三章
算法基础(课件)
演示文稿
教师制作
微课
本章课程介绍
本章项目范例
《Python的安装与调试》
《算法的常用描述方法》
《程序的三种基本结构》
《计算机程序运行原理》
《语言的编译与解释》
微课视频
教师制作
软件工具
Python3.
软件
Python官方网站
六、学习活动流程
七、学习活动设计
范例学习
项目主题
设计从A市到B市耗时最少旅行路线方案
项目背景
当从A市到B市没有直达的交通工具时,人们可以利用铁路公司、汽车客运公司和航空公司公布的信息,设计出耗时最少的旅行路线,在运用计算机解决最优路线的过程中,最重要的是算法以及用计算机语言实现的计算机程序。
项目目标
通过项目的完成,体验计算机解决问题的过程,了解算法的概念与特征,并能运用不同的方法描述算法过程,了解计算机程序和计算机语言的产生与发展,能设计解决问题的算法并描述其算法过程,从而实现项目学习目标。
工具和方法
利用思维导图工具和“头脑风暴”的方法组建团队、明确任务;利用搜索技术了解相关知识,通过数学建模方法分析问题设计算法,实施探究。
实施过程
明确项目问题;
规划设计:制订项目学习的学习规划;
探究活动与项目实施:通过探究活动了解计算机解决问题的过程、算法和算法的描述、计算机程序与程序设计语言,设计问题的算法并运用适当的方法描述算法流程;
(4)作品制作:找到从A市到B市的最优旅行路线;
(5)成果交流;
(6)活动评价。
成果
从A市到B市耗时最少的旅行路线方案可视化报告
项目选题
教师活动
提供更多的选题,并参与到小组的选题讨论中。
学生活动
根据教材选题、教师提供的附加选题或自拟,小组头脑风暴后确定项目选题,以小组为单位,填写《项目学习活动记录表》“项目选题”栏目。
项目规划
教师活动
强调项目目标及学习目标,引导学生分析项目问题,指导小组完成项目规划,组织开展方案交流。
学生活动
小组依照项目范例,结合本组选题,利用思维导图制订本组项目规划方案,填写《项目学习活动记录表》“项目规划”栏目。
探究活动
项目实施
活动1:结合本组选题,通过学习和交流,体验计算机解决问题的过程。
教师活动
以项目范例为例,引导学生对项目问题进行分析和思考,探讨寻找最优路线的方法,引导学生通过课程提供的教学资源(包括样例数据和范例程序)体验计算机解决问题的过程。
学生活动
通过学习,对小组项目问题进行分析和思考,了解计算机解决问题的过程,通过课程教学资源体验用计算机程序求解最少耗时旅行路线的方案,填写《项目学习活动记录表》“探究活动
项目实施”栏目中的“活动1”的内容。
活动2:通过观察、学习和实践尝试,了解算法及其描述方法,完成小组项目问题的算法设计及其描述
教师活动
引导学生观察和分析课本中数学方程解的算法步骤,了解算法的概念,引导学生分组研究和交流三种常用算法描述方法,提供学习资源,并指导学生用流程图描述出欧几里得算法流程,引导学生完成相应项目问题的算法设计和描述。
学生活动
分析、学习算法概念及算法描述方法,探究用流程图描述欧几里得算法,小组讨论完成项目问题的算法设计,并使用适合的方法将算法流程描述出来。同时填写《项目学习活动记录表》“探究活动
项目实施”栏目中的“活动2”的内容。
活动3:通过讨论、学习、网上检索了解计算机程序和程序设计语言,尝试下载、安装和运行相应的程序设计软件。
教师活动
引导学生讨论、网上检索认识计算机程序,了解程序设计语言,提供学习资源和程序设计软件,并指导学生安装和运行程序设计软件。
学生活动
通过讨论确定认识计算机程序的问题,通过学习和网上检索了解什么是计算机程序,计算机程序设计语言的发展历程,计算机语言的分类。下载、安装并尝试运行计算机程序设计软件,同时填写《项目学习活动记录表》“探究活动
项目实施”栏目中的“活动3”的内容。
项目实施
各小组参照项目范例的样式,运用数字化学习工具,如腾讯文档、演示文稿等,归纳所学知识,梳理探究活动的成果,撰写相应的项目成果报告。
成果交流
各小组运用数字化学习工具将完成的项目成果,在小组或班级上进行展示与交流,共享创造、分享快乐。
活动评价
各小组根据项目选题、拟订的项目方案、实施情况以及所形成的项目成果,利用“作品评价量规”及教科书附录2的“项目活动评价表”,开展项目学习活动评价。
八、学习成果
“设计从A市到B市的最优旅行路线方案”可视化报告
九、评价方案
(一)评价时间线
(二)评价工具
评价方法/工具
评价的过程和目标
项目范例报告
用于整个活动,主要作用是为学生项目实施和作品制作提供示范和引领。(见附件1)
项目学习活动记录表
用于整个学习活动,主要作用是指导学生开展项目学习活动,明确项目学习内容,记录学习过程及阶段性成果。(见附件2)
作品评价量规
使用量规项目来帮助学生创作高品质的作品,确保达到项目预期。同时用量规为同伴的作品提供反馈。教师使用量规来评价。(见附件3)
项目活动评价表
对整个项目学习过程中各环节,学科核心素养达成的情况进行评价。(见教科书附录2)
十、项目实施说明
(一)关于课时分配
建议课时分配如下:
第1课时:范例学习、项目选题与项目规划、探究活动(活动1)
第2课时:探究活动(活动2)、项目实施
第3课时:项目探究(活动3)、项目实施、成果交流、活动评价
(二)关于项目范例
本章教师通过“设计从A市到B市的最少耗时旅行路线方案”项目范例,引导学生学习“算法基础”。
(三)关于项目选题
围绕本章项目学习活动大主题“设计从A
市到B
市最佳的旅行路线方案”,根据生活中常见的最佳旅行路线方案,细化项目学习活动的主题,组织学生开展学习。
(1)设计从A
市到B
市耗时最少的旅行路线方案;
(2)设计从A
市到B
市交通费最少的旅行路线方案;
(3)设计从A
市到B
市路程最短的旅行路线方案;
(4)在不超预算的情况下,设计从A市到B市耗时最少的旅行路线方案;
(5)自拟……
(四)关于探究活动
“探究活动”对应项目范例的主题,串联知识点,学生在学习范例的同时自选项目主题,结合范例学习,完成自选主题的项目探究活动。“探究活动”的设计,使得学生在做项目的过程中学习知识、建构知识。教师提供记录表单和学习资源对学生的自主探究给予帮助和支持,以提高学生的学习效率和维持学生的学习兴趣。
十一、附件
附件1:项目范例可视化报告
从A市到B市耗时最少的旅行路线方案设计报告
一、引言
数据在信息社会中具有重要价值,掌握数据处理的基本方法与技能具有重要意义。随着数据的快速增长,人工方式处理海量数据的效率正变得低下,因此掌握利用计算机和算法更高效地分析和解决问题的方法在计算机科学界的作用日益凸显。
二、设计目的
中国桥、中国路、中国车、中国港、中国网,一个个奇迹般建造起来的工程,让人民切切实实感受到生活的便捷、美好和幸福。截至2017年10月,中国高速公路里程13.1万千米,位居世界第一,2020
年将达15万千米;高铁里程2.2万千米,位居世界第一;城市轨道交通4153千米,位居世界第一;光缆线路3041万千米,位居世界第一;世界前10的斜拉桥,中国占7座;世界前10的悬索桥,中国占6座;港口吞吐量世界前10名中国占7席。当从A市到B市没有直达的交通工具时,人们可以利用铁路公司、汽车客运公司和航空公司公布的信息,设计出最佳的旅行路线。
体验计算机解决问题的过程,理解和概述算法的概念与特征,学会运用恰当的描述方法和控制结构表示简单算法,懂得描述程序设计语言产生与发展的过程,了解不同种类程序设计语言的特点。
三、需求分析和功能描述
1.需求分析
需求由以下三部分构成:
(1)体验人工与计算机解决问题的过程。
(2)探究计算机解决问题的算法。
?
(3)了解计算机解决问题的程序。
2.功能描述
(1)设计从A市到B市耗时最少旅行路线的问题分析。
(2)设计从A市到B市耗时最少旅行路线的算法。
(3)编写求解从A市到B市耗时最少的旅行路线问题的程序。
四、设计工具和方法
利用思维导图工具和“头脑风暴”的方法组建团队、明确任务;采用搜索技术,实施探究。
五、设计步骤与过程
1.设计从A市到B市耗时最少旅行路线的问题分析
我们从铁路公司、各航空公司和汽车客运公司网站得知,直达B市的交通工具只有火车和汽车两种,出发地有B1,B2,…,Bk市(没有A市),从A市出发到B1,B2,…,Bk市的交通工具有飞机、火车和汽车三种,这样从A市经B1,B2,…,Bk市到B市的交通情况如右图所示。
由于从A市到B1,B2,…,Bk市有不同的交通工具,每一种交通工具又有不同的班次,因此从A市出发到中转城市B1,B2,…,Bk市就有M1、M2,…,Mk种班次。同样,从中转城市B1,B2,…,Bk市到B市也有不同的交通工具,每一种交通工具有不同的班次,因此从中转城市B1,B2,…,Bk市到B市就有N1,N2,…,Nk种班次。于是从A市经B1,
B2,…,Bk市到B市的交通班车(班机)数共有:
S=M1×N1+M2×N2+…+Mk×Nk
寻找从A市到B市耗时最少的旅行路线问题就转化为在S种联运班次中找到一种耗时最少的联运班次。这样就需要遍历每一个班次进行比较,人工方式找到能够中转且等待时间和行驶时间最少的班次,工作量极其浩大!
假设从A市到B市的中转城市只有B1,B2市,从A市经B1,B2市到B市的交通情况如表3-2和表3-3所示。
于是,从A市经B1市到B市的联运班次有7×9=63班;从A市经B2市到B市的联运班次有12×9=108班,合计为S=63+108=171班。然后在171班次中找到能够中转且等待时间加上行驶时间最少的联运班次,如下图所示。
当数据量很大,人工处理效率很低时,我们可以借助计算机,通过编写计算机程序解决问题。在利用计算机解决问题之前,我们首先要分析问题的需求情况、已知条件和需要解决的问题。
在从A市到B市耗时最少的旅行路线问题中,在不知道有多少个中转城市和每个城市有多少班车(或飞机)的情况下,我们可以利用大数据挖掘技术中的爬虫程序(参见配套学习资源包“第三章\课本素材\程序3-1”)到铁路网站、各航空公司和汽车客运公司网站获取从A市经中转城市B1,B2,…,Bk市到达B市的交通班次信息,经过数据清洗,形成结构化的数据存储为Excel文件。
2.设计从A市到B市耗时最少旅行路线的算法
从A市到B市耗时最少的旅行路线问题,根据获取的从A市到B市的中转城市B1,B2,…,Bk的班次,以及各城市各交通班次的发车时间和行驶时间等信息,采用以下的思想找出耗时最少的联运班次问题,即算法如下:
(1)分别找出能够中转的从A市经B1,B2,…,Bk市到达B市的联运班次,并计算所用的时间。
(2)分别找到能够中转的从A市经B1,B2,…,Bk市到达B市的联运班次中耗时最少的联运班次,共k条线路。
(3)取k条线路中耗时最少的联运班次为最佳旅行路线。
3.编写求解从A市到B市耗时最少的旅行路线问题的程序
Python语言编写从A市到B市耗时最少的旅行路线问题的算法的程序可参见配套学习资源包“第三章\课本素材\程序3-1”。其中,找出能够从A市经Bi(i=1,2,…,k)市到达B市的中转联运班次,并计算所用的时间以及找到耗时最少的联运路线的关键程序段如下。
六、设计成果
1.计算机解决问题更高效、更便捷
在现实生活中,我们经常需要对数据进行统计、分析。当数据量不多时,我们可以采用人工方法来处理;然而,当数据量变多时,运用计算机解决问题将是一种更高效、更便捷的方法。
在从A市到B市耗时最少的旅行路线问题中,我们分析并设计了算法和编写了程序之后,可以快速地找出从A市到B市耗时最少的旅行路线问题的结果,如下图所示。
2.算法是计算机解决问题的核心
算法是指在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗地说,算法就是用计算机求解某一问题的方法,是能被机械地执行的动作或指令的有穷集合。
描述算法的常用方法有自然语言描述算法、流程图描述算法和伪代码描述算法。
3.
计算机程序就是指计算机可以识别运行的指令集合
计算机程序是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。简而言之,计算机程序就是指计算机可以识别运行的指令集合。
在用计算机解决问题时,用自然语言、流程图或是伪代码所描述的解决问题的算法都不能被计算机直接执行,还必须将算法按照一定的规则编写成计算机能够识别和运行的程序。而人们编写程序的时候需要遵循的规则就是计算机语言规则。计算机程序设计语言,是指一组用来定义计算机程序的语法规则,通常简称为“编程语言”。它是一种被标准化的交流技巧,用于向计算机发出指令。正确地使用计算机程序设计语言,能让程序员准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应执行的命令。
七、结语
本章通过“设计从A市到B市最佳的旅行路线方案”项目,进行自主、协作、探究学习,让同学们体验计算机解决问题的过程,理解和概述算法的概念与特征,学会运用恰当的描述方法和控制结构表示简单算法,懂得描述程序设计语言产生与发展的过程,了解不同种类程序设计语言的特点,从而将知识建构、技能培养与思维发展融入运用数字化工具解决问题和完成任务的过程中,促进信息技术学科核心素养达成,完成项目学习目标。
附件2:项目学习活动记录表
第三章项目学习活动记录表
班级
小组编号
项目选题
项目主题
项目目的
小组成员及分工
组长:
记录人:
备注或其它说明:
项目规划
问题列表
编号
问题内容
方法
项目规划(思维导图):
探究活动
项目实施
活动1:结合本组选题,通过学习和交流,体验计算机解决问题的过程。
知识技能(计算机解决问题的过程)
分析问题
设计算法
编写程序
调试运行程序
人工解决与计算机解决问题方式的异同讨论记录
求解问题的方式
相同点
不同点
人工求解问题
用计算机求解问题
小组项目成果(学习小结)
活动2:通过观察、学习和实践尝试,了解算法及其描述方法,完成小组项目问题的算法设计及其描述。
知识技能
算法的定义
算法的特征
三种算法描述方法比较:
算法描述方法优势不足自然语言描述法流程图描述法伪代码描述法
用流程图描述欧几里得算法:
小组项目成果
设计项目问题的算法(用自然语言描述):
设计项目问题的算法(用流程图描述):
活动3:通过讨论、学习、网上检索了解计算机程序和程序设计语言,尝试下载、安装和运行相应的程序设计软件。
知识技能
认识计算机程序的问题列表及分工
问题信息的获取过程选择信息来源确定信息获取方法评价信息分工及实际安排认知程度(认识/了解/描述/掌握)问题1:什么是计算机程序?问题2:程序设计语言有哪些?问题3:
问题4:
问题结论(选择上表中一个问题,将了解的结果记录下来):
三代语言优势与不足:
语言类型是否翻译(编译)优势不足机器语言汇编语言高级语言
两类语言比较:
语言种类优势不足编译型语言解释型语言
完善下列高级程序语言的编译过程与解释过程流程图:
附件3:作品评价量规
项目及分值
评分标准与分值
得分
自评
互评
作品选题
20
准确把握项目学习的意义和目的。
5
选题切合实际、符合科学。
5
选题有应用价值、创新价值。
5
选题适宜解决、可行性高。
5
规划与分析
15
准确分析设计的目的。
5
准确分析方案的需求。
5
准确描述方案的功能。
5
工具与方法
10
合理使用数字化工具及资源。
5
围绕项目进行自主、协作学习。
5
步骤与过程
30
交流与沟通的团队合作能力。
5
能完整经历计算机解决问题的过程。
5
运用流程图描述算法。
10
通过探讨和网络检索了解计算机程序和计算机语言。
10
成果与报告
15
明确问题,设计出最优线路选择的合适算法。
10
能运用三种常用方法之一描述项目问题的算法流程。
10
报告内容完整,结构清晰,排版美观。
5
合计得分
100
9
/
22&P
交通工具
出发地
出发时间
到达地
到达时间
飞机
A
11:00:00
上午
B3
1:30:00
下午
汽车
B3
1:40:00
下午
B
2:20:00
下午
&F