1 程序设计基础
学科 信息技术 课时 2课时 授课对象 初一年级
授课类型 新授课 教学方法 讲授、讨论法 教学环境 机房
教学目标 1.了解程序和常见的程序设计语言,以及程序的执行过程。 2.掌握流程图的基本符号及其含义。 3.能够利用流程图描述简单的算法。 4.掌握Dev-C++的启动和基本环境设置。 5.能够识别C语言的基本语法元素。 6.掌握编译运行C语言的方法。
教学重难点 教学重点 1.程序及程序的执行过程。 2.C语言的基本语法结构 3.Dev-C++编译运行C语言源代码的方法。
教学难点 使用流程图描述较为具体的算法。 在Dev-C++中输入合乎缩进格式要求的正确代码。 编译和调试程序。
教材分析 本课是走进程序世界的第1课,是程序设计知识的基础。 主题1主要介绍了程序设计语言与算法的基本概念。教材在讲述基本概念的同时,还介绍了描述算法的具体方法。体现了教材内容由理论到实践,由抽象概念到具体应用的递进关系。本课所涉及的知识,为后续课程进行C语言程序设计的学习奠定了理论基础,构建了全局的概念性的知识框架结构。 主题2以Dev-C++为例,介绍了C语言的集成编译环境,描述了C语言的基本逻辑结构和基础语法,并展示了一个完整的输入、编辑、保存、编译、运行的程序设计过程。对于开展C语言程序设计来说,了解一个基本的集成编译环境,不但有用,而且必要。教材完整地展现了C语言从输入源代码到编译到产生运行结果的全过程,这一操作技能是学习后续程序设计课程所必备的。 通过本课的学习,学生不但认识到程序和算法是推动计算机自动化工作的基石,同时还会了解到多种不同的程序设计语言,这使得学生在学习具体的C语言程序设计之前,能够对整个计算机软件工作的原理有一个全局性的认识,不仅见树,而且见林。教材所介绍的流程图技术通俗易懂,能够让零基础的学生很快地掌握这种描述算法的方法,这对于接下去深入学习了解编程语言的工作流程有大帮助,同时还有利于帮助学生建立起计算思维。
学情分析 在七年级的数学学习中就有涉及流程图的概念,这对于学生学习本课内容是一个助力。除了本课流程图的专项教学以外,学生在生活中会看到流程图的身影,比如图书馆图书借阅归还的流程图,医院体检的流程图等等。尽管了这些源自实际生活的体验,但是学生在根据具体问题绘制流程图描述解决方案时候,可能还是会出现词不达意的情况,特别是针对复杂问题,如何利用流程图表达包含选择和循环逻辑的问题解决策略,将会是学生容易犯错的难点。 在小学阶段,有些学生曾经学习过 Scratch编程,所以对于集成编译环境的概念应该不会特别陌生,但是C语言的交互方式与之前的 Scratch有本质的差别,教师在教学中要注意这点。 由于是第一次接触需要大量使用英文字符的编程,所以学生在输入C语言代码的时,可能会遇到一些困难,比如。没有正确区分字母的大小写,或者用中文标点代替英文标点,这些都是教师要注意进行辅导和提醒的。 在第一次运行源代码的时候,学生可能会遇到一些困难,比如出现各种类型的编译错误,由于提示信息是英文的,部分学生阅读会比较吃力。教师要有耐心引导学生注意仔细观察辨识提示信息,找到错误的根源。这一过程虽然困难,但也是引导学生不畏困难,培养科学探究精神的时机。机房已经开通了网络,学生可以自己上网搜索编译错误的意思。
教学过程 教师活动学生活动主题1:程序设计语言和算法(1)C语言 思考:计算机/手机能够完成各种任务,是因为它安装了各种不同的软件,但是这些软件是如何生产出来的? 通过程序设计语言,人们将自己的意图设计成软件,通过软件的运行指挥计算机完成特定的任务。程序设计语言多种多样,常见有C、C++、Java、Python等,各有特点,基本功能大同小异。 程序设计语言可以分为机器语言、汇编语言和高级语言。所有的高级语言程序通过编译或解释,最终将转化为机器语言的形式在计算机上运行,并得到相应的结果。C语言就是一种高级语言。 观看:C语言简史 5分钟时间仔细阅读书本P49-54经典的C语言 C语言简洁优雅 C语言是一门中级语言 C语言语法简单功能强大 C语言是嵌入式系统的首选 C语言适合对效率要求高的场合 最主要的几大语言都是基于C语言 新设备的驱动程序总是用C语言编写的 炫酷的3D游戏的代码编写仍然以C语言为核心 Windows、Unix 和Linux 等操作系统核心是C写的。 掌握了C语言,学习其他编程语言将所向无敌 当掌握了C语言后,再去学习其他面向过程的语言,最多一个星期就能学会。因为万变不离其宗,只是语法上有些许更改,而思想却没有更改。有些语言,甚至1个小时就明白如何使用。 学习C语言后,学习C++,Java ,Objective C ,PHP将事半功倍。微软不招学.NET的,是因为.NET是C/C++做的,Oracle,Google不招学JAVA,Android,JAVA的底层都是C/C++实现的。 因为C语言已经存在很多年了,它有广泛的使用团体并且有大量的现成代码可以利用。这就使大家能在过去程序的基础上,快速和高效的实现自己的程序。C语言优点简洁、紧凑,使用方便、灵活,功能强大,执行效率高。C语言仅有32个关键字,9种控制语句,却能完成无数的功能。 (2)算法算法(P52-53):有限步骤内求解某类问题所使用的一组定义明确的规则。 描述算法的形式:自然语言、流程图等。 算法特性:有穷性、确定性、有效性、可能会有输入数据、肯定会有输出结果。 解释描述算法的两个案例P52-54: 3分钟时间仔细阅读书本P52-53(3)设计流程图问题: 某大型停车场对于进入该场地的车辆有如下的规定: (1)进入该停车场的车辆必须为客运车辆,货运车辆谢绝入内。 (2)如果该车的乘员数量小于等于4人,收费四元。 (3)如果该车的乘员数量大于4人,收费八元。 请根据该停车场的规定,给出解决上述问题的算法并绘制流程图。 问题分析: (1) 检查车辆,获取车辆的特征; (2) 根据车辆特征,判断车辆的类别。如果是货运车辆则禁止进入,算法结束;如果车辆不是货运车辆,则进入第三个步骤; (3) 获取车辆乘载人数; (4) 如果车辆乘载人数大于等于4人,按8元计费,否则按5元计费。 10分钟时间做出解决停车场问题的流程图主题2:编写一个简单的C语言程序(1)理解C语言结构 阅读书本P55-56,完成表格 代码功能// stdio.h { } ; printf(…) int main() {……}
阅读书本P55-56,完成表格 (2)Dev-C++的使用 播放Dev-C++的操作使用视频,5min 教师演示:打开Dev C++,教师演示编写自己的第一个程序 #include int main( ) { printf("我的第一个程序"); return 0; } 思考: (1)如何在键盘上输入这些符号: “ { } / * < > ; ” ? (2)为了编写C语言程序应当采用什么输入法? (3)灰色显示的部分是注释,可以不用在意 (4)TAB键有什么作用?它在键盘上的哪个位置 (5)C语言的源程序保存之后以什么为扩展名? (6)如何编译?如何运行? (7)如何debug Bug的英文意思是臭虫,被引入到计算机领域,需要追溯到第一代计算机时代。当时的计算机是由许多真空管构成,需要利用大量的电力使真空管发光。某天,一只虫子爬进了其中的某只真空管中,计算机于是停止工作了。研究人员耗费很长时间,找来找去,一处地方一处地方排查,最后终于发现了这个虫子,取出虫子后,计算机就恢复了正常。于是bug这个词语就在计算机领域中代表了隐藏的错误、缺陷、漏洞或者问题。把排除错误的过程称为debug。 看课本P57-59,了解 Dev-C++的使用过程(3)学生操作 任务:打开Dev C++,编写自己的第一个程序 提示: 打开Dev-C++软件。 新建源代码。 输入代码 保存代码。 编译 调试 运行 注意: 大小写不要输错 养成缩进的好习惯 必须用英文的标点 输入代码,并且重新审视自己刚才输入的源代码,检查可能存在的输入错误,并且进行修正调整。 编译运行 1、如果运行失败,请注意看Dev-C++下方给出的提示信息,并认真比对课本图4-7的范例,推测并查找错误的原因。 2、如果运行成功,请仔细检查自己的源文件目录下是否有多出新的文件,它是做什么用的? 点评学生典型的错误代码,引导学生观察Dev-C++所给出的错误提示信息小结1.讲评实践创新部分的代码。 2.总结:在本节课中,我们完整地体验了简单C语言程序的编辑和运行过程,对于编程中遇到的一些错误,我们也了解了该如何避免和纠正。这些实践经验都是我们将来深入学习程序设计的宝贵财富。 有学生提问可以拓展代码虽小,但五脏俱全,综观整个代码,可以总结如下特点: (1)代码由单词,符号,空白组成。单词以英语单词为主,单词一般都小写;代码中的标点符号并不是随意输入的,每个符号在C中都有自己的含义。如“#”、“<>”、“()”、“\”、“”、“{}”、“;”、“””;各单词之间用空白分隔,空白可以是空格和Tab制表符,空白的个数没有限制。 (2)代码从上往下阅读,从第一个字符开始,文件就开始了,到最后一个字符结束,文件就结束了。 (3)行与行之间也可以有空白行,空白行数也是没有限制的。有的行顶格书写,有的行却又后退了几个空格,这种后退,称为“缩进”,缩进,是为了代码的可读性更强。 C语言中的头文件是什么意思呢 头文件的后缀是.h,头文件中一般存放一些定义,很少作实际的运算。头文件的好处是,可以通用。如一些都用得上的定义,可以让其他文件来调用它,这样就节省了代码量,并且带来了方便,h就是head(头)的简称 “”包裹起来的、“//”后的中文语句是注释。注释是帮助程序员阅读源代码和理解源代码的。编译器在编译源代码的时候,在目标代码生成以前,会把注释剔除掉然后再进行编译,当然编译器是不会修改源文件的,这一切是在内存中完成。由于对于注释部分忽略不处理,所以注释不会增加编译后的程序的可执行代码长度,对程序运行不起任何作用。 #include的作用 #include是C语言预处理器指示符。#和include之间可以有多个空格。#也不一定要顶格,但是一定是第一个非空白字符。#include的作用,是告诉编译器在编译前,要做些预先处理:将后面<>中的文件内容包含到当前文件内。所谓包含,是指将<>中列出的文件的内容复制到当前文件里。 注意:#一定要是第一个非空白字符。否则编译器会提示错误,并且错误信息和出错原因完全不匹配。 因为printf声明位于stdio.h文件中,所以简单的用#include把stdio.h文件包含进来,就把getchar和printf两个函数的声明包含进来了。 说明:函数声明只是向编译器登记有这么一个函数,声明了函数不调用这个函数,是被容许的。这就是为什么包含了整个stdio.h文件,里面声明了很多其他函数,但实际没有使用这些函数而编译器又不提示的原因。 int main() { … }这一段是在定义C程序的主函数。函数是可以完成一定功能的子程序。 main函数是C语言程序的起始执行点。 每一个C程序必须有且仅有一个main函数,它是由程序员提供的。 printf("Hello World!"); 这行是调用了C语言提供的打印数输出函数,该函数的名字是“printf”,小括号内双引号括起来的文字是printf函数的参数。该函数的功能是把小括号里的文字原样打印在屏幕上。也就是说双引号里的内容变化,则打印在屏幕上的文字也会变化。
板书设计 无
作业布置 无
教学反思 1.素材辅助:在有限的课堂时间内,利用微视频等教学素材,帮助学生了解程序设计语言与计算机程序之间的关系。 2.任务驱动:引导学生通过动手实践体会Dev-C++集成编译环境的工作界面,体验从新建源代码到成功运行C语言源代码的整个过程。 3.试错法:放手让学生尝试,通过不断地调试,逐步掌握C语言的各种语法特性。 4.点评示范:及时点评学生的典型错误,可以让班上同学共同找出他的错误,全班一起排错。通过给出范例让学生实践,帮助学生提高观察能力。