杨泽,李世豪
(广东理工学院,广东肇庆 526100)
随着社会的不断进步,高等教育对于社会的进步与人才的培养显得格外重要,高等教育课程的教学质量成了高校人才培养的首要问题。现教育部和各高校的主要目标就是培养迎合企业需求以及社会的应用型人才。尤其是对于工科院校,学生必须要掌握一定的编程能力,学生的编程能力可以通过一些学科竞赛比如互联网+、高校大学生蓝桥杯大赛、大学生计算机编程大赛、挑战杯等各种学科竞赛来锻炼获得相应的提高。
在“十一五”期间为推动创新型人才培养工作,教育部提出实施一项重要改革举措即大学生创新性实验计划,该项目是教育部在国家层面实施的第一个直接针对大学生的创新培训项目。目的在于探索并建立一个改变传统高校教学模式为核心,提倡要调动大学生在学校的主动积极性,发挥年轻大学生的创新思维和创新能力,能够将学校课本上学到的知识有效应用到实际生活中去改善生活中的某些问题,可以让本科的学生也可以展开在相关领域的科研和发明创造,从而提高学生的综合实践能力[1]。
广东理工学院的定位为应用技术类型的高等本科院校,其主要目的就是培养应用型专业人才,并以教学工作为核心,所以如何提高学校教学质量就成了学校最重要的一部分,本文将以广东理工学院软件工程专业为研究对象,结合软件工程专业人才培养方案和部分计算机编程类课程体系的改革,并提出以大学生程序设计竞赛为载体,将计算机编程类课程与学科竞赛相结合的方式来培养大学生的创新能力、团队精神,运用《Java程序设计》课程学习的编程知识去解决实际问题。
将学科竞赛的相关题目与计算机编程类课程进行紧密结合,构建起以竞赛驱动的计算机课程。以往的计算机专业,在一些实践类课程尤其是编程类课程的学习中,任课教师只教授课本的理论知识,所以学生的理解只停留在课本知识上,这样就会导致学生不能够利用课本所学到的知识去解决生活中的实际问题,不重视实践环节,不严格要求学生。考试以笔试为主,实践考试不受重视,就可能出现期末有些学生的笔试分数虽然高但是实际动手解决实际问题的能力就较弱的现象较多。
因此,针对上面提到的种种问题,就需要对计算机类专业的编程课程进行改革,从一定程度上加强课程的实践环节的比重,并且在实践环节中加入学科竞赛中的题目,从而形成以竞赛型创新人才实验团队为依托,搭建学生参加各类编程竞赛的专业平台,整体的改革思路如图1所示。
图1 加入竞赛元素的教学改革
《Java程序设计》课程除理论课学习外,对教材的15个教学章节,根据这几个章节的内容分别设计了相应的上机实验环节,使学生及时对课程内容进行练习和掌握。实验内容共有9个项目,由于各项目之间存在关联性,所以合并为3 个项目。项目一是入学新生信息管理程序,主要练习Java 基本语法、类与对象、异常处理机制、输入/输出流、泛类型与集合框架等知识点。项目二是局域网下的聊天室,主要练习Java Swing 图形用户界面和Socket 网络编程等知识点。项目三是图书馆图书租借系统,主要运用Java Swing 绘制界面,使用JDBC 访问数据库。在各个项目中加入程序设计竞赛的相关问题,使学生能用所学知识解决竞赛问题。不仅动手能力提高了,而且也提高了学生的自信心,作为计算机专业学生的成就感也提高了。
广东理工学院已经组织学生参加了多届"蓝桥杯"全国软件和信息技术专业人才大赛以及大学生软件设计大赛并且都取得了相应的成果,为了培养创新能力和团队合作能力[3]。还可组织开展一些校级的计算机程序设计大赛,这样一些校级的辅助竞赛能够使学科竞赛促进程序设计课程实践环节向更加实用、创新的积极方向发展。可以按照以下的几点措施进行改革:
(1)改变学生平时课上的学习方式。由于上课时间的限制和试验环境的要求,最合理的方式就是在课堂上进行组队。可以分成每组分成5~7人为一组,任课教师可以从历年的竞赛真题中选择与教学内容相符的题目,可以让班级每组的学生以团队的方式去解决这些题目,让他们团队之间自己进行分工,指导教师根据每一个团队的基础从不同程度给予一定的指导,教师从原来多媒体教室集体授课的方式变为学生团队之间主动的学习,让平时枯燥的课堂学习氛围会变得更加活跃,对学生的实践动手能力又有一定的帮助。
(2)学习方法的改变。传统的编程实践通常是在计算机教室里,每人一台计算机,学生按照老师布置的实验任务完成编程。学科竞赛平台为学生开拓了一个团队发展的网络空间,促进了团队成员之间的交流。由原来的师生学习模式转成了学生团队之间的学习。
改变学生传统的学习方法。传统的程序设计实验课一般在计算机房进行,学生根据老师给出的实验题目在一定时间内完成代码编写。学校可以为愿意参加竞赛的学生开组建一个竞赛团队,配备相应的计算机设备,促进了团队成员之间的交流与学习。
(3)阶段性评价方式。编程类课程的学习效果相对来说是很难进行评价的,仅靠学生的期末考试试卷或对于某个算法的设计是无法达到对学生的整体水平进行评测目的的。通过竞赛平台来记录竞赛团队空间,记录竞赛学生的学习情况和平台题目的练习情况,可以全程监控学生的学习态度和学习过程,便于任课教师实时监控学生的学习情况,根据学生的学习过程及时调整教学计划,或者对于个别学生进行及时地一对一指导与解答。
加强《Java 编程》课程的教学与实践,提高学生的编程能力。以编程课程和竞争创新实践基地为基础,建立学生参加各类编程竞赛的专业平台和竞赛小组[4]。竞赛团队可以根据学生在编程类课程中的表现一方面由任课教师在教学过程中选拔有潜质的学生,组织学校计算机相关专业学生参加校级程序设计大赛、“蓝桥杯”全国软件专业人才设计和创业大赛。
另一方面,通过学校计算机相关社团的宣传,更多的学生可以参与其中。进入竞赛团队的学生分为两个方向:C/C++和Java。除了课堂教学和指导教师深入培训外,还要根据竞赛的最新要求进行有针对性的培训。建立创新人才培养体系。着力构建创新型人才培养机制。以创新人才培养为核心,努力培养多元化、高素质的创新人才,形成学校“创新人才培养”的特色。
学校还可以在信息学院设置独立的学科竞赛部门,主要负责计算机各专业各班级的竞赛工作处室(如学科竞赛中心),并且要将组织管理机构进行规范化,其次还要加大竞赛宣传力度,让更多感兴趣的学生参与进来,指导教师团队也是一个非常重要的问题,学院应建立一支具有扎实专业技能的竞赛教师队伍[2]。指导委员会设立相应的竞赛项目,还应该明确开展教学竞赛资金保障项目的资金来源,加强学校教师素质建设,积极探索制定符合教学实际工作要求的考核、成绩奖励管理措施,以充分激发全校师生积极参与科学创新教育的主动性、理论与实践教学活动的主动性和社会实践的主动性。学校各部门要充分协调和履行职责。鼓励更多的年轻教师参与程序竞赛的指导工作中去,尤其是专业水平较高的教师。
学科竞赛的奖励机制与评价标准可以从以下三个方面考虑,包括学生、教师和学校。获奖学生将获得一定的学分,或抵消一定的选修课学分。在奖学金评奖或三好学生评选中可以将竞赛获奖作为评选条件,开展编程竞赛可以弥补教师只是停留在理论教学环节上而实践教学的不足的问题,弥补计算机相关专业与企业需求脱节的问题,大大提高学生的实践能力和解决实际问题的能力,培养学生的创新能力[5]。
要想将学科竞赛和课程教学有效融合,不仅要求参加比赛的高校学生在编程技术上有一定的能力,而且要求具有较强的自学能力和创新能力,能够课下积极地在网上找相应的竞赛训练平台去练习,而这些训练仅仅靠学生的兴趣是很难坚持下去的,所以要想让学生坚持训练题目以便在竞赛中取得相应的成绩,就应该建立相应的学生奖励机制,给予学生一个积极的引导,有了奖励机制学生才能全身心地投入到平时的竞赛训练模式中去,积极地备战竞赛。
另一方面除了建立健全学生的奖励机制外,在参与竞赛的学生的选拔过程中竞赛的指导老师也起着至关重要的角色,要想竞赛取得相应的成果,组建一支优秀的指导教师团队是非常重要的,那么如何让有优秀的指导教师积极的参与进来就是一个需要探讨的问题,要想指导教师在平时的授课工作中抽出时间来指导学生竞赛,相应的教师竞赛奖励机制也需要建立健全。建议教师年工作量与岗位津贴直接挂钩。在此政策下,学校应及时确定教师指导学科竞赛的工作量。在学院年度总工作量定额的情况下,学校应该采取直接计算教师工作量的方法,而不是把工作量计入学院,然后由学院进行二次分配,可以有效保证了教师的工作量。这样才能保证他们工作的基本报酬,解决他们在年终考核上的顾虑,同时也不会影响他们的积极性。通过解决这些教师顾虑的问题,从一定程度上可以消除教师的不满情绪,使他们能够安心从事与学科竞赛指导相关的工作。
期末成绩的评定是对于教师教学成果评判的标准之一,广东理工学院编程类的考试的考核方式基本是平时成绩占40%,期末成绩占60%,由于编程类课程考察的是学生利用理论知识解决实际问题,而且这种考核方式只是侧重于学生的记忆力考察,是很难对于学生的动手实践能力有一定的帮助,因此要对期末的考核方式进行改革,可以将考核标准定位:上机考核占据60%,期末考试占30%,课堂考核占10%。
上机考核主要包括学生的实验课的实验编程题目的完成情况,以及包括学生在课后的一些竞赛平台上的练习题目的完成情况进行评定,课堂考核主要包括学生在课上的问题回答情况,以及在各自小组中的表现情况,可以采用班级几个小组内进行相互评定的方式。期末考试采用闭卷的考核方式,主要考察学生对于算法的设计能力以及对于数据结构的掌握能力。通过这样实践并且加上理论评定的方式更能够从多方面来对一个学生的综合编程能力以及对于课程的掌握能力做出一个正确的评判。
以学科竞赛为依托的程序设计类课程群建设改革,将竞赛案例引入到课堂教学。注重培养学生分析、解决问题能力及程序设计能力。引入竞争、讨论、团队合作机制[6]。
以学科竞赛为导向驱动《Java程序设计》课程改革,改变了以往传统教学模式下教师对于编程语言语法,基础知识的讲解。这种填鸭式教学会使得学生被动接受知识,很难让激发学生的学习热情,久而久之就会对编程类课程失去兴趣,而以学科竞赛为导向对编程类课程进行改革,能够利用学科竞赛对一个学生的课程掌握能力进行全方位的评估。
对于课程的教学,将竞赛与学科教学有机结合起来,能够有效推进课程的改革,提高教学质量,从而使得学生发展更加全面,更加适合社会以及企业的需要,此外开展与学科竞赛相关的改革措施还在一定程度上有助于一些教育落后地区计算机教学与实际脱节等问题,希望对同类型的高校有一定的借鉴意义。