您的当前位置:首页正文

基于计算思维的算法设计与分析课程改革

2020-08-11 来源:易榕旅网


基于计算思维的算法设计与分析课程改革

摘 要:算法设计与分析是计算机专业一门重要的核心课程。为了在核心课程中系统化地训练和有意识地培养学生的计算思维能力,文章对教学主体、教学内容、教学方法和教学评价四个方面的课程改革进行分析,提出一种具体可行的学生计算思维培养模式框架。

关键词:计算思维;研究性教学;算法;教学改革

计算思维是现代多学科人才应具有的基本素质,其研究已经逐渐引起国内外学者和教育界的高度关注[1]。虽然人们早已意识到计算思维的存在,但直到2006年,美国的Wing教授才明确提出了计算思维的概念,她认为,计算思维是“每个人都渴望具有的、能够学习和实际运用的具有普适性的思维方式和应用技巧,不仅仅是计算机专家才具备的能力[2]”。

我们从教学主体、教学内容、教学方法和教学评价四个方面开展改革与实践。具体包括:

1) 清晰地认识到教师和学生都是教学活动的主体,在现代信息技术支持下,二者之间的良好交互贯穿于教学活动中,是研究性教学不可缺少的条件,单纯强调或忽略任何一方都不会取得预期良好的教学效果,研究性教学的开展更无从谈起。

2) 充分地理解课程中的核心概念和经典算法在教学内容中的特殊地位,核心概念是重要思想、原则、方法和技术过程的集中体现,典型算法则反映了某一方面的内在规律和典型问题的本质内容,它们都具有方法论的性质和内容[3]。忽视核心概念和经典算法的学习,研究性教学的开展就缺少了实质内容的支撑。

3) 有效整合多种教学方法取得最好的教学效果,

针对不同的教学目标,分别采用任务驱动、整班教学与小组教学、多媒体与网络教学等多种教学方法。然而,单一的教学方法不能满足全部的课程教学任务,更不适合开展研究型教学。

4) 重视教学评价在教学质量中的重要作用,阶段性师生座谈为教学过程的不断改进提供了教学质量的保证,最终的小论文与答辩形式的考核凸显了研究性教学的特点,而不同层次的多种评价为研究性教学的考核提供了客观公平的基础。

1 教学主体的平等互动

为了在研究性教学中加强学生计算思维能力的培养,我们形成了以教授为主导,博士和硕士研究生共同研究、学习和辅导的多层次教学团队,多层次教学团队和本科生构成教学活动的两个主体,二者的平等互动为学生计算思维能力的培养提供了良好的环境。

平等互动的教学主体在教学过程中相互促进,具体表现在:对本科生而言,通过教授对算法课程的讲解,使其了解和接触到本课程相关的学科前沿问题;通过研究生的助教和课程辅导,使其借鉴研究生分析解决问题的思维方式和探索方式,有意识地关注自己计算思维的培养;通过与研究生的直接接触,使其了解研究生的生活和学习,为相互平等的交互打下良好

基金项目:国家自然科学基金项目(60970054,0773224)。

的基础。对研究生而言,通过与本科生的交流、讨论和课程辅导,使其既加深自身的专业知识,又学习和研究教学理论,更有利于激发自身思维的活力,从而更好地开展学习和研究工作。

在“填鸭式”的教学模式和“唯考试与分数至上”的观念下,学生处于完全被动的学习状态,学习兴趣受到压抑,思维活跃度明显下降,在这种情形下,仅仅口号式地要求学生进行计算思维的培养是没有实际意义的。因此采取多种措施努力创造良好学习环境,强调师生交互:鼓励学生勇于提出自己的想法和思路,给出不同的问题解决方案,并善于抓住机会,帮助学生在计算思维训练过程中不断得到鼓励,提高自信心;提倡师生平等交流、互动,教学团队善于发现和捕捉学生思维活动的亮点并及时加以引导,鼓励学生勇于发现教师和教材的不足,促使两个教学主体在地位平等的意义下开展问题的讨论;利用师生座谈会和教授接待日活动与学生进行面对面地答疑解惑,拉近师生之间的距离;利用网络平台随时了解学生对课程的建议和想法,及时进行问题回复,增强学生积极参与学习的热情。

2 教学内容的精心选择

为了在课堂学习中加强学生计算思维的训练和培养,教学团队认真选择“算法设计与分析”中的核心概念和经典算法开展研究性教学,通过教学团队在授课时的引导和课外辅导,训练和强化学生在思考问题的过程中控制自己的思维过程。

教学团队在选择算法时注重不同类型算法的典型性,不强调教学内容求大求全,在讲授算法时重点讲解算法的整体思想,强化核心概念的学习和计算思维的

训练,提醒学生注意从宏观上准确把握,而算法的某些具体细节则由学生自由实现。教学内容的选择既保持适当的灵活性,又有一定的难度,而这种难度是学生通过努力能够克服的,从而有利于激起学生的探索兴趣。同时,在每节课程内容的开始展示一句经典短句,对本节的核心思想进行总结概括,让学生细细体会计算思维在总结本节教学内容时的高度抽象。

经典算法和经典问题是密切关联的,通过对经典问题的分析,启发学生利用不同的算法求解,并进行比较。因此,教学团队将经典问题和经典算法按照“问题定义—问题抽象—数学模型—计算模型—算法设计、分析和优化—算法编码—实验仿真—分析改进”的渐进过程逐步学习,训练和培养学生的计算思维能力。计算思维能力不是凭空获得的,也不是漫无目的地寻找问题的答案,更不是凭运气和灵感就能获得。通过将课程的核心概念和经典算法融入到经典问题的求解,并将学习内容分解到上述各个阶段,这种教学内容的安排使学生通过多个具体算法和问题实例反复体会理解计算思维的概念和作用,有意识地重复训练和控制自己的思维过程,从而掌握计算思维能力在分析解决实际问题时的具体运用。

3 教学方法的多样化运用

为了在研究性教学中满足学生的多样化需求,更好地帮助学生训练计算思维能力,教学团队采取任务驱动教学、启发式教学、整班教学与小组教学、多媒体教学与网络教学等多种教学方法帮助学生理解和掌握算法的核心思想和实际应用,通过多种教学方法开展教学过程给学生多样化的选择,从而能够更好地帮助学生运用所学的算法知识来分析和解决问题。

任务驱动教学法是将算法设计与分析课程总目标分解为许多具体算法,通过完成具体算法的学习过程达到培养学生计算思维能力的目的。本课程的目标是以学生计算思维的培养为核心,在能正确分析算法复杂度的基础上,掌握计算机应用中经典的非数值算法的核心思想并能熟练运用它们来解决实际问题,最终提高学生分析问题、解决问题和评估问题的能力。分解的任务则相对具体,例如要求学生针对感兴趣的动态规划算法给出自己的学习研究成果,采用讲述小论文(报告)和答辩的形式进行汇报,要求问题定义表述清楚,算法设计描述适当,同时验证所给算法的有效性,分析算法的时空复杂度,并且实现算法,最后分析实验结果,给出结论。这样做的目的是,一方面,明确具体的算法,体现了计算思维的清晰性、逻辑性、层次性和创新性等特点,使学生感到有一定的压力和挑战性;另一方面,学生自主选择论文题目更有利于学生个性化的发挥,容易激发学生的学习兴趣,有利于计算思维的培养。同时,这样可使学生在研究性的学习中自己认识该课程的性质,自我体会与其他课程的不同。采用任务驱动教学法并不以学生掌握算法为最终目的,而是强调学生学习算法的研究学习过程,注重学生在这个过程中的收获,尤其是计算思维的训练与培养。

因篇幅问题不能全部显示,请点此查看更多更全内容