程序设计课程培养文科学生计算思维能力的研究与实践

2016-06-15 06:29李宏岩辛慧杰
大连民族大学学报 2016年3期
关键词:计算思维能力培养教学方法

李宏岩,辛慧杰

(大连民族大学 计算机科学与工程学院,辽宁 大连 116605)



程序设计课程培养文科学生计算思维能力的研究与实践

李宏岩,辛慧杰

(大连民族大学 计算机科学与工程学院,辽宁 大连 116605)

摘要:根据文科学生在学习计算机程序设计课程中的问题,提出了以培养计算思维能力为目标的教学模式。遵循文科学生的认知规律更新教学观念,以计算思维的多样化为特征精选教学内容,以贴近文科学生实际的现实问题为导向改革教学方法与手段。经过实践,已经取得了良好效果。

关键词:文科类学生,计算思维;程序设计基础;教学方法;能力培养

自2006年,美国卡耐基梅隆大学的周以真教授系统地提出计算思维的概念以来,计算思维作为计算机科学界最具有基础性和长期性的思想,与理论思维、实验思维并称三大科学思维[1]。计算思维是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学广度的一系列思维活动[2]。国内的许多专家学者也对计算思维的定义和内涵进行详解和补充。从2010年开始至今,一些高校的教师对如何将计算思维融入大学计算机基础课程体系的改革进行了积极有益的探索,但是这些探索大部分是针对理工科学生的,对文科类专业的学生没有给予足够多的关注,而计算思维作为一种基本的思维方式能够适应不同专业学生的计算机知识学习的需要,无论理科生还是文科生在进入社会以后都需要具有一定的计算机文化素质,以更好地适应各行各业的工作。文科生不仅需要掌握计算机基本操作技能,更应该通过计算机基础教育取长补短,培养科学素养,提高工作中认识问题、解决问题,乃至于研究创新的能力。在开设的计算机基础课程中,程序设计课程是教学中的重点,其课程本身也集数理思维、模块化设计思想、对比优化策略等众多值得研究的方式、方法于一体。因此,本文以程序设计基础课程为依托,以培养文科类学生的计算思维能力为目标,在教学过程中突出计算思维训练的教学设计、强化计算思维能力培养的教学实施手段、在实践训练上注重知行和一,注重培养学生知识运用、分析问题能力和拓展思维能力,并将其应用在学生今后的学习工作中,使计算思维成为常态,为适应国家复合型人才战略培养的需要具有十分重要的意义。

1文科类学生在程序设计基础课程教学中所面临的问题

1.1普遍认为程序设计课程枯燥难学

目前,大连民族大学面向全校非计算机专业开设了3+X的计算机基础课程。其中3是必修课,主要是C语言(理工类专业)、 Visual Basic程序设计(生命、环资等专业)、Access 数据库设计(经管、文科类专业)等程序设计课程,X是选修与专业相结合的多门计算机应用课程。因此,程序设计课程是基础,在此基础上才能更好地学习余下和专业相关课程。在对文科类专业讲解程学设计课程中出现了以下几个问题:

(1)学习目的不明确。很多学生不明白程序设计课程在教学中的引导作用,认为程序设计课程的学习是计算机专业学生的“专利”,和自己所学的专业及将来的就业没有多大关系,没必要学。

(2)学习动力不足,畏难情绪。由于学生的计算机基础水平参差不齐,有些学生在学习程序设计课程过程中感觉入门困难,枯燥抽象,再听一些学长们的“告诫”,就更没有学习的动力了。

(3)学习方法呆板,不能举一反三。相对于那些学习动力不足的学生,很多文科类学生选择了死记硬背程序设计算法,老师讲解一道题,背一道,稍微修改一下题型,就不会了。当然,在程序设计中,一些基本的语法、结构和数据类型是需要同学记住,但程序设计绝不是死记硬背就能学好的。

1.2课程内容与课程学时相矛盾,不利于学生的计算思维能力的培养

“计算机程序设计基础”这门课程的基础理论、基本知识量大面广,加上教学对象又为大学一年级非计算机专业的学生,老师在讲解时很容易陷入“传授知识”的境地,用大量的精力关注大量知识单元的教与学,实验教学也是主要针对知识单元设置相应的实验项目,侧重知识的验证,期中或期末布置一个综合性的大项目,让学生运用所学知识完成项目的设计。在多年的教学实践中,我们意识到这种教学方法存在问题,一是在平时的教学中,学生只关注知识单元的理解和单一功能的实现,把本来具有前后联系的知识割裂开来,结果是学了后面忘了前面,等到期末做综合性大项目时缺乏整体观念而感到茫然,根本达不到期待的效果。二是由于课程内容较多,教师总想尽可能多的布置实验项目,形成一种以量取胜的导向,且总感觉学时不够。三是实验项目的设置以实现单一功能为目的,重在训练学生理解所学的格式化命令运行的结果是什么,缺乏训练学生灵活应用知识的能力,仍然停留在一种操作技能性的能力培养层面,难以形成整体的逻辑思维,其结果只要题目稍作改变就不知所措。这种知识型的教学方式不可避免地会出现“学生难”“教师难”的两难状况,最终认为学时不够也就不足为奇了,采用多媒体课件讲解、开发网络化的辅助教学平台等现代化的教学手段来提高课程教学的效率能在一定程度上缓解学时不足的矛盾,但并不是解决问题的根本所在。

2以计算思维为导向,更新教学观念,优化教学设计

顺势而为、依性而行。这里说的“性”和“势”就可理解为学生学习计算机的文化基础和认知基础,“顺”和“依”就是要遵循认知规律。曾任北大校长的中国著名教育家蔡元培先生早就指出教育是帮助被教育的人,给他们发展自己的能力。学生刚开始接触程序设计课程中的语句语法觉得难懂、没有兴趣,这时是仍然按照教材的“步进式”顺序讲下去,还是以“学定教,顺势而为”?诚然,就程序设计课程而言,没有语句语法方面的基本知识是不能够编程序的,但是否一定要先讲了这些学生觉得枯燥无味的基本知识后才能往下讲?能否可以先抓住程序设计的核心——算法,先讲解算法的设计,明确利用计算机求解问题的思路和方法,然后根据算法实现的需要,让学生有目的地去选择相应的语句语法知识编写出程序。语句语法实际上是为算法服务的。计算机程序设计课程具备了科学性与工程性并重、理论与实践并举、构造性与抽象性并存的基本特征,特别是以形式化语言作为描述手段,使得抽象和逻辑成为其思考问题的基本方式,抽象思维和逻辑思维是计算思维的主要方面,因此,以算法为核心的教学观念符合认知规律,有利于促进学生计算思维能力的发展。

2.2改革教学方法,优化教学设计

教学是需要设计的,切入点很重要[3]。“兴趣是最好的老师”,在教学设计时教师要用心揣摩初学编程者的感受,认真研究难点究竟在哪儿,深入思考怎样才能让学生感兴趣,而不是被那些深奥枯燥的语句语法弄得眼花缭乱,一头雾水,兴趣索然,因此就必须打破原来的知识型教学的框架。我们认为,课程的难点在于如何把实际问题形式化为机器能够处理的表达式,而在形式化的过程中,算法设计是其中的核心环节,是解决问题的思路和方法,也是培养学生计算思维能力的首要环节,为此,我们将知识型教学方法改进为研究型教学方法,推崇以探索为本的学习,并确定了三个方面的教学目标:(1)借助知识载体,传授基本问题的求解过程和思路;(2)建立算法意识,培养良好的思维习惯和形式化方法;(3)从学科方法论上打基础,培养计算机思维能力和分析问题、解决问题的能力。

3计算思维能力培养实践

3.1精选教学内容,整合知识模块

现有的理论课教材从数据类型、函数语句入手进行讲解,一开始就使学生陷入大量生硬的语法规则之中不能自拔,淡化了程序设计的核心要素——算法设计,也不利于培养学生的计算思维。为此,改进传统的教学模式,以VB程序设计课程为例,首先,让学生明白每一章节都不是独立的,而是前后相关联的,让学生感到程序设计课程并没有那么枯燥难懂,就好像在家里做菜那样简单,要做好一道菜,需要准备哪些食材、需要用到哪些炊具、需要哪些做菜步骤等,并把程序设计课程的每一章节和学生易于理解的做饭做菜联系起来,从而给学生建立一个完整的程序设计课程学习架构。其次,改变了以往层次推进方式的教学方式,而是将教学内容分为两大部分,如图1。然后对每一部分再进行分类整合。比如,将控件中的列表框和组合框两个控件与数组的内容相整合,不仅避免了晦涩难懂的理论,而且更容易让学生理解数组的涵义便于学生动手操作。再次,从功能需求入手进行讲解,重点讲述算法设计,使学生首先牢固树立“算法是核心”的计算思维习惯,然后再结合实际问题使学生分析问题、思考问题、解决问题和反思。在程序设计课程的教学过程中,注意学生依据已有的知识体系,提出问题、解决问题的能力,着重强化利用计算思维方式描述问题和使用机器语言解决问题的训练。例如火车分段计费问题,根据工资收入,所得税分段计税就是日常生活中常遇到的问题,学生依据所学知识用多分支结构算法进行描述,最后上机通过代码编写加以实现。

图1 VB程序课程架构

3.2科学设计实验方案

计算思维能力的培养需要通过学生的自主实验来完成。在实验方案中,设计多种由浅入深的实验题目,包括以下三个方面。

(1)单个知识点实验。在讲授完一个知识点后,设计该知识点的典型问题,让学生模仿该类问题的求解方法,初步掌握计算思维方法。

对此,黑龙江销售最大的限度的为员工解决。包括高峰期时,要求机关、各个片区公司领导、市区加油站抽调人手到最偏远的加油站进行帮扶,有的帮着做饭;有的帮着收钱;有的帮着疏导客户;有的帮着维持加油现场。

(2)知识点综合实验。由教师采用关注点分离的方法,将一个实际问题进行简化,设计包括若干常用知识结构的实验题目,引导学生将不同的知识点和方法综合应用到该实验问题的解决中,训练学生的计算思维。

(3)课程综合实验。根据学生所学的专业与程序设计课程内容相结合,引导学生将所学内容融入到解决专业实际问题,培养学生综合应用其知识和能力。例如:经管类专业的学生可以通过所学程序设计课程对财务报表进行二次开发,财务数据进行快速的统计分析。文法类专业的学生可以通过该课程对办公文档或报纸进行二次编排。动画设计类专业的学生可以通过该课程对 人物、空间等设计更加高效精确等等,提高学生综合运用计算思维方法的能力。让学生真正理解计算机知识与我们每个人生活密不可分,而不是孤立的,计算思维已融入自己的思想而不是人造的,是和阅读、写作、计算一样是人的基本技能,从而让学生用计算思维思考问题解决问题成为一种常态。

3.3以思维多样化为核心点

由于学生思维能力和心理特征存在个体差异,在程序设计课程的教学活动中,应倡导多样化的算法思维[4],培养学生的探索精神和创新意识。强调多样化的算法思维,可以有效地强化计算思维,让学生明白“条条大路通罗马”的道理。具体策略如下:

(1)尊重不同的认知方式。计算思维的多样化的本质就是尊重学生不同的认知方式。由于认知方式存在差异,在程序设计课程的教学过程中必然会出现思维多样化的现象。鼓励学生根据自己的兴趣,从不同角度发现问题和分析问题,用不同的算法解决问题,用不同的程序实现算法。比如求阶乘可以用几种算法来求解,让学生通过此题明白多样化的算法思维,不局限于一个算法。

(2)增强计算思维的派生性[5]。所谓派生,就是在已有的程序基础上衍生出的新的解决问题算法实现。通过分析已有程序的优缺点,修改并把自己的思维融入新程序的过程,是最好锻炼计算思维训练手段。因此,在上机操作中,经常设计一些可供学生派生的程序片段,培养他们的思维创新能力。

(3)充分利用算法的简化和优化过程。引导学生进行反思和创新训练,达到简化和优化算法的目的。比如判断一个数是否为素数有三种算法见表1。这个简化和优化算法的过程可以很好地强化计算思维训练,帮助学生举一反三地学好程序设计课程。

表1 判断n是否为素数

4结语

在教学实践中,课上采用思维多样化教学模式,并在上机环节中加以强化,力求课上课下都有强化计算思维的专项训练,取得了良好的效果。学生的综合应用能力大大提高,不仅体现在本课程的应用方面,而且还拓展到其它相关领域,比如财务会计领域、生命科学领域、建筑工程领域等。

程序设计课程中的计算思维训练对于培养高素质复合型人才是十分重要的,计算思维不仅可以帮助他们理解计算的实现机制,还有利于学生进行实践和创新。学生计算思维能力的培养不是一朝一夕的之功而是一个循序渐进的过程,因此还需要不断地进行研究和探索。

参考文献:

[1] 朱亚宗.论计算思维:计算思维的科学定位、基本原理及创新路径[J].计算机科学,2009,36(4):53-55.

[2] WING J M. Computational thinking[J].Communications of ACM,2007,49(3):33-35.

[3] 吴文虎.我怎么讲好“程序设计基础”这门课[J].中国大学教学,2011(12):10-12.

[4] 陈杰华.程序设计课程中强化计算思维训练的实践探索[J].计算机教育,2009(20):84—85.

[5] 于金凤.基于计算思维能力培养的教学模式研究[J].计算机教育,2012(15):65-68.

(责任编辑王楠楠)

The Research and Practice of Computational Thinking Training for Liberal Arts Students in Programming Courses

LI Hong-yan, XIN Hui-jie

(School of Computer Science and Engineering, Dalian Minzu University, Dalian Liaoning 116605, China)

Abstract:Based on the problem in programming course learning by liberal arts students, the teaching mode for the purpose of computational thinking training was proposed, which mainly included three aspects of content, namely updating the teaching idea in accordance with the cognitive rule of liberal arts students, selecting the teaching content based on the diversified characteristics of computational thinking and reforming the teaching methods and means oriented practical problems of liberal arts students in daily life. The effectiveness of the mode has been proven by the practice.

Key words:liberal arts students; computational thinking; programming basis; teaching mode; ability cultivation

收稿日期:2015-10-12;最后修回日期:2015-11-16

基金项目:2015年度辽宁省教育评价协会第一届教学改革研究项目“文科类学生计算思维培养的研究与实践”(62)。

作者简介:李宏岩(1972-),女,辽宁沈阳人,讲师,主要从事大学公共计算机基础教育研究。

文章编号:1009-315X(2016)03-0282-04

中图分类号:G642.42

文献标志码:A

猜你喜欢
计算思维能力培养教学方法
初中英语写作教学方法初探
教学方法与知识类型的适宜
程序设计课程中计算思维和应用能力培养问题研究
民族高校C语言程序设计课程教学改革的研究
算法的案例教学探析
浅谈艺术专业学生计算思维能力的培养
数学归纳法在高中数学教学中的应用研究
信息技术教学中学生自主探究能力的培养探析
基于CDIO的大学生职业素养培养研究
低年级学生课前预习能力的培养