论文部分内容阅读
摘 要:实践创新能力是计算机专业的重要人才培养目标,也是计算机科学与技术领域对人才的基本要求,学科竞赛正是提高计算机专业学生实践创新能力有效途径之一。本文结合指导学生学科竞赛的实践,探讨了学科竞赛活动在提高计算机类专业学生实践创新能力培养方面的作用。
关键词:计算机专业;学科竞赛;实践创新能力
作为宽口径的计算机专业,不仅涉及计算机硬件与软件的基础理论,更进一步涉及面向系统、侧重应用的高级层次。高校在确定培养方案时,一般是通过基础知识与理论的教学与基础专业实训,使学生具有扎实的基础知识理论、较强的工程实践能力以及实践创新意识,在计算机信息科学与技术领域培养能够从事科研、教育、开发与应用的高级人才。由于种种原因,计算机专业在教学过程中,理论与实践之间存在一些问题,实践教学对培养学生的实践创新能力也有待提高与完善。
近年来,学院鼓励师生积极参加学科竞赛,以加快计算机专业的教学创新和改革,提高学生自主创新意识和实践能力。笔者自2012年起,连续指导学生参加了5届“蓝桥杯”全国软件和信息技术专业人才大赛,还指导学生参加了ACM / ICPC国际大学生程序设计竞赛和中国高校计算机大赛——团体程序设计大赛。这些指导经验的积累,使笔者深刻体会到学科竞赛对提高学生的综合素质和培养实践创新人才的重要作用。如何更好地以学科竞赛为抓手,提高计算机专业学生的实践创新能力,需要进一步讨论和研究。
一、应用高效开发环境,提高实践操作能力
“工欲善其事,必先利其器”,现在国内C语言学习过程中,开发工具以Visual C++6.0居多,但它对很多ANSIC和C++的标准都不支持,也很不规范。譬如,现在的ANSIC标准要求main函数类型为int,这样根据主函数的返回值就能知道程序是否正确执行了。
在各类程序设计竞赛中,使用的开发工具是Dev-C++,是新标准的G++编译器,使用Delphi / Kylix开发,遵守GPL协议,集合了GCC、MinGW等众多自由软件,它遵循C / C++标准,使用MinGW / GCC编译器,集成环境包括多页面窗口、工程编辑器以及调试器等。其中在工程编辑器中集合了编辑器、编译器,对程序进行连接和执行,语法进行高亮度显示,减少了编辑的错误,调试功能完善,满足初学者和编程高手不同层次学生的需求,是当前学习C和C++语言的首选开发工具,对提高实践操作能力和整理解题思路,起到事半功倍的效果。
二、深刻理解算法,增强解决问题的能力
计算机学科竞赛必然涉及一些经典算法,从简单的穷举、递归、贪婪、大数问题、到回溯、动态规划、博弈和仿真等,在实际的问题中都应用了这些算法,在深刻理解算法原理基础上,进一步分析、解决题目给出的实际问题是大学生必须具备的重要能力。下面就是一个简单有趣的例子:
赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。经过长期观察,atm发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!我们先来规范一下骰子:1的对面是4,2的对面是5,3的对面是6。
假设有m组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。atm想计算一下,现在有两个骰子,1和2不能紧贴在一起有多少种不同的垒骰子方式。
这类问题实际是排列组合问题,编程实现的结果是544种方案,是不是出乎你的意料了。
通过参加学科竞赛,能够有效地激发学生的思考能力,锻造实践创新能力,更为主要的是培养学生主动学习的意识,随着知识的积累,不断提高动手技能,提高分析问题和解决问题的能力。在解决具体问题的过程中,学生不断掌握事物的活动规律,运用知识分析问题、处理问题,进而提高创新意识和思维,达到解决实际问题的目标。
三、搭建学习交流平台,培养自主学习能力
一般情況下,在实践教学过程中,学生只是遵照实验指导书或教材,进行程序的输入,对结果进行验证。即使有的学生独自进行了程序的编写,然而运行评判自己的程序,这样的测试是远远不够的,实验效果无法保证,也很难提高学生的实践创新能力。
Online Judge系统(简称OJ)是一个实时对答题进行判断的系统,通过注册,学生在线提交完成的程序源代码,系统程序对源代码进行编译和运行,通过系统中预先设计的数据检验源代码运行正确与否。返回的结果并不是简单的通过或者不通过,而是返回给用户一个状态。这些状态有通过、结果错误、运行超时、输出超过限制、结果超出内存、语法格式错误、无法编译等信息。
对教师而言,运用OJ系统,通过分析学生提交到系统中的程序代码,教师可以实时掌握学生对每道试题的理解和掌握情况,对存在的问题可以进行及时快速的解答。对学生而言,运用OJ系统,每提交一个程序系统都有记录,并进行排名。学生之间还可以相互查看彼此做了哪些题,运行结果如何等信息。这在学生之间形成了一种互相竞争的状态,激发学生不断进取、力争上游的意识,对构建良好的学习气氛具有巨大的推动作用。
四、教科研相结合,提升师生学术能力
在指导学生参加竞赛过程中,不应为了竞赛而竞赛,要让学生多参与到本人和相关教师的科研和教研项目中。经过竞赛过程的训练,学生参与教科研项目具有很大热情,有的学生还会对完成项目中的思想和算法进行总结,并有多名学生发表相关论文3篇。参加学科竞赛,对学校扩大影响,增强学风和校风建设以及提高学生的科研能力和综合能力都具有重要意义。
我院通过不间断参与学科竞赛,积累了一定的经验,在一些国家的学科竞赛中取得了较好的成绩,证明我院学生综合素质高、动手能力强、心理素质佳;而且具有巨大的潜力。通过指导学生,教师对知识点进行了系统、全面的梳理,对算法进行了深刻的理解,这对于教师来说,是一次很大的提升,极大增强了教师的学术水平和科研能力。在科研实践的同时,注重将科研成果转化为实践教学内容,发挥科研对教学的促进作用。
五、加强团队合作,提升创新能力
程序设计并不是一件简单的工作,一般都是由多人或多个团队积极合作才能顺利完成,开展学科竞赛有利于培养学生的团队协作精神和攻关能力。在参加国际ACM大赛过程中,每组有3名学生组成,在有限的时间内,学生必须协商一致,取长补短,相互帮助、互相启发,只有这样才能取得较好的成绩。这一过程极大提高了学生的实践创新能力,也极大培养了交往意识和团队合作能力,同时,学生的心理素质在巨大压力下也得到很好的锻炼。全国高校天梯赛更是需要10名学生相互合作进行比赛。通过共同参赛作战,学生逐渐理解一个人无论多么强大,成功都是来自于团队的共同努力。个人和团队间建立了一种积极向上、互相促进的依赖关系,个人的思想只有融入团队中才能得到完美呈现,团队强大了,个人的目标实现也就近在咫尺。
参与学科竞赛,在考查学生理论知识和实际动手能力的同时,还培养了学生自信努力、积极进取、团结协作的意识,有利于全面提升学生的社会竞争力。
六、结语
如何让学生具有独立思考的精神、团结协作的意识和继承创新的能力,是当前迫切需要解决的问题。经过多年的探索、钻研和总结,基于指导学生参加程序设计竞赛的实践过程,笔者从开发工具的选择、算法的理解、团队意识的培养等几方面,阐述了把学科竞赛融入教学实践工作中是培养学生创新思维、增强创新能力、提高团队合作意识、提升解决实际问题的能力的有效途径。
参考文献:
[1]蒋巍,胡智喜,费贤举.以学科竞赛为抓手培养计算机专业学生的实践创新能力[J].福建电脑,2016(2).
[2]徐新爱,胡启宙,卢昕.基于学科竞赛的计算机专业实践教学模式探索[J].计算机教育,2015(24).
[3]宁彬,谷琼,袁磊,等.基于学科竞赛的计算机专业实践教学研究[J].软件导刊,2015(4).
[4]刘洪江.学科竞赛与计算机专业学生实践能力培养[J].电子测试,2016(24).
基金项目:防灾科技学院教学研究与教学改革项目(JT201504)。
关键词:计算机专业;学科竞赛;实践创新能力
作为宽口径的计算机专业,不仅涉及计算机硬件与软件的基础理论,更进一步涉及面向系统、侧重应用的高级层次。高校在确定培养方案时,一般是通过基础知识与理论的教学与基础专业实训,使学生具有扎实的基础知识理论、较强的工程实践能力以及实践创新意识,在计算机信息科学与技术领域培养能够从事科研、教育、开发与应用的高级人才。由于种种原因,计算机专业在教学过程中,理论与实践之间存在一些问题,实践教学对培养学生的实践创新能力也有待提高与完善。
近年来,学院鼓励师生积极参加学科竞赛,以加快计算机专业的教学创新和改革,提高学生自主创新意识和实践能力。笔者自2012年起,连续指导学生参加了5届“蓝桥杯”全国软件和信息技术专业人才大赛,还指导学生参加了ACM / ICPC国际大学生程序设计竞赛和中国高校计算机大赛——团体程序设计大赛。这些指导经验的积累,使笔者深刻体会到学科竞赛对提高学生的综合素质和培养实践创新人才的重要作用。如何更好地以学科竞赛为抓手,提高计算机专业学生的实践创新能力,需要进一步讨论和研究。
一、应用高效开发环境,提高实践操作能力
“工欲善其事,必先利其器”,现在国内C语言学习过程中,开发工具以Visual C++6.0居多,但它对很多ANSIC和C++的标准都不支持,也很不规范。譬如,现在的ANSIC标准要求main函数类型为int,这样根据主函数的返回值就能知道程序是否正确执行了。
在各类程序设计竞赛中,使用的开发工具是Dev-C++,是新标准的G++编译器,使用Delphi / Kylix开发,遵守GPL协议,集合了GCC、MinGW等众多自由软件,它遵循C / C++标准,使用MinGW / GCC编译器,集成环境包括多页面窗口、工程编辑器以及调试器等。其中在工程编辑器中集合了编辑器、编译器,对程序进行连接和执行,语法进行高亮度显示,减少了编辑的错误,调试功能完善,满足初学者和编程高手不同层次学生的需求,是当前学习C和C++语言的首选开发工具,对提高实践操作能力和整理解题思路,起到事半功倍的效果。
二、深刻理解算法,增强解决问题的能力
计算机学科竞赛必然涉及一些经典算法,从简单的穷举、递归、贪婪、大数问题、到回溯、动态规划、博弈和仿真等,在实际的问题中都应用了这些算法,在深刻理解算法原理基础上,进一步分析、解决题目给出的实际问题是大学生必须具备的重要能力。下面就是一个简单有趣的例子:
赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。经过长期观察,atm发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!我们先来规范一下骰子:1的对面是4,2的对面是5,3的对面是6。
假设有m组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。atm想计算一下,现在有两个骰子,1和2不能紧贴在一起有多少种不同的垒骰子方式。
这类问题实际是排列组合问题,编程实现的结果是544种方案,是不是出乎你的意料了。
通过参加学科竞赛,能够有效地激发学生的思考能力,锻造实践创新能力,更为主要的是培养学生主动学习的意识,随着知识的积累,不断提高动手技能,提高分析问题和解决问题的能力。在解决具体问题的过程中,学生不断掌握事物的活动规律,运用知识分析问题、处理问题,进而提高创新意识和思维,达到解决实际问题的目标。
三、搭建学习交流平台,培养自主学习能力
一般情況下,在实践教学过程中,学生只是遵照实验指导书或教材,进行程序的输入,对结果进行验证。即使有的学生独自进行了程序的编写,然而运行评判自己的程序,这样的测试是远远不够的,实验效果无法保证,也很难提高学生的实践创新能力。
Online Judge系统(简称OJ)是一个实时对答题进行判断的系统,通过注册,学生在线提交完成的程序源代码,系统程序对源代码进行编译和运行,通过系统中预先设计的数据检验源代码运行正确与否。返回的结果并不是简单的通过或者不通过,而是返回给用户一个状态。这些状态有通过、结果错误、运行超时、输出超过限制、结果超出内存、语法格式错误、无法编译等信息。
对教师而言,运用OJ系统,通过分析学生提交到系统中的程序代码,教师可以实时掌握学生对每道试题的理解和掌握情况,对存在的问题可以进行及时快速的解答。对学生而言,运用OJ系统,每提交一个程序系统都有记录,并进行排名。学生之间还可以相互查看彼此做了哪些题,运行结果如何等信息。这在学生之间形成了一种互相竞争的状态,激发学生不断进取、力争上游的意识,对构建良好的学习气氛具有巨大的推动作用。
四、教科研相结合,提升师生学术能力
在指导学生参加竞赛过程中,不应为了竞赛而竞赛,要让学生多参与到本人和相关教师的科研和教研项目中。经过竞赛过程的训练,学生参与教科研项目具有很大热情,有的学生还会对完成项目中的思想和算法进行总结,并有多名学生发表相关论文3篇。参加学科竞赛,对学校扩大影响,增强学风和校风建设以及提高学生的科研能力和综合能力都具有重要意义。
我院通过不间断参与学科竞赛,积累了一定的经验,在一些国家的学科竞赛中取得了较好的成绩,证明我院学生综合素质高、动手能力强、心理素质佳;而且具有巨大的潜力。通过指导学生,教师对知识点进行了系统、全面的梳理,对算法进行了深刻的理解,这对于教师来说,是一次很大的提升,极大增强了教师的学术水平和科研能力。在科研实践的同时,注重将科研成果转化为实践教学内容,发挥科研对教学的促进作用。
五、加强团队合作,提升创新能力
程序设计并不是一件简单的工作,一般都是由多人或多个团队积极合作才能顺利完成,开展学科竞赛有利于培养学生的团队协作精神和攻关能力。在参加国际ACM大赛过程中,每组有3名学生组成,在有限的时间内,学生必须协商一致,取长补短,相互帮助、互相启发,只有这样才能取得较好的成绩。这一过程极大提高了学生的实践创新能力,也极大培养了交往意识和团队合作能力,同时,学生的心理素质在巨大压力下也得到很好的锻炼。全国高校天梯赛更是需要10名学生相互合作进行比赛。通过共同参赛作战,学生逐渐理解一个人无论多么强大,成功都是来自于团队的共同努力。个人和团队间建立了一种积极向上、互相促进的依赖关系,个人的思想只有融入团队中才能得到完美呈现,团队强大了,个人的目标实现也就近在咫尺。
参与学科竞赛,在考查学生理论知识和实际动手能力的同时,还培养了学生自信努力、积极进取、团结协作的意识,有利于全面提升学生的社会竞争力。
六、结语
如何让学生具有独立思考的精神、团结协作的意识和继承创新的能力,是当前迫切需要解决的问题。经过多年的探索、钻研和总结,基于指导学生参加程序设计竞赛的实践过程,笔者从开发工具的选择、算法的理解、团队意识的培养等几方面,阐述了把学科竞赛融入教学实践工作中是培养学生创新思维、增强创新能力、提高团队合作意识、提升解决实际问题的能力的有效途径。
参考文献:
[1]蒋巍,胡智喜,费贤举.以学科竞赛为抓手培养计算机专业学生的实践创新能力[J].福建电脑,2016(2).
[2]徐新爱,胡启宙,卢昕.基于学科竞赛的计算机专业实践教学模式探索[J].计算机教育,2015(24).
[3]宁彬,谷琼,袁磊,等.基于学科竞赛的计算机专业实践教学研究[J].软件导刊,2015(4).
[4]刘洪江.学科竞赛与计算机专业学生实践能力培养[J].电子测试,2016(24).
基金项目:防灾科技学院教学研究与教学改革项目(JT201504)。