第9-10课时 程序设计基础
教学内容分析
本课是走进程序世界的第1课,是程序设计知识的基础。
主题1主要介绍了程序设计语言与算法的基本概念。教材在讲述基本概念的同时,还介绍了描述算法的具体方法。体现了教材内容由理论到实践,由抽象概念到具体应用的递进关系。本课所涉及的知识,为后续课程进行C语言程序设计的学习奠定了理论基础,构建了全局的概念性的知识框架结构。
主题2以Dev-C++为例介绍了C语言的集成编译环境,描述了C语言的基本逻辑结构和基础语法,并展示了一个完整的输入、编辑、保存、编译、运行的程序设计过程。对于开展C语言程序设计来说,了解一个基本的集成编译环境,不但有用,而且必要。教材完整地展现了C语言从输入源代码到编译到产生运行结果的全过程,这一操作技能是学习后续程序设计课程所必备的。
通过本课的学习,学生不但认识到程序和算法是推动计算机自动化工作的基石,同时还会了解到多种不同的程序设计语言,这使得学生在学习具体的C语言程序设计之前,能够对整个计算机软件工作的原理有一个全局性的认识,使之不仅见树,而且见林。教材所介绍的流程图技术通俗易懂,能够让零基础的学生很快地掌握这种描述算法的方法,这对于接下去深入学习了解编程语言的工作流程有大帮助,同时还有利于帮助学生建立起计算思维。
教学对象分析
在七年级的数学学习中就有涉及流程图的概念,这对于学生学习本课内容是一个助力。除了本课流程图的专项教学以外,学生在生活中会看到流程图的身影,比如图书馆图书借阅归还的流程图,医院体检的流程图等等。尽管了这些源自实际生活的体验,但是学生在根据具体问题绘制流程图描述解决方案时候,可能还是会出现词不达意的情况,特别是针对复杂问题,如何利用流程图表达包含选择和循环逻辑的问题解决策略,将会是学生容易犯错的难点。
在小学阶段,学生曾经学习过 Seratch编程,所以对于集成编译环境的概念应该不会特别陌生,但是C语言的交互方式与之前的 Scratch有本质的差别,教师在教学中要注意这点。
由于是第一次接触需要大量使用英文字符的编程,所以学生在输入C语言代码的时,可能会遇到一些困难,比如没有正确区分字母的大小写,或者用中文标点代替英文标点,这些都是教师要注意进行辅导和提醒的。
在第一次运行源代码的时候,学生可能会遇到一些困难,比如出现各种类型的编译错误,由于提示信息是英文的,部分学生阅读会比较吃力。教师要有耐心引导学生注意仔细观察辨识提示信息,找到错误的根源。这一过程虽然困难,但也是引导学生不畏困难,培养科学探究精神的时机。
教学目标
1.了解程序和常见的程序设计语言,以及程序的执行过程。
2.掌握流程图的基本符号及其含义。
3.能够利用流程图描述简单的算法。
4.掌握Dev-C++的启动和基本环境设置。
5.能够识别C语言的基本语法元素。
6.掌握编译运行C语言的方法。
教学重点和难点
1.教学重点。
(1)程序及程序的执行过程。
(2)C语言的基本语法结构
(3)Dev-C++编译运行C语言源代码的方法。
2.教学难点。
(1)使用流程图描述较为具体的算法。
(2)在Dev-C++中输入合乎缩进格式要求的正确代码。
(3)编译和调试程序。
教学方法
1.讲授法:教师讲解C语言程序的基本构成元素和基本语法规则。
2.素材辅助:在有限的课堂时间内,利用微视频等教学素材,帮助学生了解程序设计语言与计算机程序之间的关系。
3.任务驱动:引导学生通过动手实践体会Dev-C++集成编译环境的工作界面,体验从新建源代码到成功运行C语言源代码的整个过程。
4.试错法:放手让学生尝试,通过不断地调试,逐步掌握C语言的各种语法特性。
5.点评示范:及时点评学生的典型错误,帮助学生排错。通过给出范例让学生实践,帮助学生提高观察能力。
教学准备
1.教学环境。
多媒体网络教室。
2.教学资源。
多种程序设计语言的例子,C语言代码样例。
教学过程
第9课时
一、引入新课(5分钟)
1.展示各种常见软件(浏览器、聊天工具、绘图软件等)的图片。
2.提问:计算机能够完成各种有趣或者有用的任务,靠的是什么呢?
3.提问:计算机能够完成各种任务,是因为它安装了各种不同的软件,但是这些软件是如何生产出来的呢?
教师补充学生的回答。
4.讲解:通过程序设计语言,人们将自己的意图设计成软件,通过软件的运行指挥计算机完成特定的任务。
电脑的程序设计语言多种多样,常见的有C、C++、JAVA、 PYTHON等,虽然它们各有特点,但基本功能却大同小异,比如,一个基本的功能就是能让电脑在屏幕上显示文字。
比如我们可以让电脑计算a=b+1。(把相应的C语言代码显示在屏幕上,运行一下,展示结果。但是本节课不要求教师解释代码功能。)
5.布置任务一。
上网查找一下,上述这些程序设计语言是如何计算a=b+1的。
谈一谈:这些语言计算a=b+1的方式相似吗?
二、介绍新知(10分钟)
1.展示学生的汇报成果,并进行补充。
2.讲解:其实除了我们之前提出的这几种程序设计语言,在早期的时候,计算机使用的是汇编语言甚至是机器语言。
3.提问:结合课本表4-1,谈一谈汇编语言和机器语言计算a=b+1的方式与之前的高级语言相似吗?
你觉得哪种语言看起来更浅显易懂?
4.展示C语言和汇编语言、机器语言的对比图,分析:显然C语言看起来更直观易懂,所以我们现在很少使用难以记忆的机器语言或汇编语言,而采用C语言这样更加易于理解和使用的高级语言。
所有的高级语言程序通过编译或解释,最终将转化为机器语言的形式在计算机上运并得到相应的结果。
5.展示绘图软件的EXE文件,并讲解:这些可供计算机直接运行的软件,被我们称之为可执行文件,它就是机器语言的一种表现形式,同时它也是我们利用程序设计语言所生产出的最终产品。
6.讲解算法:程序设计语言是创造软件的工具,解决问题的算法指引着程序设计语言完成具体的任务。
描述算法的形式有很多种,既可以用自然语言,也可以使用流程图。
7.提问:阅读教材图4-4和图4-5,请你识别一下流程图中有哪些既定的元素类型,其中的圆角矩形、平行四边形、菱形、带箭头的直线分别表示什么?
8.通过讨论,小结算法的特点:有穷性,确定性,可能会有输入数据,肯定会有输出结果
三、练习与巩固(15分钟)
1.布置任务二。
请用流程图的形式表达算法:输入整数L代表铁丝的长度,计算可围成的最大正方形的面积。
和同学交流分享自己设计的流程图。
3.总结学生的设计,对典型作品进行点钾特别要注意:
(1)本题的流程图至少要包含一个输入和一个输出。
(2)根据周长计算正方形面积的表达式。
4.布置任务三。
利用自己小学学过的 scratch,把上题的流程图转变成可以运行的程序。
5.让学生互相交流自己编写的程序的运行结果。
6.讨论:之前的流程图设计对于后期 scratch程序的编写起到怎样的作用?
四、拓展提升(10分钟)
1.布置任务四。
阅读教材第54页的“实践创新”,将图4—5的流程图转换成 Scratch程序,并运行。
教师应提醒学生思考:
(1)流程图中的菱形有什么含义?
(2)如果不允许使用判断,本题是否另有解法?
2.讲评图4-5,提醒学生注意:流程图中的每一个判断框都应该包括真和假两种不同的流程线输出。
展示并点评学生的 Scratch代码。
五、课堂小结(5分钟)
小结:本节课重点讨论两部分内容,一是程序设计语言是生产软件的工具,二是算法描述了程序解决问题的方法,指引着程序设计。最后我们介绍了一种通用的、描述算法的工具,也就是流程图。除流程图外算法还可用自然语言、伪代码进行描述。
Scratch是一种图形化的程序设计语言,随着工程规模的增大,我们更多地会使用C语言等来编写代码。
第10课时
一、引入新课(5分钟)
引言:想要把我们设计的算法变成电脑上能够真正运行的软件,终究不能够靠流程图纸上谈兵,必须要通过某种程序设计语言将它付诸实践。
对于C语言来说,Dev-C++是一种常见的集成开发环境。
跟随老师一起打开Dev-C++,在它的帮助下编写我们的第1个语言程序。
二、讲授新知(25分钟)
1.布置任务一:新建源代码文件,参考教材图4-7,输入完整的C语言程序,并保存。
(本任务仅要求完成源代码的输入即可,不要求学生立刻编译运行。)
学生第一次输入C语言源代码,可能会遇到许多困难,教师应鼓励学生之间互帮互助,共同克服困难。
2.请学生阅读教材第55页。
3.布置任务二:参考教材,拿出不同颜色的彩色铅笔在图4-7中标记出C语言程序的各个元素。
4.提问
(1) 如何在键盘上输入这些符号:“{}/*<>;”?
(2)为了编写C语言程序应当采用什么输入法?(教师提醒学生灰色显示的部分是注释,可以不用在意)
(3)TAB键有什么作用?它在键盘上的哪个位置?
(4)C语言的源程序保存之后以什么为扩展名?
5.教师点评并小结学生的回答,给出相应的正确答案。
布置任务三:重新审视自己刚才输入的源代码,检查可能存在的输入错误,并且进行修正调整。
同桌之间互查代码。
演示编译运行C语言源代码的过程。
布置任务四:编译运行自己的源代码。
提醒学生注意:
(1)如果运行失败,请注意看Dev-C++下方给出的提示信息,并认真比对课本图4-7的范例,推测并查找错误的原因。
(2)如果运行成功,请仔细检查自己的源文件目录下是否有多出新的文件,它是做什么用的?
9.点评学生典型的错误代码,引导学生观察Dev-C++所给出的错误提示信息。
三、练习与提高(10分钟)
1.回顾C语言源代码的新建、编辑、保存和编译、运行的全过程。
2.布置任务五:参考课本图4-7的范例,订正实践创新部分的代码。在Dev-C++中新建一个源文件,将订正后的代码输入并尝试着编译运行,得到正确的输出结果。
四、课堂小结(5分钟)
1.讲评实践创新部分的代码。
2.总结:在本节课中,我们完整地体验了简单C语言程序的编辑和运行过程,对于编程中遇到的一些错误,我们也了解了该如何避免和纠正。这些实践经验都是我们将来深入学习程序设计的宝贵财富。
教学反思