热门搜索 :
考研考公
您的当前位置:首页正文

《算法设计与分析》课程教学中计算思维的培养研究

来源:东饰资讯网
龙源期刊网 http://www.qikan.com.cn

《算法设计与分析》课程教学中计算思维的培养研究

作者:孙亚红

来源:《电脑知识与技术》2012年第16期

摘要:计算思维已成为国际计算机教育界研究的热点。在《算法设计与分析》课程的教学中,如何培养和训练学生的计算思维,该文提出了一种基于多样化训练的计算思维培养方式,并分析了在课程的教学中如何具体实施该方法。 关键词:计算思维;多样化训练;算法设计与分析

中图分类号:G642文献标识码:A文章编号:1009-3044(2012)16-3910-02

The Research of Training Computational Thinking in Teaching Algorithm Design and Analysis SUN Ya-hong

(Xi’an Fanyi University, Xi’an 710105,China)

Abstract: Computational thinking has become the hot issue in current international education. How to develop students’habit of using the computational thinking in real life, this article discusses a computational thinking training model based on variety practice in teaching al gorithm design and analysis. And give a lot of examples to illustrate the training model.

Key words: computational thinking; variety practice; algorithm design and analysis

自2006年3月,美国卡内基·梅隆大学计算机科学系主任周以真(Jeannette M. Wing)教授在美国计算机权威期刊《Communica tions of the ACM》上发表《Computational Thinking》一文以来,国际国内计算机教育界掀起了研究计算思维的热潮。2008年6月,美国计算机科学技术教师协会(CSTA)发表文章《Computational Thinking:A problem solving tool for every classroom》,在该文章中,作者给出了计算思维的定义,并分类归纳了社会科学、计算机科学、自然科学、数学、生命科学等学科领域中关于计算思维的经典论文;2008年美国国家科学基金会NSF通过了一项计算使能的科学发现和技术创新CDI(Cyber-Enabled Discovery and Innovation)计划,该计划进一步强调了“计算思维”领域的创新对自然科学和工程技术领域发展的推动作用。同时,计算思维在国内也得到了广泛的讨论。2008年11月,由全国计算机教育研究会主持的“计算思维与计算机导论专题学术研讨会”在广西桂林召开,参加会议的学者总结了当前计算思维的研究进展状况,并讨论了计算思维对计算机教育的影响。2009年7月,在NOI2009开幕式和NOI 25周年纪念会上,中科院计算技术研究所所长李国杰院士进一步阐述了计算思维的定义,他指出“计算思维是运用计算机科学的基础概念去求解问题、设计系统

龙源期刊网 http://www.qikan.com.cn

和理解人类的行为,它选择合适的方式去陈述一个问题,对问题的相关方面建模并用最有效的办法实现问题求解”;2009年12月,王亚东等人在《计算与计算思维》一文中讨论了计算思维对各门学科产生的影响,并提出应该在计算机专业的各门课程中渗透“计算思维”的设想;2010年12月,张晓茹等人在《再谈计算思维》一文中通过对计算机科学思维,计算思维和计算机思维概念进行一致性分析,从不同方面分析和阐述了计算思维的特征,并对计算思维研究的基本问题进行了初步探索。尽管如此,如何在具体的课程教学中培养学生的计算思维能力仍处于起步阶段,还没有形成一套成熟的教学指导体系。那么,如何在课堂上结合课本的知识点培养学生的计算思维能力,使得计算思维成为学生的一种思维习惯;如何在学生的四年大学学习,持续不断地培养学生的计算思维,使学生能够运用计算思维的方法进行问题的分析和思考,是一个重要且值得探讨的问题。基于此,该文依据计算思维的方法,在《算法设计与分析》课程的教学中,提出一种基于算法多样化训练的计算思维培养方法。经实践验证,该方法有利于帮助教师提高教学效率,挖掘学生潜能,有利于提高学生分析问题,解决问题的能力。 1计算思维

什么是计算思维?计算思维同我们的阅读、写作能力一样,是人类的基本思维方式。这种思维方式运用计算机科学的基础概念和方法对问题进行描述,建模,求解。它是一种具有普适性的科学思维方法。为了更加具体的、详细的说明这一概念,周教授将计算思维的概念进一步定义为以下几个方面内容:

1)通过约简、嵌人、转化和仿真等方法,把一个看来困难的问题阐释成一个我们知道问题怎样解决的思维方法。

2)是一种递归思维是一种并行处理能把代码译成数据又能把数据译成代码,是一种多维分析推广的类型检查方法。

3)是一种采用抽象和分解来控制庞杂的任务或进行巨大复杂系统设计的方法,是一种基于关注点分离的方法。

4)是一种选择合适的方式陈述一个问题,或对一个问题的相关方面建模使其易于处理的思维方法。

5)是按照预防、保护,通过冗余、容错、纠错方式,并从最坏情况进行系统恢复的一种思维方法。

6)是利用启发式推理寻求解答,即在不确定情况下的规划、学习和调度的思维方法。 7)是利用海量数据来加快计算,在时间和空间之间,在处理能力和存储容量之间进行折中的思维方法。

2基于多样化训练的计算思维培养方式

龙源期刊网 http://www.qikan.com.cn

如何明确地将计算思维融入到课堂教学中,以提高学生运用计算思维进行问题的抽象和分解能力,是一个挑战。基于多样化训练的计算思维培养模式,是笔者在《算法设计与分析》课程的教学实践中对学生计算思维的培养方法一点尝试。 2.1知识情境的多样化

《算法设计与分析》课程中的抽象数据类型很多,如线性表、堆栈、队列等。这些数据类型不象数学中的整数那样可以进行简单的加减乘除运算,每一种抽象数据类型都对应不同的应用背景和不同的数据操作。因此,可结合具体的应用背景,把教学内容与具体的实际问题结合起来,让学生通过分析实际问题,来理解隐藏于问题背后的知识。在讲授新课前,教师可以设计与授课内容相关的知识情境,激发学生的兴趣,化抽象为具体,引导学生学习。例如在讲解线性表这一章内容的时候,首先要使学生理解线性表的概念,可以以一个具体的班级花名册为例,花名册上每个学生依学号排列,除了第一个学生外,其余学生有且只有一个前驱;除了最后一个学生外,其余学生有且只有一个后继。在理解了线性表的概念后,鼓励学生在生活中发现相类似的情境,进一步加深对概念的理解。 2.2算法的多样化训练

由于学生个体的知识积累程度不同,对于同一个问题,学生的理解各不相同,进而产生不同的解决方法;那么,教师在教学过程中,应充分尊重学生。对于理解能力较好、采用了计算机方法解决了问题的学生进行表扬;对于没有采用计算机方法但却同样解决了问题的学生也要进行鼓励,然后帮助他们进行问题的分析,引导他们运用计算机方法进行问题求解。 教育的目的是培养学生的综合素质,提高他们的社会生存能力。如果学生只是按照教师解决问题的方法进行生搬硬套,这不能不说是一种失败。所以,在让学生学习教师分析问题、解决问题的同时,要倡导算法的多样性,培养、激励学生的创新意识和探索精神。例如,在进行单链表的创建的时候,可以按照由前往后的顺序创建链表,即每次生成的新节点,都从链表的尾部插入到链表中来;这时,可以启发学生,能够由前往后能创建链表,那么,由后往前呢?显然,这也是可以的,只是,每次从链表的首部插入节点后,形成的单链表是逆序的,即线性表中第一个元素位于单链表中的最后一个节点中。由此,再进一步,节点的插入点可以在链表的头部,可以在尾部,那么,能不能从链表的某个中间位置插入节点呢?如果要在链表的中间某个位置插入节点,因为在创建链表之前,节点的输入顺序是未知的,因此,为了保证链表中的节点排列有序,在将新生成的节点插入链表中时,要在已经存在的链表中查找它的合适位置,然后将该结点插入到所找到的位置上。这种插入法,最终形成的单链表是一个有序表。链表的创建方法思路各异,不尽相同。因此,启发学生跳出编程的限制,积极的思考,充分调动积极性从不同的角度,用不同的方法解决同一任务。除此之外,要鼓励学生改进别人的算法,从而培养学生计算思维的多样性和重构性。 2.3算法的对比归类

龙源期刊网 http://www.qikan.com.cn

《算法设计与分析》课程中很多内容具有类比性,在具体的教学过程中,要充分把握这一特点,对相关内容进行对比归类,引导学生学习思路。比如在学籍管理系统的设计中,可以将学生分成两组分别完成该任务。一组以顺序表为存储结构进行系统设计,一组以单链表为存储结构进行系统设计。当任务完成后,两组对各自设计的系统进行对比,分析这两种实现方式在数据存储,修改,插入,删除等操作上的优缺点。再比如在排序这一章,当教师精讲完各种算法后,可将学生分成若干组,分别用不同的排序算法完成对同一组数据的排序,然后分别从算法的执行时间,空间复杂度,总的比较次数,最多移动次数等各方面对个算法进行讨论,对比各算法的优劣。帮助学生建立从时间和空间角度,在处理能力和存储容量之间进行折中的思维方式。

2.4勤上机,多实践

编写算法目的是为了高质量的完成问题的求解。那么,一个算法解决问题的质量、效率究竟如何,需要将算法通过编程来实现。因此,教师在授课时,除了对算法进行详细的描述外,应该鼓励学生多上机,将设计的算法用代码来实现。通常学生在编程实现单链表的插入或删除操作时,总是习惯把链表的创建和插入(或删除)统统的写在一个模块中,代码的复用率低,那么,老师可以给出一个程序主文件,其中调用了链表的创建函数,插入函数和删除函数,让学生来编写相应的函数实现,以此提高学生的动手能力,同时,也可以培养学生用分解的方法控制系统设计的思维。 3总结

《算法设计与分析》是计算机相关专业的核心基础课程,将计算思维这一新的思维模式融入本门课程的教学中,是笔者在计算思维培养方式上的初步探索。当然,计算思维的培养不是通过一两门课程的教学就能够解决的,而是应该贯穿于整个专业课程的教学中。因此,计算机专业的教师应当从计算思维的层面看待所授的课程,梳理和提炼课程中所蕴含的计算思维的概念,方法和思路。有目的,有意识的从各个角度培养学生的计算思维能力,以期学生能够利用这种思维方式自主解决实际问题,并在解决实际问题中锻炼自己的能力。 参考文献:

[1] Wing J M.Computational thinking [J]. Communications of the ACM, 2006,49(3). [2]董荣胜.计算思维及计算机导论[J].计算机科学, 2009,36(4).

[3]牟琴,谭良,周雄峻.基于计算思维的任务驱动式教学模式的研究[J].现代教育技术,2011(6). [4]张晓茹,张再跃.再谈计算机思维[J].计算机教育,2010(23).

[5]何明昕.关注点分离在计算思维和软件工程中的方法论意义[J].计算机科学,2009,36(4).

龙源期刊网 http://www.qikan.com.cn

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

Top