基于计算思维的《Java程序设计》课程改革的探索
2014-12-31许研张炜
许研 张炜
摘要:Java程序设计课程是大学计算机专业课程,在高校计算机程序设计教学中具有重要的意义,以计算思维培养为导向的教学体系已形成共识。在以计算思维为导向进行Java程序设计课程教学改革和教学实践中,提出了以培养学生计算思维为目标思路的教学改革过程和内容,在课堂实践教学方式、考核方式与评价方法、分组学习,带头互助的学习模式、鼓励学生参与教师科研以及学生作品为教学服务等改革内容进行了积极探索,并提出问题和后继的工作。
关键词:计算思维;Java 程序设计教学;面向过程考核
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2014)35-8494-01
计算思维是当前国际计算机界广为关注的一个重要概念,也是当前计算机教育重点研究的重要课题。美国卡内基·梅隆大学计算机科学系主任周以真(Jeannette M. Wing)教授在2006年3月美国计算机权威期刊《Communications of the ACM》杂志上给出,并定义的计算思维(Computational Thinking):计算思维是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动[1]。
在国外,计算思维得到美国教育界的广泛支持。美国计算机协会(ACM)2008年,将“计算思维”与“计算机导论”课程绑定在一起,并要求课程讲授计算思维的本质;同年,美国国家计算机科学技术教师协会(CSTA)发布了《计算思维:一个所有课堂问题解决的工具》报告。
在国内,一些计算机教育者在教学过程中推进计算思维能力的培养。中国科技大学陈国良教授、桂林电子科技大学董荣胜教授、中国科学院计算技术研究所所长李国杰、自动化所的王飞跃教授、国防科技大学的朱亚宗教授等多位计算机知名专家学者在这方面都做了一些有益的探索。在基于计算思维的课程教学改革方面,很多教育者探索和并尝试计算思维在课程教学中的实践及应用。计算思维在教学和培训中的应用与推广正在逐步展开。
Java程序设计是一门实践性和操作性很强的计算机专业课程,传授知识和培养实际项目开发和分析能力是课程的重点。通过本课程的学习,学生要掌握软件开发能力,应用能力,而培养“像计算机科学家一样思考问题”的计算思维能力更为重要[2]。
对于该课程我们进行了有步骤、分层次地课程实践和改革模式,以计算思维为导向的Java程序设计课程定位为:将计算思维理念引入计算机程序语言类课程教学中,系统构建培养计算思维能力的创新型教学模式。将有效解决目前在计算机专业课程教学过程中遇到的一些问题,为课程教学改革提供新的思路与视角,有助于提高教育教学水平。
1 改革的方式和过程
在近几年的改革中我们不断的进行探索和改变。从培养学生计算思维方式出发,使学生通过该课程的学习对计算机科学的形态形成宏观认识,培养科学的思维方式,以使学生带入今后的工作领域。因为学习抽象的语言和算法,学生就会有一种用新的计算思维解决问题的技能。在目前的教学实践过程中采用我们称为对问题“抽象、设计、理论”的方式进行改革[3-4]。具体从以下几个方面来介绍:
1) 课堂实践教学方式进行改革
在课堂教学中,对每章的基础知识和要点进行讲授和概括,同时配以多个实例进行讲解,培养学生的编程思想—面向对象的抽象、模块化的计算思维方法。在这个过程中还要注意搜集学生认知情况和学习风格方面的材料,进行后期的综合项目题目设计。
2) 考核方式与评价方法的改革
根据教学方式的改革,对学生的考核方式与评价方法也做了如下调整:采用评价所有的学习过程+结果的方式进行考核。即课程的考试成绩由学习期间的各项过程成绩组成来考核学生的理论思维、实验思维和计算机思维:
(1) 过程性考核(含学习过程中的表现例如课堂情况,作业,出勤等);(2) 期末综合项目;(3) 实验。其中作业主要是电子作业,学生的程序都是调试通过才可上交。
综合项目是学生自选感兴趣的题目;原则上一人一题,难度过大的可分组。注意锻炼学生通过网络收集学习资料、解决问题的能力,主要措施是留一些基于课本但是不限于课本的题目,让学生自己根据课堂教学知识的编写的课外习题。 学生的优秀作品相互交流。每个学生都要上交综合项目的相关资料,每个学生的资料包括:程序(源程序和可运行的字节码文件),程序执行的录像和报告文档。综合项目的原则是:(1) 每个学生的程序不一定是个特别大的项目,主要是激发学生根据上课所讲的例子进行自主性的拓展,完善,或者自己设计加上更多功能。目的是鼓励学生自主性的进行扩展学习,自学更广泛的知识。(2) 题目的选择给学生一定的自由度,由于学生对课程的掌握程度不完全相同,甚至差别很大。所以学生可以根据自己的能力选择不同难度或者自己有兴趣的题目。题目的难度原则是学生既可以做出来,而且还有一定得难度。所以有些学生开发出来的项目时用知识有很多是老师没有讲过的,学生自发查阅资料,开发出来的。
在教师评测的时候既要根据学生做出题目的完整程度评价,还要考虑题目的难度系数。
3) 分组学习,带头互助的学习模式
鼓励学生平时自由结合成小团体共同学习。例如对于项目在实验室完成时,学生进行分组后,当学生遇到问题时,先不着急问老师,自己先组内讨论,现将初步的问题消灭在组内。每组自由结合,选能力较强者为组长负责人。如果问题还没有解决再跟老师讨论。此方法改变了学生一遇到问题就等着老师来解答,不愿意动脑,只等着“现成饭”的情况。
4) 鼓励学生参与教师科研,学生作品为教学服务
鼓励学生参与教师科研项目,愿意继续深入学习java相关知识的学生可以有的放矢的针对性学习。同时可以选择优秀的学生作品进行指导和修改,尽量充分应用到教学中, 使得学生完成的程序或者作品尽量可以实际使用或者用于辅助教学。
2 改革的成效
在这几个学期的探索中,学生在学习过程中考核积极性比较高,实践课的到课率高,几乎没有人缺勤。学生上机课几乎没有人打游戏,都在做程序或者小范围讨论。
图1是我们开始开展考试改革的初期,选择让学生卷面考试并进行项目设计,班试卷成绩和综合成绩比较分布图。从布图我们可以看出:“综合成绩考核”方式下,也就是试卷+项目的考核方式下,从试卷成绩和综合成绩的峰值来看,个别卷面较高的学生在平衡了实践技能分数后,成绩更加合理,甚至有些“善于考试”的学生在加入项目的考核后成绩从“良好”降到“不及格”。我们认为作为一门程序设计课程,使用综合项目考核的方式更能够促使学生加强动手实践能力的锻炼,考核方式比纯粹的理论考试更合理,因此后期我们就直接不再出试卷考试。
3 问题和后继的工作
教学中还存在不少问题,比如依然有些学生提不起对课程的兴趣,学生的作业和实验报告存在拷贝和“千人一面”的现象,这样就无法是学生在实验过程中去领悟“计算思维”这些问题期待在后续的改革中和各位同事进行探讨和改进。
还有就是对学生的考核不够深入,学生由于“情面”的原因,会有掌握较好的学生代替程度不太好的学生做程序的现象。所以除了设计项目内容外,还要制定出各个项目的评价指标项。从项目的选择、项目的执行、项目评价三个方面进行加强。将学生相互评价结果和教师评价综合起来,并经过加权处理,得到项目的最终分数。这将是我们课程组下一步的工作。
参考文献:
[1] 龚沛曾,杨志强.大学计算机基础教学中的计算思维培养[J].中国大学教学,2012,(5).
[2] 冯博琴.对于计算思维能力培养“落地”问题的探讨[J].中国大学教学,2012(9).
[3] 牟琴,谭良.计算机思维的研究及进展[J].计算机科学,2011.
[4] 董荣胜,古天龙.计算思维与计算机方法论[J].计算机科学,2009.