首页 > 范文大全 > 正文

ACM竞赛平台在C语言程序设计教学中的应用研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇ACM竞赛平台在C语言程序设计教学中的应用研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

C语言程序设计作为计算机专业相关专业学生的入门第一课,是学习其它专业课程的重要基础。如何教好这入门第一课是教学改革中的重要课题。本文针对C语言教学中普遍存在的重理论轻实践、重语法讲解轻编程思想的现象,将acm竞赛平台用于C语言的实践教学中,为学生提供了编程实践的平台,极大地激发了学生的编程热情,培养了学生自主学习的能力,取得了很好的教学效果。

C语言程序设计 ACM竞赛平台 教学效果

一、引言

在信息技术飞速发展的今天,如何改革传统的教育教学理念与方法,将理论与实践有机结合,有效推进素质教育和高水平人才培养,是新时期IT人才培养面临的新课题。程序设计能力是计算机专业学生的基本技能之一,也是检验毕业生是否合格的重要标准。

ACM/ICPC国际大学生程序设计竞赛作为一项世界性的竞赛活动,正好迎合了当今社会对创新性IT人才的需求,竞赛较全面地考验学生对知识的综合运用能力、创造性地分析解决问题的能力,所以在IT界具有超凡的影响力。该项赛事极大地提高了参赛同学的学习热情、实践动手能力、团队合作能力和创造创新能力。

本人自2009年开始致力于C语言教学改革,将ACM/ICPC竞赛平台用于程序设计课程的实践教学中,极大地提高了学生的编程积极性,提高了学生的实践能力、自学能力和分析解决问题的能力,为后继专业课程的学习打下来良好的基础。

二、C语言程序设计课程的特点

1.C语言程序设计是计算机相关专业的入门第一课

程序设计能力是计算机专业学生的基本技能之一,从课程学习的角度看,它是很多课程的基础,没有较强的程序设计能力将导致许多后续课程难以学好。从计算机专业课程体系来看,国内外大多数高校都把C语言程序设计作为计算机专业学生的第一门专业基础课,重在培养学生理解计算机解题过程,培养学生用计算机解题的思维方式,破除学生对计算机的神秘感,激发学生的学习兴趣,为后继专业课程打下良好基础,帮学生打开计算机世界的大门。所以,如何教好这入门第一课对学生今后其它专业课程的学习至关重要。

2.C语言是一门实践性很强的课程

C语言程序设计的重点是“程序设计”,C语言的教学不能只停留在对语法的研究上,而是教学生用C语言的语法表达自己的算法思想。目前很多C语言教材过于详尽的语法解释是对老师和学生的一大误导。老师在课堂上用大量篇幅强调语法,再加上大部分高校C语言考试采用笔试,引导着学生的学习方式也是以语法为中心,导致会做选择题、填空题、读程序题,但就是不会自己写程序。

三、ACM竞赛平台在C语言实践教学中的作用

C语言的教学重在编程能力的培养。如何培养编程能力,清华大学吴文虎教授经常对学生说:“你不是看会的也不是听会的,而是动手动脑练会的”。要想教好C语言这门课,用一句话可以概括为:千方百计提高学生对编程的兴趣。ACM竞赛平台正是起到了激发学生编程热情的作用。

1.为学生搭建了一个学习交流的平台

传统的实验教学模式下,很多学生只是照着详细的实验指导书或课本,输入一些代码,进行一些验证性实验,起不到对学生创新能力的培养。即使学生独立完成了编程任务,传统模式下缺少严格的评判,只是学生自己运行评判自己的程序,而这样的测试是远远不够的,一种输入正确,不等于所有的输入都正确;一次运行正确,不等于次次运行都正确。因此传统模式下实验效果根本就无法保证。

而借助竞赛平台后情况就完全不同了。学生需要提交源程序,由机器使用大量的测试数据评判学生的程序是否正确,然后返回相应的信息:成功通过、语法错误、答案错误、超时或内存溢出等等。学生可以根据系统返回的信息继续修改程序,然后再提交,直到评判成功为止。编程中遇到问题了,苦思敏想、单步调试找出bug了、或者求助老师、学长解决了,就真正掌握了一个重要知识点、或积累了一个重要编程经验,程序员就是这样成长的。

通过这一平台,教师可以随时了解每个学生的完成情况,分析学生的代码,及时解决学生的问题。学生每做出一道题,系统都有记录和排名,同时学生也能查看其他同学做了多少题、做了那些题,无形中在他们间形成一种互相竞争的状态,激起继续努力的劲头,形成良好的学习氛围。

2.培养了学生自主学习能力

C语言程序设计是一个实践性很强的学科,仅靠理论课和实验课上有限的时间是远远不够的,学生需要在课下进行大量的编程练习,在编程、调试的过程中才能深入掌握理解C语言的语法,并培养程序设计思想。而ACM竞赛平台正好提供了这样一个程序在线测试平台。为了能够在下次实验或竞赛中取得良好的成绩,他们会充分的利用课余时间,在竞赛平台下大量的做题,虽然有些知识的学习很枯燥,但是由于在攻克题目中行之有效,又是学以致用,他们常常会乐此不疲,直到把每一个知识点都理解透彻,这在无形中正好弥补了我们教学中的不足,对我们的教学工作起到了良好的促进作用。

3.引导着C语言教学理念的改变

C语言被国内大部分高校列为计算机相关专业的入门第一课。但国内高校C语言的教学效果普遍不理想,成了打击计算机专业学生成长的绊脚石。早期的C语言程序设计教材大都以讲解语法为中心,钻语法的牛角尖。教学生写程序,好比教小学生写作文,只讲语法是教不会写作的。而ACM竞赛平台的引入,把以语法为中心的教学模式引导到案例驱动的教学模式中来。C语言的学习,不再以语法为中心,而是以培养编程能力为中心。C语言的教学重点得到了拨乱反正,教学效果得到了显著提高。

四、结语

新的教学模式对专业教师提出了更高的要求。第一,要求教师要热爱编程,能带学生领略编程之美,激发学生的编程热情;第二,要求教师要有很强的责任感,及时解决学生编程中遇到的问题,保护学生的编程积极性。本人自09年开始尝试借助ACM竞赛平台进行C语言教学改革,教学效果提高显著。进行教学改革的两个班级中的学生进入高年级以后,有的在ACM-ICPC国家大学生程序设计竞赛中获得大奖,有的成了学生科研团队的主力军,毕业生的就业质量也有明显提高。这一教学改革成果于2012年开始在全院推广,使得2012级新生整体编程能力有很大提高。这一教学改革成果的推广必将极大地提高学生的实践动手能力、自主学习能力和创新能力,为社会输送更多的高质量的IT人才。

参考文献:

[1]何莉辉,梁沧.基于ACM国际大学生程序设计竞赛的学习模式[J].经济与文化,2008,(6):95-96.

[2]皮德常,吴庆宪.国际大学生程序设计竞赛与创新人才培养[J].电气电子教学学报,2008,30(3):44-45.

[3]刘鑫,杨春燕.浅谈C语言程序设计教学方法[J].长春理工大学学报(高教版),2009,(11).