论文部分内容阅读
摘 要:C++语言是全国青少年信息学奥林匹克联赛的一门必修课。其宗旨是在青少年中普及信息科学知识,给那些学有余力的青少年创造机会,通过竞赛相互交流、增长才干、共同提高。针对目前中信息学奥林匹克联赛C++教学研究存在的问题,从教师、编程习惯和考试的形式三个方面进行探讨,提出了相应的解决方案,愿对C++语言的教学研究有所帮助。
关键词:C++;信息学奥林匹克联赛;编程能力
计算机科学与应用的迅猛发展,使C++语言成为当今的热门语言。目前,C++程序设计是信息学奥林匹克联赛的一门必修课。根据笔者多年的教学的经验和体会,对信息学奥林匹克联赛中C++教学中出现的问题进行探讨,并提出相应的解决方案,希望能有抛砖引玉的的作用。
一、教师的作用不容忽视
大多的青少年信息学奥林匹克联赛教师没有实际项目开发经历,对C++语言在现实生活的应用没有实在的体验,也有的教师刚从C语言或PASCAL语言教学转化到C++语言教学上来。因此在课堂上讲授C++程序设计课程时着重从语法角度展开,忽视了C++中算法和面向对象内容,未将UML活动图和类图融合到教学过程中,仅在课程设计中使用是失误之处。教师要采用多种途径多个平台与学生交流,及时地掌握学生的学时情况,了解那里该精讲,那里该阅读,对于学生那里是难点,动态地调整学时分配等。在教学过程强调学生的动手能力,要求学生在模仿的基础能用C++编程完成任务的基础上,对于用到的C++的相关知识点也要完全理解,随着实践次数增加,学生会渐渐理解相关的知识点。
二、编程的习惯要规范
程序设计是一种集体行为。因此,在具体的教学过程中,无论上课例子的演示还是上机的辅导,都特别强调代码的可维护性使学生养成良好的编程习惯,为未来从事软件开发工作打下良好的基础。编程习惯不规范的表现有下面的几个表现:
表现之一是标识符命名不能“知义”与过于简单。最好是采用windows中的API所使用的“匈牙利命名法”,也就是一个变量名由一个或多个小写字母开始,这些字母有助于记忆变量的类型和用处,紧跟着的就是程序员选择的任何名称。这个后半部分的首字母可以大写以区别前面的类型指示字母。也可以采用“驼峰式命名法”,这种命名法中每个变量名由两个以上单词的构成,变量的每个单词第一个字母大写,两个单词间用下划线连接,与匈牙利命名法不同的是它并不将变量的类型写入变量名中。
表现之二是所编写的程序格式混乱,没有缩进或乱缩进。正确的缩进方法应该是“Tab”键的形式,这样做出来的缩进位置是固定不变的,不能用空格代替。在VisualC++6.0环境下,还可借助智能缩进工具,方法是选中需要缩进部分,然后在主菜单“Edit”中选择“Advanced”,点击“FormatSelection”或者快捷键“Alt+F8”。严格规范的程序代码层次清晰,一目了然,可以降低代码出错率,例如能够有效避免括号不配对等低级问题,也便于后期的程序维护与修改工作。 表现之三是程序没有注释或者注释全是废弃的代码。虽然在编译和执行时注释会被忽略,注释本身不会增加可执行文件的大小,但是注释的目的是方便代码的阅读和代码维护。因此,一定要按照统一的规范来书写足够的注释,尤其在相对复杂的程序设计问题和大型项目研发中注释及说明文档更加必不可少。最后,修改程序代码时,一定要更新注释,同时建议记录相应的修改日期和程序修改人。
三、强化学生“数据结构—算法—”密切相关的意识
学习数据结构的最终目的是为了使学生获得求解问题的能力,然而从实际问题中抽象出数学模型,选择合适数据结构计算机表示,再把解决问题的算法程序化,这是一个复杂抽象思维的过程,是一项创造性的智力劳动,这对初涉程序设计的学生来说是一件很难的事情。“数据结构”课程本身较强的逻辑性和抽象性决定该课程的难度较大,学生首先从心理上畏惧数据结构,害怕实践,拿到实验任务到上机实习,常常茫然不知如何动手。而“数据结构”实验大量使用如C++语言中比较难的结构体、指针、链表等知识点,这样“数据结构”的实验就更难了。再者,“数据结构”理论教学多数偏重算法思想形成过程的分析,算法的描述可以用一种程序设计语言,也可以用伪码,重在算法思想的描述。在实验中,有些学生甚至有了现存的算法,也不知道如何将算法改换成计算机能接受的程序。基于上述各种原因,“数据结构”的实践环节往往流于形式,加上实验教学过程中缺乏合适的监督管理和奖惩制度,大多数学生因程序设计基本功不扎实,当任务无法按时完成时就采取“COPY”方式交差,蒙混过关。有的同学一学期下来做了多次实验,自己却一个程序也未能调试通过,久而久之,对编程失去兴趣,根本就不会编程序调程序,程序设计的能力也就可想而知了。
四、考试的形式要面向青少年信息学奥林匹克联赛
C++程序设计的考试是为检查学生用己学的面向对象的知识来解决实际问题的能力,从而达到学以致用的目的。大部分青少年信息学奥林匹克联赛学生在学完C++程序设计课程后,学生的C++成绩就是用笔试+上机+复测的成绩来衡量,这要培养学生的考试形式要能全面促进学生在平时注重动手能力、程序调试能力和项目开发能力的培养。提倡青少年信息学奥林匹克联赛的C++语言采用课程设计的较为合适,在学完该课程后,将学生分成若干个小组,每个小组完成不同的项目,最后以答辩的考核。这样既达到了培养了学生用己学的面向对象的知识来解决实际问题的能力的目的,同时学生的团结协作能力和语言表达能力也得到了提高。
参考文献:
[1]钱能,C++语言程序设计教程[M],北京,清华大学出版社,2005.
[2]马苗,田红鹏。面向对象的程序设计与C++教学中的问题与思考[J],教育与教学研究,2008,(06).
关键词:C++;信息学奥林匹克联赛;编程能力
计算机科学与应用的迅猛发展,使C++语言成为当今的热门语言。目前,C++程序设计是信息学奥林匹克联赛的一门必修课。根据笔者多年的教学的经验和体会,对信息学奥林匹克联赛中C++教学中出现的问题进行探讨,并提出相应的解决方案,希望能有抛砖引玉的的作用。
一、教师的作用不容忽视
大多的青少年信息学奥林匹克联赛教师没有实际项目开发经历,对C++语言在现实生活的应用没有实在的体验,也有的教师刚从C语言或PASCAL语言教学转化到C++语言教学上来。因此在课堂上讲授C++程序设计课程时着重从语法角度展开,忽视了C++中算法和面向对象内容,未将UML活动图和类图融合到教学过程中,仅在课程设计中使用是失误之处。教师要采用多种途径多个平台与学生交流,及时地掌握学生的学时情况,了解那里该精讲,那里该阅读,对于学生那里是难点,动态地调整学时分配等。在教学过程强调学生的动手能力,要求学生在模仿的基础能用C++编程完成任务的基础上,对于用到的C++的相关知识点也要完全理解,随着实践次数增加,学生会渐渐理解相关的知识点。
二、编程的习惯要规范
程序设计是一种集体行为。因此,在具体的教学过程中,无论上课例子的演示还是上机的辅导,都特别强调代码的可维护性使学生养成良好的编程习惯,为未来从事软件开发工作打下良好的基础。编程习惯不规范的表现有下面的几个表现:
表现之一是标识符命名不能“知义”与过于简单。最好是采用windows中的API所使用的“匈牙利命名法”,也就是一个变量名由一个或多个小写字母开始,这些字母有助于记忆变量的类型和用处,紧跟着的就是程序员选择的任何名称。这个后半部分的首字母可以大写以区别前面的类型指示字母。也可以采用“驼峰式命名法”,这种命名法中每个变量名由两个以上单词的构成,变量的每个单词第一个字母大写,两个单词间用下划线连接,与匈牙利命名法不同的是它并不将变量的类型写入变量名中。
表现之二是所编写的程序格式混乱,没有缩进或乱缩进。正确的缩进方法应该是“Tab”键的形式,这样做出来的缩进位置是固定不变的,不能用空格代替。在VisualC++6.0环境下,还可借助智能缩进工具,方法是选中需要缩进部分,然后在主菜单“Edit”中选择“Advanced”,点击“FormatSelection”或者快捷键“Alt+F8”。严格规范的程序代码层次清晰,一目了然,可以降低代码出错率,例如能够有效避免括号不配对等低级问题,也便于后期的程序维护与修改工作。 表现之三是程序没有注释或者注释全是废弃的代码。虽然在编译和执行时注释会被忽略,注释本身不会增加可执行文件的大小,但是注释的目的是方便代码的阅读和代码维护。因此,一定要按照统一的规范来书写足够的注释,尤其在相对复杂的程序设计问题和大型项目研发中注释及说明文档更加必不可少。最后,修改程序代码时,一定要更新注释,同时建议记录相应的修改日期和程序修改人。
三、强化学生“数据结构—算法—”密切相关的意识
学习数据结构的最终目的是为了使学生获得求解问题的能力,然而从实际问题中抽象出数学模型,选择合适数据结构计算机表示,再把解决问题的算法程序化,这是一个复杂抽象思维的过程,是一项创造性的智力劳动,这对初涉程序设计的学生来说是一件很难的事情。“数据结构”课程本身较强的逻辑性和抽象性决定该课程的难度较大,学生首先从心理上畏惧数据结构,害怕实践,拿到实验任务到上机实习,常常茫然不知如何动手。而“数据结构”实验大量使用如C++语言中比较难的结构体、指针、链表等知识点,这样“数据结构”的实验就更难了。再者,“数据结构”理论教学多数偏重算法思想形成过程的分析,算法的描述可以用一种程序设计语言,也可以用伪码,重在算法思想的描述。在实验中,有些学生甚至有了现存的算法,也不知道如何将算法改换成计算机能接受的程序。基于上述各种原因,“数据结构”的实践环节往往流于形式,加上实验教学过程中缺乏合适的监督管理和奖惩制度,大多数学生因程序设计基本功不扎实,当任务无法按时完成时就采取“COPY”方式交差,蒙混过关。有的同学一学期下来做了多次实验,自己却一个程序也未能调试通过,久而久之,对编程失去兴趣,根本就不会编程序调程序,程序设计的能力也就可想而知了。
四、考试的形式要面向青少年信息学奥林匹克联赛
C++程序设计的考试是为检查学生用己学的面向对象的知识来解决实际问题的能力,从而达到学以致用的目的。大部分青少年信息学奥林匹克联赛学生在学完C++程序设计课程后,学生的C++成绩就是用笔试+上机+复测的成绩来衡量,这要培养学生的考试形式要能全面促进学生在平时注重动手能力、程序调试能力和项目开发能力的培养。提倡青少年信息学奥林匹克联赛的C++语言采用课程设计的较为合适,在学完该课程后,将学生分成若干个小组,每个小组完成不同的项目,最后以答辩的考核。这样既达到了培养了学生用己学的面向对象的知识来解决实际问题的能力的目的,同时学生的团结协作能力和语言表达能力也得到了提高。
参考文献:
[1]钱能,C++语言程序设计教程[M],北京,清华大学出版社,2005.
[2]马苗,田红鹏。面向对象的程序设计与C++教学中的问题与思考[J],教育与教学研究,2008,(06).