谢志龙,李 庆,邢 容,陈 岩
(西南财经大学 经济信息工程学院,四川 成都 611130)
信息技术已经融入社会生活的方方面面,深刻改变着人类的思维、生产、生活和学习方式。计算思维,不仅是计算机专业学生应该具备的素质和能力,而且也成为所有大学生应该具备的素质和能力。因此,越来越多的非计算机专业,特别是财经类专业,通过开设程序设计课程来训练学生的计算思维能力和数据处理分析能力。然而,在授课过程中发现,学生对程序设计的接受能力有明显差异,从而造成了教师在教学中无法达到需要的效果,学生在程序设计课程的学习过程中,也感到非常困难,学习痛苦,从而影响学生的学习意愿,造成学习效果不好。
本研究的主要目的是研究不同专业、性别、逻辑思考能力、学习策略和不同程序语言是否与财经类学生程序设计能力的相关性。通过本研究的结果,可以帮助程序设计课程相关教师了解影响学生程序课程成绩的原因,从而为课程内容设计、授课进度以及授课形式安排提供参考,也可以为学生增加学习兴趣、提高程序设计能力提供参考。
程序设计能力是大学生必须具备的基本技能,程序设计能力是指学生在程序设计课程中所获得的知识与技能。
在影响学生程序设计能力的因素方面,文献[1]的研究表明男生的程序设计能力高于女生,但文献[2]的研究却发现性别不同的学生在程序设计方面的表现并没有显著的不同。
在逻辑思考能力方面,程序设计课程包含了不同程度的科学概念与技能。文献[3]的研究显示逻辑思考能力与科学技能学习成就之间存在显著相关性。逻辑思考能力指的是个人运用系统化思考程序和思考规则,对于物体或事物的理解、解释及执行上的能力。根据文献[4]的分类,逻辑思考能力包括6 项:守恒、比例推理能力、控制变量能力、概率推理能力、相关推理能力和组合推理能力。
学习策略为一般的学习习惯、学习者内在思考过程及判断解决问题等复杂的心理历程。文献[5]将学习策略定义为学习讯息处理,以应付记忆事件。文献[6]认为学习策略的形成包括分析、计划、执行方法、监控和修正5 个过程。认知心理学派以学生嘘唏的基本策略层面及学习者的感觉、思考、推理、判断解决问题等复杂的心理历程为基础,判断学生的学习策略,以作为解决学生学习困扰的依据,但目前并没有文献就学习策略与程序设计能力进行研究。
目前,鲜有基于财经类不同专业和不同程序语言对学生程序设计能力影响的研究。
本研究根据现有研究现状,提出研究模型,如图1 所示。
图1 研究模型
在以往的文献中,学生性别差异与程序设计能力关系、逻辑思考能力对程序设计能力的影响都有研究,而学习策略、专业和程序语言类别与程序设计能力之间关系并没有被研究过。在现实世界中,影响学生程序设计能力的因素是多方面的,因此本研究提出以下5 个假设。
假设1,专业对程序设计课程学习效果有显著影响
在财经类高校中,大部分专业偏向于文科类,学生在中学期间的数学训练、逻辑思维能力训练相对较少,对于这类学生在教授程序设计课程时,使用的方法、课程的内容、教学的进度是否应该不同?这一直是困扰财经类高校程序设计课程相关教师的难题。因此,本研究提出该假设,用以揭示在财经类院校中专业对程序设计课程学习效果的影响。
假设2,性别对程序设计课程学习效果有显著差异
在性别对程序设计课程学习效果研究中,有些研究认为性别差异会影响学生的程序设计能力[1];也有研究却表明男、女学生在程序设计方面的表现并无显著差异[2]。鉴于现有文献并没有对性别差异是否影响学生程序设计能力做出结论,本研究提出该假设,用以探究在财经类院校中性别对程序设计能力的影响。
假设3,逻辑思考能力与程序设计能力有关
程序设计课程包含了不同程度的科学概念与技能。由于目前文献对逻辑思考能力与程序设计能力相关性的研究不足,故提出上述假设。
假设4,学习策略与程序设计能力有关
文献[7]认为建立良好的习惯,将可改善学生的学习成绩。文献[8—9]则发现学习习惯与学习成就成正相关;为研究学习策略与程序设计能力关系,故提出以上假设。
假设5,不同程序语言与程序设计课程学习效果有关
目前财经类高校开设的程序设计基础课程中,使用的程序语言有多种,包括C、C++、Java、Basic、Python 等。这些语言均有不同的特点和侧重点。为探索哪种程序语言更加适合财经类高校学生进行程序设计能力的训练,故提出上述假设。
本研究以西南财经大学学生作为研究对象,研究数据为西南财经大学金融学院、会计学院、统计学院和经济信息工程学院2018—2019 学年-2 程序设计课程期末考试成绩,包括的程序语言有:C++、Java、VB 和Python,同时对试题中的题目根据对逻辑思考能力测试的目的进行了分类及分数统计。依据研究目的,随机选取了金融学院、会计学院、统计学院和经济信息工程学院2018 级共1 000 名本科一年级学生作为调查问卷对象。其中135 份为无效问卷,故共有865份有效问卷。
1)逻辑思考能力评量工具。
本研究采用Roadranga 与Padilla 的逻辑思考测验GALT(Group Assessment of Logical Thinking),该测试包含逻辑思考测验项目有守恒、比例推理、因变量控制、概率推理、相关推理和组合推理等。本研究将期末考试试题进行分类,以学生的得分来测得学生的6 项逻辑思考能力。
2)程序设计能力。
程序设计能力是指的学生在程序设计课程学习中获得的知识与技能,在本研究中是指的西南财经大学2018 级学生在程序设计课程中的考试成绩。考虑到任课教师的不同,故将学生程序设计课程的原始分数转换成标准分数后,再来衡量受测者的程序设计能力。
本研究将收集的资料利用Python 进行描述性统计分析、t 检验、皮尔森相关系数分析和方差分析进行研究。
学生样本数据显示,大多数学生的程序设计课程标准换之后的成绩集中在72~87 分之间(70%);学生在逻辑思考能力总平均得分为14.5,学生在比例推理能力上的平均能力较好;学生在学习策略上的表现则不够理想。
以t 检验法鉴定不同专业的学生在程序设计能力上是否有显著差异,结果见表1。从表1 中可以看出,不同专业学生的程序设计能力上并无显著差异,故假设1 不成立。考虑到在西南财经大学学生入校成绩中,金融和会计专业的学生入学成绩大幅领先于其他专业。在通常理解下,这2 个专业学生的学习成绩应普遍高于其他专业。但从分析结果可以看出,不同专业的学生在程序设计课程中的成绩并无明显差异,这可能和学生相关方面的学习能力有关。
表1 不同专业学生的程序设计能力分析
以t 检验法鉴定男、女在程序设计能力上是否有显著差异,结果见表2。从表2 中可以看出,不同性别在程序设计能力上并无显著差异,故假设2 不成立。这一结果可能与大一新生在高考时已经经过了分数的筛选有关,并且大一学生在各方面均有相同的特质与能力,经历了高考后,学生得到的训练较为相似,故性别差异并不显著。
表2 性别差异的程序设计能力分析
本研究将样本所测得的逻辑思考能力总分与各项得分均纳入分析,经皮尔森相关分析后,结果见表3。从表3 可以看出,比例推理能力及控制变量能力和程序设计能力显著正相关。因此,假设3 成立。
表3 逻辑思考能力与程序设计能力相关分析
学生控制变量能力可以由学生是否具备有效的“处理错误”得到验证。“处理错误”是程序设计过程中一个相当重要的步骤,“处理错误”能力的好坏,是影响程序设计能力的一个重要因素。一般而言,程序发生错误的主要原因有语法错误和逻辑错误2 种,语法错误通常可以在编译或执行的时候被发现,但逻辑错误却往往很难发现。学生如果能够利用程序执行过程中变量存储值的改变以及变量间值的相对变化以发现错误的原因;或固定一个变量值,以了解其他变量值的变化,这就是一种有效的处理错误的方法,也和学生的控制变量能力有关,所以学生的控制变量能力越强,则其程序设计能力越好。
以方差分析分别鉴定不同学习策略在程序设计能力上是否有显著影响。统计分析结果见表4。根据表4 可以看出,在学习策略中仅有解决困难能力在程序设计能力上有显著差异,因此假设4成立;并且解决困难能力为普通及良好者具有更好的程序设计能力。此结果显示,能够自行解决学习困难的学生,其程序设计能力往往更好。
表4 学习策略与程序设计能力ANOVA 分析
通过分析C++、Java、VB 和Python 等4 种语言中学生的学习成绩,以t 检验法来鉴定不同语言的学习效果是否有显著差异,结果见表5。从表5 可以看出,不同的程序语言对于学习效果存在显著不同,故假设5 成立。Python 具有语法简洁、易掌握的特性,因此更适合于财经类非计算机专业学生学习。
表5 不同程序语言的学生学习效果分析
不同专业的学生在程序设计课程中的学习能力并没有显著差异;不同性别的学生在程序设计能力上并没有显著差异;逻辑思考能力与程序设计能力相关;逻辑思考能力中的推理能力及控制变量能力与程序设计能力有显著正相关;学习策略与程序设计能力相关。学习策略中解决困难能力与程序设计能力有显著相关关系;不同程序语言对程序设计课程学习效果存在显著不同,Python 语言更加适合财经类非计算机专业学生学习。
1)对教师授课的改进。
教师可在第一次上课时测试所有学生的逻辑思考能力,从而了解学生逻辑思考的平均能力,除了作为教师上课进度和上课内容的参考之外,也可以掌握逻辑思考能力(尤其是比例推理、控制变量能力)较弱的特定学生,从而加强数学运算、逻辑推理或程序设计等训练,使其程序设计能力不至于落后班级平均程度太多,这对于上课教师在教学进度及教学内容、范围上的掌握上有极大帮助。同时,教师也可以通过和教授数学课程的相关教师沟通,由基本的数学运算与逻辑推理的训练,加强学生的逻辑思考能力。此外,教师在教授程序设计课程时,也可以准备多种类型的练习题目作为教学范例;在解说过程中,除语法和设计原则外也应该强调解题的关键方法和观念,以此示范并强化学生解决困难的能力。
2)对学生学习的帮助。
除根据教师所安排的进度学习外,学生在平时应该有自我学习与自我成长的观念。在面临到学习瓶颈而无法突破时,学生应该勇于面对问题,并积极与教师或同学讨论,集思广益以解决问题,并可以培养“自我学习、自我成长、面对问题、解决问题”的能力。尤其对必须学习多样知识的学生来说,该观念和能力的培养可以克服程序设计相关课程的学习困难,对其他课程的学习成效和将来就业的竞争力上也有较大帮助。
3)对教学管理部门的建议。
对于财经类高校的学生来说,不同特点的程序语言接受程度不一样。教学管理部门可以根据学生所在专业的要求,对不同专业学生开设不同程序语言的课程,做到有的放矢。
本研究仅以西南财经大学部分学生作为研究对象,研究成果可能不具备太大的代表性,后续研究将扩大研究对象,以更加全面了解性别、逻辑思考能力、学习策略与学生程序设计能力的相关性。另外,本研究仅针对学生的程序设计能力进行研究,并没有考虑不同程序语言的学习特性,后续研究可针对不同的程序语言的特性分别进行研究或比较,以使研究更加完整。最后,本研究中不同语言课程成绩并未考虑试题本身的难度差异,对研究结果会有一定影响,后续研究可采用相同试题的测试成绩进行。
致 谢
本文受金融智能与金融工程四川省重点实验室资助。