第1章第一节了解计算机解决问题的过程
一、教学目标:
知识
1、让学生了解算法、枚举法、程序设计语言、编写程序和调试程序等概念。
2、让学生知道对现实问题的自然语言的描述,特别是类似程序设计语言的自然语言描述。
3、让学生理解分析问题、设计算法、编写程序、调试程序这一用计算机解决问题的基本步骤,认识其在算法与程序设计中的作用。
技能
1、培养学生调试程序的能力。
2、培养学生合作、讨论、观摩、交流和自主学习的能力。
情感
通过“物不知数”、“韩信点兵”等富有生动情节的实例和探究、讲授、观摩、交流等环节,让学生体验用计算机解决问题的基本过程和乐趣。
二、内容分析:
“算法与程序设计”是普通高中信息技术的选修模块之1,它的前导课程是信息技术的必修模块“信息技术基础”。学生在“信息技术基础”模块里已经学习了计算机的基本操作,掌握了启动程序、窗口操作和文字编辑等基础知识。学生可以利用上述的基础知识,用于本节课的启动Visual Basic程序设计环境,输入程序代码,运行程序等操作。21世纪教育网版权所有
本节课“计算机解决问题的过程”是“算法与程序设计”模块的第一节课,上好这节课是使学生能否学好“算法与程序设计”这一模块的关键。本节课的教学目的是让学生理解分析问题、设计算法、编写程序和调试程序等用计算机解决问题的基本过程,认识其在算法与程序设计中的地位和作用,它也是后续课程如模块化程序设计、各种算法设计等课程的基础。
与本节课相联系的旧知识是计算机的基本操作中鼠标、键盘操作,启动、关闭程序,窗口、菜单操作和文字编辑等基础知识,还有高一数学模块三中算法和流程图等知识。
3、学情分析:
经过高一年级对信息技术课程的学习,学生对计算机都有了一定的了解,并具备了一定的计算机操作能力。并且在高一数学模块三中学习过算法和流程图等内容,还初步了解了面向过程的三种结构,因此学生对本节内容并不陌生,只是缺乏深入和系统的学习和研究。
4、设计思路:
本节课是一堂理论性的课,如果单纯由教师讲解就会显得比较枯燥,因此本堂课的设计思路是从经典的问题入手,体验手工计算的局限性,从而引出利用计算机解题的必要性,体验计算机解题的各个环节,最后得出结论,达到理解的目的。教师的主要任务在于积极引导,调动学生的积极性。21教育网
三、教学过程描述
教学环节及时间
教师活动
学生活动
设计意图
引入部分
提问:老师小时候经常玩耍的内容是掏鸟窝、玩泥巴、打陀螺等等,?同学们现在经常玩的内容是什么呢?
老师:看来同学们玩的内容都与一样东西联系紧密,这样东西是什么呢?
老师:有调查结果显示,三分之一的人认为自己离开电脑和互联网无法生活。
提问:在惊叹计算机的神奇和享受的欢乐的时候,你是否了解计算解决问题的基本过程?有没有思考过其中的奥妙呢?
学生们踊跃回答,如玩电脑游戏、QQ聊天、上网、听MP3、看MP4等等
异口同声:电脑
窃窃私语,
回答:没有或不清楚
利用学生感兴趣的话题,激发学生的学习兴趣,引入课题。
(一)
手工解题
首先,我们来看看人解决问题的过程是怎样的,先来看一个古典的问题,我国古代数学名著《孙子算经》中有一个“物不知数”的问题:今有物不知其数,三三数之剩2,五五数之剩3,七七数之剩2,问物几何?
思考、演算
提出问题
分析问题
?把学生分为8个学习小组,分组讨论,并利用已学过的数学知识找出题目已知什么求什么、写出求解问题的解题步骤。并填写“探究问题记录表。见附录1
讨论、探究
填写记录表
培养学生合作、讨论、交流和自主学习的能力
写出算法
引导学生从最简单、最容易想到的枚举法入手。
并从中总结出枚举法的算法,解释并写出算法。见附录2
深入探究
了解枚举思想与算法及其描述方式
手工计算
写出“用3除余2”的数:2,5,8,11,14,17,20,23,26,29,…
其中,“用5除余3”的数:8,23,…
其中,“用7除余2”的数:23,…
计算、观察
体验人工计算过程,为后面引入用计算机来解决问题作好铺垫
得出结果
由此得到,23是一个最小的解
检验结果
(二)
计算机解题
提问:那么比23大的下一个解是多少呢?试验以后发现,是要花些时间的。如果是比较大的数,例如一万以上,那就很费力了。
疑惑
引出新问题
下面我们来看一个数据量比较大的问题:韩信是我国西汉初著名的军事家,相传汉高祖刘邦问大将军韩信统御兵士多少,韩信回答说,每3人一列余1人、5人一列余2人、7人一列余4人、13人一列余6人,17人一列余8人,刘邦听后茫然而不知其数。
茫然
以生动并富有挑战性的问题,激发学生学习兴趣
分析问题
教师:上面的结果接近两万,人工计算要很长时间,如果要你们来解决这个问题,你们有什么好的办法吗?
回答:用计
算机解题
认识计算机解题的必要性
写出算法
给几分钟时间,让学生分析上述问题并写出算法,
在前面算法的基础上,学生很快写出算法。
熟悉算法及其描述方式,认识算法的重要性
编写程序
老师:要计算机解决问题有了算法还不行,还要把算法翻译成计算机能够认识的程序。
展示程序:见附录3
期待、观看
了解由算法到程序的过程
调试程序
教师:“程序编好以后,通过键盘输入计算机,运行程序看是否有错误,然后修改程序,直到得出正确结果的这个过程叫调试程序。”
演示:启动Visual Basic程序设计环境,输入程序代码,进行调试,生成执行文件。
观摩、跃跃欲试
通过生动直观的演示,激发学生对学习算法与程序设计的兴趣
得出结果
运行程序,得到结果:18232
惊奇
自主探究
把程序代码分发给学生,让学生上机调试运行程序,教师个别指导。
动手操作
培养动手能力
激发学习兴趣
讨论总结
总结:“学习了用计算机解决问题的过程,那么它和手工解题有什么关系呢?
思考、回忆
比较人与计算机解题过程的异同,得出计算机解决问题的过程
分组探讨人工求解问题和用计算机求解问题的异同,并把讨论结果记录在“求解问题的方式讨论记录”表中。见附录4
分组探讨
教师提问2~3个小组的讨论结果,并引导出大致如下的形式结果。
填写记录表
见附录5
课堂总结
总结本课学习内容,梳理应掌握的知识,展示计算机解决问题的过程。
课后延伸
1、有若干只鸡兔同在一个笼子里,从上面数,有35个头;从下面数,有94只脚。求笼中各有几只鸡和兔?
①分析问题,列出数学表达式
②写出解题算法
2、“韩信分油”游戏:“3斤葫芦、7斤罐、10斤油篓分一半”,就是用3斤、7斤和10斤这样三种容器来分出两个5斤,要怎么分,试写出步骤。
四、教学反思
1、整个课堂教学气氛非常活跃,条理清楚,不同层次的学生都能积极参与到课堂讨论中来。主要得益于两个方面:一是利用两个生动且富有挑战性的经典问题,二是教师的演示和学生动手调试程序环节,将学生牢牢的吸引住;同时本课很多内容都是基于高一数学模块三中的已学知识,知识点的难度小。如算法及其描述方式在高一数学中已有介绍,所以整堂课学生的参与度高。 21cnjy.com
2、学生动手调试程序环节如果把握不好,容易超时和失控。
附:教学资源、学生学习过程及典型成果
1、探究问题记录表
分析问题(找出已知和未知、列出已知和未知之间的关系)
写出解题步骤
结果
2、“物不知数”问题算法:
① 令X为1。
② 如果X整除3余2,X整除5余3,X整除7余2,这就是题目要求的数,则记下这个X
③ 令X为X+1(为算下一个作准备)
④ 如果算出,则结束;否则跳转到第②步
⑤ 写出答案
3、“韩信点兵”源程序代码:
Private Sub command1_Click()
Dim X As Integer, Y As Integer
X = 1: Y = 0
Do
If X Mod 3 = 1 Then
If X Mod 5 = 2 Then
If X Mod 7 = 4 Then
If X Mod 13 = 6 Then
If X Mod 17 = 8 Then Y = X
End If
End If
End If
End If
X = X + 1
Loop Until Y > 0
Print "韩信统御士兵数:"; Y
End Sub
4、关于求解问题的方式讨论记录
求解问题的方式
相同点
不同点
人工求解问题
用计算机求解问题
5、学生填表大致结果:
求解问题的方式
相同点
不同点
人工求解问题
分析问题、设计算法、得出结果、验算结果等
对题目进行解答、运算速度慢、不需要计算机等
用计算机求解问题
编写程序、调试程序、运算速度快等
6、“韩信点兵”执行程序:hxdb.exe