摘要: 在高职软件技术类专业中,面向对象课程起着承前启后的作用。一方面需要学生掌握面向对象基本理论,另一方面编码实践能力也需要着力培养。本文从编程语言的选择、理论和实践教学、课程考核等方面对面向对象的课程教学改革提出一些看法。 abstract: in higher-vocational-college’s majors of software technology, object-oriented curriculum plays a very important role. on the one hand students are required to master the basic theory of object-oriented, the other coding practices that also need to cultivate. this article gives a few comments for the object-oriented teaching reform, from the choice of programming language, the theory and practice of teaching, curriculum assessment and other aspects. 关键词: 面向对象;高职;c#;教学
key words: object-oriented;higher-vocational-college;c#;teaching
中图分类号:g423.07 文献标识码:a 文章编号:1006-4311(2013)20-0254-02 0 引言
在目前,面向对象还是程序开发的主流思想,因此,在高职的软件技术类专业中普遍开设面向对象课程。为了不使高职的面向对象课程发展成本科同类课程的精简版,本文结合本院软件技术专业面
向对象程序设计课程的改革实践,探讨符合高职教育需求和高职学生特点的一些教学方法和思路。 1 编程语言的选择
目前市面上流行的面向对象程序设计语言不下数十种,又以c++、java、c#、delphi等最为常见。我们选择以c#语言作为语言载体来学习面向对象的编程思想,是基于以下几点考虑:
①c++作为一门编程语言无疑是优异的,但对学习者来说,难度颇高,尤其是对普遍学习动力不强的高职学生;对教学而言,我们需要给高职学生一些简单、直观又有趣的例子增加其学习兴趣,用c++要做出这种例子相对要困难一点。
②java以其开放性和完全的面向对象而知名,但这种开放性而不是集成性对高职学生而言却是个限制。在工程实践中,要搭建一个满足开发要求的java开发环境往往需要大半天时间,添加各种插件、各插件可能因为版本问题相互冲突……虽然有的人很享受这个过程,但这却会打击学生的学习积极性。
③本科院校选择c++、java等语言比较普遍,而高职则以就业为导向,以理论够用、注重实践作为教学原则,并且前导课程是c语言。
因此,为了使高职毕业生能快速走上程序开发人员的岗位,在本专业的课程体系中选择入门简单、整个.net体系又足够庞大、高度集成的语言c#作为面向对象教学 语言。
2 教学过程的改革实践
当前的高职学生普遍存在基础较差、学习能力不强等问题,他们在面对c#这种语法规则很多、很细的语言时,容易产生课程枯燥难懂、学习不知如何着手等情绪,进而丧失信心、失去学习热情,形成自暴自弃、破罐破摔的不良心态。这就需要我们教师在教学中着眼实际情况、注重方法,使大多数学生能紧跟授课进程,学会并会用c#。
2.1 传统教学的问题:虽然多数高职课程都强调课堂教学和实践教学的结合,但多数还是形变实不变。课堂理论讲授枯燥乏味,多媒体教学也局限于课件或小程序演示等方面;等到了实践实训时,学生又不会动手写程序代码,最终导致教学效果很不理想。 2.2 理论教学内容的改进:在设计理论教学内容时,坚持以程序员岗位的能力需求为基准进行设计。理论教学的目的是为了能指导学生书写代码,因此我们只保留知识点中主干的部分,并制作成条目而不是段落。学生对照着简单的几条知识点、再参照样例,基本就能完成代码的书写了。比如在讲授构造方法的内容时,我们给出的理论知识点就只有以下五点:①它是类的一种特殊方法,方法名与类名相同;②没有返回类型,可以重载,一般以public修饰;③不允许用户显式地直接调用,只能在创建实例对象时紧跟new之后,系统自动调用该类的构造方法为新对象初始化字段;④若用户未定义任何构造函数,系统将为这个类缺省定义一个空构造函数,形如:public类名(){}的空构造函数;⑤若用户定义了构造函数,
则系统将不再提供缺省的构造函数。
有以上五条知识条目,学生已经对构造方法有足够的认识,也足够指导学生进行构造函数的书写,其他更详细的知识可以在后续的学习中进行补充,而不追求一步到位。
2.3 教学方法的改进:改善教学方法是为了能提高学生学习积极性,引导学生顺利完成“具体—抽象—具体”的学习过程。还以构造方法的学习为例,首先让学生联想新购买的手机或电脑的初始状态(具体的事物),引导出new一个对象时的初始化问题,这就引入了在c#中这个问题是怎么解决的——即构造方法,讲解前述的几个知识点(抽象的理论)。最后再结合具体的代码例子,让学生能观摩抽象的知识是如何在具体的编码中应用的,从而加深对知识点的印象,也能知道如何学以致用,为下一阶段的实践作好准备。 2.4 实践实训的改进:编程能力是练出来的,而不是背出来的[1]。一方面是实训项目的准备。实训项目应该既有能准确反映当前语法内容的小程序,又有能体现面向对象优越性的规模稍大、贯穿前后的项目。这样既有助于学生掌握单个语法现象,又能体会这些语法点在项目中的应用,做到局部和整体的有机统一。另一方面,对代码的规范性作严格要求。学生总是对代码规范不以为然,但这却是工程项目设计的精髓之一[2]。对现阶段的学习,规范性主要体现在命名规则、代码风格、异常处理等方面。教师需要在实训指导书中对规范要求作明确的罗列,而在指导过程中,发现有不规范代码,立即要求学生作规范性改进,然后再进行相应的指导。通过
强制性的要求,学生逐渐能写出高质量代码。 3 考核办法的改革实践
考核也可以成为学生学习的一种驱动力。传统的考核一般以卷面的方式出现,容易导致学生过于强调语法的学习,而忽视了代码编程能力的锤炼[3]。因此,理论考核和实践考核应该并重。 由于面向对象课程中的知识点很多,为了避免把理论考试全都集中到期末的一张试卷中,我们采取形成性考核的方式进行理论考核,即分五次进行考核。与前导课程c语言类似的数据类型、表达式、流程控制语句等是第一次考核,也作为对前一学期内容的巩固和提高;数组和方法作为第二次考核的内容;类的封装性的内容作为第三次考核;类的继承性的内容作为第四次考核;类的多态性和异常处理作为第五次考核。
针对实践考核,应该把提交实验实训报告和在实训课堂的随机抽查结合起来。实训报告中要求提供完整的设计过程、代码和结果等内容,体现学生的实训成果;另外,为了避免部分同学抄袭,在每次实训课堂上教师需要随机抽查三五个同学的独立完成情况,当面提问、当面回答,从而督促学生更好的完成实践性练习。 4 结语
.net是微软公司的战略性产品,c#面向对象课程前承c语言的编程基础,后接winform编程、asp.net等课程,衔接性作用非常明显。因此,需要教师不断探索教学全过程,设计更合理的内容体系、运用新的教学方法和手段、提供更合适的演示和实训项目,以学生
编程能力的提高为目标,督促学生学好理论、写规范代码。这样才能使我们的学生在完成整个课程体系学习之后,成为有一定理论基础、满足程序员岗位要求的合格毕业生。 参考文献:
[1]吴修国,陈洁.经管类专业java语言程序设计课程教学改革与实践[j].计算机时代,2013.3:49-51.
[2]赵鹏,孙政等.面向对象程序设计的代码规范探析[j].江苏教育学报(自然科学),2013.2,29(1):16-18.
[3]徐福平,王瑶等.浅析高职《c++程序设计》课程教学存在的问题及解决思路[j].2013,7:68-69.
因篇幅问题不能全部显示,请点此查看更多更全内容