面向计算思维的数据结构课程教学实践探索
2019-12-13孙亚红
[摘 要]数据结构是计算机相关专业的一门核心课程,在教学过程中,如何培养和锻炼学生的计算思维是教育者比较关注的一个问题。本文分析了数据结构课程的教学现状,讨论了数据结构与计算思维的关系,并从案例设计、思维训练和教学模式改革三个方面详细阐述了在该课程教学过程中所采取的具体措施。
[关键词]计算思维 数据结构 训练 混合式教学
基金项目:西安翻译学院2017年教育科学改革研究项目(项目编号:J17A04);陕西省教育科学“十三五”规划2017年年度课题(项目编号:SGH17H478)。
数据结构课程教学现状
数据结构是计算机学科知识体系中的核心,是计算机相关专业的一门重要的基础课程,在整个课程体系中具有举足轻重的地位。其理论与实践并重,既具有抽象性,又具有动态性[1]。多年来,学生普遍反映该课程学习难度大。究其原因,主要表现在以下几个方面。
首先,数据结构课程一般开设在第二或第三学期,学生没有系统学习的背景,而数据结构课程知识点多且系统性较强,任何一个知识点的可视化测试背后都需要学生有编写大量相关代码的能力为支撑,这对于没有系统学习背景,且先导课C语言程序设计掌握不熟练的学生来说,课程学习难度较大,容易使其产生畏难情绪,进而丧失学习的兴趣和自信心。
其次,以“教师为中心”的传统课堂由教师“独霸”教学舞台,在“满堂灌、一言堂”的教学过程中,学生机械记忆、理解课程理论知识和算法,然后将课堂所掌握的理论内容,根据实验大纲的要求,参照实验步骤指导进行上机验证,这种大众式的、标准化的教学模式忽略了学生的个体差异,导致有的学生“吃不饱”,有的学生“不够吃”。久而久之,学生就会丧失学习数据结构课程的积极性。
再次,受课时限制,当下大多数数据结构课程教学像压缩饼干一样去知识背景、去思维过程,直接明了地、平面地将知识灌输给学生,粗暴地断开了知识所指向的特定环境,让学生很容易就陷入了浅层学习的泥潭,难以进行深刻的、批评性的、创造性的思考,很多学生不知道学习数据结构课程的用处,极易造成学习的盲目性。
数据结构与计算思维
自卡内基-梅隆大学的周以真教授提出“计算思维”概念以来,国际国内教育界就掀起了计算思维的研究热潮[2]。计算思维作为人类三大思维科学之一,是运用计算机科学的基础概念进行问题求解、系统设计及人类行为理解[3],是信息技术学科的核心素养[4]。如同提升学生的计算思维能力是计算机教学的核心目标之一一样[5]。数据结构是计算机相关专业一门十分重要的核心课程,其核心内容是抽象数据类型、数据操作。几乎课程的每个知识单元都对应着一种计算思维方法。课程教学的目标不仅是要培养学生计算机基础知识的应用能力,更重要的是要提高学生分析问题、解决问题的能力,这也是计算思维的终极目标。因此,数据结构课程教学是计算思维培养的重要载体,是一种重要的计算思维训练工具。以计算思维为导向进行数据结构课程教学改革,将学生思维培养与专业能力训练相结合是当前计算机教学改革的方向[6]。
基于计算思维能力培养的数据结构课程教学
如何在数据结构课程教学中培养学生的计算思维,培养学生运用计算思维分析问题和解決问题的能力,就需要教师从宏观角度重新审视教学目标,以计算思维为主线组织课程教学内容。在教学过程中改变教学环节,加大学生思维训练力度,顺应时代变迁,利用先进的信息技术深化教学模式改革。
1.设计具有思考性的、趣味性的知识情境
以计算思维为导向进行数据结构课程教学,需要教师为学生创造富有思考性的课堂环境。这就对教师提出了更高的要求,一方面教师需要深入社会实践,对不同专业背景进行调研,熟悉并掌握计算机应用实例。另一方面教师需要认真学习、研究计算思维和数据结构课程内容,提炼并展现知识背后的计算思维,精心设计知识情境,引导学生根据实际情况进行任务分析、分解,引导学生主动探索知识,从而使每个学生都能够成为问题的思考者,使整个课堂变得富有思考性、趣味性。比如,线性表是数据结构课程中的第一个抽象数据类型,针对这一知识点笔者设计了一个简单的门诊挂号系统,将学生分为几个小组,每个小组围绕以下几个方面进行讨论:系统的研究对象、对象具有的属性(号码、姓名、性别、年龄、简单症状描述等)、关系(以号码为关键字形成线性表)、特点(除第一个和最后一个病人,每个病人都只有唯一的直接前驱和唯一的直接后继)、可能的操作(插入、删除)等内容。通过实践将线性表的相关知识点融入其中,能够激发学生学习新知识的兴趣,培养学生主动思考问题的习惯。
2.提高课堂实效,强化计算思维训练
思维随着知识的贯通而形成,能力随着思维的训练而提高。要想提升学生的计算思维能力,只具有思考性的知识情境还不够,还需要进行有效的计算思维训练。因此,笔者认为应该从多样性的角度强化学生思维训练。多样性包括知识情境的多样性和算法的多样性,知识情境的多样性除了教师要精心设计知识情境外,强调的是学生要认真观察,发现生活中的类似案例,不断进行计算思维自主训练,算法的多样性则强调对同一问题进行多角度求解。例如,在进行单链表的创建时,如果每次输入的数据结点是有序的,则可以按照先来先入的原则建立单链表,即每次都在链表的尾部插入结点,这种单链表的建立方式称为“尾插法”。根据结点插入位置的不同,让学生从单链表的头部插入结点,所不同的是形成的单链表是逆序的,即线性表中第一个元素位于单链表的最后一个结点中,最后一个元素位于单链表的第一个结点中,可以让学生在单链表的头部或尾部插入结点,还可以在链表中间插入结点。只是为了保证数据元素的有序性,需要在单链表中先找到元素的适当位置,然后进行元素的插入。因此,要启发学生多角度思考问题,对同一问题采用不同方法进行解决。除此之外,还要鼓励学生改进别人的算法,培养学生计算思维的多样性和重构性。
3.开展混合式教学,深化教学模式改革
在信息技术的推动下,将传统的面对面讲授式课堂与基于“碎片”化管理的微课相结合,重构教学设计和教学活动,开展混合式教学能够提高课堂效率,提升教学效果。目前,混合式已成为自“互联网+教育”以来课堂教学改革的主流方向[7-8]。自2014年来,笔者及研究团队一直致力于开展混合式教学研究[9],在数据结构课程教学中,录制微课,制作数据结构课程微信公众教学平台,基于微信朋友圈构建学习共同体,把传统课堂与翻转课堂、“微课”相结合,按照课前、课中、课后分阶段开展教学活动,并取得了一定的成绩。实践结果表明,开展混合式教学既能保留传统教学附着于教师的隐性知识传授,又能满足学生的个性化学习。适当利用翻转课堂能够激发学生学习的自主性,能够引导学生对问题进行多角度、重构性思考。短小精炼的微课实现了零存整取的“碎片化”教学效果,能够有效扩充学生的学习空间与时间,有利于学生对知识的记忆、理解、消化和吸收。
结 语
数据结构是计算机专业的一门基础课,同时也是进行计算思维训练的重要工具之一。如何以计算思维为导向进行数据结构课程教学,本文分别从案例设计、思维训练、混合教学三个方面进行了探索。当然,计算思维能力的培养不是一朝一夕的,仅通过一两门课程的教学是不能完成的。因此,计算机专业教师应从计算思维层面看待所授课程,注重培养学生计算思维训练的意识和行为,提高学生自主解决实际问题的能力。
参考文献:
[1]邱劲、王平、徐展:《〈数据结构〉课程教学改革与实践探索》,《西南师范大学学报》(自然科学版)2013年第1期。
[2]范文翔、张一春、李艺:《国内外计算思维研究与发展综述》,《远程教育杂志》2018年第2期,第3-15页。
[3]李艳坤、高铁刚:《基于思维视角的计算思维综合解读》,《现代教育技术》2017年第1期,第68-73页。
[4]张立国、王国华:《计算思维:信息技术学科核心素养培养的核心议题》,《电化教育研究》2018年第5期,第115-121页。
[5]龚静、侯长林、张新婷:《计算思维能力发展模型与教学程序研究》,《现代教育技术》2018年第4期,第48-54页。
[6]司明、厍向阳、李占力、李洪安:《突出计算思维训练的数据结构教学实践》,《实验室研究与探索》2018年第5期,第195-201页。
[7]李逢庆、韩晓玲:《混合式教学质量评价体系的构建与实践》,《中国电化教育》2017年第11期,第108-113页。
[8]李逢庆:《混合式教学的理论基础与教学设计》,《现代教育技术》2016年第9期,第18-24頁。
[9]孙亚红:《基于微信平台的〈数据结构〉课程教学实践探索》,《微型电脑应用》2018年第4期,第10-12页。
作者单位:西安翻译学院 陕西西安