小课题的选题源于教育教学中遇到的问题,所以教师平时教学中要特别留意所遇到的问题。笔者上计算机应用基础这门课时发现,教师布置了操作练习后,有小部分学生很快完成练习后就睡觉、玩手机、和同学说话,使得没有完成练习的学生也加入了聊天的行列,严重影响课堂纪律和教学效果。
2将“小问题”转换为“小课题”
出现以上问题,笔者认为主要原因是教学内容对部分学生而言过于简单。受生活环境、个人兴趣等方面因素的影响,学生入学时计算机水平参差不齐,所以面对同样的教学内容,就会出现有的学生觉得较难,有的学生觉得过于简单的情况。计算机应用基础这门课程,教材内容简单,也很实用,非常适合没有计算机基础的学生学习。如何让计算机水平不同的学生都有兴趣上这门课?如何充分发挥基础较好学生的主观能动性,让其带动全班学生一起学习?通过分析,笔者认为选择教学内容非常重要。虽然使用的教材是规定好的,教学内容也是教学大纲要求的,但教师可以针对知识水平层次不同的学生,对教学内容进行二次创作,让学生感到学习本节课教学内容的必要性和挑战性,使没有基础的学生“吃得好”,基础好的学生“吃得饱”,由此确定课题———分层教学应用于中职计算机教学的研究。
3做题
3.1确定研究方法在确定好研究课题后,选择适合的研究方法对小课题研究具有重要作用。根据本次研究内容,笔者选择了以下几种研究方法。调查研究法,采取问卷调查的形式,了解各班学生现有的计算机水平;文案研究法,研究教学大纲和教材,对教学内容“分层”,并通过网络等途径搜索相关内容,增加拓展内容;行动研究法,在教学中采取边实践边研究、改进的方法,以获取最佳教学效果;课堂观察法,通过观察学生上课时的眼神、表情、回答问题及完成练习情况等,及时获取本节课的各种信息,比如知道本节课的情境导入是否合理、教学方法是否得当、教学内容难易程度是否适合等,以便适当调整。
3.2制定实施方案首先,采用问卷调查的方式,初步了解各班学生原有的计算机水平。以笔者所教授的2012级护理9~15班为例,通过问卷调查了解到7个班95.8%的学生用过计算机,但由于条件限制,经常使用计算机的学生只有18.5%。学生用计算机经常做的事情是上网聊天、听音乐、看视频、看小说、购物、查资料等,而对上网之外的其他功能知之甚少。可喜的是96.7%的学生对计算机感兴趣,愿意通过学习掌握更多的计算机知识。其中部分有一定计算机基础的学生,明确提出通过学习想要掌握的内容和达到的水平。这些资料对教学内容的二次加工,尤其是对确定课外拓展内容有很重要的指导意义和参考价值。其次,深入研究教学大纲和教材,并结合问卷调查情况,将教学内容分为基本知识、飞跃进阶和课外拓展3个层次。将教学大纲要求掌握的内容设为基本知识,基本知识是全班学生都要熟练掌握的内容。在掌握基本知识的基础上,将一些操作小技巧以及教材上没有但又很常用、很实用的知识作为飞跃进阶内容,把一些高级的操作技巧和有一定难度的内容作为课外拓展内容。比如Word中可以把给文档加密设为飞跃进阶内容,把插入尾注和脚注设为课外拓展内容。对教学内容分层的同时,设计与不同层次教学内容相对应的案例和练习。教学中,在要求学生熟练掌握基本知识的同时,鼓励学生挑战自己,进一步掌握飞跃进阶内容,突破课外拓展内容。
3.3反馈观察学生上课时的反应,并通过提问和展示、评价学生作品等途径了解教学效果;课后根据教学效果结合反馈情况,及时调整教学内容,改进教学方法。中职生大都是十六七岁的孩子,他们对于未知的事物有强烈的好奇心,动手操作的欲望很强,而且有股不服输的精神。教师要正确引导,抓住他们的好奇心,让其把这种不服输的精神用到学习上,在班级形成你追我赶的浓厚的学习氛围。上课时,学生完成课堂练习后,展示、点评不同层次学生练习是一个很重要的环节。基础不太好的学生看到其他学生运用飞跃进阶和课外拓展知识完成练习后的效果,都很羡慕、好奇。于是他们不甘心只掌握基础知识和完成几个简单的练习,遇到不会的操作时,他们自然而然会问同学或老师。一次次提问、一次次讨论的结果不仅仅解决了某些具体问题,更重要的是在此过程中激发了学生学习兴趣,培养了学习能力,增加了自信,逐步提高了计算机水平。而且同学间互相帮助、共同讨论,课堂学习气氛越来越浓厚,玩手机和说话的学生明显减少,教学秩序明显改善,教学效果越来越好。
4结题
结题就是把自己解决问题的过程总结出来。这一过程既是教师反思的过程,也是从实践上升到理论的过程。根据确定的研究方法和实施方案,最终小课题研究成果为:问卷调查的调查研究报告;编写飞跃进阶和课外拓展教学内容与相关练习题集;分层教学法应用于课堂的教学反思;以案例形式记录教学过程中的师生互动、生生互动,形成优秀的教学案例。
中图分类号:G642 文献标志码:B 文章编号:1006-8228(2012)11-48-02
Application in discussion teaching in the course of college computer basics
Lu Hua, Feng Yan
(College of Information Science and Engineering, Hunan International Economics University, Changsha, Hunan 410205, China)
Abstract: The meaning and the practical significance of discussion teaching are discussed. Taking College Computer Base as an example, according to the characteristics of the course, the application of discussion teaching is introduced from four steps. The result shows that applying discussion teaching to College Computer Base is quite successful.
Key words: discussion teaching; college computer basics; stage; application
0 引言
当今,计算机已经成为各行各业普遍使用的工具,掌握计算机信息技术的基础知识,是现代大学生的基本素质之一。大学计算机基础是面向众多非计算机专业学生所设置的一门基础课程。培养学生利用计算机分析问题、解决问题的意识和能力是高等院校计算机基础教育的目标。为了激发学生的学习积极性,充分发挥学生在教学过程中的主体作用,产生师生互动的教学效果,提高课堂教学质量,在教学中引入讨论式教学方法是十分必要的。本文结合“大学计算机基础”课程,对如何运用讨论式教学方法进行探讨。
1 讨论式教学的内涵和现实意义
1.1 内涵
讨论式教学强调,在教师的精心准备和指导下,为实现一定的教学目标,通过预先的设计与组织,让全班同学或小组成员就特定问题发表自己的见解,通过教师与学生之间、学生与学生之间的多边交流,互相探讨,以此获取新知识,激发学生的学习兴趣,培养学生的独立思考能力、敏锐的思维判断能力、良好的语言表达能力和创新精神。讨论式教学的环节大致包括:问题的提出,问题的展开,问题的深入,问题的解决四个阶段。
1.2 现实意义
讨论式教学的实施,具有很强的现实意义。一是教育转型要求改变教学形式[1]。讨论式教学有利于转变教师的教育观念,将学习是教学的直接目标,转变为教学附属于学习,学习因个体的自我组织能力而成为主导,从教导型转为交互型。讨论式教学是实施素质教育的课堂教学中首选的教学方式之一。二是能够促进提高教师的教学质量。许多教师的教学内容局限于教科书,局限于教学大纲,有些教师很少有自己的见解或很少发表自己的见解。为了弥补这些方面的不足,采用小班上课,进行讨论式教学,教师需要在查阅大量的学术文献和资料的基础上,做好全面的备课工作,以便在讨论中能够正确引导、提问以及提出自己的见解,并及时做出归纳总结,这个过程对教师有一定的促进作用。三是可以推动学生自主学习、自主探究,使学生能把书本知识与实际紧密地结合起来,培养学生能说、会听、善问的能力,培养学生的参与意识和创新精神。
2 讨论式教学在“大学计算机基础”课程中的具体运用
对于大学计算机基础课程的教学,有很多课程内容可以采用讨论式教学。例如,计算机中常用的数制及其转换、计算机的主要性能指标、Windows中文件/文件夹管理、Word的图文表混排功能、Excel中排序与筛选、PowerPoint中动画效果的设置、网络地址等。还有主流浏览器的性能比较,计算机病毒基础知识等学生比较感兴趣的知识点也可以作为讨论的内容。教师可以把网络教学平台和资源作为重要的教辅手段[2],给学生提供教学课件,教学视频等作为预习资料,建议学生访问相关的网络资源,并可以通过QQ,邮箱等方式进行交流。本文以计算机病毒基础知识为例,介绍讨论式教学在“大学计算机基础”课程中的具体操作过程。
2.1 问题提出阶段
中图分类号:TP393 文献标识码:A 文章编号:1007-9599 (2013) 01-0268-02
大学计算机实践课程,要求在掌握计算机基础知识和基础理论的基础上,熟悉系统、软件硬件、网络计算、系统安全维护、多媒体软件应用等实践操作技术,鉴于目前存在的实践教学管理问题,我们需要从理论和实践两个方面,对教学内容进行重新组合,以提高实践教学管理的实用性。
1 大学计算机实践教学管理存在的问题
由于教学资源的不足,大学计算机实践教学管理较为笼统,需要对教学方法进行改进,目前存在以下几方面的主要问题:
1.1 理论课和实践课的衔接问题
大学计算机教学,理论课程占了很大的一部分,而实践课程没有建立在理论课程的基础上,存在严重的脱节问题。理论课和实践课的教学顺序是先理论后实践,前者的课程数多于后者,而且教学的地点不一样,学生很难将理论课和实践课自然地衔接起来,甚至有的学生认为实践课程附属于理论课程,不利于学生创新能力的培养。譬如Office办公软件的教学,先让学生学习一大堆的理论知识,然后再开展实践教学,学生容易产生厌学情绪。
1.2 忽视了学生的专业需求
大学计算机实践教学并没有针对学生本身的专业需求,而是“一视同仁”地开展同类教学,譬如艺术类、文秘类、金融类、国贸类等专业的学生,教学内容基本一致,譬如艺术类的学生要求掌握photoshop、flash等多媒体软件,在现实教学当中,将有限的课程放在理工科数据库、算法和软件工程的内容学习上,而艺术类的学生并不要求掌握这些实践知识。
1.3 学生计算机基础不一致
大学计算机实践教学课程的开展,忽略了不同学生计算机基础不一致的问题,在开展课程的时候,某些大学生因为之前没有接触过计算机,因此对相关的知识和操作一知半解,甚至全然不知,而大学计算机实践教学课程的内容统一和进度统一,要求学生适应统一的教学安排,因此个体差异和教学统一模式的矛盾,影响了实践课程开展的有效性。
2 大学计算机实践教学问题解决策略
结合以上提到的计算机实践教学问题,要求计算机教学除了要突出基础知识的学习掌握,还要注重实践能力的培养,以解决以上提到的教学问题,具体的解决策略如下:
2.1 将理论教学和实践教学相融合
大学计算机教学要突破理论教学和实践教学分离的模式,适当增加实践教学的时间,强调在实践教学当中理论应用,而理论教学要为实践教学奠定基础,理论课程和实践课程交叉开展,实现理论指导实践和实践检验理论的教学模式。尤其是在实践教学当中,教师需要精心设计每一节课,做好课前的预习、准备工作,以便在课堂学习当中有的放矢,提高教学的效果。而且具体教学实施过程当中,教师和学生要充分互动,在实践中用理论去指导实践,在实践中抓住理论,以加深对理论知识的理解。每堂实践课程之后,学生要完成详细的实验报告,培养学生善于观察和独立思考的习惯,引导学生在实践课程主动发现问题、分析问题和解决问题,并提出新颖的观点,这种教学方法有利于培养大学生主动求知和创新的精神。
2.2 结合学生的专业特点施教
计算机实践应用,要求学生掌握操作方法后,可以学以致用。不同专业的学生,对计算机学习的掌握要求和标准各不相同,学校在计算机实践教学课程当中,要区别性看待不同专业的学生,以便学生走出校门后从事工作所需,譬如师范类的学生,计算机的实践课程应该偏向于教学软件的操作;工科类的学生要偏向于模型类计算机知识;艺术类的学生要偏向于制作类的知识。在实际教学过程当中,专业发展和专业未来的考虑,始终是实践教学的难点所在。笔者将其进行了如下总结:首先是非计算机的师范类学生,学习的重点应该是多媒体工具的应用,包括计算机应用技能的培训,而计算软件工程等内容的学习可以适当减少,其他的计算机实践知识可以选择性学习;其次是非计算机专业的理工科学生,学习的内容应该是公式编辑软件、硬件、数据库、专用几何图绘制软件、软件工程、程序设计等;再次是非计算机专业的文科生,要加强办公自动化的软件学习,以及多媒体软件的应用学习等。总之,不同专业的学生对计算机实践课程具有不同的掌握要求,学生要结合专业的发展方向,为不同专业的学生量身定制可行性较高的教学计划,这样才有可能达到学以致用的效果。
2.3 采用分级教学的模式
计算机实践教学具有级别性的专业化需求,即没有计算机基础的学生,基本没有办法直接跨越到更高层的实践学习。这一点可以根据学生的计算机基础水平、学习兴趣和特长等,进行分班教学:首先是教学内容的分级,分为初级、中级、高级多个阶段,初级的学习具有先导性作用,基本了解计算机学科及其分支的内容,中级学习是根据教学要求掌握常见操作系统和办公软件等,高级学习是数据库、编程语言、专业软件等的学习,通过教学内容分级学习,能够让没有计算机基础的学生有一个适应过程。其次是分级学生,在开展计算机实践教学之前,对学生进行全面的摸底考试,以充分了解学生基础知识的薄弱和水平的高低等状态,然后让学生自主选课指导,引导学生根据自身的基本情况、兴趣、专业等选修不同等级的计算机教学级别,而选择同一级别的学生,接受集中式地教学,这样学生就能够在原有知识和技能的基础之上,更加有针对性地展开学习,这样不仅能够节省了更多的教学资源,而且可以缩短学生学习的时间。以上的教学当中,需要建立在学校投入更多教学资源的基础上,而教师同样需要以更多的教学精力和教学实践,方可满足计算机实践教学的需求。
3 结束语
综上所述,由于教学资源的不足,大学计算机实践教学管理较为笼统,需要对教学方法进行改进,目前存在理论课和实践课脱节、忽视学生专业需求、学生计算机基础不一致等问题,这些问题不仅容易让学生产生厌学情绪,而且影响了实践课程开展的有效性。因此,计算机实践教学除了要求计算机教学除了要突出基础知识的学习掌握,还要注重实践能力的培养,通过将理论教学和实践教学相融合、结合学生的专业特点因材施教、分级教学等方法,这样才能够全面提高学生计算机的实践能力。
参考文献:
中图分类号:G642 文献标识码:B
1编译知识在计算机学科中的作用
自从20世纪50年代中期诞生世界上第一个高级语言编译器――Fortran语言编译器以来,编译技术不断进步,已经成为计算机科学中发展最迅速、最成熟的一个重要分支。自1966年以来的所有55位图灵奖获奖者中,有近1/3的科学家是因为在程序设计语言和编译方面的成就而获得该项奖励,可见程序设计语言和编译的发展集中体现了计算机科学发展的重要成果与精华。计算机应用能发展到今天,编译技术的发展有着极其重要的、不可替代的作用。
五十多年以来,随着编译技术的发展,有关编译原理和技术的内容被逐步引入到了计算机专业本科教学中。从早期各阶段ACM和IEEE的计算机专业教学计划,到近年ACM和IEEE联合制定的CC 2005,再到我国教育部高等学校计算机科学与技术教学指导委员会2006年编制的《高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》,直至最新的ACM和IEEE联合制定的CS2008,都把有关编译原理和技术的知识作为重要教学内容列入。目前,我们编译原理课程的教学内容覆盖了CS2008体系中程序设计语言领域、算法和复杂性等领域的多个知识单元。
2编译原理课程的理论性和技术性特点
编译程序的构造原理和技术可以说是计算机科学技术中理论和实践相结合的最好典范。在许多课程的教学中,经典理论和先进技术之间的联系往往缺乏具体而形象的例证,而“编译原理”课程在这方面具有得天独厚的优势。形式语言和自动机理论为编译程序的设计提供了坚实的理论基础,正是在科学理论的保证下,才形成了一系列先进的编译程序设计方法和工具,使得编译程序的构造具有很高的系统性和自动化程度。例如,正是有了有限自动机的经典理论,才有了LEX这样的高度自动化的词法分析器的自动产生器;正是有了Knuth提出的LR分析方法,才有了YACC这样的高效的语法分析器产生器,将程序员从繁琐的代码编写中解放出来。编译课程的教学既要强调经典理论在计算机科学中的重要作用,又要注重介绍利用这些基础理论来设计和构造编译程序各模块的先进方法及工具,可以具体形象地说明经典理论与先进技术的关系。理论和实践相结合是“编译原理”课程的鲜明特色。
“编译原理”课程特别强调运用理论知识进行实践的能力和素质,以突出计算机专业人才培养的特色。“编译原理”是每个优秀的计算机专业人员必修的一门课程。通过编译程序这一具体的案例,学生可以综合理解和运用计算机的程序语言、操作系统和体系结构等各种软硬件知识,形成计算机专业人才特有的系统的专业知识结构。在系统学习编译的理论和技术的过程中,学生一方面对科学理论的基础作用有了充分的认识,提高了学习经典理论的兴趣,形成了较高的理论素养;另一方面,通过课程综合性的实践,分析或改进简单或复杂、原型级或产品级的各种编译程序或工具,也可以提高灵活运用理论知识、设计较大规模的软件来解决实际问题的能力。在课程的学习和实践中,学生可以深刻体会到理论学习的意义和动手实践的乐趣。
有许多人认为,如果今后不从事编译器的开发,编译知识就显得并不重要了――事实上并非如此。编译课程鲜明的理论性和技术性特点,使得这些知识对于计算机专业人员来说具有重要作用,甚至可以说是计算机专业人才区别于一般计算机人员的重要知识结构。对于将来从事编译系统设计工作的学生来说,编译课程的学习当然可以使他们掌握和理解编译系统的结构、工作流程以及编译程序各组成部分的设计原理和实现技术,获得分析、设计、实现和维护编译系统的初步能力,打下坚实的能力和知识基础;而对于那些将来不从事编译器研制的学生来说,编译课程的教学对于提高他们对计算机系统总体认识也具有重要的意义。通过学习编译的理论和方法,学生可以提高对程序设计语言的设计与实现等知识的综合理解,而这些知识对于准确掌握程序设计语言,学习新的编程范型,理解程序,开发出正确的软件都是不可缺少的基础。图灵奖获得者Perlis教授的名言“To understand a program you must become both the machine and the program”就精辟地说明了这一点。此外,编译课程介绍的经典语言分析方法和工具,对于一些实用的工具和软件,如自然语言理解、网络信息处理、网络协议的分析与实现等领域的软件或工具的研制,都是很好的基础。更为重要的是,编译课程中介绍的一些经典的理论和方法,对于传授计算机科学研究的方法、训练学生的思维都是难得的生动案例。因此,不能把编译课程片面地理解成为一个介绍编译程序的课程,而应当把该课程的教学放在培养专业素质、训练思维的层面加以认识,特别是应当强调如何在编译的教学中培养学生的计算思维。
3计算思维及其在编译理论和技术发展中的作用
计算思维(Computational Thinking)是卡内基梅隆大学计算机科学系Jeannette M. Wing教授在2006年提出来的先进的教育理念,被认为是近十年来产生的最具有基础性、长期性的学术思想,并将成为21世纪计算机科学研究的热点。
计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为,它包括了一系列广泛的计算机科学的思维方法。Wing教授认为,计算思维不仅仅属于计算机科学家,它将和阅读、写作和算术一样,是21世纪每个人必须具备的基本技能。计算思维已经在其他学科中产生影响,而这种影响在不断拓展和深入。例如计算生物学、计算博弈理论、纳米计算和量子计算等新兴研究领域的发展正在深刻改变生物学、经济学、化学和物理学领域研究的思考方式。
典型的计算思维包括一系列广泛的计算机科学的思维方法:递归、抽象和分解、保护、冗余、容错、纠错和恢复,利用启发式推理来寻求解答,在不确定情况下的规划、学习和调度等。显然,这些计算思维方法都可以在许多编译理论和技术的发展中找到痕迹,很多编译成果正是运用计算思维的结晶。例如,抽象和自动化是计算思维的两个重要手段,也是编译理论和方法产生的基础。编译课程中介绍的语法知识描述、词法分析、语法分析、属性文法、乃至优化等知识点,都体现了面向具体应用、从实际问题中抽象出科学问题并运用科学的思维方法进行问题求解的思想,其成果根植于坚实的经典理论,并应用于实践,以推动技术的进步。因此,在编译课程的教学中,结合编译理论和技术中经典的案例培养学生的计算思维,是一条值得探索的途径。
4结合编译案例的计算思维培养
如何培养“计算思维”,是目前计算机教育界非常关心的问题。例如,在计算机专业的教学中,有些学校在专业核心课程中融入计算思维的培养;在非计算机专业的教学中,对计算机导论类或程序设计类的课程进行改革,针对学科交叉的需求,从教学内容和方法上进行改革,培养学生的计算思维。总体来说,计算思维的培养应该贯穿在大学教育的全过程,甚至在大学之前的教育中。计算思维对于计算机专业的人才培养提出了新的要求,我们必须在专业课程教学中结合计算思维的培养。
编译课程的知识体系完整,既有经典理论成果奠定的坚实基础,又有在实践中发挥巨大作用的先进技术,其中很多知识点都为计算思维提供了很好的诠释和生动的案例。下面,我们从抽象、自动化、递归、问题分解和权衡等典型计算思维方法出发,探讨结合编译案例培养计算思维的可能途径。
(1) 抽象
“抽象”是科学研究的重要手段,也是计算机科学研究的重要工具。在编译理论和技术的发展中,正是运用“抽象”这一有力工具,才获得了一系列的重要成果。例如有限自动机、形式文法等都是重要的抽象工具,有了这些工具,才能够把握词法分析和语法分析等问题的本质,发现其中规律,最终形成一系列的自动分析方法。
(2) 自动化
将抽象思维的结果在计算机上实现,是一个将计算思维成果物化的过程,也是将理论成果应用于技术的实践。有限自动机、预测分析程序、算符优先分析、LR分析等编译经典方法,都是在抽象的基础上将知识和控制分离(即分析表加控制程序),从而获得了经典的分析工具,而这种知识和控制的分离也为分析工具的自动产生提供了可能。自动化的思维方法不仅体现在编译程序本身的工作机制上,更体现在编译程序的生成工具的研究和设计上。
(3) 递归
许多编译中的问题都具有明显的递归特征。运用递归思维解决复杂的问题,通常是对问题进行逐步化简,最后得到了一个规模非常小、非常简单、更容易解决的类似问题,将该问题解决后,再逐层解决上一级问题,最后解决了较复杂的原始问题。编译中的递归下降分析是最直观的对递归思维的运用,此外,基于树遍历的属性计算、语法制导翻译都是典型的递归问题求解。
(4) 问题分解
程序设计中的“自顶向下、逐步求精”的思想就是一种典型的问题分解的计算思维方法。运用问题分解这种思维方法进行问题求解,首先须做出对问题本身的明确描述,并对问题解法做出全局性决策,把问题分解成相对独立的子问题,再以同样的方式对每个子问题进一步精确化,直到获得对问题的明确解答。在编译程序的设计中,通过引入中间语言,将编译程序划分成前端和后端,就是一种典型的分解问题的思路。
(5) 权衡
“编译原理”课程是一门理论性和技术性都非常强的课程。理论研究重在探寻问题求解的方法,而在编译程序的设计和实现过程中,对于理论成果的研究运用又需要在能力和运用中做出权衡。这方面一个典型的例子是,我们知道,虽然高级语言的大部机制都可以由上下文无关文法来描述,但是上下文无关文法不能完全刻画高级程序语言的所有规范,有些语言机制甚至存在二义性。但是上下文无关文法的分析是高效的,所以我们在编译程序设计中依然采取上下文无关文法来描述高级语言语法,但是在具体实现时,通过改造分析表消除冲突、符号表操作、语义检查等手段,去实现上下文无关文法分析所不能完成的功能――这正是在具体实践中结合具体问题进行权衡的结果。
5结束语
计算思维的培养不是哪一门课程的教学能解决的问题。对于计算机专业教育来说,应当关注在各专业课程中的计算思维的培养,强调对各种原理和方法进行提炼,从思维方法的高度培养学生,使学生能够应用计算思维解决问题。大学计算思维的教育应贯穿于整个大学教育,做到学习期间不断线。
参考文献:
[1] Jeannette M. Wing. Computational Thinking[J]. Communications of ACM, 2006,49(3):33-35.
中图分类号:G642.4 文献标志码:A 文章编号:1674-9324(2017)16-0152-03
一、引言
计算机导论课教学内容几乎涉及到计算机学科的各个知识领域,每一部分内容对于毫无专业基础的学生来讲都是全新的,而应用技术型院校的学生普遍来讲学习热情不高、学习基础较差,因此,如何针对该类院校学情实际,搞好计算机导论课程的教学,以促进学生进行专业学习的积O性,是应用技术型院校计算机导论课教学亟待解决的问题。
目前计算机导论课程教学而言,存在以下一些问题:从教学内容上看,有的院校将计算机操作知识作为主要教学内容,有的将计算机主要专业课的综合作为主要教学内容[1]。显然,第一种内容组织模式与计算思维的教育理念是相悖的,但是第二种内容组织模式也普遍存在知识覆盖面不合理,知识层次把握不准确,知识融合不够等问题。从教学方法上看,任课教师对教学过程的研究和思考较少,对教学方法缺乏创新,基本采用单一的课堂教学方式[2-3],没有根据具体的教学内容设计相应的教学过程,教学方法缺乏针对性,导致学生很难理解所讲授的内容,使学生对专业学习产生为难情绪。因此,无论是教学内容还是教学方法均不符合应用技术型院校学情,文献[4]就课程教学内容构建做了系统和全面的阐述,本文着重从“如何教”的方面提出了相应的改进措施和方法,以调动学生进行专业学习的积极性。
二、相应的改进措施和方法
(一)优化教学内容
周以真教授提出的计算思维[5]的教育理念统一了教育界对计算导论课的作用的认识,本文结合应用技术型院校的学情,将计算机导论课的教学目标确定为:使学生认知计算机系统,培养学生应用计算机解决问题的思维方法,揭示计算机学科所蕴含的计算思维思想。
从该种教学目标出发,以“程序”为主线,将课程教学内容划分为4个模块,10个教学单元。这4个模块是程序执行、程序运行、程序设计与软件开发、计算机网络;10个教学单元是信息的机器表示、信息的机器存储与运算、计算机结构及其工作原理、操作系统的基本功能、高级语言与编译程序、算法与数据结构、软件工程方法、数据库与数据库系统、计算机网络系统。为使核心教学内容得到更好地贯彻,在上述教学内容基础上,增设了“计算机与计算机系统”教学单元,其教学目的是使学生获得对计算机、计算机系统以及计算机学科宏观认识和总体了解。
(二)改进教学方法
贯穿整个教学过程最为重要的就是教学方法,教学方法的选择应具有多样性和灵活性。针对教学过程中暴露出的教学方式单一的问题,本文在分析和研究学生的心理特点后,提出了以学生为中心,以教学内容为导向,在教学过程中运用与之相适应的教学方法。根据该门课程教学内容的特点,采用了讲授式教学法、问题引领式教学法、案例驱动式教学法、引导启发式教学法、类比教学法、专题讨论式教学法等。对于计算机和计算机系统这部分内容,通过引导启发方式逐步使学生了解计算机的作用和基本组成;对于信息的机器表示这部分内容,利用身份证编码类比阐述计算机中数的编码,使学生更加容易理解信息的编码;对于计算机结构及其工作原理这部分内容,采用“质疑――解答”的方式使学生始终带着问题在听课,从而揭示出计算机各主要部件的作用和构成,以及计算机的工作原理。算法和数据结构这部分内容,采用案例驱动式教学方法,通过案例将算法以及算法与数据结构之间的关系揭示出来;对于操作系统这部分内容,采用问题引领式教学法,通过不断地质疑――解答方式揭示出操作系统的主要基本功能,这种方法可以引发学生思考,激发学生求知欲望;对于数据库与数据库系统这部分内容,采用生活中的实例来说明数据库在人类生活中的应用需求,从而引起学生对数据库的关注。
(三)强化教学设计
为了激发学生的学习兴趣,不仅需要对教学方法进行精心选择,而且需要对教学过程进行精心设计。本文以教师为主导,学生为主体的教学模式,将教学方法有效地融入教学过程中,使教学过程设计更贴近该类院校的学情,从而调动学生学习兴趣。下面以计算机网络及其硬件组成为例说明对教学内容是如何组织的。如果开始就讲授什么是计算机网络,对于毫无专业基础的新生来讲会感到晦涩难懂。通过利用学生能够感受到生活中的例子,如高速公路网来类比讲授这部分内容,学生接受起来要容易得多。针对这部分教学内容,教学过程设计如下:(1)通过“引导”方式,询问学生是否见过高速公路网络。(2)由任课教师讲述高速公路网络是由城市以及连接两个城市之间的高速公路组成的。(3)通过“启发”方式,询问学生高速公路网络中的城市相当于计算机网络中的什么?连接两个城市的高速公路相当于网络中的什么?从而给出计算机网络的初步概念。(4)通过质疑-解答方式,询问“为什么要将分布在不同地点的计算机连接起来呢?”,从而揭示出计算机联网的目的是什么,使学生获得对这个概念完整的理解。(5)澄清了计算机网络这个概念之后,进一步讲解计算机网络的硬件组成。到目前为止,学生显然理解了计算机网络是由计算机(在网络中称之为主机)和传输介质组成的,除此之外还包括网络接口设备和网络互连设备。这部分内容的讲解也采取理论联系生活的方式,比如网络接口设备中的Modem,学生也不感到陌生,当然对于毫无生活基础可以借鉴的内容如Hub,它既作为网络连接点,又起到信号放大作用,Hub这两个作用讲解起来也不是难事。由上述过程可知,每一个教学环节是紧密结合的,将类比、引导和启发等教学方法有效地融合在教学过程中,形成了环环相扣的教学过程。
三、典型案例讨论与效果分析
(一)数据结构与算法
教学目标:了解算法的描述工具,完整地理解算法的概念、掌握简单问题的算法描述,训练学生运用计算机解决计算问题的思维方法。
教学过程设计:
第一环节:提出问题,计算1+2+3+4…10
学生1回答:逐项累加求和
学生2回答:1+2+3+4…10=(1+10)×5=55
由教师带领学生分别给出这两种解决方案的算法,然后引导启发方式给出算法的初步概念。
算法1:
S1:计算1+2得到3;
S2:将第一步得到的结果(即1+2)与3相加得到6;
……
S9:将第8步得到的结果(即1+2+…+9)与10相加得到55。
算法2:
S1:将原式变形为(1+10)+(2+9)+(3+8)+(2+9)+(3+8)=5×11;
S2:计算5×11;
S3:输出运算结果。
通过这两个算法,帮助学生理解什么是算法,并简单说明这两种算法的优劣。但是,第二种方法只适合有规律的数据序列,如果对于没有规律可循的数据序列,如何求和呢?从而引出第三种解决方案。
算法3:
S1:S0,i1;
S2:SS+i;
S3:ii+1;
S4:i≤n,转S2;否则,输出S。
利用流程图来描述该算法,在描述过程中直接讲解了这种描述工具。以该种解决方案再次重申算法的概念,并着重讲解算法的特性。
第二环节:阐述算法与数据结构之间的关系
前边所给出算法概念是不完整的,还需要揭示出算法与数据结构之间的关系,从而使学生更完整地理解算法。
以{23,9,45,12,65,73}这样一个随机数据序列为例,其顺序存储结构和链式存储结构如图2、图3所示。
顺序存储如下:
链式存储如下:
由图可见顺序存储结构和链式存储结构是不一样的,那么在执行某一操作时,有什么区别吗?比如删除45这项操作,对于顺序表来说是使用下标访问方式,在删除了45这个元素后需要将后面的所有元素全部向前移动;而对于链表,没有顺序的概念,要想删除45这个元素,只需要将前一个结点9的指针指向被删除点的下一个结点12的头指针即可。由此可见,两种算法是不同的。尽管是同一组数据,其存储结构不同,算法也不同。
教学反思:这样组织教学由浅入深、循序渐进、逐步给出算法的初步概念,算法的完整概念,不仅容易使学生理解算法的概念,而且还使学生了解到了数据还存在多种存储表示。通过这种教学内容设计,使教学目的变得非常明确,并且利用这个教学目的将不同知识领域的内容融合为一体,有利于学生计算机学科知识框架的形成。通过不断设计算法来揭示算法概念的过程,同时也达到了训练学生运用计算机解决问题的思维方法。
(二)操作系统基本功能
教学目标:使学生理解操作系统的基本功能,从而达到对操作系统的概念理解。
教学过程设计:
1.师生互动:
同学们使用过Windows操作系统吗?
双击程序图标意味着什么?
双击程序图标之后程序被调入到哪了?
双击程序图标之前程序存放在哪?以什么形式存放?
程序被调入到内存之后又是如何被管理和控制执行的?
这样组织教学内容将学生熟悉的生活实践有效地融入到教学当中,使抽象问题变得简单化了,容易被学生理解和接受。
2.学习新知:通过质疑方式,导入这部分教学内容,然后再通过解答方式,逐个阐述操作系统的存储管理、CPU管理、文件管理等功能。学生理解了操作系统的基本功能后,就容易理解操作系统这个概念了。下面以文件管理为例,说明这部分教学内容是如何设计的。
提出问题:图书馆有上百万册图书,如果将这些图书杂乱地堆放在一起,会是什么情形呢?让你去找一本书会变得十分艰难。如果将数以万计的文件随便地堆放在一起,和图书一样,查找一个文件也会变得十分困难。因此,必须要按照某种机制将文件管理起来。
教学反思:操作系统这部分内容是专业教育的核心基础课,也是难点课程之一,大多学生会操作但对其原理理解不甚了解。就双击程序图标这个操作而言,几乎人人都会操作,但是如果专业教育仅仅是使学生学会这种操作,教学就失去了意义。因此采用以上教学设计,环环相扣不断提出问题,启发引导学生思考,从而更好地让学生理解什么是操作系统,操作系统能实现哪些功能,如何对计算机进行管理。
四、Y束语
在计算机导论课程教学实施过程中,根据不同教学内容的特点,有针对性地设计其教学过程,采用恰当的教学方法及教学手段,解决了其教学方法单一以及教学过程设计不合理的问题。通过部分教学过程设计给出了如何针对教学内容设计教学过程的思路,并通过教学实践对文中提出的观点进行了验证。通过教学实践表明:学生上课积极性变高,旷课率明显下降,教学效果也有了较大提升。
参考文献:
[1]毛嘉莉,李明东,赖晓风,董文.基于计算思维的《计算机导论》课程改革实践[J].西华师范大学学报(自然科学版),2012,35(1).
[2]赵玉艳,赵生慧.应用型本科院校计算机导论课程教学方法研究[J].蚌埠学院学报,2012,1(3).
中图分类号:G434
文献标识码:A 文章编号:1672-7800(2015)005-0178-02
作者简介:郑颖(1987-),女,河南南阳人,硕士,河南科技学院信息工程学院助教,研究方向为语义Web、自然语言处理;金松林(1983-),男,河南周口人,硕士,河南科技学院信息工程学院助教,研究方向为信息安全。
0 引言
操作系统通过合理调度和管理系统中的各类资源为用户提供服务,它与硬件和其它应用软件有着紧密联系。操作系统课程是计算机及其相关专业的一门必修课程,在专业课程体系中具有承前启后的作用。学生学习该课程普遍缺乏学习兴趣,其原因主要有:
①课程内容理论性强、概念抽象、较难理解,并且传统授课主要采用“注入式”教学方法,学生被动学习;
②实验课时较少,实验内容主要以验证性实验为主,不能很好地培养学生的动手能力;
③课程考核机制不完善。主要依靠期末考试对学生学习情况进行测验,且主要侧重于理论知识,导致学生重理论而轻实践。
亟需转变教学思路和方法,激发学生的学习动力,培养适应社会需求的综合性人才。
1 计算思维
2006年,周以真教授提出了计算思维的定义:运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等,是涵盖计算机科学的一系列思维活动[1]。她指出“在不久的将来计算思维不限于科学家,将成为每个人必备的基本技能之一”[2]。计算思维是一种高层次的认知思维活动,它包含分析问题、解决问题及创新的能力,而这些能力正是大学生所应必备的基本能力。因此,许多学者都对这一问题进行深入研究,并将计算思维逐渐运用到教学中[3-6]。文献[4]通过案例将计算思维抽象和自动化思想贯穿于离散数学课程教学中;文献[6]在数据结构课程中使用案例教学法对学生进行启发引导,培养学生的计算思维。计算思维所倡导的抽象、启发式推理、系统恢复等思想与操作系统中并发、同步、死锁处理等思想有相似之处。因此,本文将计算思维与操作系统课程教学有机结合起来,降低知识理解难度,激发学生学习兴趣,培养学生的计算思维能力。
2 以计算思维为导向的操作系统课程改革教学
本文以计算思维为导向,分别从理论教学、实验教学和考核机制3个方面探讨操作系统课程教学改革。
2.1 以计算思维为导向的理论课教学改革
传统教学模式以教师讲授为主,这种方式易于突出重难点,但忽视了学生的主体地位,造成学生被动接受知识,教学效果较差。计算思维倡导通过约简、嵌入、转化和仿真等方法将困难的问题阐述成一个易于解决的问题[2]。运用以计算思维为导向的教学方法,可在教学中引入问题情境,然后设置具体问题,引导学生利用计算思维方法分析、解决问题。以计算思维为导向的教学过程如图1所示。
操作系统课程内容枯燥、抽象,因此将生活中实例引入到教学中,便于将枯燥的知识生动化,抽象的知识具体化。例如,在讲解进程的概念时可引入这样一个实例:厨师做一道宫保鸡丁,首先找到菜谱,再准备鸡肉、黄瓜、辣椒、食盐等原料,最后按菜谱步骤炒菜。在这个例子中,厨师相当于CPU,菜谱相当于程序,原料相当于数据,做菜过程相当于进程。通过此实例,学生可以很容易理解进程和程序的区别,然后引导学生思考和讨论进程的特征及基本状态,再由老师进行总结和概括。在教学中还有很多这样的实例,如表1所示,通过实例引入可以降低理解难度,激发学习兴趣。
以计算思维为导向的教学方法将传统的注入式教学转变为启发式教学,通过情景引入和设置问题,不仅提高学生的学习的兴趣,而且有助于培养学生的创造思维能力和知识迁移能力[7]。
2.2 以计算思维为导向的实验课教学改革
实验是教学的重要环节,可以加深学生对知识的理解,还可以提高学生解决实际问题的能力[8]。传统实验课时安排较少,且实验内容主要是以验证基本概念和原理为主,以提高学生创新能力和实践能力为目的的设计性实验较少。以计算思维为导向的实验课教学,需要增加实验课时,并且实验内容以设计性实验为主,具体如下:
(1)验证性实验设置12学时。此类实验由学生独立完成,安排在相应的理论课程之后,使学生加深对相关知识的理解。此外,此类实验也是设计性实验的基础。
(2)设计性实验设置24学时。此类实验要求3~4人合作完成,安排在学期中,要求学生在学习中不断对实验进行补充和完善。待完成理论课学习后,通过答辩的形式对学生实验情况进行考查。例如让学生设计一个小型操作系统,让自己解决设计中遇到的问题,提高学生发现问题、解决问题的创造性思维能力。
2.3 以计算思维为导向的考核机制
传统对学生学习效果的考核主要依靠期末考试,忽视了对学生综合素质的考核。以计算思维为导向的考核方案如表2所示,将课堂讨论和实验课作为考核的一部分。
将课堂讨论表现纳入考核,可以激发学生课堂学习积极性。实验课分为验证性实验和设计性实验,后者更能体现出学生的创造思维。设计性实验是以小组为单位,根据每个人实验完成情况评定成绩。
以计算思维为导向的考核注重学习过程和创新能力的培养,促进学生全面发展。
2.4 课程改革实践效果
笔者对计算数学专业11级和12级分别采用传统教学模式和以计算思维为导向的教学模式进行教学,两个班级出勤率、课堂学习积极性和考试情况比较如表3所示。实践表明,以计算思维为导向的教学模式显著提高学生学习的积极性,提高了学生的学习成绩。
3 结语
本文在分析计算思维和操作系统课程契合点的基础上,将计算思维引入操作系统课程教学中。实践表明,以计算思维为导向的教学模式有利于激发学生学习兴趣,培养学生的计算思维能力,提高教学效果。
参考文献:
[1] JEANNETTE M W. Computational thinking[J]. Communication of the ACM, 2006, 49(3):33-35.
[2] 周以真. 计算思维[J]. 中国计算机学会通讯,2007,3(11):33-35.
[3] 何明昕. 关注点分离在计算思维和软件工程中的方法论意义[J]. 计算机科学,2009,36(4):60-63.
[4] 常亮,徐周波,古天龙,等. 离散数学教学中的计算思维培养[J]. 计算机教育,2011(14):90-94.
[5] 艾明晶,李莹. 以计算思维能力培养为核心的大学计算机课程改革[J]. 计算机教育,2014(5):5-9
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2014)25-0040-02
在控制理论与控制工程学科中,计算机控制系统课程属于重要的专业基础课程,同时在培养硕士研究生的工作中起到重要的作用。从1998年开始,我校开设了计算机控制系统课程,经过十五六年的课程建设,各方面都获得了显著的成效,主要体现在课程内容、知识体系、教学方法、教学改革等。
一、丰富教学内容,满足社会发展需求
计算机控制系统课程就知识结构主要分为三类:计算机控制系统的硬件系统分析与设计、计算机控制软件设计、离散系统理论与系统分析。该课程主要内容包括:计算机控制理论基础、计算机控制系统分析与设计、线性离散系统状态空间分析、计算机控制系统离散化设计、复杂规律计算机控制系统的设计、集散控制系统、计算机控制系统的设计与实现等。该课程从理论到实践,深入阐述了计算机控制系统的设计方法、设计理念、设计实践,叙述了不同类型计算机控制系统的设计原理及特点。关于计算机复杂控制系统的分析设计方法,通过学习计算机控制系统课程,学生就能够掌握并且为将来的研究生课程中的理论和技术支持做铺垫。
计算机控制技术不断发展,但是计算机控制系统课程的教材多年来从理论和设计内容上都非常相似,往往是内容陈旧、枯燥并且理论和实际脱节,学生学习起来不容易理解。基于上述问题,我们在课程讲授中,将收集到的计算机控制理论相关的论文和最新成果资料作为讲授及课堂讨论内容;将计算机控制、楼宇自动控制方面的课题研究成果引入教学;通过现场教学、专家教学等方式,理论联系实际,收到良好效果。
定期召开专业研讨会和学科前沿知识研讨会。注意学科发展动态,并结合学科专业特点,出版了计算机控制系统教材及辅助教材,对于扩大学生的知识视野以及使计算机控制系统课程的教学内容更加充实起到很大作用。
二、探索研究生教学规律 提高授课质量
1.开展研究型教学,提高学生创新能力。积极探索研究生教学规律,将培养研究生创新能力作为课程建设的重点。在计算机控制系统课程建设中,积极探索学生创新能力的培养途径,开展研究性教学、前沿研究、理论知识,进行艰难的专题研究。这样的教学课程和课外活动的结合,将能力培养和素质教育相结合,通过研究型教学尝试,收到了显著效果。学生自主学习能力大大增强,同时拓展了知识面,提高了学生分析问题、解决问题的能力,提高了创新能力。
2.重视产学研相结合,强化研究生实践能力培养。建立校外实习基地,与东北建筑设计院、辽宁省建筑设计院、中科院自动化研究所、沈阳电梯厂等单位建立长期稳定的合作关系,并签订协议联合培养本科生和研究生。同时与这些单位的专家联合指导研究生,聘请专家讲座,结合实际工程,深入浅出,讲述计算机在实际工程中的应用。通过实际工程案例分析,使学生理论联系实际,通过实习环节让学生亲自参与实践工程设计,在学期间得到实际工程技术知识的训练,收到良好效果。
三、多种教学方法的融合 提高教学效果
(一)建立以学生为主体的教学模式,激发创造性思维
改变单一的教学知识,建立一种合理的教学模式。以学生为中心,教师起到主导作用。在课堂教学中,将启发式的教学方式持续用下去,利用学习国内外一些典型的计算机控制项目,教师引导学生的方式变得更加多角度和全方位,让学生主动发现问题,将学生的积极性充分调动起来,使学生更多的潜能被激发。在实际的课堂教学过程中,增加教师和学生的交流,鼓励学生提出问题,使他们逐渐形成独立思考的习惯,有助于创造性思维的开发。
(二)模块化 案例教学收到良好效果
实际课程教学中,进行模块化分类,三大模块分别是基本理论、设计方法和实例分析。采用模块化教学分析方法,深入浅出地从理论知识学习到实践工程应用,学生掌握起来更加得心应手。结合计算机控制系统案例,实现学生对学习兴趣增加的方法是利用多媒体这样的现代化教学方式。
(三)采用多样多样化教学方式,提高了学生的学习兴趣
1.深入实际,现场教学。到一些相关单位采取现场教学,效果更佳。在进行现场教学之前预先安排一些问题,让学生带着问题去学习,能更好的把课堂上的理论知识和实践知识有机地结合起来。请专家解释在机器人控制理论,计算机应用技术的智能建筑,并基于演示和实际操作,从理论到实践,通过实际的对象,说明计算机控制理论的应用更加真实、直观,使学生真正理解计算机控制理论的重要性,提高学生的学习兴趣。提供大量的实际工程材料课程进行教学指导,让学生在学习理论知识的实际工程问题的过程中做到理论与工程实践紧密结合。这样既能把学生对学习的主动性和积极性充分调动起来,又能对学生自身解决实际问题能力的培养起到很大作用,达到学以致用,是提高教学效果的有效手段。
2.创新教学方法,提高授课质量。通过计算机控制系统课程多年不断总结和探索,形成了具有特点的教学风格,并通过多年的教学实践,验证了教学方法的有效性。①采用模块分析方法,深入浅出。按课程的知识体系,将课程内容进行模块划分,明确课程的知识体系结构,并总结各知识模块的相互关系,使学生对课程的知识结构有一个总体的把握,便于学生形成完整的知识体系结构。②将抽象的理论描述转化为形象化的描述。利用图形、图像信息资源使学生能够尽可能的接近实际系统理论部分,紧密结合系统工程实例进行讲述,理论联系实际,提高了学生认知度和学习兴趣。③流程图分析法。在分析复杂系统时,采用流程图方法,直观明了易于理解。系统环节多而复杂,采用流程图方法分析易于掌握。④知识融合分析法。通过系统的实例将系统定性分析、定量分析、校正设计融合一体,使学生明确系统分析设计总体思路,更好地把理论与实践结合,培养学生分析问题和解决问题的能力,以及综合分析设计能力。⑤案例分析法。在课程讲授过程中引用了大量工程案例,通过案例分析,产生计算机控制理论及设计方法,充分发挥了它的启发性、实践性,开发了学生思维能力,提高了学生的实践能力、分析问题和解决问题的能力。
四、结论
在计算机控制系统的课程建设中,完善课程体系,强调了理论与系统的结合。理论联系实际,实现教学、科研、实践相结合的教学理念。采用了模块化、开放型、互动式教学模式,强调创造力与综合解决问题能力相结合、设计实践与综合设计能力相结合。将科研成果引入课堂,理论联系实际,收到良好效果。将智能建筑特色融入计算机控制理论教学中去。实现根据“产、学、研一体化”教学模式,取得了显著效果。
参考文献:
1背景
智能科学与技术是人工智能方向的重点交叉学科,是一个包含了认知科学、脑科学、计算机科学的新兴学科。按照教育部学科专业目录,智能科学与技术是一级学科计算机科学与技术下的二级学科。如何在4年的本科教学过程中,既立足于计算机学科内容,又突出智能专业的特点,体现该专业区别于计算机科学专业的特色,培养一流的智能人才,是众多智能专业积极探索的问题。
本着帮助学生建立宽广厚实的知识基础,使学生将来能向本专业任何一个分支方向发展,并能掌握本学科发展的最新动态和发展趋势,深刻领会本学科与其他相关学科区别的目标,厦门大学智能科学与技术系于2012年合理调整了专业培养方案,制定了一套突出专业特色和个性的教学大纲,课程体系分为学科通修课程、专业必修课程、专业选修课程。其中,专业必修课程细分为智能基础类课程、软件理论类课程及硬件基础类课程3个不同类别。在智能基础类课程中,开设非经典计算课程。该课程是厦门大学智能科学与设计系最具特色的课程。
该课程以软件理论类课程算法设计与分析为先导课程,在本科三年级的第一学期先讲授算法知识,在同一学年度第三学期讲授非经典计算的内容。教师首先介绍经典算法设计与分析中的各种传统算法,借由经典算法发展过程中遇到的困境问题引出非经典计算的内容,前后呼应,有助于学生在智能计算上获得完整的系统学习。
2非经典计算在智能科学与技术专业本科教学算法体系中的地位
算法设计是智能科学与技术专业中的核心内容。本科专业4年的专业教学计划由4门核心课程构成算法体系的主线,包括高级语言程序设计(本科一年级学科通修课程)、数据结构(本科二年级方向必修课程)、算法设计与分析(本科三年级方向必修课程)、非经典计算(本科三年级方向限选课程)。这4门课程的教学内容和组织结构完整地构成了算法体系结构。以图灵奖获得者、pascal之父Niklaus Wirth提出的著名公式为参照,即Algorithm+Data Structures=Programs,算法体系以培训计算机方向学生掌握编程能力,独立完成分析问题、设计方案、解决问题的综合能力为主要目标;在这个体系中,程序语言是基础,数据结构是内涵,算法是框架。
在算法体系中,这4门课程以循序渐进的方式展开,注重对学生算法思维的培训。
(1)高级语言程序设计讲授的是c语言程序设计,通过对C语言的详细介绍,让学生掌握程序设计方法和编程技巧。作为初始启蒙课程,选择C语言作为程序教学语言,是因为C语言的使用广泛,拥有严格完整的语法结构,适合教学。
(2)数据结构重点讲授各种常用的数据表示逻辑结构、存储结构及其基本的运算操作,并介绍相关算法及效率分析。教师通过在一年级对包括C语言在内的其他程序设计过程的训练,加人对数据结构中各种数据的逻辑、存储结构的表示和运算操作,从数据结构的角度阐述典型算法,并简单介绍算法的效率分析,这是对程序设计训练的进阶内容。
(3)算法设计和分析主要介绍算法设计与分析的基本方法以及算法复杂性理论基础。我们在本科三年级引入算法设计与分析课程,从算法的抽象角度总结和归纳各种算法思想,包括递归与分治法、贪心法、动态规划法、回溯法、分支定界法、高级图论算法、线性规划算法等,最后阐述算法复杂性的分析方法、NP完全性理论基础等计算复杂性的基本知识及完备性证明概要,重点阐述算法思想,从复杂性角度比较和分析不同的算法。上述(1)、(2)和(3)的内容构成了计算机学科通用算法体系的教学过程。
(4)非经典计算主要讨论何为计算的本质以及经典计算在计算能力上遇到的困境,以此为契机讨论自然计算――生物计算、集群计算、量子计算等内容。算法设计和分析的最后一个章节是对算法复杂性的分析方法及NP完全性理论基础的介绍,不可避免地会讨论到现代电子数字计算机体系在计算能力上的瓶颈以及由NP完全问题(Non-deterministic Polynomial),号称世界七大数学难题之一的经典问题,引出对经典计算机体系的深层思考,进一步引导学生思考如何解决计算能力的瓶颈问题。这是教师设计非经典计算课程的出发点,也是对算法体系更完整的补充和更深层次的探讨。
此外,我们还需要对授课学期选择进行考虑。厦门大学实行三学期制度,在第三学期内开设的课程大多是实践类课程及前沿技术介绍课程。在本科三年级的小学期阶段,学生基本完成了智能专业大部分必修课程的学习,拥有了一定的计算机基础和学科素养。这时,依赖学生已经具有的数据结构与算法的基本知识,可以将学生的学习引向如何理解计算的本质;再从计算本质出发,由易到难,介绍采用非计算机的不同计算媒介和方法,例如DNA计算、元胞自动机、集群计算等知识,结合计算机模拟程序加深认识。在逐步加深学生对非经典方法计算的理解之后,再引入量子信息与量子计算。至此,智能专业关于算法体系的整体构建已基本完成。
3非经典计算课程内容大纲
非经典计算课程的主体课程内容以专题形式展开,分为5个部分。
第一部分:计算本质。从什么是计算人手,列举各种计算的形式,由数字的计算到命题的证明,由数值计算到符号推导,引出计算本质的广义定义,“计算是从一个符号串f变换成另一个符号串g”,即从已知符号(串)开始,一步一步地改变符号(串),经过有限步骤,最后得到一个满足预先规定的符号(串)的变换过程;进一步展开对什么是计算、什么是可计算性的讨论,展开介绍计算理论上4个著名的计算模型――般递归函数、λ可计算函数、图灵机和波斯特系统;最后归结到丘奇・图灵论点。以上是第一条主线,第二条主线从计算复杂性角度人手,讨论在经典算法中难解决的NP完全问题,提出在经典计算体系中随着输入数据规模增大而难以计算的瓶颈,从而引发学生对于经典计算的思考。
第二部分:智能计算机的发展。这个部分主要讨论计算机硬件的发展历史,即从原始时期的计算工具,到现代计算机的4个发展阶段:史前期、机械式计算机、机电式计算机、电子计算机。教师从模拟型计算机到数字型计算机,阐述冯・诺依曼关于计算机五大基本组成对现代计算机体系结构的影响及其带来的限制;从硬件角度提出非经典计算机的讨论,鼓励学生对现代智能计算机硬件进行调查。
第三部分:DNA计算。主要阐述DNA计算的基本原理,并以旅行商问题为引子,展开经典计算难解决问题的讨论,重点介绍第一个由DNA计算模型解决的问题――L.Adleman构建的7个节点的DHP,并着重指出DNA计算潜在的巨大并行性和待研究的问题;然后介绍R.Lipton用DNA实验解决的另一个NP问题――可满足性问题(SAT);最后将DNA计算与软计算结合,阐述粘贴模型以及DNA的软计算模拟与遗传算法的对比。对于DNA计算强大的并行性,以具体的算法实例加以详细阐述和说明,教师应指出分子计算的优缺点以及在计算能力上的巨大潜力。
第四部分:细胞自动机和集群计算。这个部分主要讨论群体计算,一方面,从细胞自动机的形式化阐述及其所带来的哲学意义出发,描述细胞自动机在计算机交叉学科上的运用;另一方面,介绍集群计算,以欧盟“蓝脑计划”为出发点,阐述如何从硬件体系和软件体系上用计算机架构类神经元的协同合作方式。
第五部分:量子计算。从基本的量子力学知识开始,完整阐述量子计算的基本概念、量子信息、量子计算机和量子通信。量子计算机的构建除了要包含最基本的操作外,还需要介绍基本的量子计算机体系结构、计算载体等知识,加深对量子计算的理解,最后介绍的量子通信。这种已经应用在实际生活中的量子计算,更贴合实际。
以上5个专题,结构清晰,分工明确。第一部分讨论经典计算的困境,第二部分讨论经典计算机的发展瓶颈,从第三部分开始,引入非经典计算模型,分别从生物学和计算机科学的交叉学科DNA计算、细胞自动机和集群计算、量子计算3个方面进行学习。5个专题,完成了对非经典计算中前沿热门计算模式的阐述,引导了学生对于前沿学科的认识和思考。
4非经典计算课程授课方式
本课程属于本科三年级第三学期的课程,授课除了上文提到的内容之外,另一个更重要的方面是引导学生对学科前沿以及热点内容的跟踪和思考。因此在教学方式上,我们采取了教师授课及学生调查报告相结合的形式。教师上课对应课程的基本内容,学生调查报告对应学科前沿跟踪与思考。
5个专题内容的授课经过了如下设计。在每个专题的授课结束后,布置相关专题内的一些热点、难点问题供学生课后查阅、讨论和思考。每个专题由学生自主报名,学生需要对相关内容进行跟踪,查阅近5年的科技文献,总结出论文综述,并准备10分钟左右的课堂报告,教师针对课堂报告指出相关的问题,由学生课后进行进一步的思考和再次的文献查阅,形成最终报告后提交课程论文。
这样的课程设计安排,可以很好地实现教学相长。在学生方面,促使学生除了上课听课,必须主动参与文献的查询过程,主动对授课内容或延展部分的概念进行思考。由于提供给学生选择专题的自由,所以也可以大大提高学生的积极性,让学生可以从感兴趣的角度对本门课程涵盖的内容进行调查,从而获得更加深刻的上课体验。最后,由于每个学生选择的题目必须提前汇总,不能与别人重复,所以在其听取其他学生的报告过程中,学生可以更广地拓展自己的知识面。对于授课教师而言,能够保持对该门课程研究现状的实时性跟踪,更加全面地更新课程内容,还可以将学生查阅的重要理论和知识补充到课程基本内容中,同时促进教师与学生之间的互动,活跃课堂气氛,提高教学质量。
5关于非经典计算课程的几点思考
课程从厦门大学智能科学与技术系建系之初开始构思和授课,在授课过程中不断调整教学内容和课程设计,紧紧围绕学生的反馈完善课程建设。关于非经典计算课程的几点教学经验可以总结如下。
1)增加课时,优化对课程设计的安排。
2015年开始,由于学科教学计划的调整,非经典计算课程由最初的20课时拓展为30课时,集中在本科三年级第三学期进行讲授,一共5周,每周6课时。课时安排上,除了增加教学内容,更加强了对学生的文献查阅和报告部分的考查。在论文报告环节,争取做到有目标、有指导、有结论、有总结。学生所做的报告除了在初始选题阶段要有区别之外,还要求有一定的文献查阅难度。从选题确定,到针对报告指出具体的问题,要求学生根据教师指出的问题进行进一步的思考和资料查阅,最后形成论文。这样的安排贯穿整个课程的全过程,学生的参与度获得了极大的提高。对于教师而言,在学期末总结学生所做的报告内容,并增加本门课的知识点覆盖程度,对教学也有比较大的促进作用。
2)课程考核方式上的设计。
非经典课程属于必修课程,在考核方式上除了提交论文外,也必须要有必要的考试环节。在考试环节中,主要考查学生对教师上课内容的理解。在具体授课中,教师从经典计算到非经典计算进行讲解,也从算法角度给出了非经典计算强大计算力带来的改变,既延续了经典算法课程中对算法的介绍和讨论方式,又对比了典型问题在经典算法和非经典算法中的不同解决方式。这样的授课内容作为对算法体系基本知识点的考查,以闭卷考试内容来设计,是十分合适的。课程延展部分的开放知识点由学生的论文及报告内容进行评分衡量。最后,我们将两个部分的成绩作为本门课程的最终成绩。
3)课程教材的选定。
[中图分类号] G434 [文献标志码] A
[作者简介] 张蕾(1980—),女,甘肃武威人。讲师,主要从事计算机教学及计算机网络理论研究工作。E-mail:。
一、 引 言
2006年3月,美国卡内基·梅隆大学计算机科学系主任周以真教授在美国计算机权威期刊《Communications of the ACM》杂志上给出了计算思维(Computational Thinking)的定义[1]。随即,计算思维成为国内外教育界及相关领域学者广泛关注的概念,计算思维和理论思维、实验思维一起成为推动人类文明进步和科技发展的三大支柱[2]。
因此,在教学的同时注重计算思维的培养以及基于计算思维的各种教学模式的研究成为了计算机教育者关注的焦点。2008年,美国国家计算机科学技术教学者协会(CSTA)了得到美国微软公司支持的《计算思维:一个所有课堂问题解决的工具》(Computational Thinking: A Problem Solving Tool For Every Classroom)的报告[3]。在软件工程课程中引入计算思维的关注点分离方法,并指出:作为最重要的计算思维原则之一,关注点分离是计算科学和软件工程在长期实践中确立的一项方法论原则;[4]2009年,董荣胜在《计算思维与计算机导论》一文中探讨了计算机导论课程的改革目标是以计算思维能力培养为核心[5];王挺等结合计算思维概念分析了计算思维在编译理论和技术发展中的作用,并结合编译课程教学中的知识点,探讨了教学中如何结合具体案例培养计算思维[6]。尽管如此,计算思维在具体课程教学过程中的培养仍处于摸索阶段,还没有一套完整科学的方法体系。
近年来,随着现代信息技术的迅猛发展,在教学领域中不断涌现出各种基于网络环境的新型教学模式。其中网络环境下的问题学习(Web Problem-Based Learning简称WPBL)教学模式,强调利用网络多媒体教室、校园网、互联网、教学平台、多媒体教学软件、网络课程等网络环境及资源将学习设置到复杂的、有意义的问题情境中,通过学习者合作解决真实性问题,来掌握隐含在问题中的科学知识,并形成解决问题的技能,最终完成知识构建[7]。当前,以问题为基础开展的学习和教学活动已经成为国外教学改革浪潮中的基本思路,并迅速拓展到教育、经济、管理、数学、建筑、法律及社会工作等专业领域[8];在国内,医学教育中已经逐步采用这种教学模式,其他教育领域也正开展相关探索研究[9]。
传统的WPBL教学模式并没有关注于计算思维能力的培养,本文对传统的WPBL教学模式进行了改进,使其更有利于计算思维能力的培养。首先对计算思维的内涵进行了概述,然后提出了面向计算思维的WPBL教学模式,并结合具体案例剖析了该教学模式的具体过程。该模式不仅对WPBL教学模式进行了进一步的研究和扩展,而且还在问题学习的过程中培养了学生使用计算思维方法分析解决问题的能力,同时,更有利于现代教育技术工作者进一步开展基于网络环境的新型教学模式的探讨和研究。
二、面向计算思维的WPBL教学模式
(一)计算思维
目前国际上广泛认同的计算思维定义来自周以真教授。他认为,计算思维是运用计算机科学的基础概念进行问题求解、系统设计,以及人类行为理解的涵盖计算机科学之广度的一系列思维活动[10]。典型的计算思维包括一系列广泛的计算机科学的思维方法:递归、抽象和分解、保护、冗余、容错、纠错和恢复,利用启发式推理来寻求解答,在不确定情况下的规划、学习和调度等。表1中对计算思维的概念进行了详细的解释:
(二)现有WPBL教学模式及存在的问题
基于李克东教授对教学模式的定义与分析[12],结合网络环境的特点,王超杰在《WPBL教学模式的构成要素分析》一文中将WPBL教学模式定义为:在现代教育思想、教学理论与学习理论的指导下,在网络化教学环境和教学资源的支持下,以问题为中心,教与学活动中各要素之间稳定的关系和活动进程结构形式。同时,提出WPBL教学模式的构成要素为问题情境、网络环境资源、现代教与学理论、教师及学生五部分[13]。因此,针对 WPBL教学模式可以建立如下数学模型:
式(1)中,W表示WPBL教学模式;F( )是一个过程函数;P表示问题情境,它是WPBL教学模式的起点及核心,教师创设问题情境,由问题引导整个学习的推进;E表示网络化环境资源,包含现代教学过程中以网络和计算机技术为支撑的信息化教学环境、教学系统和教学资源,如多媒体网站、教学管理平台、多媒体网络教室、多媒体教学软件、网络资源库等;T表示现代教与学理论,包括建构主义学习理论及发现学习理论;AT表示WPBL教学模式下教师的动作集;AS表示WPBL教学模式下学生的动作集。
在WPBL教学模式下,教师设置问题情境,并对教学过程进行整体的把握和指导。学生作为主体,开展一系列围绕问题情境的活动,从而完成整个课程教学过程。然而,随着教学改革的不断深入,传统WPBL教学模式没有考虑对学生计算思维能力的培养,只是通过对问题的分析解答完成教学目标的要求。因此,如何在网络环境下开展结合计算思维培养的问题学习是当前亟需解决的问题。
(三)面向计算思维的WPBL教学模式
1. 面向计算思维的WPBL教学模式理论基础
计算思维吸取了问题解决所采用的一般数学思维方法、系统设计与评估的一般工程思维方法以及复杂性、智能、心理、人类行为的理解等一般科学思维方法,它包括关注点分离(SoC)、利用启发式推理寻求解答、递归、抽象、自动化、仿真、嵌入、约简等方法[14]。本文提出的面向计算思维的WPBL教学模式是利用多媒体网站、网络教学平台、多媒体网络教室、多媒体教学软件等网络环境资源,结合计算思维能力培养,创设问题情境,通过问题学习过程使学生达到构建知识、发现规律,并使用计算思维解决问题的教学新模式。面向计算思维的WPBL教学模式可用如下数学模型表示:
2. 面向计算思维的WPBL教学模型
面向计算思维的WPBL教学模型如图1所示,在该模型中,教学活动是围绕问题情境展开的,教师利用网络教学平台控制课堂节奏,按照教学规律适当引导,根据问题情境层层推进,使学生通过对真实问题的分析与解答,不断学习新知识、积累新经验,并将计算思维逐步渗透到自身的知识体系。
面向计算思维的WPBL教学模式下,教师不再仅仅局限于用文字来描述问题,可以使用图片、动画、视频、音频等多媒体元素设计图文并茂、贴近生活的问题情境,以激发学生的学习兴趣。因此,教学活动开始前,教师首先应在对教材、教法熟悉的基础上,利用网络环境资源,从其积累的大量教学素材中筛选、设计出既体现知识点及教学内容,又能够引起学生兴趣、利于培养计算思维的问题。其次,教师还需通过教学管理平台查询学生相关信息,对学生学习背景及个体特征进行分析,针对学生情况进行适当的异质分组,并通过网络教学平台向各个小组问题系列。
三、面向计算思维的WBPL
教学模式案例分析
“VB程序设计”课程的教学目标是培养学生程序设计能力和创新能力,其核心是针对问题找到相应的算法。在传统教学模式中,教师引导学生分析解题步骤、写出算法,并通过这一过程培养学生的编程能力。而面向计算思维的WPBL教学模式,使学生通过对结合计算思维方法设置的问题情境的求解过程,不但掌握解决实际问题的程序设计方法,同时还将计算思维相关方法内化为自身技能,从而帮助学生更好地展开学习。对此,笔者将本文提出的面向计算思维的WPBL教学模式应用到“VB程序设计”课程教学中,针对一类问题,将教学过程分解为结合计算思维创设递进式问题情境和以问题引导教学两大步骤。第一步设计了五个递进问题:提出引例、求解过程抽象、算法优化、上机并对比算法效率和巩固练习,如图2所示;第二步以每个问题引发具体的教学活动。
(一) 结合计算思维创设递进式问题情境
创设结合计算思维的问题情境是面向计算思维的WPBL教学模式的核心,本例中(如图2所示)P1’是百元买百笔问题,作为引例是整个教学过程的起点,教师通过对本问题的讲解引出具体的计算思维方法。P2’结合了构造性思维方法,使学生通过解答本题可对构造性思维有较深刻的认识。P3’是如何将前面的算法进行优化,该问题结合了启发式推理方法。P4’是对两个算法进行效率测试,通过本题学生可以深刻地认识到计算思维方法中整体与细节的重要关系。P5’是学徒问题,该问题设计的目的是利用以上学习的计算思维方法,进行本题的求解,通过巩固练习实现计算思维的内化,达到教学目标。
(二) 提出引例,教师引导学生完成解题过程
P1’(引例):用百元买百笔。已知钢笔每支5元,圆珠笔每支3元,铅笔1元3支,用100元买100支笔,将所有可能的结果打印出来。
该过程教师起主导作用,教师动作集AT’包括:引导学生了解题目的来龙去脉,弄清哪些是已知量、需要求解什么内容,以及数据规模如何等;向学生讲授抽象、分解、模型及归化思想的定义及方法;利用网络教学平台跟踪学习者的学习活动;引导学生采用抽象和分解的方法将复杂问题简单化,要求学生利用良好的网络环境了解算法的表示方法,并通过小组协作用NS流程图表示本题的算法等。
学生动作集AS’包括:跟随教师的引导,对题目作深入细致的审题分析;多角度无遗漏地收集题目有效信息;根据教师讲授的抽象、分解、模型的定义及方法将问题进行分解简化,并抽象出已知信息和未知信息;在网络环境下查找相应的学习资料、利用BBS、Chat Room等网络交流平台开展系列讨论与交流等。
并依据问题模型M1,结合网络环境下查找的算法描述的具体方法,写出本题算法1——NS流程如图3所示。
(三) 学生抽象出程序设计求解一般过程
P2’:总结以上算法1设计过程,抽象出程序设计解决问题的一般步骤。
在解答本题的过程中,教师动作集AT’包括:引导学生了解构造性思维方法的概念及一般步骤,学生通过网络教学平台及网络资源库寻找更多构造性思维的实例以加深认识。
学生动作集AS’包括:通过网络教学平台回顾P1’解题过程;通过网络教学平台及网络资源库寻找构造性思维实例;在网络交流平台对构造性思维过程进行小组讨论,并强化模型M1的建立过程等。
通过回顾算法1的设计,学生已经对程序设计解决问题的一般步骤有了大体认识,只是没有构造性思维的概念,通过教师介绍和强化构造性思维的概念,以及在网络环境下查找相关信息及讨论交流过程,学生可确定构造性思维的四个步骤为:
1. 审题:了解题目的来龙去脉,确定输入、输出及数据规模等。
2. 建模:根据题目条件抽象出能够简洁地表达题目本质的数学模型。
3. 分析和解决模型:分析模型的正确性,如果模型正确,则设计算法解决模型。
4. 编程实现。
(四) 对算法1进行优化
P3’:算法能进一步优化吗?如果可以,如何改进算法?
在解决本问题的环节,教师动作集AT'包括:提示学生在网络环境下利用网络教学平台查询影响程序运行速度的因素;讲授计算思维中的启发式推理方法;学生通过网络教学平台查找启发式推理方法的相关内容,并提示学生利用启发式推理方法改进算法1。
学生动作集AS’包括:通过网络环境查找影响程序运行速度的相关资料;利用网络教学平台查找启发式推理的相关内容;小组成员通过BBS、Chat Room等网络交互平台进行小组系列讨论、利用启发式推理方法改进算法1等。
通过教师讲授及网络学习和讨论,学生发现利用启发式推理方法可以在搜索问题解时充分利用与问题域有关的启发式信息, 提高问题求解效率。因此,针对教师提出的问题P2’,协作小组在网络交流平台上展开讨论,使用启发式推理方法,缩小变量的取值范围。现实中要买到总共100支笔。
钢笔:1~19之间,不可能为20,否则就不能买圆珠笔和铅笔了;圆珠笔:1~32之间,不可能超过32,为32时已达到96元,还需要买钢笔和铅笔。
另外,根据在网络教学平台上查找到的影响程序运行速度的因素:循环嵌套重数、加减乘除次数、逻辑判断次数以及所选用的数据结构,考虑到算法1是三重循环,因此,可把该算法优化为一重循环,做数学上的进一步变换,基于数学模型M1的结构,修改变量的取值范围及循环条件,将公式(6)、(7)中的X看作常数,解方程组得到公式(8)、(9)如下:
由于学生已有算法1的经验,结合问题模型M2,学生可以快速地写出相对应的算法,算法2——NS流程,如图4所示。
(五)上机实验,对比算法效率
P4’:上机实验,对比两种算法的效率。
该问题仍然是围绕计算思维设计的,目的是使学生了解程序设计中常用的计算思维方法,正确认识和处理整体与细节的关系。
教师动作集AT’包括:学生小组成员互相协作,利用多媒体机房设备测试算法1及算法2的效率、督促、检查实验进度,为存在问题的学生提供帮助和指导;教师启发学生思考两个算法的区别等。
学生动作集AS’包括:小组讨论、任务划分、利用多媒体机房设备测试程序执行情况;使用网络资源库查找相关资料、分析运行结果;通过网络交互平台对实验数据展开讨论等。
经过实验,两个程序内循环执行次数及其他运算次数如表1所示。
对于同样复杂的问题,算法不同则程序运行的效率相差甚远。学生通过实验发现算法1内层循环体执行了19456次,其他运算次数均达到万次,而算法2的内循环体仅执行了4次,其他运算次数也远远少于算法1,两个算法的运行时间竟相差5000倍。因此,学生认识到,在程序设计过程中,注意变量取值范围、循环重数等细节问题,可以对程序起到“牵一发而动全身”的作用,虽然细节相对隐蔽,但如果处理不好常常会使程序运行效率有质的区别。
(六)重新提出问题,结合已掌握的计算思维方法解题
P5’:有一位学徒工资是三位数ABC元,小组内另外五位工人的工资恰好也是三位数(均高于学徒工资),分别为:ACB、BAC、BCA、CAB、CBA元,且这五位工人的工资之和等于3194元。请问该学徒工资是多少元?
面向计算思维的WPBL教学模式强调围绕问题情境完成知识的建构。通过以上问题的解决,学生已经对抽象、分解、构造性思维等程序设计过程中常用的计算思维方法有了深刻的认识。因此,要求学生使用以上计算思维方法分析、求解问题P5’,不但可以整理学生的思路,而且还可以起到巩固知识、总结反思、将计算思维内化为自身能力的作用。
通过问题P5’的练习,学生不但在网络环境下可自主运用问题情境中结合的计算思维方法解决相应的问题,同时还提高了利用网络检索、搜集、分析信息的能力,在潜移默化中实现了计算思维能力的培养。
四、教学效果分析
为了验证本文提出的基于计算思维的WPBL教学模式,特设计了如下教学实验:对一个教学班的学生随机分组为A组和B组。A组学生采用传统WPBL教学模式进行教学,B组学生采用基于计算思维的WPBL教学模式开展教学,之后采用一组相同题目对两个小组进行测试以评估其运用计算思维的解题能力, 测试结果见表2。
测试结果表明,采用面向计算思维的WPBL教学模式的分组在各个计算思维能力得分上均高于对照组。
五、总 结
本文基于现代教育技术理论与技术成果,结合“VB程序设计”案例对面向计算思维的WPBL教学模式进行了分析研究,该模式结合计算思维具体方法进行问题情境的设置,同时,围绕问题情境的一组问题展开学习过程,并在解决问题的过程中渗透计算思维的各种方法培养,最后通过教学实验,验证了该模式良好的教学效果。下一步,可以将该模式应用到更多课程的教学中,从而更好地将计算思维的培养作为学生素质教育的必要组成部分。
[参考文献]
[1] [14] putational Thinking[J].Communication of the ACM,2006,49(3):33~35.
[2] 周以真.计算思维[J].中国计算机学会通讯,2007,(11):26~28.
[3] putational Thinking:Aproblem-Solving Tool for Every Classroom[EB/OL]. [2013-4-6].http:///Resources/sub/Resource Files/ComputationalThinking.pdf.
[4] 何明昕.关注点分离在计算思维和软件工程中的方法论意义[J].计算机科学,2009,36(4):60~63.
[5] 董荣胜.计算思维与计算机导论[J].计算机科学,2009,(4):50~54.
[6] 王挺,李梦君,周会平.对编译原理课程教学中计算思维培养的探讨[J]. 计算机教育,2009,(11):11~14.
[7] Savery,J.R. & Duffy,T. M. Problem-Based Learning:An Instructional Model and Its Constructivist Framework[J].Educational Technology,1995,(9~10):31~38.
[8] 张建伟.基于问题式学习[J].教育研究与实验,2000,(3):55~60.
[9] 马红亮,杨冬.网络环境下PBL的模式研究[J].现代教育技术,2002,(3):17~21.
[10] Wing J M. Computational Thinking[J]. Communications of the ACM,2006,49(3):22~24.
【基金项目】宁夏回族自治区高等学校教育教学改革项目:《神经网络计算》专题研究型教学模式探索与实践(宁教高[2012]348号)。
【中图分类号】G633.67 【文献标识码】A 【文章编号】2095-3089(2014)01-0140-01
图论是组合数学和离散数学的重要组成部分。图论起源于著名的哥尼斯堡七桥问题[1-2]。它以图为研究对象,把研究的事物抽象成若干点,将事物间存在的关系用线来表示,如果两事物间存在关系,就用一条边将它们连接起来,经过上述方法所做的图形就是图论中的图。自然科学和社会科学中诸多领域的关系都可以用图论中的图来表示,对于这些问题建立相应模型之后再去研究往往能够得到良好的结果,故对于图论中图的研究就显得特别重要,得到了众多专家和学者的关注。
一、图论课程的教学现状
由于图论在许多领域有着重要的应用[3-4],许多大学都把图论作为一门专业课单独开设,作为数学、计算机、电子、管理等专业高年级本科生和研究生的必修或选修课。图论在教学过程中具有如下特点:
1.图论中基本概念、定理非常多,概念不易理解,定理证明又特别难,这就在一定程度上使教学枯燥难懂。
2.图论研究的许多问题都具有实际应用背景,但往往很难转化成图论模型,不容易求解,从而造成了学生对图论学习很有兴趣,但因为不能求解而产生厌学心理。
3.图论课程涉及的算法非常多,对于每个问题几乎都有不同的算法。例如最小生成树的求法就有克鲁斯克尔算法,管梅谷的破圈法、Prim算法等十几种算法,如果要求学生编程求解实际问题,那么对学生的算法分析能力以及程序设计能力就提出了很高的要求。
通过在本校讲授该课程发现学生并不满足于图论算法的证明和纸上求解,迫切需要掌握如何利用计算机来实现算法并求解实际问题。这就促使我们探讨图论课程的教学改革。
二、图论课程的教学改革
根据信息与计算科学专业人才培养要求以及图论课程的教学现状,提出如下教学改革措施。
1.建立课程群
任何一门课程都不是孤立的,总是存在一门或者若干门课程与它相关,因此很多高校通过建设课程群来构建完整的知识体系,优化课程安排,在较少的人力物力下达到最高的教学目标。图论课程的教学目标是培养学生算法分析、设计和实际问题的应用能力,而“程序设计”、“数据结构”、“算法分析设计”等课程也是培养学生的算法分析、设计能力,这和图论课程的教学目标是相同的。所以,可以将这些课组合在一起建立课程群。通过课程学习,学生不但掌握了丰富的图论知识,算法分析与设计能力也将会得到进一步巩固和加强。
2.做好教材建设,编写适合教学目标的图论讲义、教材
教材建设是任何一门课程建设的重中之重,教材主要包括教学中使用的教材或讲义、辅导教材等。为适应新的更高的教学目标编写课程讲义。具体教材改革如下:
(1)将目前各大高校普遍使用的图论教材中50%左右的定理证明略去,不再详细证明,仅对一些经典证明进行详细阐述,重点分析图论课程所涉及的算法思想。
(2)在课程课时有限的条件下,如何发掘学生的自学能力是教师要思考的问题。这就要求教师为学生提供实例较多的参考书籍。
(3)对同一问题采用不同的算法,分析所得结果的差异。重点讨论为什么会产生这种差异。
三、图论课程的教学方法
一种新的课程教学思路必须有一套新颖的、行之有效的教学方法与之配套,所以必须重视探索恰到好处的教学方法。
1.课堂教学
课堂教学是教学过程的重中之重,在教学中可以采取如下方法加强课堂教学效果:
(1)上好图论课程的第一次课。第一次课的教学效果往往会决定学生是否会对这门课程有兴趣,是否愿意认真学习这门课。对图论课程的第一次课,可以从一些有趣的实际问题入手,如哥尼斯堡七桥问题、中国旅行商问题、中国邮路问题、图的着色等。这些问题简单易懂,清晰明了,十分有趣。更主要的是,这些实际问题可以把图论中的主要研究内容串联在一起,从而让使学生对图论这门课程有直观的了解。
(2)加强课堂互动。图论的很多问题来源于现实世界的生产生活,在学生的校园学习生活中也能找到相应的例子。在课堂上,使学生成为课堂教学的主体,让学生在黑板上演示问题相应算法的求解步骤,这对学生理解算法思想和求解过程将起到重要作用。
(3)加强算法的分析对比实验。为了使学生对图论中的算法复杂度有直观认识,通常在分析完图论算法复杂度之后,对部分问题进行计算机仿真实验,通过反馈回来的算法运行时间来验证算法的复杂度。
2.实践教学
为了促进学生对图论的学习兴趣,要积极引导学生阅读论文和文献综述,为今后的专业发展夯实基础,在教学中要开展丰富的实践教学内容。这里讨论的实践教学不单指实验课。具体在实践教学中可以采取如下方法:
(1)在求解问题时,通过培养学生查阅文献的能力,指导学生阅读相关论文。
(2)图论中有许多至今仍没得到解决的问题或者是解决得不好的问题,国内外相关专家和学者对这些问题的研究一直没有中断,可以向学生介绍相关问题,一起探讨,培养学生产生浓厚的学习兴趣。
(3)在学习完一章或者一部分内容之后,可以对这些教学内容以小论文的形式提交作业,作为考试成绩的一部分。
四、结束语
通过对图论课程的一系列教学改革,提高了学生的学习热情,更好的实现了教学目标。如何更深层次的解决图论课程改革问题是进一步需要解决的问题。
参考文献:
[1]徐俊明. 图论及其应用[M]. 2 版. 合肥:中国科学技术大学出版社,2004.
[2]杜承铭. 本科应用型人才培养目标的选择、构建及实现[J]. 教育与职业,2006,(32):20-22.
[3]张宪超,陈国良,万颖瑜. 网络最大流问题研究进展[J]. 计算机研究与发展,2003,40(9):1281-1292.
计算思维是现代多学科人才应具有的基本素质,其研究已经逐渐引起国内外学者和教育界的高度关注[1]。虽然人们早已意识到计算思维的存在,但直到2006年,美国的Wing教授才明确提出了计算思维的概念,她认为,计算思维是“每个人都渴望具有的、能够学习和实际运用的具有普适性的思维方式和应用技巧,不仅仅是计算机专家才具备的能力[2]”。
我们从教学主体、教学内容、教学方法和教学评价四个方面开展改革与实践。具体包括:
1) 清晰地认识到教师和学生都是教学活动的主体,在现代信息技术支持下,二者之间的良好交互贯穿于教学活动中,是研究性教学不可缺少的条件,单纯强调或忽略任何一方都不会取得预期良好的教学效果,研究性教学的开展更无从谈起。
2) 充分地理解课程中的核心概念和经典算法在教学内容中的特殊地位,核心概念是重要思想、原则、方法和技术过程的集中体现,典型算法则反映了某一方面的内在规律和典型问题的本质内容,它们都具有方法论的性质和内容[3]。忽视核心概念和经典算法的学习,研究性教学的开展就缺少了实质内容的支撑。
3) 有效整合多种教学方法取得最好的教学效果,
针对不同的教学目标,分别采用任务驱动、整班教学与小组教学、多媒体与网络教学等多种教学方法。然而,单一的教学方法不能满足全部的课程教学任务,更不适合开展研究型教学。
4) 重视教学评价在教学质量中的重要作用,阶段性师生座谈为教学过程的不断改进提供了教学质量的保证,最终的小论文与答辩形式的考核凸显了研究性教学的特点,而不同层次的多种评价为研究性教学的考核提供了客观公平的基础。
1 教学主体的平等互动
为了在研究性教学中加强学生计算思维能力的培养,我们形成了以教授为主导,博士和硕士研究生共同研究、学习和辅导的多层次教学团队,多层次教学团队和本科生构成教学活动的两个主体,二者的平等互动为学生计算思维能力的培养提供了良好的环境。
平等互动的教学主体在教学过程中相互促进,具体表现在:对本科生而言,通过教授对算法课程的讲解,使其了解和接触到本课程相关的学科前沿问题;通过研究生的助教和课程辅导,使其借鉴研究生分析解决问题的思维方式和探索方式,有意识地关注自己计算思维的培养;通过与研究生的直接接触,使其了解研究生的生活和学习,为相互平等的交互打下良好
基金项目:国家自然科学基金项目(60970054,0773224)。
作者简介:卢俊岭,男,讲师,研究方向为无线传感器网络;王小明,男,教授,博士生导师,教育部本科教育指导委员会计算机科学与技术分委员会专家组成员,研究方向为无线传感器网络和安全普适计算技术;吴三斌,男,硕士研究生,研究方向为无线传感器网络。
的基础。对研究生而言,通过与本科生的交流、讨论和课程辅导,使其既加深自身的专业知识,又学习和研究教学理论,更有利于激发自身思维的活力,从而更好地开展学习和研究工作。
在“填鸭式”的教学模式和“唯考试与分数至上”的观念下,学生处于完全被动的学习状态,学习兴趣受到压抑,思维活跃度明显下降,在这种情形下,仅仅口号式地要求学生进行计算思维的培养是没有实际意义的。因此采取多种措施努力创造良好学习环境,强调师生交互:鼓励学生勇于提出自己的想法和思路,给出不同的问题解决方案,并善于抓住机会,帮助学生在计算思维训练过程中不断得到鼓励,提高自信心;提倡师生平等交流、互动,教学团队善于发现和捕捉学生思维活动的亮点并及时加以引导,鼓励学生勇于发现教师和教材的不足,促使两个教学主体在地位平等的意义下开展问题的讨论;利用师生座谈会和教授接待日活动与学生进行面对面地答疑解惑,拉近师生之间的距离;利用网络平台随时了解学生对课程的建议和想法,及时进行问题回复,增强学生积极参与学习的热情。
2 教学内容的精心选择
为了在课堂学习中加强学生计算思维的训练和培养,教学团队认真选择“算法设计与分析”中的核心概念和经典算法开展研究性教学,通过教学团队在授课时的引导和课外辅导,训练和强化学生在思考问题的过程中控制自己的思维过程。
教学团队在选择算法时注重不同类型算法的典型性,不强调教学内容求大求全,在讲授算法时重点讲解算法的整体思想,强化核心概念的学习和计算思维的训练,提醒学生注意从宏观上准确把握,而算法的某些具体细节则由学生自由实现。教学内容的选择既保持适当的灵活性,又有一定的难度,而这种难度是学生通过努力能够克服的,从而有利于激起学生的探索兴趣。同时,在每节课程内容的开始展示一句经典短句,对本节的核心思想进行总结概括,让学生细细体会计算思维在总结本节教学内容时的高度抽象。
经典算法和经典问题是密切关联的,通过对经典问题的分析,启发学生利用不同的算法求解,并进行比较。因此,教学团队将经典问题和经典算法按照“问题定义―问题抽象―数学模型―计算模型―算法设计、分析和优化―算法编码―实验仿真―分析改进”的渐进过程逐步学习,训练和培养学生的计算思维能力。计算思维能力不是凭空获得的,也不是漫无目的地寻找问题的答案,更不是凭运气和灵感就能获得。通过将课程的核心概念和经典算法融入到经典问题的求解,并将学习内容分解到上述各个阶段,这种教学内容的安排使学生通过多个具体算法和问题实例反复体会理解计算思维的概念和作用,有意识地重复训练和控制自己的思维过程,从而掌握计算思维能力在分析解决实际问题时的具体运用。
3 教学方法的多样化运用
为了在研究性教学中满足学生的多样化需求,更好地帮助学生训练计算思维能力,教学团队采取任务驱动教学、启发式教学、整班教学与小组教学、多媒体教学与网络教学等多种教学方法帮助学生理解和掌握算法的核心思想和实际应用,通过多种教学方法开展教学过程给学生多样化的选择,从而能够更好地帮助学生运用所学的算法知识来分析和解决问题。
任务驱动教学法是将算法设计与分析课程总目标分解为许多具体算法,通过完成具体算法的学习过程达到培养学生计算思维能力的目的。本课程的目标是以学生计算思维的培养为核心,在能正确分析算法复杂度的基础上,掌握计算机应用中经典的非数值算法的核心思想并能熟练运用它们来解决实际问题,最终提高学生分析问题、解决问题和评估问题的能力。分解的任务则相对具体,例如要求学生针对感兴趣的动态规划算法给出自己的学习研究成果,采用讲述小论文(报告)和答辩的形式进行汇报,要求问题定义表述清楚,算法设计描述适当,同时验证所给算法的有效性,分析算法的时空复杂度,并且实现算法,最后分析实验结果,给出结论。这样做的目的是,一方面,明确具体的算法,体现了计算思维的清晰性、逻辑性、层次性和创新性等特点,使学生感到有一定的压力和挑战性;另一方面,学生自主选择论文题目更有利于学生个性化的发挥,容易激发学生的学习兴趣,有利于计算思维的培养。同时,这样可使学生在研究性的学习中自己认识该课程的性质,自我体会与其他课程的不同。采用任务驱动教学法并不以学生掌握算法为最终目的,而是强调学生学习算法的研究学习过程,注重学生在这个过程中的收获,尤其是计算思维的训练与培养。
为了使教学方法更符合人类探知未知问题的一般规律,更好地培养学生的创造性思维,教学团队采用整班教学和小组教学相结合的教学方法,充分发挥演绎和归纳两种思维方式的特点。学习小组一般由6至8人组成,在学生自由组合的基础上,由班干部和教学团队根据学生的实际能力和学习水平综合考虑决定,避免出现组内成员同质的情形。例如,首先面向全班同学详细介绍汉诺塔问题的来源和背景,使学生充分了解该问题的产生过程;接着引导学生如何思考该问题,让学生自己探索递归算法,自己进行归纳和总结成果,强调学生反复独立思考,自己针对该问题提出递归算法的思维过程,有意识地控制和训练自己的思维活动,并在小组内讨论、对比和总结递归算法的思考过程,鼓励和启发学生探索非递归算法,充分发挥从具体到抽象的归纳方法在培养学生创造性思维中的积极作用;最后,结合汉诺塔问题和学科前沿问题讲授递归算法的核心思想,这时从抽象到具体的演绎有利于学生形成计算思维的逻辑性和条理性,也有利于提高学生将递归算法用于求解其他具体问题的实际应用能力。
在研究性教学和计算思维的培养过程中,恰当地将多媒体和网络等现代教育技术融入到教学方法中,产生事半功倍的效果。例如,为了充分发挥多媒体教学的优势,教学团队精心设计演示文档,利用课件动画演示盘子移动过程,帮助学生理解汉诺塔问题与递归算法的核心思想,有利于学生通过直观感受快速捕捉汉诺塔问题的本质,并积极思考递归算法的运用。为了帮助学生更好地进行自主学习和研究性学习,一方面,教学团队充分利用教学网站提供算法设计与分析的各种学习资源,包括课件、视频教学、习题资料和前沿问题等,供学生在线即时学习或下载自由学习;另一方面,通过课程的问题答疑网络平台,教学团队能够及时帮助和指导学生开展自主学习和研究性学习。这对于培养学生的自主学习和发现问题的能力以及独立思考和研究探索的品质具有显著的积极作用。
4 教学评价的多层次机制
为了客观评价学生的学习效果和学生计算思维能力培养的结果,教学团队采用个人、小组成员、组间成员和教学团队构成的多层次评价机制开展教学评价,同时通过阶段性师生座谈会开展过程性评价,及时改进教学过程,并利用课程小论文与学生答辩的形式作为最终评价,给出学生在本课程的最终成绩。多层次教学评价机制如图1所示。个人评价体现了学生对自我学习和自己计算思维能力的认可,小组评价体现了学生对相互启发和团队协作水平的认可,组间评价体现了学生对相互学习和相互竞争能力的认可,教学团队评价则体现了教学团队对学生在全体学生中的学习水平和计算思维能力的综合认可。这种评价机制会促使学生更注重计算思维和自主学习能力的培养,从而更有利于教学目标的实现。
图1 多层次教学评价机制
及时了解学生的学习状况和不断改进教学过程是取得良好教学效果的必要手段。教学团队既加强了课堂上与学生的互动,又可以通过网络平台和师生座谈的方式进行调查问卷,加强师生之间的交流。通过在宽松平等的环境下认真听取学生的问题和建议,及时地为同学们答疑解惑,并不断调整和改进教学过程。
针对大班教学难以发挥学生自主性的不足,教学团队提倡学生自主选择问题,参加学习小组开展研究型的学习。考虑到规范性和客观性,要求学生按照事先提供的论文或报告的模板提交研究成果,并在班级内参加答辩进行汇报,最终以个人和小组的共同表现综合评定。考虑到学生的学习能力存在差异的事实,教学团队提供的参考题目按照易、中和难划分三个级别,而且在小组学习中鼓励同一小组中的学生根据自身实际情况进行选择,保证题目难易度选择的正态分布。为了强化对学生计算思维的培养,提高学生的综合能力和综合素质,教学团队鼓励学生在小组中积极开展讨论和合作性研究,使素质突出的优秀学生可充分发挥自己的优势,同时学生之间相互协作、相互启发、共同提高,体现个性化培养和团队合作的理念,从而达到因材施教的效果。
5 结语
为了在算法设计与分析核心课程中培养学生的计算思维能力,本文强调从平等互动的教学主体、精心选择的教学内容、多样化的教学方法和多层次的教学评价等方面训练和培养学生的计算思维能力,在具体
的课堂教学中反复地加以强化,最终将计算思维能力转化成学生的认识论和方法论。通过与学生座谈、网站反馈信息和实际的考核结果发现,与之前相比,学生对该课程的研究对象和研究方法有了充分的认识,能够有意识地运用计算思维能力思考问题和解决问题,并且表现出乐于思考、善于思考和有意识控制思考过程的良好现象,具备了独立学习与研究的初步能力和良好的基础,这表明我们提出的计算思维培养模式框架在实际的核心课程中取得了预期的良好效果。
参考文献:
[1] 陈国良,董荣胜. 计算思维与大学计算机基础教育[J]. 中国大学教学,2011(1):7-11.
[2] Jeannette M Wing. Computational thinking[J]. Communications of the ACM,2006,49(3):33-35.
[3] 赵致琢. 计算科学导论[M]. 3版. 北京:科学出版社,2004:162-164.
Teaching Reform and Practice on Algorithm Design and Analysis Based on Computational Thinking
LU Junling, WANG Xiaoming, WU Sanbin
(College of Computer Science, Shaanxi Normal University, Xi’an 710062, China)
Abstract: Algorithm Design and Analysis is an important key course in computer major. A feasible framework for cultivating computational thinking of students is proposed to train systematically and cultivate intentionally the ability of computational thinking of students in the key course. The paper describes in detail the reform and exploration of the course from teaching subject, teaching content, teaching method and teaching evaluation.
Key words: computational thinking; research teaching; algorithm; teaching reform
(上接35页)
参考文献:
[1] 教育部高等学校计算机科学与技术教学指导委员会. 高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)[M]. 北京:高等教育出版社,2006:1-6.
[2] 乔林. 改革课程理念,强化程序设计方法培养[C]//大学计算机课程报告论坛论文集. 北京:高等教育出版社,2007:73-76.
[3] 陈渝. 程序设计实验WebQuest教学模式研究[C]//大学计算机课程报告论坛论文集. 北京:高等教育出版社,2007:152-154.
Reform Teaching System of Programming Foundation Based on Application Ability
CHEN Yu, CHEN Yuan