资源描述:
《提高“算法设计与分析”面向复杂认知技能的实践》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、提高“算法设计与分析”面向复杂认知技能的实践摘要:4C/ID是提高复杂认知技能的方法。文章阐述了如何运用4C/ID对“算法设计与分析”课程进行教学改革,实践证明,该方法有效地提高了学生算法设计与分析的能力并且增加了考证通过率。
关键词:算法;复杂认知技能;4C/ID
尼克劳斯•威茨,结构化程序设计的首创者和图灵奖获得者,提出了一个著名论断:程序=算法+数据结构。这说明了算法的重要地位。什么是算法?算法和程序设计技术的先驱者高德纳把算法比喻成菜谱。他认为“算法是一组有穷的规则,这些规则给出求解特定类型问题的运算序列”
2、,他强调“我们不仅要算法,而且还要在某种不明确定义的意义下的好算法”[1]——算法分析。《高等学校计算机科学与技术专业实践教学体系与规范》把算法设计与分析能力界定为计算机专业高级人才的基本学科能力之一[2]。可见,“算法设计与分析”课程的重要性。然而,学生普遍觉得该课程难学。为了解决这个问题,应用四要素教学设计模型(以下简称4C/ID)进行教学改革。4C/ID是提高复杂认知技能的方法,在国外,4C/ID的研究已有30年的历史,曾经成功地将4C/ID应用与计算机编程。在国内,4C/ID的研究还处于起步阶段。本文主要研究了4C/ID在“算法设计与分析”课程教学中
3、的实践。
1课程教学中存在的问题
1.1学生学习有畏难情绪
算法是问题的程序化解决方案[3]。首先,要理解问题,确定问题的条件和应用范围。然后,建立数学模型。最后,证明算法的正确性和分析算法的效率。这需要微积分、线性代数、离散数学等数学知识。所以,对于这门复杂、抽象的课程,学生自然感到难学。
1.2算法实现有难度
算法实现指编制与调试算法。算法实现有助于加深对算法的理解,是不可缺少的环节。算法的实现取决于:(1)丰富的程序设计语言和数据结构实践经验。如学生在程序调试时经常出的错是缺少函数声明;在进行“分支限界
4、”实训时,很多学生由于没有掌握队列而无法实现装载问题算法。这是程序设计语言和数据结构基础不扎实造成的。过多的出错会严重影响上机实践的质量,造成学生不愿动手。(2)对算法的理解。算法通常是由伪代码来描述的,如果不理解算法,很难准确地将算法转换成可以运行的程序。如果这两个问题不能很好地解决,算法设计与分析能力的培养就成为一句空话。
2“4C/ID”是解决问题的途径
算法设计与分析是复杂的认知技能,其构成见图1。复杂的认知技能是由一系列的技能所构成,其中一部分构成技能体现为自动的处理过程,其它多数的构成技能涉及认知的领域[4]。从图1可以看出,
5、这是一个复杂的学习过程。如果从头到尾地讲解给学生听,然后再让学生上机实践,这就不能了解学生哪些技能掌握了,哪些没有掌握,从而影响了上机实践的质量。而且,直线式讲解不符合问题求解的规律,有些过程需要反复实践,有些过程需要思考和补充相关信息。4C/ID是面向复杂认知技能培训的教学设计模型,由约伦•范麦里恩伯尔基于学习和信息加工的认知心理学理论创造。该模型之所以能提高复杂认知技能的原因是它将复杂认知技能分成再用性构成技能和非再用性构成技能,并对它们分别进行实际练习设计和信息呈现设计。再用性构成技能是指在不同问题情境中以极为类似的方式而操作的技能,非再用
6、性构成技能是指在不同的问题情境中进行不同操作的技能[5]。再用性构成技能的熟练掌握可以解决问题中熟悉的方面,非再用性构成技能通过图式建构可以运用于问题情境中新的、不熟悉的方面。两者相互促进,能提高解决问题的整体水平。所以,将4C/ID应用于“算法设计与分析”教学中会比传统的教学方法更能提高算法设计与分析的能力。
3“4C/ID”的教学实践
4C/ID分成教学分析和教学设计两个部分。这两个部分又各分成两层,共4层。它们是:(1)原理性技能的分解;(2)构成技能及相关知识的分析;(3)教学方法的选择;(4)训练策略的合成。
7、 3.1原理性技能的分解
4C/ID的第一步是将复杂认知技能分成不同类型的构成技能。分解的过程依据一定的原则,因此称为“原理性”分解。原理性技能的分解遵循以下的原则:(1)识别。识别组成复杂认知技能的构成技能,产生一个技能分层结构。这个分层结构包含了确定的构成技能及它们之间的关系。(2)描述。清晰描述每个构成技能。(3)分类。将构成技能分成用于培训和不用于培训的技能。对于用于培训的构成技能将进一步分成再用性构成技能和非再用性构成技能。(4)排序。将被选择用于培训的构成技能排序。这里重点讲一下如何区别再用性构成技能和非再用性构成技能。它们的区别主要
8、反映在执行时表现不同。再用性构成技能的表现特征为:(