心理学在高校数据结构课程教学中的应用研究
作者: 吴聪聪
关键词:心理学;人本主义;积极心理学;数据结构教学
0 引言
教学既是一门技术又是一门艺术,一个有效的教学过程的实现需要充分的设计和丰富的知识。这里的知识不仅是所教授课程和专业的知识,更包括教育学、心理学和哲学等方面的知识。教学,不只是教给学生本课程和本专业的知识,还要引领学生自我学习和成长。有效的教学绝非是一个具有较多知识的人将知识传递给另一个人那么简单,有效的教学需要应用许多策略[1]。而这些策略必须以学生的特点为基础,以促进学生学习和个人成长为目的。
普通高校计算机专业学生一般是学校本届学生中入学成绩较高的一批学生,有较强的好胜心理。通过一年的计算机专业学习,他们使用网络资源自主学习能力也更强。数据结构是计算机专业的核心基础课程,在整个培养方案中起到承上启下的作用。对于初学者,在数据结构的学习中会面临抽象、复杂、信息量大等问题。这些问题造成的困难会在学习过程中逐渐削弱学生的学习热情和信心。那么,如何结合课程特点和学生特征,帮助学生更有效地学习呢?在本学期的教学中,笔者将心理学知识运用到数据结构的课堂教学、作业批阅、实验指导和课后交流中,从教学态度、授课方式、学生互动方式的细节入手,营造自由、支持、积极的学习氛围,帮助学生在专业学习的状态上有一个里程碑式的飞跃。通过认知改变行动,通过行动优化认知。从学生的作业、实验和期末考试看,比往届学生在数据结构的学习上取得了更好的效果。本文从教师的教学心态,教学目标和教学过程三个方面进行阐述。
1 教师的“人本主义”教学心态
心理学家、教育学家卡尔·罗杰斯以人本主义心理学和人本主义哲学为基础,提出了“人本主义”教育观[2]。人本主义教育的核心就是“以学生为中心”,强调教育的目的是培养“完整的人”与“自我实现的人”。教师应该充当学生学习促进者,而不是评判者。教师要相信学生内在的积极向上的精神的存在,尊重学生,关爱学生。在这个知识资源极度丰富的时代,大学生学习的途径不再局限于课堂和教师。在开展教学工作之前,教师应该调整自己的心态:不要把自己看成是高高在上的“先知”,设想教学就是把自己所知道的专业知识教授给学生;而是把人性的平等、真诚和尊重带到教学中,将学生看作一个个独立的个体,为学生提供一个自由、安全、充满人情味的环境,使人固有的优异潜能自动地得以实现[3]。有了这种心态,教师在教学过程中会更平和,更容易发现学生的闪光点,及时地给予肯定和表扬,为学生构建正向激励的学习氛围。
数据结构是一门节点型课程,需要学生跨越从简单到复杂的更抽象思维和程序设计的过程。它包括各种抽象的数据结构、复杂的算法和更多的程序实现,同时它也是计算机学生接触到的第二门软件类课程,对于那些没有完全掌握“高级语言程序设计”的同学难度更是不言而喻。所以,教师的人本态度和对学生具有自驱力的信任在课程教学中更加重要。教师的信任也会起到“权威期待的作用”[1]。
2 符合学习规律的教学目标的设置
教学目标的设置要以学生为核心,不是教师想达到什么教学目标,而是学生能学到什么程度。所以教学目标的设定首先考虑学生的已有认知水平和学习能力。心理学中 “最近发展区”[1]认为学生的发展有两种水平:一种是学生的现有水平;另一种是学生可能的发展水平,两者之间的差异就是最近发展区。教学应着眼于学生的最近发展区,为学生提供带有适当难度的内容,调动学生的积极性,发挥其潜能。过高或过低的目标都不利于学生能力的提高和发展。现在大学生有多元化的特点,学习能力和现有水平都有一定的差异,教师可以基于所授课程特征,根据学生的现有水平构建具有层次的目标体系。
根据数据结构的知识体系,将数据结构总目标分解成若干子目标(数据结构的子知识体系,如:线性结构、树形结构、图结构、排序、查找),每个子目标再分解,依次向下直达末端知识点,形成一棵目标树。在目标树中,终端目标有高、中、低三个层次,每一个终端目标由若干实际应用的综合性题目构成。图1是栈数据结构终端目标“栈的应用”的分层形式。在教师的引导下,鼓励学生自主设定自己的终端目标,让学生体会学习上的选择权,从而生成内驱力。另外,通过这种分层设置目标的形式帮助前期知识掌握不足的学生有勇气尝试,而高层目标点也会激励优秀学生奋进,从而使每个学生都能为自己特定的“高阶性”[4]努力。目标的实现会进一步增强学生学习的信心,达到正向强化[1]的作用,提高学生的自我效能感[5](自我效能感是指人们对自身能否利用所拥有的技能去完成某项工作行为的自信程度)。在此基础上,教师启发和引导学生提升到更高的目标层次。
3 将积极心理学应用到教学过程中
2000 年,Seligman 和Csikszentmihalyi 在《美国心理学家杂志》发表题为“积极心理学导论”[6]的论文,正式开启了积极心理学这一研究领域。积极心理学用科学的方法理解并增进生活的积极方面[7]。积极心理教育认为,教育不仅以传授知识为主,还在于提高心理素质和心理健康水平,培养积极的心理品质[8]。学生只有拥有健康、积极、阳光的心理,才能成长成为一个幸福的人,才能出色地完成学业。教师在教学过程中,要把学生看成一个完整的人来珍视、信任和接纳[2],负责提供给学生一个自由、积极的学习环境,引导学生自主学习,成为学生学习的“助推器”。
3.1 关于课堂:学生是学习的主人
在数据结构教学中,设置讨论和分享环节让学生成为学习的主角、课堂的主角。现在是一个资源极度丰富、获取极度容易的时代,网络上充满了各种学习资料。通过讨论和分享使学生掌握如何鉴别好的、有效的网络资源,将网上学习和学校课程学习有效融合。针对每一个大的目标知识点,可以增加一节分享讨论课,让每个小组派代表分享他们的有效资源和学习收获,之后,学生互动讨论。对学生的分享,教师要做出积极的、正向的反馈。通过这样的分享和讨论,每位学生都能收获包括学习内容、方法、资源获取和甄别等多项技能。成就感是最好的驱动力,可以将敏捷教育理念引入教学体系,使学生通过小型项目的完成不断迭代知识。在教师的讲授环节,允许学生可以随时打断来提问。教师在课堂上要使用肯定、真诚、激励的语言,不对学生的问题做负面的评判。
3.2 关于作业:寻找学习中的快乐
数据结构作业要紧跟课程进度进行安排,目的有4个:1) 让学生进一步巩固所学的知识,增进理解和必要的记忆;2) 通过作业获得学习的成就感,为进一步学习更高层次的知识奠定心理和知识上的基础;3) 使教师了解学生对知识的掌握程度,根据学生作业情况调整和修订教学进度、教学内容和教学方法;4) 通过教师对作业的批阅,增进师生关系,传递教师对学生学习的肯定和鼓励。为达到这4个目的,教师必须对所要布置的作业进行设计,而且必须认真批阅学生提交的作业。由于数据结构课程知识密集,作业频次最好是每次理论课一次作业,如果授课班级规模庞大,助教资源有限,可以采用学生全部提交作业,教师分组批阅的方式。无差别提交作业可以使学生养成写作业的习惯,逐步形成作业意识[1]。教师必须保障每位学生的若干次作业中至少有一次被批阅,“被看见才能被照亮”,作业多次不被批阅会直接削弱学生学习课程的积极性。教师批阅时不要吝啬表扬的语言,多用赞许和肯定的言语;针对错误用开放式的问题,启发学生自己修改,鼓励学生复习所学知识;对有较大问题的作业要进行记录,在下次授课的间隙与学生当面交流,交流当中要使用充满信任和鼓励的语言。整个作业的布置、完成、批阅和交流过程都要以学生的学习和成长为目的,而不是以教师想达到的教学效果为目的,好的教学效果是整个过程完成后的必然结果。关于作业的设计,笔者的数据结构课程的第一个作业一般是“请查阅相关资料,统计图领奖的相关信息。选择你喜欢的图领奖得主,对其事迹和生平作详细的了解。”通过这个作业为学生展示计算机科学的广阔天地,也为他们找到自己专业上的榜样提供资源。作业的形式不限于传统的学生书写作业,也可以让学生制作算法讲解或软件使用的视频,自己开发的小程序演示视频等。威廉 詹姆斯说“没有反应就没有接受,没有相关的表达就不会产生印象”,每位教师都不要忘记作业是帮助学生学习的最好途径之一,对大学生也一样。
3.3 关于实验:强调学生的自我实现
实验是数据结构教学的重要环节,具体实验案例的设计和实施可以帮助学生充分理解数据结构的理论知识。如图的结构,现实中哪些问题可以映射成图数据结构,在解决这些问题时使用怎样的存储方式更适合,具体要用哪些算法等。通过将抽象的图数据结构转化为解决问题的基本框架,学生们不仅可以得到激励,而且还能够更好地理解课程内容。由于实验的挑战性,在学生实验的过程中,教师必须扮演引导的角色。当学生遇到困难时,教师提供启发性回应至关重要。避免教师越俎代庖,立即帮学生解决问题,教师应通过启发式提问的方式促使学生自行发现问题。例如,在完成“栈的应用”实验时,学生编写的表达式求值的程序,运行后没有显示结果,学生可能会焦虑不安地寻求教师的帮助。教师可以提出以下问题:“这么复杂的程序这么快就完成了!效率很高啊!你的程序里有哪些重要的函数模块?现在能输入数据,说明哪些模块似乎运行正常?没有结果,可能是哪里出问题了?如果眼睛看不出问题所在,可以使用什么工具帮助你找错误吗?”教师首先给出肯定的认可,让学生看到自己的成果,然后再逐层提问引导学生自己思考,查找问题所在。如果学生不知道单步调试技术,教师在了解全体学生的情况后给予集体讲解。在学生尝试调试程序时,教师应避免过度监督。通常情况下,一旦问题得到解决,学生会表现出极大的喜悦。然而,如果问题持续存在,教师可以鼓励学生描述其调试过程。在学生描述过程中,他们通常会自行发现问题。如果问题仍然存在,教师将继续以提问的方式帮助学生接近解决问题的关键。这种方法将显著提高学生的自我效能感,并激发了他们对课程内容和专业的兴趣。另外,对完成实验的学生,教师可以设置验收环节。在验收中,教师提出开放性问题拓宽学生的思考维度。这些问题可能包括要求学生阐述实验设计的整体思路、详细说明某一算法的具体思路、描述实验中遇到的问题及解决过程(重新体验成就和解决问题的喜悦)、描述实验过程中最有成就感的方面以及回顾完成实验时最愉快的时刻。在验收过程中,教师必须积极地发现和肯定学生设计中的特色和亮点。对于特别出色的设计,教师可以鼓励学生在课堂上分享他们的经验和体会。
毫无疑问,无论是在课堂教学、作业批阅、实验课、还是课外交流中,教师都必须保持真实,这是罗杰斯强调的促进学习的基本原则之一[2]。在实验课上,教师还可以分享自己在程序设计和编写过程中遇到的挫折和沉浸其中时的“心流”[9]体验。通过分享,学生不仅能够意识到在编程中遇到困难是正常的,从而减轻了心理负担,而且教师对于自己所教领域的热爱也会自然地传递给他们。
4 结论
面对现在竞争激烈的社会环境,大学教师可以通过在日常教学中恰当地运用心理学知识,为学生构建积极健康的学习环境,成为学生健康成长的支持者和促进者。使学生不仅学好了一门课程,更重要的是提升其对计算机专业的热情,和对自己能够不断成长的信心。大学教育不仅是“教书”,更重要的是“育人”。