论文部分内容阅读
摘要:该文主要探讨了C语言程序设计课程在现有高等教育体系中教学内容及方法。提出了C语言程序设计课程的教学内容应该分成基础课程和高级课程两部分;提出了根据现实中的问题和需要学习的知识点为依据来编排教学案例,通过增加问题的难度逐步学习掌握更多的知识点。
关键词:C语言程序设计;教学内容;教学方法
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)13-0161-03
1 C语言程序设计课程在教学中出现的问题
C语言是现今计算机领域通用的语言之一,虽然并不像上个世纪80年代那样一枝独秀,但仍具有非凡的魅力。C语言是Thompson、Ritchie等人开发UNIX操作系统的副产品,并用C语言并UNIX操作系统进行了重写。在C语言普及后,国际标准化组织又多次对C语言进行了标准化,包括C89标准、C99标准和最新的C11标准。C语言对现代编程语言产生了巨大的影响,许多流行的现代编程语言都借鉴了大量C语言的特性,包括C ,JAVA,OC,Swift,C#等。
考虑到大量新编程语言的普及程度。高等院校学生还有学习C语言的必要吗?对于这个问题回答:首先,学习C有利于更好的理解其他新式编程语言,能让程序员更好地掌握继承自C语言的基本特性。其次,现有大量的C语言代码需要维护。最后,C语言仍然是众多工程领域最重要的编程语言,包括嵌入式开发、智能机器人、智能家居和智能电子产品等。
现今国内大部分高校都会首选C语言作为计算机编程的入门语言。各专业开设的C语言课程一般都是一个学期讲完,学时数大概在48~64课时之间。由于学生没有编程基础,很难在这么短的时间内熟悉C语言的各个知识点。在各个高校C语言程序设计课程教学中,有两种教学方法比较主流:一种是采用多媒体演示 黑板板书、并用一定的课时量上机练习编程的教学方法,这种方法可以在一学期内讲解完C语言课程大部分知识点。但是这种教学方法需要学生课后自己花时间上机练习编程。而且由于教师不在现场,学生出现的问题得不到及时解决,容易对编程产生厌恶感,导致学习失败。另一种方法是采用教室与机房一体化的教学方法,教师采用多媒体演示 黑板板书,通过设计好的项目来引导学生学习,指导学生现场编程,通过多年的实践发现,这种教学方法的效果比上一种好,但是由于班级学生人数众多,即使采用小班教学,也有30个左右的学生需要指导。在一学期的课时内,没有足够的时间指导学生学完全部重要的知识点。
本文的主要目的就是探讨C语言程序设计课程中教学的内容及教学方法,提供解决以上教学方式中出现的问题的思路。
2 C语言程序设计课程教学内容的探讨
C语言程序设计课程教学中,选择一本好的教材非常重要。什么是好的教材?首先教材作者应该是C语言编程方面的专家、有实际项目的开发经验、熟悉C语言的标准。其次教材中应该有好的教学案例和精選的习题,教学内容应该由浅入深、知识点全面、对C语言初学者经常犯的错误有提示和解答。我们不应该选择那种字典式、看起来全面但不便于学习的教材。国内的有些教材喜欢纠结于语法上的细节,故意把语句写得很复杂以考查学生是否掌握了相关的语法知识,这样做甚至会使习题的答案陷入了未定义行为的泥潭,对学生编程能力的提高是有害的。
通过对前面所述的两种主流教学方法的分析发现,由于C语言程序设计课程学时的限制,不可能既全面的讲解各个知识点,又让学生较快地掌握C语言的编程技术。因此有必要将C语言程序设计课程分成基础课程和高级课程来教学。
基础课程包括以下内容:
1)C语言概述和C语言编译器的使用;
2)C语言的基本概念、格式化输入/输出和表达式;
3)选择语句、循环语句和基本数据类型;
4)数组、函数和指针;
5)结构、联合与枚举;
6)底层程序设计;
7)预处理器和多文件程序的编写。
高级课程包括以下内容:
1)指针和数组;
2指针的高级应用:动态存储分配、链表、指向指针的指针和指向函数的指针;
3)标准库、输入/输出、标准库对数值和字符数据的支持;
4)错误处理和国际化特性;
5)C99标准和C11标准。
在课程教学中,教师最好采用项目化教学的方式,对基本知识点的熟练应用进行重点训练,使学生能够用所学的编程知识和技巧解决实际的项目问题。高级课程是否需要开设,关键看学生的专业和需求。对于电气电子信息类专业的学生,应该开设C语言的高级课程,使学生有能力使用C语言进行单片机和嵌入式技术的开发。
3 C语言程序设计课程教学方法的探讨
C语言程序设计作为一门应用性很强的课程,检验学生学习的效果如何就是看学生编程的能力。欧美高校普遍采用的教学方法是在大班教学中采用多媒体演示 黑板板书的方式教学,然后在小班讨论课程中以助教辅导的方式练习编程。国内高校很少采用教授大班讲解课程,然后分班由助教辅导的教学模式,这就决定了国内的教学方式与欧美高校有所不同。由于需要教师一个人完成所有的教学任务,一个较好的教学模式就是采用项目化教学方式,将课程分为基础课程和提高课程进行教学。对C语言编程要求较高的专业,学习基础课程和高级课程两个部分,分两学期完成。对于一般的工科专业,可以只学习基础课程,重点了解编程的思想和编程的现代方法。
对于C语言程序设计基础课程,可以采用项目化教学的方式,将主要知识点分解在一系列由实际案例建立起来的项目里来学习。教学的方式是首先引入实际案例,编写简单的程序,然后增加新的知识点,通过多个阶段逐步建立完整的程序。下面通过对C语言基本概念和格式化输入输出的课程部分来说明教学案例的实施过程。 【案例】 我们在乘坐飞机航班时经常要托运行李,航空公司不喜欢运输又大又轻的箱子,因为箱子要占据宝贵的运输空间。事实上,对于这类箱子,航空公司常常要求按照箱子的体积而不是重量来支付费用。通常是把箱子的体积除以6000得到体积重量。如果体积重量大于实际重量,按体积重量收费。假设航空公司雇佣你来编写一个计算箱子体积重量的程序。其中箱子的长度,宽度,高度分别为120cm,100cm,80cm。很显然计算箱子的体积重量的公式为:体积重量 = 体积/6000;这里体积和体积重量都是整型变量。你如何用C语言程序解决这个问题?
阶段1 引入案例后,告知学生解决上述编程问题,需要用到如下知识点:
1)变量的类型:int型变量;
2)变量的声明、初始化和赋值;
3)用格式化输出函数printf()显示变量和表达式的值。
先详细讲解以上各知识点,然后说明用C语言编程解决此问题的思路,并给出程序:
阶段2 向学生提出如下问题:航空公司运输的各个箱子大小不一致,因此公司希望你编写的软件能够从键盘输入箱子的长宽高,由此引出知识点:格式化输出函数scanf(),并用它改写程序:
阶段3 向学生提问:托运的箱子长度、体积、计算出来的体积重量正好都是整数吗?如果不是,该怎么解决?并且告诉学生在C语言中,两个整数相除,结果会被截短,小数点后的所有数字会丢失,计算的体积重量结果不准确。由此引出C语言中表示小数的方法:浮点类型数据。并讲解数据类型改为单精度浮点型后,程序应该怎样改写。
阶段4 讲解格式化输入函数和格式化输出函数的详细用法,特别是其转化说明(%m.pX)的具体使用方法及常见的错误。在这部分课程的最后,布置给学生的习题是让学生编程求出给定直径的球体的体积,用来测试学生的学习效果。
从以上案例的讲解可以看出,通过从简单的情况来逐步增加难度和知识点,学生的编程能力和对知识点的掌握都会得到逐步的增强。在基础课程部分,我们设计了大概8个左右的项目涵盖主要的知识点,在教学实践中使用取得了良好的效果。
对于C语言程序设计高级课程来说,可以设计多种教学方式来实现教学目标,对于电气电子信息类专业的学生来说,可以将高级课程的内容附加在单片机或嵌入式技术课程中来教学。对于计算机类专业的学生来说,可以采用讨论班的形式来教学,也可以让学生参与实际的工程项目来实现教学目标。
4 总结
本文首先讨论了C语言程序设计课程教学中出现的一些问题;其次设想将C语言程序设计课程的内容分成基础课程和高级课程两个部分来教学;然后讲解作者在教学中采用的项目教学法的方式,并列举一个完整的教学案例来说明具体的教学过程。运用此教学方法的核心是开发出良好的教学案例,教学案例的开发不是一件轻松的工作,如果案例程序过于简洁和做作,学生将无法体会如何将C语言的特性应用于现实世界;另一方面,如果程序过于真实,那么重要的知识点将会很容易被淹没在过多的细节中,最好的方案就是采用折中方案。教学案例的开发最好先通过小而简单的示例使得概念清晰,然后逐步建立完整的程序。教学中最好不要采用过长的程序,教师在课程中没有时间讲解,学生也没有足够的耐心去阅读,可以在课程的最后,让学生编写一个大型的程序以检验對整个课程知识点的掌握情况。希望通过此文与从事C语言程序设计课程教学的各位专家进行探讨与交流,发现更多的教学方法,取得更好的教学效果。
参考文献:
[1] K.N.King. C语言程序设计现代方法[M]. 2版.人民邮电出版社,2010.
[2] 谭浩强. C语言程序设计[M]. 4版.清华大学出版社, 2012.
[3] 吴国凤. C语言程序设计[M].4版.合肥工业大学出版社,2012.
关键词:C语言程序设计;教学内容;教学方法
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)13-0161-03
1 C语言程序设计课程在教学中出现的问题
C语言是现今计算机领域通用的语言之一,虽然并不像上个世纪80年代那样一枝独秀,但仍具有非凡的魅力。C语言是Thompson、Ritchie等人开发UNIX操作系统的副产品,并用C语言并UNIX操作系统进行了重写。在C语言普及后,国际标准化组织又多次对C语言进行了标准化,包括C89标准、C99标准和最新的C11标准。C语言对现代编程语言产生了巨大的影响,许多流行的现代编程语言都借鉴了大量C语言的特性,包括C ,JAVA,OC,Swift,C#等。
考虑到大量新编程语言的普及程度。高等院校学生还有学习C语言的必要吗?对于这个问题回答:首先,学习C有利于更好的理解其他新式编程语言,能让程序员更好地掌握继承自C语言的基本特性。其次,现有大量的C语言代码需要维护。最后,C语言仍然是众多工程领域最重要的编程语言,包括嵌入式开发、智能机器人、智能家居和智能电子产品等。
现今国内大部分高校都会首选C语言作为计算机编程的入门语言。各专业开设的C语言课程一般都是一个学期讲完,学时数大概在48~64课时之间。由于学生没有编程基础,很难在这么短的时间内熟悉C语言的各个知识点。在各个高校C语言程序设计课程教学中,有两种教学方法比较主流:一种是采用多媒体演示 黑板板书、并用一定的课时量上机练习编程的教学方法,这种方法可以在一学期内讲解完C语言课程大部分知识点。但是这种教学方法需要学生课后自己花时间上机练习编程。而且由于教师不在现场,学生出现的问题得不到及时解决,容易对编程产生厌恶感,导致学习失败。另一种方法是采用教室与机房一体化的教学方法,教师采用多媒体演示 黑板板书,通过设计好的项目来引导学生学习,指导学生现场编程,通过多年的实践发现,这种教学方法的效果比上一种好,但是由于班级学生人数众多,即使采用小班教学,也有30个左右的学生需要指导。在一学期的课时内,没有足够的时间指导学生学完全部重要的知识点。
本文的主要目的就是探讨C语言程序设计课程中教学的内容及教学方法,提供解决以上教学方式中出现的问题的思路。
2 C语言程序设计课程教学内容的探讨
C语言程序设计课程教学中,选择一本好的教材非常重要。什么是好的教材?首先教材作者应该是C语言编程方面的专家、有实际项目的开发经验、熟悉C语言的标准。其次教材中应该有好的教学案例和精選的习题,教学内容应该由浅入深、知识点全面、对C语言初学者经常犯的错误有提示和解答。我们不应该选择那种字典式、看起来全面但不便于学习的教材。国内的有些教材喜欢纠结于语法上的细节,故意把语句写得很复杂以考查学生是否掌握了相关的语法知识,这样做甚至会使习题的答案陷入了未定义行为的泥潭,对学生编程能力的提高是有害的。
通过对前面所述的两种主流教学方法的分析发现,由于C语言程序设计课程学时的限制,不可能既全面的讲解各个知识点,又让学生较快地掌握C语言的编程技术。因此有必要将C语言程序设计课程分成基础课程和高级课程来教学。
基础课程包括以下内容:
1)C语言概述和C语言编译器的使用;
2)C语言的基本概念、格式化输入/输出和表达式;
3)选择语句、循环语句和基本数据类型;
4)数组、函数和指针;
5)结构、联合与枚举;
6)底层程序设计;
7)预处理器和多文件程序的编写。
高级课程包括以下内容:
1)指针和数组;
2指针的高级应用:动态存储分配、链表、指向指针的指针和指向函数的指针;
3)标准库、输入/输出、标准库对数值和字符数据的支持;
4)错误处理和国际化特性;
5)C99标准和C11标准。
在课程教学中,教师最好采用项目化教学的方式,对基本知识点的熟练应用进行重点训练,使学生能够用所学的编程知识和技巧解决实际的项目问题。高级课程是否需要开设,关键看学生的专业和需求。对于电气电子信息类专业的学生,应该开设C语言的高级课程,使学生有能力使用C语言进行单片机和嵌入式技术的开发。
3 C语言程序设计课程教学方法的探讨
C语言程序设计作为一门应用性很强的课程,检验学生学习的效果如何就是看学生编程的能力。欧美高校普遍采用的教学方法是在大班教学中采用多媒体演示 黑板板书的方式教学,然后在小班讨论课程中以助教辅导的方式练习编程。国内高校很少采用教授大班讲解课程,然后分班由助教辅导的教学模式,这就决定了国内的教学方式与欧美高校有所不同。由于需要教师一个人完成所有的教学任务,一个较好的教学模式就是采用项目化教学方式,将课程分为基础课程和提高课程进行教学。对C语言编程要求较高的专业,学习基础课程和高级课程两个部分,分两学期完成。对于一般的工科专业,可以只学习基础课程,重点了解编程的思想和编程的现代方法。
对于C语言程序设计基础课程,可以采用项目化教学的方式,将主要知识点分解在一系列由实际案例建立起来的项目里来学习。教学的方式是首先引入实际案例,编写简单的程序,然后增加新的知识点,通过多个阶段逐步建立完整的程序。下面通过对C语言基本概念和格式化输入输出的课程部分来说明教学案例的实施过程。 【案例】 我们在乘坐飞机航班时经常要托运行李,航空公司不喜欢运输又大又轻的箱子,因为箱子要占据宝贵的运输空间。事实上,对于这类箱子,航空公司常常要求按照箱子的体积而不是重量来支付费用。通常是把箱子的体积除以6000得到体积重量。如果体积重量大于实际重量,按体积重量收费。假设航空公司雇佣你来编写一个计算箱子体积重量的程序。其中箱子的长度,宽度,高度分别为120cm,100cm,80cm。很显然计算箱子的体积重量的公式为:体积重量 = 体积/6000;这里体积和体积重量都是整型变量。你如何用C语言程序解决这个问题?
阶段1 引入案例后,告知学生解决上述编程问题,需要用到如下知识点:
1)变量的类型:int型变量;
2)变量的声明、初始化和赋值;
3)用格式化输出函数printf()显示变量和表达式的值。
先详细讲解以上各知识点,然后说明用C语言编程解决此问题的思路,并给出程序:
阶段2 向学生提出如下问题:航空公司运输的各个箱子大小不一致,因此公司希望你编写的软件能够从键盘输入箱子的长宽高,由此引出知识点:格式化输出函数scanf(),并用它改写程序:
阶段3 向学生提问:托运的箱子长度、体积、计算出来的体积重量正好都是整数吗?如果不是,该怎么解决?并且告诉学生在C语言中,两个整数相除,结果会被截短,小数点后的所有数字会丢失,计算的体积重量结果不准确。由此引出C语言中表示小数的方法:浮点类型数据。并讲解数据类型改为单精度浮点型后,程序应该怎样改写。
阶段4 讲解格式化输入函数和格式化输出函数的详细用法,特别是其转化说明(%m.pX)的具体使用方法及常见的错误。在这部分课程的最后,布置给学生的习题是让学生编程求出给定直径的球体的体积,用来测试学生的学习效果。
从以上案例的讲解可以看出,通过从简单的情况来逐步增加难度和知识点,学生的编程能力和对知识点的掌握都会得到逐步的增强。在基础课程部分,我们设计了大概8个左右的项目涵盖主要的知识点,在教学实践中使用取得了良好的效果。
对于C语言程序设计高级课程来说,可以设计多种教学方式来实现教学目标,对于电气电子信息类专业的学生来说,可以将高级课程的内容附加在单片机或嵌入式技术课程中来教学。对于计算机类专业的学生来说,可以采用讨论班的形式来教学,也可以让学生参与实际的工程项目来实现教学目标。
4 总结
本文首先讨论了C语言程序设计课程教学中出现的一些问题;其次设想将C语言程序设计课程的内容分成基础课程和高级课程两个部分来教学;然后讲解作者在教学中采用的项目教学法的方式,并列举一个完整的教学案例来说明具体的教学过程。运用此教学方法的核心是开发出良好的教学案例,教学案例的开发不是一件轻松的工作,如果案例程序过于简洁和做作,学生将无法体会如何将C语言的特性应用于现实世界;另一方面,如果程序过于真实,那么重要的知识点将会很容易被淹没在过多的细节中,最好的方案就是采用折中方案。教学案例的开发最好先通过小而简单的示例使得概念清晰,然后逐步建立完整的程序。教学中最好不要采用过长的程序,教师在课程中没有时间讲解,学生也没有足够的耐心去阅读,可以在课程的最后,让学生编写一个大型的程序以检验對整个课程知识点的掌握情况。希望通过此文与从事C语言程序设计课程教学的各位专家进行探讨与交流,发现更多的教学方法,取得更好的教学效果。
参考文献:
[1] K.N.King. C语言程序设计现代方法[M]. 2版.人民邮电出版社,2010.
[2] 谭浩强. C语言程序设计[M]. 4版.清华大学出版社, 2012.
[3] 吴国凤. C语言程序设计[M].4版.合肥工业大学出版社,2012.