论文部分内容阅读
摘要:以C 程序设计语言教学存在的问题为突破口,从教学内容、教材选取、教学方法、教学工具、教学手段和考试方法等各方面入手,总结了在教学改革与课程实践方面的一些经验和体会,提高了C 语言的教学质量和教学效果。
关键词:C 程序设计语言;教学改革;课程实践
中图分类号:G642文献标识码:A文章编号:1009-3044(2008)31-0917-02
Shallow Talk on Teaching Reform and Curriculum Practice of C Language
CHEN Hua
(College of Mathematics and Computational Science, China University of Petroleum(Huadong), Dongying 257061, China)
Abstract: Breakthrough for the problems of the teaching in C programming language, and starting with many aspects such as teaching content, teaching materials choosing, teaching method, teaching tool, teaching means and examination method, summarized experience and understanding on teaching reform and curriculum practice, improved teaching quality and teaching effect of C programming language.
Key words: C programming language; teaching reform; curriculum practice
1 引言
C 程序设计语言是在国内外得到迅速推广和应用的一种计算机语言,已在众多领域得到广泛应用,也是信息与计算科学专业教学体系中的一门比较重要基础课,为后续课程提供了编程基础。特别在新的教学大纲中,C 语言的讲授和上机总学时达到了96学时,较以往有了大幅度提升。但在讲授本课程的时候,是采用以一般程序设计内容为主、面向对象内容为辅的方式,还是采用以面向对象内容为主、面向过程为辅的方式,是以语法教学为主,还是以问题驱动教学方式为主,仍存在较大争论。因此,有必要探讨C 程序设计语言的教学方法和课程改革[1-3]。
2 C 程序设计语言教学存在的问题
1) C 它是从面向过程的C语言发展而来的,并非是纯面向对象的语言,面向过程和面向对象教学分离,不利于学生掌握先进的面向对象程序设计方法。一般情况下,先讲解C语言的面向过程部分,再讲解面向对象的部分。但在利用面向对象的思想编程时,学生写起程序来,还是使用面向过程的思维模式。原因在于人们在看待某类问题时,总存在先入为主的思维定势。
2) 面向对象的C 语法较复杂,教学往往陷入语法泥潭,削弱了更为重要的算法的教学和解决实际问题的能力。大部分C 语言教材,都是以语法为中心,忽略了学习计算机语言的根本目的。即培养学生用计算机来解决问题的思维和实践能力。因此学生编程能力的培养是首要的,掌握语言本身不过是实现编程的一个手段,而不是编程的目标。
3) 开发工具陈旧,未能使用主流的开发工具平台。很多学校仍然采用VC6.0作为开发工具,虽然VC6.0是一款优秀的开发工具,但毕竟产生于十年前,对标准C 的支持力度不够。而目前主流的C 开发工具Visual Studio 2005.net是是微软2006年新推出的开发平台,它功能强大,被许多软件公司选为主要开发工具。若采用Visual Studio 2005.net作为C 语言课程中的开发平台,则为学生的专业发展和就业打下良好的基础。
4) 教学内容陈旧,STL(Standard Template Library)的内容在教学中体现较少。STL是ANSI/ISO C 标准中最新的一部分内容,它提供了一个可扩展的应用框架,高度体现了软件的可复用性。学生应学会站在巨人的肩膀上进行编程,只有这样才能提高自己的编程和实践能力。
3 C 教学改革与课程实践的基本思路
3.1 教学内容
1) 强调算法,即突出程序设计而不是语法。强调算法,不是忽视语法,而是不要繁琐的钻牛角尖的语法,我们要的是基本的常用的语法,更多的是要模仿。不是知道的语法越多,程序编得越好,而是自己动手编程越多,程序编得越好,实践能力越强。
2) 解决面向对象与面向过程分离的问题,直接讲授面向对象程序设计方法,掌握怎样从客观事物中抽象出类来的方法,并采用UML语言对所抽象的类进行建模。初步培养学生能够从软件工程的角度考虑编程问题,具备了初步的软件工程思想。
3) 选择最新的C 体系(98标准)作为教学内容。该标准抛弃了原有的C 面向过程的教学阶段,而且突出了面向对象C 实现软件通用性的两大关键技术:模板、派生。增加STL部分的教学内容,初步掌握相关的数据结构知识。
4) 加强面向对象程序设计方面的教学,培养面向对象程序设计的能力。面向对象方法所强调的基本原则,就是直接面对客观存在的事物来进行软件开发,将人们在日常生活中习惯的思维方式和表达方式应用在软件开发中,使软件开发从过分专业化的方法、规则和技巧中回到客观世界,回到人们通常的思维。使学生能够掌握从客观事物中抽象出类来的方法去考虑和解决实际问题。
5)解决Windows编程与DOS编程分离的问题,采用基础教学与实践教学相结合。在基础教学中采用Windows平台下的控制台方式(命令行方式)以突出编程能力的培养。在实践部分比较全面地学习标准的Windows图形界面编程,这安排在课程设计(放在课程结束后暑期实习中)中,由学生在教师指导下主要通过自学独立完成。
3.2 教材选取
《C 语言程序设计》[4-5]是清华大学出版社出版的一本优秀的教材,该书第1版荣获2000年中国高校科学技术奖自然科学二等奖 2000年全国优秀畅销书奖,该教材已发展到第三版,配套辅助教材达四种。我们从2000级开始使用该书作为程序设计语言(C )这门课的教材,从授课和学生反馈情况来看,本书将C 语言作为大学生学习程序设计的入门语言,不仅详细介绍了语言本身,而且介绍了常用的数据结构和算法,在原第2版的基础上,第3版还增加了对UML建模语言的介绍和STL及泛型程序设计的内容。全书以面向对象的程序设计方法和《人员信息管理系统》的开发贯穿始终,每一章都首先阐述面向对象的程序设计思想和方法,然后引出必要的语法知识,在讲解语法时着重从程序设计方法学的角度讲述其意义和用途,力求使学生在掌握C 语言的同时,能够对现实世界中较简单的问题及其解决方法用计算机语言进行描述。当然,要达到能够描述较复杂问题领域的水平,还需要学习面向对象的软件工程课。
3.3 教学方法
在教学过程中以面向对象的程序设计方法贯穿始终,每一章都是首先阐述面向对象的程序设计思想和方法,由实际问题入手,然后引出必要的语法知识,在讲解语法时着重从程序设计方法学的角度讲述其意义和用途。
习题与实验都是学生的实践机会,具体指导和讲评是必要的。特别是在学生尚未入门时具体指导尤其重要,最好是在实验室里配大屏幕显示,学生与教师演示同步操作,或用同步操作的教学软件。在辅导实验时只可能解决少数学生的少数问题,提倡上机时学生互相讨论互相帮助。做习题,也提倡较难的题在同学之间先讨论再独立完成,毕竟我们要求规范化编程,主要是灵活应用通用算法,不是创造别人看不懂的算法,初级阶段主要是模仿,见多识广后就能编出好的程序。讲评是在学生做完习题和实验之后,针对学生实际发生的最常见的错误进行的,也可以介绍一些同学的好作业,这是一个总结提高的过程。
以开发《人员信息管理系统》为主线,贯穿整个学期,提高学生对软件开发过程的认识和兴趣,为《软件工程》、《数据结构》等后续课程打下坚实的基础。
3.4 教学工具和教学手段
课堂教学尽可能地应用现代化教育技术,使用多媒体进行课堂教学,给学生营造一个良好的程序设计语言环境。与传统教学方式相比,多媒体教学具有形象、生动、交互性好、信息量大、减少文字书写等显著特点。对课程中难以理解的抽象内容可以给予直观展示和动态模拟,达到既能辅助教师形象地讲授课程中的难点和重点的目的,又能激发学生学习的兴趣,从而提高教学效率和教学效果。
不要拘泥于传统的教学方法,即以教师为中心,教师讲,学生听、记、做笔记。可以将更多的方法结合进来,讲授法、练习法、实验法、演示法等。但更应将多媒体网络技术结合进来,利用多媒体网络模拟现实环境,通过听觉、视觉、触觉等多种方式对学生的感官进行综合刺激,其效果是任何一种单一的途径所无法比拟的,同时学生也可以在真实感中学习,却又没有真实世界的压力,可实现信息共享,人机交互和即时反馈。多媒体课件对学生学习也可以起到事半功倍的作用。在多媒体课件中利用图像、动画、声音模拟课程中抽象的、难以理解的教学内容,并将其形象化,这样就更利于学生理解与记忆。比如C 程序的运行机制,学生很难理解、很难想象其过程,如果让其做成课件,以动画的形势模拟其过程,学生就能很快地掌握了。交互式教学方法在实践中是切实可行的,这种方法以学生为中心,同时发挥教师在教学中的主导作用,真正实现教师与学生、学生与学生的双向交流和互动。比如以学生为中心,进行分组教学,这样既可以提高学生的自主性学好知识,也可以因材施教,更可以提高学生的团结与协作能力,这种能力在软件开发过程中更是不可缺少的。
3.5 考试方法
考试要多样化,面要广,难度要适中,以考察能力为主。针对C 语言课程的特点,近年来期末考试形式为开卷,试题形式为程序填空、程序改错、算法编程实现,平时作业主要是课后部分编程题;大作业就是《人员信息管理系统》,基本贯穿整个教学过程。三者所占比重为:总分=平时作业(10%) 大作业(30%) 期末考试(60%)。这样对学生的考察不再以语法考察为重点,而是以解决问题的能力为重点。从近几年的实践情况来看,效果明显。
4 结束语
通过从教学内容、教材选取、教学方法、教学工具、教学手段和考试方法等多方面多环节入手,对C 语言教学进行了全方位的改革,使得学生的学习积极性有了较大提高。但是,随着C 语言的发展,在教学和课程实践中还会出现许多新的问题和矛盾,在今后的教学实践中,还应根据实际情况不断调整教学思路,提高教学水平。
参考文献:
[1] 景雪琴. C 语言程序设计课程教学探讨[J]. 高等教育研究学报,2005,28(2):89-91.
[2] 贾振华,李瑛. 《C 程序设计》课程教学方法探析[J]. 华北航天工业学院学报,2006,16(4):51-53.
[3] 余战秋.《C 语言程序设计》课程教学方法研究[J]. 巢湖学院学报,2007,9(3):146-148.
[4] 郑莉,董渊. C 语言程序设计[M]. 2版. 北京:清华大学出版社,2001.
[5] 郑莉,董渊,张瑞丰. C 语言程序设计[M]. 3版. 北京:清华大学出版社,2005.
关键词:C 程序设计语言;教学改革;课程实践
中图分类号:G642文献标识码:A文章编号:1009-3044(2008)31-0917-02
Shallow Talk on Teaching Reform and Curriculum Practice of C Language
CHEN Hua
(College of Mathematics and Computational Science, China University of Petroleum(Huadong), Dongying 257061, China)
Abstract: Breakthrough for the problems of the teaching in C programming language, and starting with many aspects such as teaching content, teaching materials choosing, teaching method, teaching tool, teaching means and examination method, summarized experience and understanding on teaching reform and curriculum practice, improved teaching quality and teaching effect of C programming language.
Key words: C programming language; teaching reform; curriculum practice
1 引言
C 程序设计语言是在国内外得到迅速推广和应用的一种计算机语言,已在众多领域得到广泛应用,也是信息与计算科学专业教学体系中的一门比较重要基础课,为后续课程提供了编程基础。特别在新的教学大纲中,C 语言的讲授和上机总学时达到了96学时,较以往有了大幅度提升。但在讲授本课程的时候,是采用以一般程序设计内容为主、面向对象内容为辅的方式,还是采用以面向对象内容为主、面向过程为辅的方式,是以语法教学为主,还是以问题驱动教学方式为主,仍存在较大争论。因此,有必要探讨C 程序设计语言的教学方法和课程改革[1-3]。
2 C 程序设计语言教学存在的问题
1) C 它是从面向过程的C语言发展而来的,并非是纯面向对象的语言,面向过程和面向对象教学分离,不利于学生掌握先进的面向对象程序设计方法。一般情况下,先讲解C语言的面向过程部分,再讲解面向对象的部分。但在利用面向对象的思想编程时,学生写起程序来,还是使用面向过程的思维模式。原因在于人们在看待某类问题时,总存在先入为主的思维定势。
2) 面向对象的C 语法较复杂,教学往往陷入语法泥潭,削弱了更为重要的算法的教学和解决实际问题的能力。大部分C 语言教材,都是以语法为中心,忽略了学习计算机语言的根本目的。即培养学生用计算机来解决问题的思维和实践能力。因此学生编程能力的培养是首要的,掌握语言本身不过是实现编程的一个手段,而不是编程的目标。
3) 开发工具陈旧,未能使用主流的开发工具平台。很多学校仍然采用VC6.0作为开发工具,虽然VC6.0是一款优秀的开发工具,但毕竟产生于十年前,对标准C 的支持力度不够。而目前主流的C 开发工具Visual Studio 2005.net是是微软2006年新推出的开发平台,它功能强大,被许多软件公司选为主要开发工具。若采用Visual Studio 2005.net作为C 语言课程中的开发平台,则为学生的专业发展和就业打下良好的基础。
4) 教学内容陈旧,STL(Standard Template Library)的内容在教学中体现较少。STL是ANSI/ISO C 标准中最新的一部分内容,它提供了一个可扩展的应用框架,高度体现了软件的可复用性。学生应学会站在巨人的肩膀上进行编程,只有这样才能提高自己的编程和实践能力。
3 C 教学改革与课程实践的基本思路
3.1 教学内容
1) 强调算法,即突出程序设计而不是语法。强调算法,不是忽视语法,而是不要繁琐的钻牛角尖的语法,我们要的是基本的常用的语法,更多的是要模仿。不是知道的语法越多,程序编得越好,而是自己动手编程越多,程序编得越好,实践能力越强。
2) 解决面向对象与面向过程分离的问题,直接讲授面向对象程序设计方法,掌握怎样从客观事物中抽象出类来的方法,并采用UML语言对所抽象的类进行建模。初步培养学生能够从软件工程的角度考虑编程问题,具备了初步的软件工程思想。
3) 选择最新的C 体系(98标准)作为教学内容。该标准抛弃了原有的C 面向过程的教学阶段,而且突出了面向对象C 实现软件通用性的两大关键技术:模板、派生。增加STL部分的教学内容,初步掌握相关的数据结构知识。
4) 加强面向对象程序设计方面的教学,培养面向对象程序设计的能力。面向对象方法所强调的基本原则,就是直接面对客观存在的事物来进行软件开发,将人们在日常生活中习惯的思维方式和表达方式应用在软件开发中,使软件开发从过分专业化的方法、规则和技巧中回到客观世界,回到人们通常的思维。使学生能够掌握从客观事物中抽象出类来的方法去考虑和解决实际问题。
5)解决Windows编程与DOS编程分离的问题,采用基础教学与实践教学相结合。在基础教学中采用Windows平台下的控制台方式(命令行方式)以突出编程能力的培养。在实践部分比较全面地学习标准的Windows图形界面编程,这安排在课程设计(放在课程结束后暑期实习中)中,由学生在教师指导下主要通过自学独立完成。
3.2 教材选取
《C 语言程序设计》[4-5]是清华大学出版社出版的一本优秀的教材,该书第1版荣获2000年中国高校科学技术奖自然科学二等奖 2000年全国优秀畅销书奖,该教材已发展到第三版,配套辅助教材达四种。我们从2000级开始使用该书作为程序设计语言(C )这门课的教材,从授课和学生反馈情况来看,本书将C 语言作为大学生学习程序设计的入门语言,不仅详细介绍了语言本身,而且介绍了常用的数据结构和算法,在原第2版的基础上,第3版还增加了对UML建模语言的介绍和STL及泛型程序设计的内容。全书以面向对象的程序设计方法和《人员信息管理系统》的开发贯穿始终,每一章都首先阐述面向对象的程序设计思想和方法,然后引出必要的语法知识,在讲解语法时着重从程序设计方法学的角度讲述其意义和用途,力求使学生在掌握C 语言的同时,能够对现实世界中较简单的问题及其解决方法用计算机语言进行描述。当然,要达到能够描述较复杂问题领域的水平,还需要学习面向对象的软件工程课。
3.3 教学方法
在教学过程中以面向对象的程序设计方法贯穿始终,每一章都是首先阐述面向对象的程序设计思想和方法,由实际问题入手,然后引出必要的语法知识,在讲解语法时着重从程序设计方法学的角度讲述其意义和用途。
习题与实验都是学生的实践机会,具体指导和讲评是必要的。特别是在学生尚未入门时具体指导尤其重要,最好是在实验室里配大屏幕显示,学生与教师演示同步操作,或用同步操作的教学软件。在辅导实验时只可能解决少数学生的少数问题,提倡上机时学生互相讨论互相帮助。做习题,也提倡较难的题在同学之间先讨论再独立完成,毕竟我们要求规范化编程,主要是灵活应用通用算法,不是创造别人看不懂的算法,初级阶段主要是模仿,见多识广后就能编出好的程序。讲评是在学生做完习题和实验之后,针对学生实际发生的最常见的错误进行的,也可以介绍一些同学的好作业,这是一个总结提高的过程。
以开发《人员信息管理系统》为主线,贯穿整个学期,提高学生对软件开发过程的认识和兴趣,为《软件工程》、《数据结构》等后续课程打下坚实的基础。
3.4 教学工具和教学手段
课堂教学尽可能地应用现代化教育技术,使用多媒体进行课堂教学,给学生营造一个良好的程序设计语言环境。与传统教学方式相比,多媒体教学具有形象、生动、交互性好、信息量大、减少文字书写等显著特点。对课程中难以理解的抽象内容可以给予直观展示和动态模拟,达到既能辅助教师形象地讲授课程中的难点和重点的目的,又能激发学生学习的兴趣,从而提高教学效率和教学效果。
不要拘泥于传统的教学方法,即以教师为中心,教师讲,学生听、记、做笔记。可以将更多的方法结合进来,讲授法、练习法、实验法、演示法等。但更应将多媒体网络技术结合进来,利用多媒体网络模拟现实环境,通过听觉、视觉、触觉等多种方式对学生的感官进行综合刺激,其效果是任何一种单一的途径所无法比拟的,同时学生也可以在真实感中学习,却又没有真实世界的压力,可实现信息共享,人机交互和即时反馈。多媒体课件对学生学习也可以起到事半功倍的作用。在多媒体课件中利用图像、动画、声音模拟课程中抽象的、难以理解的教学内容,并将其形象化,这样就更利于学生理解与记忆。比如C 程序的运行机制,学生很难理解、很难想象其过程,如果让其做成课件,以动画的形势模拟其过程,学生就能很快地掌握了。交互式教学方法在实践中是切实可行的,这种方法以学生为中心,同时发挥教师在教学中的主导作用,真正实现教师与学生、学生与学生的双向交流和互动。比如以学生为中心,进行分组教学,这样既可以提高学生的自主性学好知识,也可以因材施教,更可以提高学生的团结与协作能力,这种能力在软件开发过程中更是不可缺少的。
3.5 考试方法
考试要多样化,面要广,难度要适中,以考察能力为主。针对C 语言课程的特点,近年来期末考试形式为开卷,试题形式为程序填空、程序改错、算法编程实现,平时作业主要是课后部分编程题;大作业就是《人员信息管理系统》,基本贯穿整个教学过程。三者所占比重为:总分=平时作业(10%) 大作业(30%) 期末考试(60%)。这样对学生的考察不再以语法考察为重点,而是以解决问题的能力为重点。从近几年的实践情况来看,效果明显。
4 结束语
通过从教学内容、教材选取、教学方法、教学工具、教学手段和考试方法等多方面多环节入手,对C 语言教学进行了全方位的改革,使得学生的学习积极性有了较大提高。但是,随着C 语言的发展,在教学和课程实践中还会出现许多新的问题和矛盾,在今后的教学实践中,还应根据实际情况不断调整教学思路,提高教学水平。
参考文献:
[1] 景雪琴. C 语言程序设计课程教学探讨[J]. 高等教育研究学报,2005,28(2):89-91.
[2] 贾振华,李瑛. 《C 程序设计》课程教学方法探析[J]. 华北航天工业学院学报,2006,16(4):51-53.
[3] 余战秋.《C 语言程序设计》课程教学方法研究[J]. 巢湖学院学报,2007,9(3):146-148.
[4] 郑莉,董渊. C 语言程序设计[M]. 2版. 北京:清华大学出版社,2001.
[5] 郑莉,董渊,张瑞丰. C 语言程序设计[M]. 3版. 北京:清华大学出版社,2005.