教学建议
1  C语言程序设计概述
1.本章学习之前一定要让学生了解课程的任务和特点,强化学生的直接学习动机,使学生自觉地训练结构化的程序设计能力,并着手养成边学边做的习惯。
2.相关链接的内容根据学生特征灵活掌握,删除后不影响后续内容的教学。特别是关于补码的内容,学生若不能理解不必强求,以后涉及到补码也可不作介绍。
3.数据存储的概念在后续内容的教学中非常重要,也比较难以理解。这里只是顺便提出几个概念。这里的地址也可以用电话号码作比喻。
4.介绍机器语言和汇编语言的目的是让学生更好地理解c程序的运行过程。
5C语言的特点和程序构成应结合程序实例讲解,且C语言的特点需要在长时间内逐步体会,不必讲得过细。
6C程序的执行过程的熟悉,需要让学生亲自编码写一段程序。
7.“基本训练”是在教师的指导下由学生在课内完成的,是课堂教学的一个重要组成部分,这是一种师生互动的教学过程,譬如:在数制之间的转换就是在教士的指导下有学生自主完成的,教师对学生提供的帮助信息是根据现场需要而确定的。“习题”是学生在课外自主或合作完成的。建议此课程实施时开放网络机房,并尽可能为学生提供学习需要的教学资源。条件具备时,可在校园网上建立合作学习平台。
8.在下章开始之前,要为学生布置于习任务,这是培养学生自主学习能力的一个重要手段。
9.鼓励学生参加一些学习社区,经常浏览C语言程序设计的一些相关网站。
2 顺序结构程序设计
1.本章在结构上与原有的教材有很大的不同,主要是采用了“任务驱动”的思想。在“2.2数据”一节,集中囊括了基本数据类型、常量与变量、运算符等重要概念。对这些概念目前只要求掌握到“必需”的程度,在以后的程序设计中再逐步加深理解。尤其是不能让学生一开始就记忆大量的“规定”。比较和逻辑运算放在了分支程序设计中。
2.本书的例题、习题都是经过精心设计的,是作者“著作”的成分。[2-3]就是通过实例来分析和体会自加、自减运算符的运用。教师应该在课前对这些例题、习题作详细分析,体会之中的用意。必要时应亲自调试一下。
3.对格式输入输出的学习,一开始也尽可能简单一些,以保证学生便正常编写、运行程序为宜。当遇到相应问题时,可返回来查阅本节内容。
4.对初学者来说,理解顺序程序结构是理解程序结构的基础。2.5节是作者对顺序程序设计所做的一点总结。这只是一种尝试。恳切希望广大同仁共同完善这一部分内容。
5 2.6节介绍了三段程序,目的是将学生引入程序设计的大门。学完这部分内容以后,学生就可以着手编写一些解决实际问题的程序了。学习本章时,学生对开发环境尚不熟悉,遇到的问题较多,因此,应酌情增加上机时间。
6.本章习题的第5题有两个目的:一是激发学生学习程序设计的兴趣;二是使学生学习使用C语言中的库函数,因为大量的库函数不可能都由教师讲解。下一章还要用到这些内容。c编程网站
第三章 分支程序设计
1. 分支程序使计算机有了判断的功能。本章应该使学生练就分支程序编写的基本功,熟悉分支程序设计遇到中的一些特定问题,譬如:逻辑判断的顺序等。
2. 由于传统流程图更为直观,而且已被应用到其它领域(如教学设计),因此,本书主要采用传统流程图,对N-S图仅作简单介绍。建议学生学会绘制传统流程图,学会识读N-S图。
3. 学会逻辑表达式的运用是编写分支程序的关键。建议在此方面多做训练。同时应注意,逻辑表达式过于复杂会影响程序的可读性,要让学生体会程序质量的要求,学会在程序的简洁性和易读性上加以平衡。通过[3-4]可以很好地体会这个问题。总的原则是,手段是为程序设计者带来方便的,而不能让程序设计者为手段所累。
4. 条件运算符是C语言简洁风格的典型体现,应该让学生多体会一下。使用if完全可以替代条件运算,因此,条件运算的作用常常被忽视,有些教材甚至认为条件运算中不能使用格式输出函数,而事实上条件运算的功能是非常强大的。
5. 在“3.1.5 if的嵌套”中,作者尝试着对嵌套情况和常犯的错误进行了归纳。授课中教师也可以根据自己的经验重新归纳,或者以“试误”的方式让学生体会这些问题。
6. 61 “基本训练”中的第2题,看似一个非常简单的问题,但事实上多数学生很难在短时内编写出正确程序。教师可以让学生在课内编写出程序雏形,在课后完成程序。
7. 3.2 switch”逻辑上比较简明,重要的是通过练习使学生熟悉相关的规定,避免出现语法错误。恰当地设计“条件”也是一个关键。
8. [3-11]出现了while 结构,起着“毛毛雨”的作用。但不要因此使学生形成理解上的障碍,千万不要过多地介绍循环结构及执行过程。
9. 如果学生能够顺利完成65页的“基本训练”,就基本掌握了switch结构的运用。
10. 3.3典型程序举例”起着引路的作用,目的是引导学生发现更多的相关问题,并尝试编程解决。[3-13]中,使用条件运算表达式可能会更简明一些。
11. 课后作业应特别强调有学生提出问题。发现问题是主动的,与解决教师提出的问题有着质的区别。
4 循环结构程序设计
1.循环是学生比较感兴趣的问题,也是训练编程能力的重点。在本章可以综合运用前面几章的知识。建议教师酌情加强训练,必要时增加一些课时。
2.循环控制条件是循环程序中的核心问题,需要通过训练使学生获得相关经验。
3.本章例题较多,目的达到“熟能生巧”之效。多数例题都经过了精心设计,因该让学生仔细体会作者的用意。[4-3] [4-4]让学生体会变量类型的确定,此时可返回第2章看一下关于数据类型的规定; [4-5] [4-6] [4-7]中的两段程序,通过对比的方法使学生了解程序设计的灵活性和创造性,要让学生在程序设计中体会到美的感受( [4-7]中的程序在后面还要用到); [4-8]的程序非常简明,目的仍然是让学生体会一种方法。
4.第82页和86页上的“基本训练”应该让学生独立完成。
5[4-21] [4-22]在繁简上形成的鲜明对比,但目的都是为了领会continue的作用。
6.“4.8典型程序举例”是为了进一步让学生领会“循环问题”。
7.课后作业酌情布置。最好选择其中的若干题目做一次测验,根据结果做一次小结。若教师能够确定学生已达到前四章的学习目标,也可以不再练习,直接进入下一阶段。
8.到此为止,本课程完成第一个阶段,即基本训练阶段,本阶段的特征是对单个“元件”的认识和使用。下一阶段进入“组装阶段”,即中级训练阶段,基本任务是:(1)将单个数据组合成“构造类型数据”;(2)将单个函数组装成一个完整的程序文件。
9.由于任务的变化,后续内容在学习方法上也有一些改变。教师的讲解所占比重应该加大,课堂基本训练逐步减少。上机实习也应由原来的“小周期”变为“大周期”。教师应提前让学生做好思想准备。
5 数组与字符串
1.学习数组,让学生领会数组元素的存储是构建数组概念的关键。教师应采用多媒体手段,使学生对数组存储有一个形象化的认识。单靠语言和纸制教材教学效果可能会不理想。
2.为了增强程序的可靠性,书中较少使用a[1]++这样的运算,但在教学中教师应该适当地补充这种知识。
3.一维数组的排序是一个重点内容,掌握典型的排序算法,无论对于数据处理还是工业控制都十分重要。每一位同学应通过训练,熟练地掌握一种算法,对其它算法也就很容易掌握
了。
4[5-7]是一个典型程序,可以扩展到其它问题。教师在使用中可以整理一些类似的问题。学会编写这类程序,也是对前面几章内容的巩固和提高。
5.二位数组繁而不难。关键是抓住元素存放顺序。对关于二位数组的大部分程序,可以有学生自行阅读。通过基本训练,巩固和检验教学效果。
6.字符数组的处理难度不大,但很重要。重点是由学生体会字符数组处理的特点,通过与数值数组处理的对比,掌握字符数组处理的规律。“5.4.4 字符串处理的标准函数”只需理解,不需强化记忆,应在实例中加深理解和记忆。
7.建议学生在课外完成程序的编辑和调试,课内只解决难度较大的调试问题。在调试过程,学生可以结组讨论。
8.习题中的最后一题已经涉及到下一章的内容,这种作业并不是真的让学生“完成”,而是让学生发现和思考相关的问题。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。