刘 锋,孟宪伟,徐宏宇,单 良
(黑龙江工业学院,黑龙江 鸡西 158100)
以计算思维为导向的计算机语言类课程教学模式改革与实践
刘锋,孟宪伟,徐宏宇,单良
(黑龙江工业学院,黑龙江 鸡西158100)
摘要:针对高校普遍开设的计算机语言类课程在教学环节中存在的问题,充分分析了课程与计算思维的内在联系,引入了任务驱动的教学方法,重新构建了计算机语言类课程的理论与实践教学模式。
关键词:计算思维;教学模式;任务驱动
一计算思维的研究背景
2006年3月,周以真教授在美国计算机权威期刊《Communications of the ACM》杂志上给出了计算思维(Computational Thinking)的概念。周教授认为:计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。实际上计算思维并不是我们平时所说的计算机程序设计、编写软件程序,而是综合利用计算机的基本概念去解决问题和理解人类的行为。
计算机程序设计语言具有知识面广泛、语法规则繁多、运用灵活、抽象和难于理解等特征,而计算机程序设计语言的编程思路和基本方法又与计算思维存在一定的关联,特别是在编程问题的逻辑分析、算法设计和代码编写上尤为突出。大学生教育应该以“计算思维”为培养核心,其目的主要是培养学生解决、分析问题的逻辑思维能力,使学生在具有计算思维学习和指导下,不仅可以独立学习计算机领域相关课程的知识,也可以完成其它专业领域知识内容的学习。[1]因此在课程当中引入计算思维对课程教学模式的改革势在必行。
二计算机语言类课程教学状况及存在问题
高校开设的计算机语言类课程是一门重要的计算机技术基础课程。根据学生专业的不同,所开设的计算机技术基础课程也略有不同,但主要集中在 “C语言程序设计”“Visual Basic程序设计”“Visual C ++程序设计” 和“Visual FoxPro程序设计”等课程,这些课程在培养学生的计算思维和创新能力以及在提高学生的综合素质等方面具有十分重要的作用。
通过对笔者所在学校黑龙江工业学院三届毕业生近万人的调查,结果显示:80%的毕业生认为大学期间学习到的计算机语言类课程与今后的工作岗位没有直接的内在联系,只有在就业时用人单位才会看是否有二级证书,因此学生在校期间把考取全国计算机等级考试证书作为学习目标,这样就会导致学生对知识掌握得不全面,技能掌握得不熟练,为了考试而学习、为了获取证书而学习;其次大学学习期间学生对大量的程序代码、繁杂的语法和多种多样的算法缺乏兴趣,被动地学习数据类型、控制结构、语法规则和算法等知识,理论内容和实践的学习没有很好地融合,运用计算机工具解决专业相关问题的能力很薄弱。以上都是我校非计算机专业学生对计算机语言类课程的普遍认识,这些现象的存在都给正常的教学过程带来了很大的困难。
三计算思维的培养
当今社会需要具有较强的动手实践能力和创新能力的大学生,在这样的社会背景下,高校作为人才的阵营,更应该关心社会需要什么样的人才、学生需要什么样的技术和能力,如何科学合理地引导学生,实现从“学什么”“如何学”到“如何用”的转换,从而进一步来培养学生的发现、分析和解决问题的基本能力。在这种趋势下,高校计算机语言类课程的培养目标已经不是为了让学生掌握计算机技术,而是为了让学生掌握计算思维的基本方法,培养学生的逻辑思维和解决问题的能力。计算思维体现了求解问题的思路与方法,如果学生能够掌握或理解计算思维的内涵,那么必定有利于学生创新能力的培养和提升,也可以为学生在以后利用计算等编程工具进行相关学科的研究奠定一定的基础。[2]
计算机语言类课程,不论是上面提到的哪种语言都具有一定的理论性和实践性。对于计算机语言类课程的教学,如果只从技能培养的角度出发,学生只要掌握基本的语法规则和控制结构,能够利用掌握的知识进行简单程序的设计就可以了;如果从对学生能力培养的角度来说,只教会学生进行简单的程序编写是完全不够的,更重要的是要让学生学会如何来优化程序结构、如何来评价程序代码;如果从计算思维培养的角度出发,要求学生能够掌握解决问题的基本方法,也就是说学生要根据所处理的不同问题,来选择合适的语言工具进行算法的设计和程序代码的优化。
如何在课程教学中培养学生的计算思维呢?这就需要我们设计一个合理优化的教学体系,根据教学体系重新构造知识系统,然后把课堂中要讲授的课程体系或知识体系按照培养目标的要求分解为知识点;学生是否掌握了知识点,要制定相应的验证方法和测试标准,甚至可以把知识点逐步细化分解到每一次课程具体需要讲什么内容,这个内容需要怎样讲。在以计算思维为导向时,也需要重新构造教学体系,把整个计算思维的培养分解为若干个属于计算思维的课程内容,通过在课堂上的讲授,让学生理解该思维过程,并逐渐转化为自己解决问题的思维方法。
四教学模式的改革与实践
1.理论教学模式的构建。
教学过程中,我们采用建立在建构主义理论基础上的探究性自主学习的教学方法,即我们所说的任务驱动教学方法。在任务驱动教学方法的融合下,首先要设计准确的教学任务,[3]该项任务要包含本次课程或者某几次课程中的所有知识点,当然也可以不仅仅设计一个教学任务,在任务的驱动下使学生能够主动地通过提出问题、分析问题、最后明确问题所涉及到的各个知识点,并在授课教师的指导下学习知识点,进而达到解决问题的目的。
在Visual Basic程序设计课程的教学中采用任务驱动教学方法不仅可以提高学生学习的兴趣,同时对学生计算思维能力的培养也是非常必要的。我们可以采取如下方式来安排部分知识点内容:首先,在讲解课程之前要精心设计具有趣味性的项目实例,这个项目实例要包括本次课程所要讲解的知识点,也可以包含学习过的知识点,由教师讲解实现这个实例的一般思路,进而提出本次课程所要解决的问题;然后,在程序的设计过程中逐步引入任务所需要的控件,以及控件的属性和方法等,讲解控件的使用方法及部分代码编写的格式,完成任务的设计;最后总结本次课程的新知识点使用方法、与其他知识点结合使用的方法及其注意事项。采用这样的教学环节不仅可以使枯燥乏味的知识点变得简单、易学、易懂、易操作,还能够激发学生对课程的学习兴趣。比如在讲解时钟控件这个知识点的时候,为了激发学生学习兴趣,提高学生的注意力,可以先向学生们展示一个蝴蝶飞舞的小案例,当蝴蝶舞动翅膀的时候,很快就抓住了学生的注意力;然后分析如何解决此问题,一个是如何实现蝴蝶在规定的线路上飞舞,再一个便是蝴蝶飞舞的速度如何控制;然后便可介绍Timer时钟控件的使用以及相关属性设置对程序的影响;接下来引入Move方法让蝴蝶飞舞等等。最终目的使学生们基本掌握整个程序的编写思路和方法,提升学生独立思考、分析和解决问题的能力,从而培养学生的计算思维。
2.实践教学模式的构建。
计算机语言类课程教学的整个环节,我们要大胆地尝试,打破通常重视理论、轻视实践的传统教学模式,在实践教学环节中引入项目案例教学法,让学生在完成项目案例时学习编程基础,同时在学习过程中随着项目案例的逐步引入来拓展学生的计算思维。[4]
(1)明确实践环节的教学目的。计算机语言类课程属于实践性很强的课程,让学生按照教材或实验指导书中给出的例题上机调试程序,这种验证性实验不是我们计算思维培养的真正目的,安排实验的目的是要在验证实验是否正确的同时培养学生独立思考的能力,即培养学生的计算思维能力。所以,在教学中首先要明确实践地位和作用,然后加强实践教学环节的力度,增加实践环节的学时,引导学生通过项目案例实验去理解、消化知识、拓展思维和提高学生应用能力的培养。
(2)实验教学内容的设计。改革实验教学内容,[5]在学生能够掌握验证性实验的基础上,逐步将验证性实验向创新型实验转变。对于创新型实验项目,要求学生在坚持科学精神的基础上,总结经验,逐步探索,在探索过程中逐步强化训练学生计算思维能力的培养。设计每次实验项目时,要根据知识点的要求合理地设计题目和与题目对应待要解决的问题,学生在上机编写和调试程序时,逐步引导学生认真思考问题并寻求解决问题的方法,从而达到在课程中对学生计算思维的培养。
比如在布置循环程序设计的作业时,我们经常会通过“百钱买百鸡”的数学问题引入课程,这样的问题不仅可以激发学生学习的兴趣,而且问题本身在循环结构这个知识点上具有代表性。利用数学方法求解问题时,常常是以设置未知数和方程组的方式来求解结果,以本题为例三个未知数与两个方程组,很难求得其解;而在利用计算机程序设计的方法进行求解时,采用穷举算法进行简单重复操作进行求解,很快就求得了结果。但在求解此问题时,很多同学会选择嵌套循环,设置了三个循环变量,每一个循环体的范围为0到100,这样整个程序的循环次数就为10000次了;其实上面说到的算法结构可以进行一定的优化,缩小循环体的范围,如:母鸡的范围为0到33,公鸡的循环范围为0到50,小鸡的循环范围是0到100,从而减少整个程序的循环次数;采用第二种方法不仅可以降低程序执行循环的次数,还可以提高程序的效率,进而加强了学生计算思维能力的培养。
3.提倡算法多样化。
实践课程的目的就是让学生利用理论知识来解决实际问题,要充分突出对学生计算思维能力的培养。在整个教学班级中由于学生的学习方法和对问题的理解能力上存在一定的差异,这样就会导致学生编写的算法存在多样性。教师应该提倡学生采用多种方法来解决一个问题,这不仅体现了学生在分析问题时不同的思维方式,还对程序的优化、选择最优秀的算法起到了一定的作用。[6]
在教学环节中,教师要重视学生计算思维的多样性的培养。这种多样性可以拓展学生的思路,激发学生的思维活动。实际上,任何算法的实现都可能存在一定的局限性,通过算法编写的程序只要保证运行结果的正确性和代码的可读性即可。在指导学生计算机实验时,鼓励学生通过多种算法编写程序来实现相同的任务,学生也可以借鉴或修改同学编写的程序,进而培养学生计算思维的多样性。
五结束语
目前,计算机只是一个通识性的学习工具,如何采用计算思维的方式使计算机发挥更大的潜能是我们一直研究的目标。计算思维的训练与培养不仅可以使学生认识计算机程序设计的机制过程,还有利于学生创新能力的培养,更重要的是还可以进一步提高学生的信息素养能力。当然,仅通过某门课程的学习来提高学生的计算思维能力是不符合实际的,还需要在整个人才培养知识体系中逐步融入计算思维。总之,以计算思维为导向的计算机语言类课程教学模式的改革,不但可以提高学生的学习趣味性和积极性,更重要的是有利于培养学生正确的思维方法与分析、解决问题的能力。
参考文献
[1]刘锋. VB程序设计课程教学方法的应用探索践[J].哈尔滨职业技术学院学报,2008(6):81-82.
[2]吴建明. 程序设计类课程教学改革与计算思维之培养[J].计算机教育,2012(19):17-23.
[3]陈杰华. 程序设计课程中强化计算思维训练的实践探索[J].计算机教育,2009(20) ):84-85.
[4]龚沛曾. 大学计算机基础教学中的计算思维培养[J].中国大学教育,2012(5) ):51-54.
[5]贾 茹. VisuaI Basic程序设计课程的计算思维教学实践[J].电脑知识与技术,2011(25):62-66.
[6]商艳丽. 基于计算思维的非计算机专业VB程序设计课程教学研究[J].科技纵横,2013 (8):262-267.
Class No.:G642Document Mark:A
(责任编辑:宋瑞斌)
Teaching Mode Reform of Computer Language Course Based on the Computer-oriented Thinking
Liu Feng,Meng Xianwei,Xu Hongyu,Shan Liang
(Heilongjiang University of Technology, Jixi, Heilongjiang 158100,China)
Abstract:In light of the problems existed in the computer language courses in colleges, we made an analysis of the intrinsic link between the curriculum itself and the computational thinking. We introduced the task-driven teaching methods to reconstruct the practice teaching mode of the computer language course.
Key words:computational thinking; teaching mode; task- driven
中图分类号:G642
文献标识码:A
文章编号:1672-6758(2016)01-0019-3
基金项目:2014年黑龙江省高等教育学会“十二五”高等教育科研课题“以计算思维为导向的计算机语言类课程教学改革与实践”的阶段成果,项目编号:14G318。
作者简介:刘锋,副教授,黑龙江工业学院电气与信息工程系软件教研室。研究方向:软件工程。