内容正文:
3.1用计算机编程解决问题的一般过程(教学设计)
年级
高一
授课时间
课题
3.1用计算机编程解决问题的一般过程
教学
目标
1.了解用计算机解决问题的一般过程。
(学科核心素养:信息意识)
2.掌握分析问题、设计算法、编写程序、调试运行等步骤的具体内容和方法。
(学科核心素养:信息意识、计算思维)
3.能够运用所学知识分析实际问题,并尝试用计算机解决简单问题,提升信息技术学科素养和对科技认同感。(学科核心素养:信息意识、数字化学习与创新)
教学
重难点
重点:掌握分析问题、设计算法、编写程序、调试运行等步骤的具体内容和方法。
难点:能够运用所学知识分析实际问题,并尝试用计算机解决简单问题。
教学
准备
多媒体网络教室 ppt教学课件 学习资源包、学习任务单
教学过程
教师活动
学生活动
新
课
导
入
情景导入:图片展示生活中利用计算机解决问题的场景
1.图像识别:计算机可以识别图像中的物体、人物和场景等信息。例如,在安防领域,计算机可以通过摄像头拍摄的图像识别出可疑人员和行为,及时发出警报。在智能手机中,图像识别技术可以用于人脸识别解锁、拍照翻译等功能。
2.智能语音助手可以通过语音识别技术将用户的语音指令转换为文本,然后通过自然语言处理技术理解用户的意图,并执行相应的操作。
3.车载导航系统和手机导航软件利用计算机技术为用户提供最佳的行车路线。通过对地图数据、实时交通信息和用户的目的地进行分析,计算机可以计算出最快、最便捷的路线,并为用户提供导航指引。
4.医学研究中,计算机可以对大量的医学图像进行分析。例如,通过对 CT、MRI 等医学影像数据进行处理,计算机可以帮助医生检测病变、分析病情的严重程度等。
师:同学们,我们知道那么计算机在生活中的应用,那你知道计算机是如何解决实际问题的吗?
今天就让我们共同走进计算机编程解决问题的一般过程。
创设情景,激发兴趣
新 知 讲 授
任务一: 如何利用计算机编程设计一个计算机程序绘制正多边方形
1.小组交流讨论剖析:利用计算机绘制正多边形的方法
(1) 抽象与建模
分析:正多边形各边长相等,各内角度数也相等。
明确方法:画一条边,旋转一定角度后,再画一条边,重复执行。
任务二:绘制正六边形:
1. 边长任意,保持每条边一样长
2. 旋转角度为60度
3. 重复六次
由正六边形图形绘制抽象出正多边形图形绘制结果:
(1) 知道正多边形边数n和边长a
(2) 知道每次旋转角度
正多边形内角值:d=(n-2)*180/n
旋转角度:180-d
(2)设计算法
请同学们根据前面的分析与抽象建模,进行算法设计的描述。
A.输入要绘制的正多边形的边数n 和边长a
B.计算正多边形的内角度数d=(n-2)*180/n
C.将一下过程重复n遍:画一条长度为a的线段,然后再将画笔向左旋转180-d 度。
(3)编写程序
(4)调试程序
通过运行程序,计算机会自动执行程序中的命令,但是,在将算法进行程序实现时可能会因为录入错误、语法错误、逻辑错误等原因,导致程序不能正常运行或输出错误结果。此时,需要对程序进行调试。
任务三:绘制其他正多边方法细化图具体见下图1
详细内容见图1
结合前面的任务中绘制正六边形的程序代码,尝试修改代码绘制出其他正多边形,并进行班级分享。
(1) 正三角形:
(2) 正方形:
(3) 正八边形:
结论1:无需更改代码,即可绘制不同的正多边形,只需要在输入时更改输入的边数和边长即可,说明编写的程序解决的不是某个问题而是某类问题。
结论2:利用计算机编程解决一般问题的步骤包括:抽象与建模,设计算法、编码实现、运行调试代码
任务四:验证哥德巴赫猜想
1742 年,德国数学家哥德巴赫提出:任何一个大于 2 的偶数都可以表示为两个素数之和。例如,4 = 2 + 2,6 = 3 + 3,8 = 3 + 5 等等。这个猜想被称为哥德巴赫猜想。
(1) 以小组为单位,讨论交流利用计算机编程验证哥德巴赫猜想的一般过程。
对计算机来说:
(1) 首先是抽象与建模:
要想验证哥德巴赫猜想需要计算机能够判断给出的数是否为大于2的偶数,并且能够从最小的素数2开始依次验证直到验证至n/2,找到素数i,验证n-i 是否为素数,如果能找到就验证了哥德巴赫猜想,并输出来。
(2)算法描述:
输入一个大于等于 4 的偶数 n。
如果输入的数小于 4 或者不是偶数,则提示不符合验证条件。
对于从 2 开始到 n/2 的数 i:
判断 i 是否为素数。如果 i 不是素数,则继续下一个 i 的判断。
如果 i 是素数,那么计算 n - i。
判断 n - i 是否为素数。
如果 n - i 也是素数,那么就找到了满足哥德巴赫猜想的两个素数,输出 n = i + (n - i),算法结束。
如果遍历完所有可能的 i 都没有找到满足条件的两个素数,则提示在当前计算能力下,未能找到该数的哥德巴赫猜想表示。
对于计算机来说:
(3)设计算法
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
def verify_goldbach(even_number):
if even_number % 2!= 0 or even_number < 4:
return False
for i in range(2, even_number):
if is_prime(i):
j = even_number - i
if is_prime(j):
return True
return False
num = int(input("请输入num:"))
if verify_goldbach(num):
print(f"{num}可以表示为两个质数之和。")
else:
print(f"{num}不能表示为两个质数之和。")
用计算机解决问题时,由于实际问题情境的复杂性,需要对实际问题进行抽象与建模,再根据建立的计算模型设计算法,并将算法用合适的方式加以准确描述。
课
堂
练
习
1.利用计算机编程解决问题需要经过( )等步骤。每个步骤都需要认真对待,确保问题能够得到正确、高效的解决。
A. 抽象与建模、算法设计、编写代码、运行调试代码
B. 抽象与建模、代码实现、结果验证和文档编写
C. 算法设计、抽象与建模、代码实现、结果验证
D. 描述算法、抽象与建模、代码实现、验证结果
正确答案:A
答案解析:本题考查利用计算机编程解决问题的一般过程,利用计算机编程解决问题需要经过抽象与建模、算法设计、代码实现、结果验证和文档编写等步骤,每个步骤都需要认真对待,确保问题能够得到正确、高效的解决。故本题选择A选项。
2.下列有关算法设计阶段的说法不正确的是( D)
A.算法设计阶段需要根据实际需要选择合适的算法和数据结构来解决问题。
B.在算法设计阶段,描述算法的步骤和流程采用的方式会影响算法的优劣。
C.在算法设计阶段需要分析算法的时间复杂度和空间复杂度。评估算法的效率,确定是否满足问题的要求。
D.在算法设计阶段最重要的就是进行代码测试和调试。
正确答案:D
答案解析:本题考查算法设计阶段的主要任务,D选项中描述的是代码实现阶段的内容,故本题选择D选项。
课
堂
小
结
1. 学生思考并总结分享本节课收获,各同学之间互相补充。
2. 教师出示本节课思维导图,回顾利用计算机编程解决问题的一般过程,总结本节课的重点内容,如抽象与建模、算法设计、代码实现、结果验证和文档编写等。
3. 鼓励学生在今后的学习和生活中,积极运用计算机编程解决实际问题。本节课思维导图如下:
作
业
设
计
1.完成分层作业。
2.学有余力的同学,尝试利用流程图来描述利用计算机编程解决计算某网站中文出现次数的过程。
反
思
评
价
通过本节课的教学,学生了解了利用计算机编程解决问题的一般过程,掌握了问题分析、算法设计、代码实现、结果验证和文档编写等基本技能。在教学过程中,通过案例分析和小组实践,让学生亲身体验了编程的乐趣和挑战,培养了学生的逻辑思维能力和问题解决能力。同时,通过展示和评价作品,让学生学会了欣赏和评价他人的作品,提高了学生的表达能力和批判性思维能力。在今后的教学中,可以进一步加强对学生编程能力的培养,提供更多的实践机会,让学生在实践中不断提高自己的编程水平。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$