算法设计与分析课程中的计算思维培养

时间:2022-10-17 04:07:49

算法设计与分析课程中的计算思维培养

摘要:计算思维是信息时代多学科人才应具有的基本素质,必须通过具有计算特点的核心课程的系统化学习和反复训练培养才能最终获得。本文以“算法设计与分析”课程为切入点,从理论和实践两个角度探索如何在核心课程教学过程中嵌入计算思维能力的培养,并围绕研究性教学的展开,从教学主体、教学内容、教学方法和教学评价四个方面阐述培养学生计算思维能力的教学改革过程。

Abstract: Computational Thinking is the basic quality of qualified people in multi-disciplines of information age, which must be achieved through systematical learning and continuous training in core courses characterized by computation. This paper takes the course, Algorithm Design and Analysis, for example, and explores how to incorporate the training of Computational Thinking in key courses from both the theoretical aspect and the practical one. Surrounding the development of research teaching, the process of teaching reform focusing on cultivation of Computational Thinking is described in teaching subject, teaching content, teaching method and teaching evaluation.

关键词: 计算思维;算法设计与分析;研究性教学

Key words: Computational Thinking;Algorithm Design and Analysis;research teaching

中图分类号:G642 文献标识码:A 文章编号:1006-4311(2012)11-0211-02

0 引言

计算思维对于培养高等教育、中等教育和基础教育的师资力量和工程技术领域人才、促进教育信息化的发展具有重要的意义,已经引起了国内外学者和教育部门的高度关注。作为高等教育教学过程重要的任务和评价指标之一,计算思维的训练与培养必须通过系统的培养方案和课程计划的科学实施才能得到全面提高[1]。大量的教学实践表明,相当数量的学生仅仅满足于书本知识的死记硬背,缺乏应有的计算思维能力,在描述、分析和解决问题的过程中,表现出没有头绪,无从下手。教师必须努力改变这种状况,切实加强学生的计算思维的训练和培养,将知识型教学转变为研究型教学;同时,思维和能力的培养必须结合课堂教学中知识的学习同步进行。本文在介绍国内外计算思维研究背景的基础上,给出了计算思维的本质特征,并结合作者讲授的“算法设计与分析”课程进行教学改革,探索创新可行的计算思维的培养模式和实施框架,突出学生计算思维能力的训练和培养。

1 计算思维的研究背景

计算思维能力是多种学科人才必须具备的基本素质,近年来,国内外学者从不同的角度对计算思维的含义、特点和培养方法进行了探索和研究。中国计算机科学与技术学科教程2002研究组认为,计算思维能力包括抽象思维能力和逻辑思维能力,必须经过计算思维梯度训练系统在循序渐进的过程中潜移默化地形成,其中计算思维梯度训练系统是由一系列数学和含有抽象程度比较高的内容的课程组成的基础理论课程系列[2]。朱亚宗教授将计算思维、实验思维和理论思维归结为人类三大科学思维方式[3]。2006年美国卡耐基-梅隆(Carnegie Mellon)大学的Jeannette M. Wing教授明确给出了计算思维(Computational Thinking)的概念,她认为,计算思维是“每个人都渴望具有的、能够学习和实际运用的具有普适性的思维方式和应用技巧,不仅仅是计算机专家才具备的能力”[4]。Mark Guzdial提出综合利用不同学科的方法,使计算思维成为21世纪所有学生应具备的素养[5]。Paul Curzon等人认为计算思维已经成为K-12课程计划、大学通识教育和交叉学科研究与技术转让的基础,可更加精确、深入和广泛地解释计算的本质[6]。Owen Astrachan等人概述了计算思维的概念及其相关的活动和项目,展望了基于计算思维的计算和教育界的未来发展[7]。James J. Lu等人认为学生在学习第一门编程语言之前,必须努力训练和培养计算思维能力,才能更广泛地从事计算机科学研究,而真正在中小学课程中嵌入计算思维具有挑战性,这必然是长期渐进与不断完善的过程[8]。郭喜凤教授等人则根据计算机科学与技术中的理论、技术、工程、工具、服务和应用将Wing教授的计算思维推广为计算机思维(Computing Thinking) [9]。

2 计算思维的本质特征

为了能有效地在课程教学中训练和培养学生的计算思维,教师必须对计算思维的内涵和特点具有清晰的认识,并在此基础上形成充分体现其内涵和特点的可行的研究过程和研究方法。

正如前面所述,计算思维并没有统一认可的概念和定义,不同的学者从不同的角度给出了解释。Wing教授认为,计算思维是建立在数学思维和工程思维基础上,用以解决问题、设计系统和理解人类行为的人们的思维活动,是人们基于抽象和分解原则,利用约简、嵌入、转化和仿真等方法形式化地将复杂问题定义为易于求解的问题的思维活动,是人们能够应用均衡、容错思想和启发式推理的思维活动,是影响其它学科发展、未来广泛存在的思维活动。计算思维的特点主要表现在:它是多重抽象意义下的概念化,是人们解决具有智力挑战性问题的根本性见解[4]。

借鉴Wing教授的观点,结合学生应具备的计算思维能力的实质内容,将计算思维的本质和特点具体体现在以下的研究过程和研究方法中:①对待解决问题及领域知识的正确理解和定义,这是问题求解的前提条件;②运用相关的数学知识,从数学角度给出问题的形式化表示,即数学模型;③利用某种或多种方法,针对具体问题确定计算模型,给出算法的定义;④运用具体实验平台的工具实现算法,完成实验;⑤对实验结果进行分析与评价,并根据结果对问题的求解过程进行反馈修正,不断重复该过程,直到问题解决。在问题的数学表示-问题的计算模型-问题的实验求解的研究过程中,充分体现计算思维的清晰性、逻辑性、层次性和创新性的特点。

3 计算思维的课程培养模式与框架

结合上述可操作的具体的研究过程和研究方法,围绕研究性教学的开展,本文以“算法设计与分析”课程教学改革为例提出计算思维的培养模式及其实施框架,如图1所示。下面具体阐述在“算法设计与分析”课程中该框架的实施过程。

3.1 教学主体 在推行研究型教学的“算法设计与分析”课程中,本科生和多层次的教学团队构成了教学活动的两个主体。为了更好地开展研究性教学,突出计算思维的培养,针对“算法设计与分析”课程形成了以教授为主导,硕士和博士研究生共同组成的多层次教学团队,并提出了在教授指导下,强调研究生科研、学习和辅导并重,引导本科生主动学习和开展研究的多层次交流互动的教学模式。多层次教学团队在课堂教学中的积极引导,在课外利用师生座谈会和网络平台等多种方式的互动交流、答疑解惑为本科生计算思维的培养提供有力的保证。

在研究性教学过程中,在强调教学团队如何教的同时,更注重学生如何学。教学团队注重教学的组织,强调引导学生理解课程的核心概念和典型算法,自我研究和自我体会,并积极参与学生的学习过程,共同学习,共同探索,构建良好的师生互动和共同研究的学习环境。努力创造师生平等的教学环境与学习气氛,使学生更加积极主动和创造性地学习,使计算思维的培养成为可能,让学生体会到这种平等交互的平台对计算思维培养的特殊作用。反之,在“满堂灌”式的课堂上,学生容易产生抵触情绪,最多只是被动地接受教师讲授的内容,计算思维的启发和训练是无从谈起的。

3.2 教学内容 在突出研究性教学的课程教学过程中,教学团队并不追求讲授所有知识点,灌输所有教学内容。“算法设计与分析”的核心概念在课程中反复使用,而经典算法则反映某一类典型问题的内在本质和规律。经典算法的学习是和经典问题密切关联的,而且同一问题可利用不同的算法进行求解。为了让学生在算法的研究性学习中有意识地强化计算思维训练过程,教学团队将经典问题和经典算法分解成以下不同阶段的学习内容:问题定义-问题抽象-数学模型-计算模型-算法设计、分析和优化-算法编码-实验仿真-分析改进。同时,由教授通过讲座形式介绍科学前沿问题中的新型算法及其应用,拓展学生的知识面,激发学习兴趣,由博士和硕士研究生指导本科生的实验教学,完成算法的实现与分析。

通过学习与体会将课程的核心概念和各类算法运用于经典问题和前沿问题的求解过程,学生可加深对概念和算法思想的理解,但更重要的是,反复地体会问题求解的过程,比较不同阶段的学习侧重点,有利于学生在学习过程中有意识地控制自己的思维过程,学习分阶段、多角度地去思考问题和解决问题,从而有利于在研究性教学中阶段性和系统性地显式培养学生的计算思维能力,为学生针对实际问题创新性地提出自己的解决方案创造了条件。

3.3 教学方法 在“算法设计与分析”课程的研究性教学中,为了将计算思维的培养和课堂教学有机地融合,教学团队综合采取任务驱动教学、整班教学与小组教学、多媒体教学与网络教学等多种方法开展教学,充分发挥各种教学方法的优势,积极采取多种途径帮助学生在算法课程的教与学中有意识地加强计算思维的培养。任务驱动教学结合“算法设计与分析”课程的教学内容设定了具体的学习任务;小组教学为学生提供了针对具体问题充分讨论和争辩的机会;整班教学便于教学团队重点讲授算法的核心思想,并将其推广到多个经典问题的求解和相关的学科前沿问题;多媒体教学利用多媒体课件的动画效果重点阐述算法的核心思想,有利于理解算法的实现过程;网络教学则充分利用精品课程网站提供学习课件和相关资料供学生在线或下载学习,并利用问题答疑平台为学生答疑解惑。

任务驱动教学突出学生解决问题的思维训练过程,强调学生完成任务的研究学习过程,鼓励学生积极参与的热情与态度,而不是简单地以完成任务为考核目标。小组教学便于学生反复思考、对比和学习不同学生提出算法的思维过程,这种从具体到抽象的归纳方法有利于学生学会正确地控制和训练自己的思维活动和创造性思维的培养。整班教学便于实现从抽象的算法思想到具体问题的演绎过程,有利于帮助学生形成计算思维的逻辑性和条理性。多媒体教学充分发挥图文并茂、音像生动的特点,在寓教于乐中使学生快速直观地学习如何解决问题;网络教学可使教学团队随时帮助和指导学生的自主学习和研究性学习,二者为学生计算思维的训练和培养提供了便利条件,可帮助学生更有信心地参与研究性教学。

3.4 教学评价 为了更好地在“算法设计与分析”的研究性教学中保证计算思维培养的质量,教学团队非常重视作为过程性评价的阶段性师生座谈会和作为最终性评价的小论文与答辩,并采用个人、小组成员、组间成员和教学团队构成的多层次评价机制。教学团队根据课程进度情况及时召开师生座谈会与学生充分沟通,有针对性地及时调整教学过程;同时鼓励学生对感兴趣的问题组合成小组,开展研究型的学习,并以学术论文、技术报告和答辩的形式汇报交流学习研究成果。个人、小组成员、组间成员和教学团队对学生的学习效果给出的评价相互参考,可使评价结论更加客观公正。

教学评价并非仅仅以给出最终结论为目标,而是需要为教学过程的不断改进和学生计算思维能力的培养提供有益的帮助。师生座谈会可使教学团队和学生各自反思在计算思维训练和培养过程中的障碍和症结所在;小论文和答辩可使学生计算思维能力在文字表达和口头表达方面得到充分的表现。个人评价可促使学生自我总结运用计算思维解决问题的实际能力;小组评价为学生思维活动的相互启发和团队协作提供了可能;组间评价为学生思维活动的比较学习和激励竞争提供了条件,教学团队评价则在上述基础上综合给出对学生计算思维能力的认可程度和改进建议。

4 结语

以“算法设计与分析”课程作为牵引,突出将计算思维的培养融合在课堂教学中,反复地加以训练直到将其提升到形成学生的认识论和方法论的层次。通过“算法设计与分析”课程的学习,使学生充分认识到该课程研究什么问题以及如何研究问题,从而使学生能有意识地运用计算思维思考问题和解决问题,为今后的学习研究打下良好的基础。学生的反馈信息表明这种计算思维培养模式取得了预期的良好效果,与之前相比,学生在碰到问题时表现出愿意思考、会思考和有意识控制思考过程的良好现象,具备了自我学习和独立研究的初步能力。后续研究将以现有的“算法设计与分析”课程教学改革为基础,进一步探索以该课程为主形成以“计算”为中心的课程群,培养学生的计算思维能力的教学模式。

参考文献:

[1]陈国良,董荣胜.计算思维与大学计算机基础教育[J].中国大学教学,2011(1):7-11,32.

[2]中国计算机科学与技术教程2002研究组.中国计算机科学与技术学科教程2002[M].北京:清华大学出版社,2002:44-45.

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

[4]Jeannette M. Wing. Computational thinking [J].Communications of the ACM, 2006, 49(3):33-35.

[5]Mark Guzdial. Paving the way for computational thinking [J].Communications of the ACM,2008,51(8):25-27.

[6]Paul Curzon,Joan Peckham,Amber Settle,et al. Computational thinking(CT):on weaving it in[C].In: Proceeding of ITiCSE’09, Paris, France, 2009:201-202.

[7]Owen Astrachan,Susanne Hambrusch,JoanPeckhanm,et al. The present and future of computational thinking[C].In: Proceeding of SIGGSE’09, Chattanooga, Tennessee, USA, 2009,41(1):549-550.

[8]James J. Lu, George H. L. Fletcher. Thinking about computational thinking[C].In: Proceeding of SIGGSE’09, Chattanooga, Tennessee, USA, 2009,41(1):260-264.

[9]郭喜凤,孙兆豪,赵喜清.论计算思维工程化的层次结构[J].计算机科学,2009,36(4):64-67.

上一篇:新建高职院校后评估时期专业建设探析 下一篇:大件设备公路运输障碍排除研究