计算机学科的基本问题篇1
关键词:计算思维;艺术院校;计算思维;落地
计算思维是指运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。计算思维的概念最早是由麻省理工学院的seymourPapert教授在1996年提出的,而美国的卡内基?梅隆大学的周以真教授则清晰系统地阐述了计算思维,并将这一概念提到前台,使其广受关注。如今,计算思维概念在我国得到进一步的发展,计算思维的思想正逐步得到认同,大学生计算思维能力的培养也得到国内教育界的广泛重视。
值得注意的是,计算思维并非只适用于计算机专业领域,而是越来越多地对不同的学科领域产生影响。在信息化的大背景下,计算机学科与艺术学科的融合愈发紧密,不仅仅产生了计算机艺术这门新兴的交叉学科,同时也改变了艺术专业的学习方式和艺术创作方式,甚至改变了艺术工作者和艺术院校师生的思维方式。如何使计算思维在艺术院校落地,如何将计算思维引入到教学中,使艺术院校学生能够正确理解和认识计算思维,提高他们的计算思维能力,值得我们深入探讨和研究。
1计算思维的概念
周以真教授对计算思维的定义是:计算思维是运用计算机科学的基本概念进行问题求解、设计系统和理解人类的行为,其中涵盖了计算机科学之广度的一系列思维活动。再进一步来说,计算思维就是通过嵌入、约简、转化、仿真等方法,把一个看起来困难无从下手的问题重新阐释成一个人们知道如何解决的问题。
周以真教授同时指出,计算思维是每个人具备的基本技能,绝不仅仅属于计算机科学家。我们在对学生进行解析能力的培养时不仅需要让他们掌握算术、阅读、写作等技巧,还要让他们学会计算思维。她还认为,计算和计算机是促进计算思维传播的有效途径,计算思维在不久的将来会成为每个人所具备的技能组合,而不仅仅适用于科学家。
计算思维主要具有6个特征:(1)计算思维是一个概念,而不是单指程序。计算思维要求能够像计算机科学家那样在抽象的多个层次上进行思维,而非仅仅只要求做到计算机编程。(2)计算思维是根本的技能,而非刻板的技能。计算思维是每一个人为了能够在社会中做出贡献、发挥职能所必须掌握的,而并非简单的机械重复。(3)计算思维是人的思维,而不是计算机的思维。计算思维是人类解决问题采用的某种方式,它并非要求计算机代替人类思考,也并非要求人类像计算机那样思考。(4)计算思维是数学和工程思维的互补与融合。计算机学科从本质上既源于数学思维也源于工程思维,而数学和工程思维的互补与融合又很好地体现在理论、抽象、设计这3个学科形态层面上。(5)计算思维是一种思想、思维的方式,而不是人造物理实体。计算思维与人造的计算机设备不同,它看不见、摸不着,却以一种概念的形式影响人们求解问题、交流互动、管理日常生活的方式。(6)计算思维面向所有人,适用于所有领域。计算思维是一种普遍适用的思维方式,可以成为所有人解决问题的工具,融入各种人类活动。
2计算机艺术与计算思维
计算机艺术出现以前,有观点认为计算机科学家就只能运用抽象思维进行科学活动,而艺术家则只能运用形象思维进行艺术创作。事实上,正如诺贝尔获得者李政道教授所说:“科学与艺术是一枚硬币的两面,它们是不可分割的。它们都源于人类活动最高尚的部分,都追求深刻性、普遍性、永恒和富有意义。”科技发明和艺术创作作为人类在客观世界中活动的产物,都源于生活,彼此之间有着深层的共通性和关联性。随着社会进步和科技发展,科学开始追求概念美,艺术开始追求形象美,这令它们从不同的领域走到一起。而计算机艺术的产生与发展将使得科学与艺术的联系方式更为丰富和新颖,同时也将为各自的领域带来概念上的冲击和思维方式的革新。
现如今,计算机艺术作为科学与艺术相结合的一门新兴的交叉学科正被越来越多的人接受,众多艺术家也逐渐开始尝试使用计算机来进行艺术创作。计算机艺术的领域很宽泛,包括计算机绘画、书法模拟、计算机音乐创作、影视、舞蹈、广告设计、服装设计、图形设计、动画设计、工业产品和建筑造型设计等。目前,在计算机艺术中发展最活跃的当属计算机美术。计算机技术可以在美术设计的众多方面加以运用,例如在基础图案创作中的运用,在色彩调配中的运用,在立体设计中的运用等。计算机能够为传统美术提供更新颖的技术手段,绘画的技法和色彩的调配均可以借助计算机强有力的交互性操作完成;计算机音乐使得声音可以进行数字化处理,特殊的技术极大地提高了音效保真度,丰富了音乐表现力,使得音乐的质量和构造能力有了巨大的飞跃,配合计算机使用的软、硬件合成器可以生成各种仿真音效,使作曲者能够打破传统的创作思维模式,运用前所未有的创作方法编写出更为新颖、奇特的音乐作品;计算机技术对影视领域产生了巨大的影响,原始影片经过计算机数字化处理与加工,可以大大增强画面质量,增加丰富的数字特效,带来原始影片所不具备的视觉冲击,数字化的影像技术由正逐渐取代传统的影视制作。
随着计算机科学的发展、学科间的融合,计算机技术对其他学科产生深刻的影响,而在此过程中计算思维也已经在不知不觉间深入到其他学科之中,并正为众人使用:量子计算正改变着物理学家的思维方式;纳米计算正改变着化学家的思维方式;计算生物学正改变着生物学家的思维方式;计算博弈论正改变着经济学家的思维方式等。同样的,计算思维也正改变着艺术家的思维方式,影响着当今艺术创作者的创作观念和思维方式的转变与更新。
3计算思维在艺术院校存在的困难及认识上的误区
3.1计算思维对艺术类人才培养的重要性没有引起足够重视
计算思维的概念传入中国后很多人对计算思维的重要性认识不足,一种普遍的观点是:计算思维只是一种计算机应用能力,与其他专业的关系并不密切。事实上,计算思维是人类科学思维活动所固有的组成部分,是解决问题的一种通用方法,作为合格的高校大学生,应当具备计算思维的基本技能,艺术类学生也不例外;另一方面,随着艺术类学科的发展和转型,其与计算机学科的融合日益紧密,计算思维也影响着艺术创作者的思维方式,艺术类高校应该对艺术类学生的计算思维能力培养引起重视。然而目前的现状却是:大部分艺术院校仅将计算机作为一种工具,甚至认为计算机课程可有可无,没有深入研究计算思维在学生专业学习中的作用,更不要说培养计算思维能力了。
3.2对计算思维融入教学存在认识上的误区
计算思维的重要性逐渐被各大高校接受,部分高校甚至把“计算思维能力的培养”作为计算机基础教学的核心任务,然而由于经验不足,对计算思维在教学上的应用只能是摸着石头过河,也存在着一些认识上的误区,这些误区在艺术高校也普遍存在。例如:没有认识到计算思维是已存在的思维活动,是每个人都具备的一种技能,错认为只有计算机专业的学生要着重培养计算思维能力;没有认识到计算思维能力培养是一个长期的、潜移默化的过程,认为几节课就能够实现培养计算思维能力的目标;将计算思维能力培养的方式、方法看得太过简单,认为只要在计算机基础课程中使用了某种计算机编程语言,或是在课程中添加了有关程序设计、数据结构及算法实现等内容,就是计算思维;对计算思维认识不够深,研究不够充分,认为要实现计算思维能力的培养,就必须要开设程序设计类课程,也只能通过这一种方法,忽视了其他的学习途径。
3.3艺术院校学生计算机基础薄弱
由计算思维的概念可知,计算思维是一系列的思维活动,而这一系列的思维活动是以计算机科学的基础概念为依托的,因此,进行计算思维能力的培养,基础的计算机能力是必不可少的。然而,在艺术院校中,除了与计算机密切相关的专业外,大部分学生的计算机水平不高。笔者在本校从事计算机基础教学,教授过各个专业的学生,在此过程中发现,有些学生在高中时很少接触计算机,有些从未系统地学习过计算机,有些甚至连最基本的常规操作都难以进行。由于基本的计算机知识的缺失,让他们在大学算机基础课程的学习过程中感到困难重重,更不要说计算机编程、数据结构、多媒体等类型的课程。这种现状使得艺术类学生的计算思维能力培养更难以进行。
3.4缺乏合适的教学方法和手段
在艺术院校中,大部分学校开设了计算机基础及相关课程,但这类课程往往局限于概念、技术与应用。基于这样的教学目的,在教学过程中,教师所采用的教学方法和手段也会只侧重于基础概念的讲授、软件的基本操作等,这样做或许可以帮助学生掌握某一种软件的使用方法,却忽视了思维的过程。以Photoshop这门课为例,教师往往按照软件的菜单功能按部就班进行讲解,认为只要将所有功能的操作或概念介绍一遍就算完成了这门课程的教学任务。殊不知了解软件功能到利用软件设计出优秀的作品还有很大距离。现有的教学方法没有引导学生进行思考,无法帮助学生提高计算思维能力。
4计算思维如何在艺术院校实现的几点思考
4.1分层教学、多样化教学
计算思维能力的培养不可能一蹴而就,而是循序渐进的过程。艺术院校的学生通常计算机能力比较薄弱,更应该从基础着手,再逐步实现计算思维能力的培养。如果在授课的开始就直接给学生开设难度较大的程序设计、数据结构等课程显然是不合适的,学生难以理解课程内容,兴趣缺失,学习效果自然不好。计算机类课程的开设可按照几个层次逐渐展开:首先普及计算机文化、熟悉计算机基础概念;然后培养专业应用能力,帮助学生熟知计算机在各自学科中的应用;在前面两部分内容中融入计算思维能力的训练。而不同的专业也可以根据自身培养目标,科学制订本专业的计算机科目教学要求,做到层次递进,有所侧重,通过分层教学,让学生在潜移默化中掌握计算思维的技能。
艺术学院校的专业类别相差很大,各个专业有不同的培养目标和不同的应用需求,同时,不同专业的学生计算机能力差别也非常大,因此,要尽量根据学生的水平及能力安排教学班级、组织教学内容。要培养学生的计算思维能力,对开设的计算机类课程需要满足多样化的要求。多样化首先是指内容和难度的多样化,即针对不同的专业、学生不同的需求开设内容、难度不同的课程。其次是课程的多样化,即在开设一门计算机基础课的基础上,开设一系列的计算机类相关课程。针对艺术类学生的特点,此类课程不一定必须是程序设计、数据结构这种明显打上计算机专业标签的科目,而可以根据不同的专业定制与计算机学科融合的交叉科目。
4.2采用合适的教学方式方法和手段
在计算思维能力的培养中,选择合适的教学方法也是至关重要的。大多数艺术院校的学生计算机理论基础比较薄弱,某些专业与计算机的相关性不大,如果直接向血色灌输枯燥的计算机理论知识,会让学生失去学习的兴趣和信心,因此,培养艺术院校学生的计算思维能力首先必须提高学生的学习兴趣,例如在教学过程中可以引入贴近学生日常生活的例子,通过合适的案例引导学生利用计算思维的思想去理解、分析专业问题;其次,为了使计算思维的学习能与学生自身专业融合,应当抽取出与所学专业相关而易于理解的问题,然后进行“简约”;同时,还可通过画出问题分析流程图的方式将问题进行细化,这样既可以帮助学生理解也易于分析问题的本质。通过不同的教学方法和手段逐步加深学生对计算思维的认识和理解,进而实现艺术学科问题到计算学科问题的转换。
以多媒体类课程为例,我校学生的社会实践活动非常丰富,为数不少的学生都参与过艺术表演活动或大型赛事的采编和播出工作。教师完全可以将这些案例引入课堂,让学生实际进行视频、音频录制,学习如何进行多媒体文件的压缩、类型转换以及多媒体软件的使用等,在具体操作过程中帮助学生掌握多媒体技术。同时,教师也可以准备一些水平较高的获奖作品,与学生自己制作的作品进行比对,分析学生作品的不足之处,引导学生自行思考:自己的作品和获奖作品的差距在哪里?如何改进自己的作品?为什么改进后会有更好的结果?这种案例加启发思考式的教学方法既能够帮助学生更为扎实的掌握理论技术和软件的使用,也可以让学生在日后遇到新的多媒体应用问题时可以举一反三,运用计算思维能力解决实际问题。
当然,在教学方法的选择上,以上列出的几种都不是唯一的可选项,只要能够突出实践能力、激发学生思维活动的教学方法和手段都值得尝试。通过教学方法的改革,加强对问题求解、设计与实现模型的学习与训练,向学生展现计算思维的魅力和基本思想方法。
4.3艺术学科与计算机学科融合,在教学中引入跨学科的元素
计算机学科的基本问题篇2
关键词:计算机思维;数据结构;实践教学
中图分类号:G642文献标识码:A文章编号:1009-3044(2016)10-0152-02
1计算思维
2006年3月,美国卡内基?梅隆大学的周以真教授在美国计算机权威杂志ACM上发表并定义了计算思维(ComputationalThinking)。周教授指出,计算思维是运用计算机科学的基础概念进行问题求解、系统设计,以及人类行为理解的涵盖计算机科学之广度的一系列思维活动。[1]计算思维的提出,引起了美国教育界以及科学界的广泛关注,直接促成了“大学计算教育振兴的途径”计划,以及更为具体的以“计算思维为核心的课程改革”。
计算思维的重要作用同样引起了国内学者和计算机教育专家的关注,国防科技大学的朱亚宗教授站在人文历史的基础之上,将计算思维归类为三大科学思维(实验思维、理论思维、计算思维)之一。[2]2010年,“九校联盟(C9)计算机基础课程研讨会”上,了《九校联盟(C9)计算机基础教学发展战略联合声明》,确定了以计算思维为核心的计算机基础课程的教学改革。随后,一些计算机教育者开始在“计算机导论”、“程序设计”、“离散数学”等课程的教学中广泛探讨计算思维的应用和实践。
2《数据结构》课程教学中存在的问题
2.1先导课程的基础不够扎实
《C/C++语言程序设计》、《离散数学》等课程是《数据结构》学习的先导课程,对程序设计基础的掌握程度会直接影响学生对《数据结构》理论知识的学习和实验实践训练。目前计算机专业的教学计划中通常会把《C/C++语言程序设计》安排在大学第一学期,与《数据结构》课程开设距离1-2个学期,这造成了学生在学习《数据结构》时对《C/C++语言程序设计》的前导知识已经淡忘模糊,指针、结构体问题甚至会出现知识空白;同时,《C/C++语言程序设计》也是实践性较强的课程,前期学习往往实验训练不足,学生动手能力普遍较差,这些情况对《数据结构》课程的实践教学带来很大困难。
2.2课程知识理论性抽象性强
《数据结构》课程主要讨论现实世界中数据的各种逻辑结构,在计算机中的存储结构以及进行各种非数值运算的算法。目的是使学生掌握数据组织、存储和处理的常用方法以及算法设计的基本方法。《数据结构》是许多后续专业课程的基础,课程本身涉及的概念多、内容广,理论性抽象性比较强,学生在学习理解上普遍存在一定的困难。
2.3课程实践环节薄弱
实践是《数据结构》课程的重要环节,培养学生设计开发复杂高效程序的技能是课程的教学要求之一。具体内容包括:掌握数据组织、存储和处理的常用方法;对经典算法进行编码调试;具备编写较大型程序的能力。实际教学中,课时不足尤其是实验课时不足,造成了课程的实践环节较为薄弱,学生在课程学习后往往反映:“课堂内容能够掌握,但上机编程时困难重重无从下手”。
3计算思维与数据结构
周以真教授将计算思维的特征总结为:概念化,不是程序化;根本的,不是刻板的技能;是人的,不是计算机的思维方式;是数学和工程思维的互补与融合;是思想,不是人造物;面向所有人,所有地方。[3]同时,周教授也阐述了几种具体的计算思维方法:通过约简、嵌入、转化、仿真,把困难的问题阐释成知道问题怎样解决;利用递归思维、并行处理,把代码译成数据,又把数据译成代码;利用抽象和分解来控制庞杂的任务或巨大复杂系统;基于关注分离的方法(SoC方法);按照预防、保护及通过冗余、容错、纠错的方式,从最坏情况进行系统的恢复;利用启发式推理寻求解答;利用海量数据来加快计算等。这些阐述不仅扩散了计算思维的原理,也为我们提供了将来的发展和培养方向。
在国内,桂林电子科技大学董荣胜教授以“思想与方法”替代“基础概念”更改了周以真教授的定义。董教授指出,“计算思维”是从学科思维层面直接讨论学科的根本问题与学科的思维方式,而“计算机方法论”则是从方法论的角度讨论学科的根本问题和学科形态,二者的研究互补性很强,相互促进。
计算思维的核心之一是“抽象”,要求在多个层次上抽象进行思维,进而实现问题求解,这个过程具体到一门课程,最适合的内容就是“数据结构和算法描述”。《数据结构》是计算机专业非常重要的一门专业基础课,主要研究数据之间的逻辑结构、存储结构和对数据的各种基本操作。在《数据结构》的学习中,我们经历这样一种过程:应用数据抽象,建立数据对象模型;应用问题抽象,建立问题的数学模型;应用计算机,实现问题求解的算法。这与计算思维的本质特征“抽象”和“自动化”是相契合的,所以在《数据结构》课程中贯穿计算思维的思想,构建一个基于计算思维的《数据结构》教学体系是可行的,也符合董荣胜教授提出的计算思维与计算机方法论相互补充相互促进。[4]
4结合计算思维训练的《数据结构》教学改革实例
在实际教学中我们发现,大多计算机专业的学生在完成了一门或若干门课程的学习后获得的是零散的概念,对学科知识难以做到系统的理解,甚至直到毕业仍无法建立起利用计算机求解问题的思路。针对这个问题我们曾对部分大三、大四年级学生做过调查,在问到“影响你专业课学习的主要原因是什么”时,82.5%的学生选择了“自己对计算机学科的核心问题,学科涉及的数学方法、系统方法的认识和掌握”,其他学生选择了“自己的动手能力”。计算思维的提出正是要求我们在教学中重视学科所蕴含的思想和方法,为计算机专业课的教学改革提供了思路。
计算机学科的基本问题篇3
【关键词】课程改革;计算思维;任务驱动
0引言
1989年,ACM攻关组提交了著名的“计算作为一门学科”报告,报告认为,“计算机导论”课程要培养学生面向科学的思维能力,是学生领会学科的力量,以及从事本学科工作的价值所在[1]。2001年,CC2001将计算机学科划分为计算机科学、计算机工程、软件工程、信息工程、信息技术五个分支[2]。2005年,CC2005进一步指出,该课程的关键是课程的结构设计问题,ACM和IEEE-CS分别为这五个分支学科设计了相对独立的课程体系,要求“计算机导论”课程应该以面向计算学科的思维能力,即计算思维能力的培养为核心,为学生的大学课程打好基础[3]。2002年中国计算机学会教育委员会和全国高等学校计算机教育研究会推出了《中国计算机科学与技术学科教程2002》(ChinaComputingCurricula2002,简称CCC2002),阐明了计算机科学与技术学科的教育思想,对学科的定义、学科方法论、学科知识体系和内容、教学计划制定以及课程组织方法、毕业生应具备的能力等方面做了系统全面设计,并将计算机科学与技术学科的知识体系结构组织成知识领域、知识单元和知识点三个层次,其中知识领域是知识体系结构的最高层次,共14个领域,下设132个知识单元[4]。
目前,我国国内的学科分支及课程体系一直沿用CC2005和CCC2002,“计算机导论”设计5个知识领域,涵盖12个核心知识单元,分别是信息技术史、程序设计语言概论、软件工具和环境、语言翻译简介、人机交互基础、软件演化、通信与网络、信息技术的社会环境、职业责任和道德责任、基于计算机的系统的风险和责任、知识产权、隐私权和公民自由。
“计算机导论”是一门计算机专业的引导性课程,开设在学生第一学年的第一个学期。本课程教学目标是:通过本课程学习,要求学生了解计算机科学的基本概念、计算机系统的组成、数据表示方法学和数据加工表示方法等,最终对本专业各个学科的核心内容、各个学科的关联有全面、概要的认识,为后续的专业学习奠定入门的基础。同时,“计算机导论”该课程也是一次对学生具体而详尽的专业思想教育,对学生的专业学习具有启蒙作用。因此,依托学科课程体系,对《计算机导论》课程进行改革,优化课程内容、打造精英团队、改进教学方法,培养学生计算思维和实践能力非常重要。
1课程教学存在的问题
从计算机学科体系发展背景、计算机导论课程大纲设计、计算机专业的计算机导论实际教学效果等方面分析,计算机导论课程建设主要存在以下问题。
1.1课程意义认识不足
随着中学阶段信息技术课程的普及,学生对网络资源获取日益增多的社会环境下,一些学生和教师对“计算机导论”课程的地位认识不足。学生将“计算机导论”课程与“计算机应用基础”课程混为一谈,在教学管理过程中,学生对大量的专业名词感觉枯燥,理解困难,学生的学习积极性不高,处于被动接受状态,缺乏自主学习和创新意识。学生学完后感觉不到这门课程的意义,没有起到为后续课程打基础的作用。
1.2教师对计算机导论课程内容理解不够,教学内容简单化
“计算机导论”课程信息量大,教师很难做到每个章节分配合理,重难点掌握恰当,没有潜移默化的培养学生的学习思维,不能很好地帮助学生系统的认识计算机学科体系结构。教师在面临繁多的学科体系要求下,很难贯彻执行计算机学科体系的核心思想,在教学内容上只是对核心内容进行简化和压缩,生搬硬套教学大纲,完成基本的教学要求。
1.3教学方式陈旧
在信息化高速发展的环境下,学生习惯了依赖网络、依赖手机电脑,这时,教师还采用传统的教学方法,只是简单的将黑板的“人灌”简单的改成了PPT的“电灌”,学生还是被动地接受,课堂气氛沉闷,学生没有激情,教学效果不理想。
2课程改革的思路
2.1依托学科课程体系,以培养学生计算思维为向导构建课程的教学大纲
计算思维是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。基于计算思维的教学,是指通过建立一种合适的体系,以培养创新型人才为目标,激励、引导和帮助学生主动发现问题、分析问题和解决问题。在课程教学是以教师为主导、学生为主体的“探究”过程,在教学过程中运用计算思维的方法获取知识、训练技能、培养能力、发展个性[5]。
2006年3月,美国卡内基?梅隆大学计算机科学系主任周以真(JeannetteM.Wing)教授在美国计算机权威期刊CommunicationsoftheACM杂志上给出,并定义的计算思维(ComputationalThinking)。周教授认为:计算思维是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。2008年6月,ACM在网上公布的对CS2001(CC2001)进行中期审查的报告(CS2001InterimReview)(草案),开始将美国卡内基?梅隆大学计算机科学系主任周以真(JeannetteM.Wing)教授倡导的“计算思维”与“计算机导论”课程绑定在一起,并明确要求该课程讲授计算思维的本质。根据ACM和IEEE-CS的要求,“计算机导论”课程应该以面向计算学科的思维能力,即计算思维能力的培养为核心,为学生将来的大学课程打好基础[6]。
“计算机导论”在课程大纲设计中,依托学科课程体系,以培养学生计算思维为向导,力求以严密的方式将学生引入计算学科各个富有挑战性的领域之中,为学生正确认知计算学科提供方法,为学生今后深入学习计算机的课程做铺垫。下面列出“计算机导论”课程教学大纲。如表1所示。
如表1所述,“计算机导论”课程的课程大纲中包含了学科的宏大视野和学科各分支领域具有的共性的核心概念、数学方法、系统科学方法、社会与问题,要求学生理解计算思维,认识学科形态,培养专业基础素质。课程大纲体现了在不断地提出问题、解决问题的过程中,加强学生运用计算思维进行问题求解能力的训练以及逻辑思维能力的培养,结合专业特色,将计算思维应用到各个专业问题的解决方法中去。
2.2教学内容模块化,以培养学生实践能力为目的改变教学表现形式
依据3.1中构建的课程大纲,将“计算机导论”的所有教学内容分模块以不同的课堂形式表现。下面列出分模块的“计算机导论”教学内容及教学表现形式。如表2所示。
2.3打造可持续发展、创新型的教学团队
“计算机导论”需要解决的主要问题是让学生了解学科发展历史,学科最新发展方向,职业基本行为规范和学科所要学习的内容,因此需要教师能够融会贯通的对“计算机导论”所设计的计算机学科知识进行系统的讲解,并能够跟踪学科的科研动态,了解目前的重大科研成果,通过对前沿科学内容的讲解,开拓学生的视野。因此,“计算机导论”教师团队的教师必须教学经验丰富,“计算机导论”中所涉及的知识映射的单门课程需要有循环教学2-3遍的教学经验,能够非常清楚后续各课程之间的衔接关系,准确地把握各类课程的引导性内容和重要性内容,在教学过程中潜移默化的培养学生的计算思维能力。
教学团队由教学经验丰富的教学型专业人员担任课程负责人,以中、青年骨干教师为主体,形成由教授、副教授、讲师、助教组成梯次合理的队伍。教学团队中有教学效果优秀、教学经验丰富的名师。
课程负责人熟悉各个教学环节教育改革趋势,能够协调和凝聚团队成员的力量,实现优势互补,指导团队成员在课程建设、教材建设、教学内容、教学方法和手段或实验、实践教学等方面的教育教学改革中取得成果。
“计算机导论”教师团队的教师要求掌握各种课堂技巧,根据不同的章节内容特色,灵活运用各种教学方法,用通俗易懂的语言描述繁杂的专业内容,调动课堂氛围,激发学生学习“计算机导论”的兴趣,让学生正确认识本门课程的重要性。
教学团队成员要求具有创新性思维,在间教学过程中进行专业学术探讨与论争、教学方法交流、教学经验沟通等,产生教学实践改革的创新思考,并在教学实践中逐渐实施,形成通过教学团队成员的创新精神来促进课程发展和培养具有创新意识教师的良性循环。
2.4合理利用网络资源,创造交互式课堂
根据上文所描述的模块化的教学内容和教学形式,在课堂教学过程中,以学生为中心,采用理论、实践(2:1)的形式组织课堂教学。理论课堂以讲解基本理论知识为重点,帮助学生运用学科数学思想梳清整个学科脉络,建立系统化的认知模型。实践课堂以“任务驱动”的形式组织教学,以团队小组的形式进行考核。课堂教学方式是:①教师引导组长运用关注点的计算思维指导组内的分工,将一个复杂的题目演变成一系列的子模块;②各组员定期交流各自完成的情况,对于过程中遇到的问题;③教师引导学生运用计算思维的方法进行抽象、分析;④通过网络等各种途径进行自主检索、探究、思考、讨论;⑤最终形成问题的求解思路;⑥在学生完成任务后,教师引导学生进行知识的归纳和总结,并演示、讲解和答辩相结合进行总结评价,加深学生对知识体系的理解。通过这种课堂组织方式,激发学生的求知欲,改变学生由被动学习为主动获取知识,提高学生的学习主动性。
随着互联网的普及和学生对计算机技术的应用,学生可以通过互联网去使用优质的教育资源,不再单纯地依赖授课老师去教授知识。而课堂和老师的角色则发生了变化。老师更多的责任是去理解学生的问题和引导学生去运用知识。1/3的时间课程教学中,除去需要用实验验证计算机学科中的一些核心概念和学科形态外,如:计算机的体系结构在最新的计算机产品中的应用问题,第三次数学危机,职业道德,计算机未来的形态等问题均可以采用“任务驱动”的形式授课。学生需要课前根据老师布置的范围了解和学习相关的知识,形成小组总结性文字,老师需要根据学生的实际水平和课前学习效果组织课堂讨论,引导学生计算思维的方式构建学科脉络,拓展学科视野。
理论教学与任务驱动实践教学有机结合,充分调动了学生的学习积极性,促进了学对知识的理解,训练了学生的计算思维,培养了学生的创造力。
3小结
论文通过对“计算机导论”课程的课程大纲梳理、教学团队建设、教学方法改革,在当前“计算机导论”教学中注入了新的思路,体现了以培养学生实践能力的教育思想。
【参考文献】
[1]DenningPJ,etal.Computingasadiscipline.CommunicationsoftheACM,1989,32(1)[J].
[2]ACM/IEEECurriculum2001TaskForce.ComputingCurricula2001,ComputerScience.IEEEComputerSocietyPressandACMPress,2001[J].
[3]TheJoinTaskForce.ComputingCurricula2005.TheOverviewReport.AcooperativeprojectofACM,AIS,andIEEE-CS.Sept2005[J].
[4]中国计算机科学与技术学科教程2002研究组.中国计算机科学与技术学科教程[M].北京:清华大学出版社,2012.
计算机学科的基本问题篇4
关键词:非经典计算;算法设计与分析;智能科学与技术
1背景
智能科学与技术是人工智能方向的重点交叉学科,是一个包含了认知科学、脑科学、计算机科学的新兴学科。按照教育部学科专业目录,智能科学与技术是一级学科计算机科学与技术下的二级学科。如何在4年的本科教学过程中,既立足于计算机学科内容,又突出智能专业的特点,体现该专业区别于计算机科学专业的特色,培养一流的智能人才,是众多智能专业积极探索的问题。
本着帮助学生建立宽广厚实的知识基础,使学生将来能向本专业任何一个分支方向发展,并能掌握本学科发展的最新动态和发展趋势,深刻领会本学科与其他相关学科区别的目标,厦门大学智能科学与技术系于2012年合理调整了专业培养方案,制定了一套突出专业特色和个性的教学大纲,课程体系分为学科通修课程、专业必修课程、专业选修课程。其中,专业必修课程细分为智能基础类课程、软件理论类课程及硬件基础类课程3个不同类别。在智能基础类课程中,开设非经典计算课程。该课程是厦门大学智能科学与设计系最具特色的课程。
该课程以软件理论类课程算法设计与分析为先导课程,在本科三年级的第一学期先讲授算法知识,在同一学年度第三学期讲授非经典计算的内容。教师首先介绍经典算法设计与分析中的各种传统算法,借由经典算法发展过程中遇到的困境问题引出非经典计算的内容,前后呼应,有助于学生在智能计算上获得完整的系统学习。
2非经典计算在智能科学与技术专业本科教学算法体系中的地位
算法设计是智能科学与技术专业中的核心内容。本科专业4年的专业教学计划由4门核心课程构成算法体系的主线,包括高级语言程序设计(本科一年级学科通修课程)、数据结构(本科二年级方向必修课程)、算法设计与分析(本科三年级方向必修课程)、非经典计算(本科三年级方向限选课程)。这4门课程的教学内容和组织结构完整地构成了算法体系结构。以图灵奖获得者、pascal之父NiklausWirth提出的著名公式为参照,即Algorithm+DataStructures=Programs,算法体系以培训计算机方向学生掌握编程能力,独立完成分析问题、设计方案、解决问题的综合能力为主要目标;在这个体系中,程序语言是基础,数据结构是内涵,算法是框架。
在算法体系中,这4门课程以循序渐进的方式展开,注重对学生算法思维的培训。
(1)高级语言程序设计讲授的是c语言程序设计,通过对C语言的详细介绍,让学生掌握程序设计方法和编程技巧。作为初始启蒙课程,选择C语言作为程序教学语言,是因为C语言的使用广泛,拥有严格完整的语法结构,适合教学。
(2)数据结构重点讲授各种常用的数据表示逻辑结构、存储结构及其基本的运算操作,并介绍相关算法及效率分析。教师通过在一年级对包括C语言在内的其他程序设计过程的训练,加人对数据结构中各种数据的逻辑、存储结构的表示和运算操作,从数据结构的角度阐述典型算法,并简单介绍算法的效率分析,这是对程序设计训练的进阶内容。
(3)算法设计和分析主要介绍算法设计与分析的基本方法以及算法复杂性理论基础。我们在本科三年级引入算法设计与分析课程,从算法的抽象角度总结和归纳各种算法思想,包括递归与分治法、贪心法、动态规划法、回溯法、分支定界法、高级图论算法、线性规划算法等,最后阐述算法复杂性的分析方法、NP完全性理论基础等计算复杂性的基本知识及完备性证明概要,重点阐述算法思想,从复杂性角度比较和分析不同的算法。上述(1)、(2)和(3)的内容构成了计算机学科通用算法体系的教学过程。
(4)非经典计算主要讨论何为计算的本质以及经典计算在计算能力上遇到的困境,以此为契机讨论自然计算――生物计算、集群计算、量子计算等内容。算法设计和分析的最后一个章节是对算法复杂性的分析方法及NP完全性理论基础的介绍,不可避免地会讨论到现代电子数字计算机体系在计算能力上的瓶颈以及由NP完全问题(Non-deterministicPolynomial),号称世界七大数学难题之一的经典问题,引出对经典计算机体系的深层思考,进一步引导学生思考如何解决计算能力的瓶颈问题。这是教师设计非经典计算课程的出发点,也是对算法体系更完整的补充和更深层次的探讨。
此外,我们还需要对授课学期选择进行考虑。厦门大学实行三学期制度,在第三学期内开设的课程大多是实践类课程及前沿技术介绍课程。在本科三年级的小学期阶段,学生基本完成了智能专业大部分必修课程的学习,拥有了一定的计算机基础和学科素养。这时,依赖学生已经具有的数据结构与算法的基本知识,可以将学生的学习引向如何理解计算的本质;再从计算本质出发,由易到难,介绍采用非计算机的不同计算媒介和方法,例如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)课程教材的选定。
由于本门课程是厦门大学智能系的特色课程,所以国内并没有合适的教材作为授课使用。在积累了几年的教学经验后,我们准备着手进行教材的编写。如何选定更加合理的专题、更为广泛而前沿的知识,这关系到智能专业对这门课和教材的全局考量。
计算机学科的基本问题篇5
【关键词】计算机图形学;教学理念;实践教学
一、计算机图形学课程特点
计算机图形学是研究如何利用计算机算法来生成、处理和显示图形的一门学科[1]。目前,计算机图形学已经成为计算机学科中发展最活跃、应用最广泛的分支之一,成为许多计算机从业人员的必备素质之一,也是本校信息与计算科学专业开设多年的一门专业选修课程。
计算机图形学综合性比较强,涉及内容和应用领域比较广泛,该课程主要讲授计算机图形中最基本、最广泛应用的理论和方法,包括基本图形的扫描转换、多边形填充、二维变换和裁剪、三维变换和投影、自由曲线和曲面等计算机图形学基本理论和算法等;另一方面,学好计算机图形学对高等数学、线性代数、解析几何等基础数学有较高的要求,其先修课程还包括数据结构、计算机语言(如C++程序设计)等。计算机图形学对于学生的理论基础要求较高,课程内容较多、理论性强,各种算法的罗列容易使学生感到乏味,不明白学习的意义,失去学习的兴趣;另一方面,计算机图形学具有很强的实践性,需要学生将所学的理论应用到实践中,并在实践的过程中发现问题、分析问题、解决问题,合理安排上机学时和内容对培养学生的实践创新能力非常重要,但在传统的教学理念和教学模式的影响下,教师仍然在教学过程中起主导作用,学生的自主学习意识和能力还需要加强[2-4]。如何根据信息与计算科学专业特点,提高计算机图形学教学质量,这些问题需要在教学实践中不断思考和探索。
二、教学中存在的问题
1.学生对课程认识不足,不够重视
根据信息与计算科学专业学生培养方案,计算机图形学作为专业选修课在大三上学期开设,部分同学对专业课期望较高,在开课之初认为学完以后就能够具备利用计算机做出逼真效果的图片动画等能力,而在实际学习中却要从基础的算法学起,与理想中的情况相差甚远,对学习的目的和方向不明确,逐渐感到失望并失去兴趣。也有一部分同学因为个人选择的考研或就业方向与图形学关系不大,因而对课程不够重视,学习积极性自然受到影响,学习过程只是被动接受以完成学分。
2.学生能力参差不齐,课程设置不够优化
计算机图形学知识点多,同时对数学基础、数据结构和程序设计等课程均有一定的要求,虽然培养方案中为信息与计算科学专业一二年级学生均开设了相关的基础课程,但由于学生基础参差不齐,有的同学数学基础不够扎实,一看到理论推导便产生畏难情绪失去信心;有时一些学过的知识点因为时间较长已经忘记,任课老师不得不对之前的内容进行补充而影响正常的教学进度;在上机实践中,部分同学的编程能力较差,课堂时间无法完成算法的实现,从而使上机课时没有实现其价值。
3.对实践、创新能力培养的不足
由于受到传统教学模式的影响,教学中仍然以教师教学为主,往往是教师教什么,学生学什么,学生学习缺乏自主性,这也是其他本科课程和人才培养中普遍存在的问题,学生学完以后不知道为什么而学习,对培养学生的创新能力是不利的。计算机图形学作为一门理论性和实践性都很强的课程,如果在教学过程中如果按照传统教材对于基础理论和算法的阐述过多,往往会使学生感到枯燥乏味,缺乏实践环节难以激发学生的学习热情,也容易让一部分同学因为畏难或感到枯燥而难以坚持下去。但如果过多偏重于算法的编程实现,又容易模糊本课程的主旨,使之成为程序设计课程的延伸,也难以达到良好的教学效果。
三、教学思路和方法探讨
1.上好绪论课,提高学生学习兴趣,明确学习目标
第一节课对于整个学期的教学至关重要,首先要让学生认识到计算机图形学究竟是什么,为了提高学生兴趣,通常可以利用多媒体展示一些前沿成果,如siggraph会议最新的视频展示、动画游戏特效等,让大家更直观的感受到图形学的魅力,同时引导学生自己发现生活中图形学的广泛应用,充分认识到图形学学习的重要性。接下来要将课程的教学内容和安排做一个整体的介绍,让学生了解在课堂内能够学到哪些知识,演示一些课程中要求学生自己能够完成的实践案例,帮助学生明确学习目标,能够脚踏实地从基础的算法学起,以免开始期望过高而逐渐感到厌烦。
2.调整教学理念,提高学生参与的主动性
教学的目的是为了培养学生的学习能力、实践能力、创新能力,因此在教学中教师要注意加强学生在教学过程中的主体意识,比起知识的传授,学生能力的全面发展更加重要。在算法讲授之前先提出问题让同学们自己思考,鼓励学生在互相讨论的过程中自己分析问题、解决问题,再通过与经典算法的比较,分析算法的优缺点,避免单调的讲授。基础较差的学生可以在讨论的过程中向同学请教,比起教师在课堂上补充要更加有效。对于基础较好的学生,可以引导其查阅最新的文献,了解学科前沿和研究进展,尝试对算法进一步改进等一系列科技创新活动,逐步培养科研能力。
3.根据专业特点合理设置授课内容,优化实践环节
信息与计算科学专业对学生的数学基础要求比较高,在教学中应强化针对具体问题建立数学模型并解决的能力,教学中应该以重点理解像素级绘制算法,掌握基本概念和算法的思想,理解算法能解决的问题和能达到的效果。对于Bresenham算法、扫描线填充算法、几何变换和裁剪等基本算法原理要重点讲授,课堂上可以通过案例演示使问题更加具体形象,并通过上机实现三、四个算法来加强理解。对于曲线生成可以重点介绍Bezier曲线和B样条曲线等,并对比其应用特点,曲面生成由于理解起来难度相对较大,可根据学生的具体情况介绍原理并演示具体的生成效果。动态消隐、真实感图形等涉及概念和算法较多,不要求学生去掌握和实现算法的具体细节,只要求掌握基本概念和经典的算法原理。上机实践的除了直线生成算法等容易实现的简单题目外,还可以增加一个综合性较强的课程设计题目提供给学生锻炼动手能力。
4.通过全面考核引导学生主动学习
在课程考核中要重视对学习过程控制,将平时的课堂讨论、上机实践成果演示等情况计入平时成绩,主要目的在于提高学生平时学习的积极性,起到一个督促的作用。计算机图形学是不断发展的交叉学科,也是信息与计算科学专业一门重要的专业课程,既要强调扎实的理论基础,也要具备一定的动手实践能力,需要在教学中不断探索更有效的教学手段和方法,以适应学科的发展和人才培养的需求。
参考文献
[1]孔令德.计算机图形学基础教程(VC++版)[M].北京:清华大学出版社,2008,5.
[2]鲁敏,于慧颖,郑平刚.信息工程专业计算机图形学教学模式思考[J].高等教育研究学报,2006(3):31-33.
计算机学科的基本问题篇6
关键词:计算理论;计算思维;能力培养;创新模式
0引言
前一段时间网上流传中国科学院研制“龙芯”的胡伟武老师的一个视频,其中提到中国能够开发Java虚拟机的人才很少的问题,该问题的出现引人思考。我国计算机类专业的学生包括研究生毕业后做底层开发的人才很少,绝大多数人是把国外公司开发出来的编程语言拿过来直接使用,编程时直接调用软件包中的函数,至于这些函数是如何实现的并没有几个人认真思考。久而久之,学生(包括一些教师与软件开发人员)也很少思考或研究这一问题,突然遇到这样的问题就会束手无策、无从下手。所谓万丈高楼平地起,没有基本的思维训练很难做到基础性创新思维的能力培养。中兴事件给我们国家的原始创新问题敲响了警钟,有人在网上提出“假如微软、谷歌不让我们使用其操作系统怎么办”的问题,说明应用与创新缺一不可,只有应用的火热而没有创新就会受制于人。计算理论课程是从本质上介绍计算机科学的课程,是计算机学科发展的基石。为了计算机学科更好地发展,将计算理论作为一门必修课,作为培养高年级本科生或研究生计算思维和创新思维的重要一环是非常必要的,这是开设此门课程的现实选择,也是必然选择。
1计算理论在研究生教学中的重要性
“计算机科学技术日新月异,新东西层出不穷,旧的东西迅速被淘汰,但是作为一门科学,它有其自身的理论基础,这些思想精华长久地、甚至永恒地放射光芒,这些理论在应用开发中好像是‘无用的’,但实际上,对于每一位从事计算机科学与技术的研究与开发的人来说,它们都是不可缺少的,就像能量守恒之类的物理定律对于每一位自然科学工作者和工程技术人员那样”[1]。“通过这些要点,我们对计算机科学的重要基石有了一些新的认知,有些之前我们认为可能比较新颖的东西(比如层次化存储),实际上在计算机诞生初期就被提出甚至进行了量化分析,每年顶级会议上出现的一些新成果都是这些思想的实现;有些之前我们认为可能比较陈旧的东西(比如虚拟化),实际上换一个角度可能是一种新的研究思路。真正具有本质的重要性的东西,无所谓“新”与“旧”,应该在历史发展中传承和保持下来”[2]。上述两段话充分说明计算理论在现代计算机科学与技术研究生教学中的核心意义。从科学基础理论角度来讲,可计算性理论是计算机科学最核心的基础理论,如果没有可计算性理论,计算机将难以称为计算机科学,这是学科发展需要,也是开设这门课程的根本原因。为创新能力的培养与思维训练过程,这一系列过程从低到高不断升华,可逐步培养学生的计算思维与创新能力。在本科教学中,学生养成了“老师教什么,学生就记忆复述什么”的学习习惯,一般很少对教师讲授的内容提出异议和新的见解。只是在离散的抽象代数部分才开始涉及基本的运算系统,但由于过于抽象,一般学生也是一知半解。在研究生教学中,教师教什么、学生就记忆复述什么的学习习惯一定要打破,学生要养成“老师讲授的不一定是唯一的、最好的解决问题方法”的思想意识,教师要以“没有最好,只有更好,优化优化再优化”为教学理念。学生要勇于向老师提出问题,敢于向课本内容提出挑战,给出新的见解。研究生接受计算理论学位课程的学习已经不仅是为了掌握知识获得学分,还是对计算系统的了解逐步向更高级的计算系统(它的运算呈现出模型化的特征)过渡,并由此学会一种思维方式、一种创新能力,这种思维方式与创新能力对于从事任何工作都是受益终身的。作为一门研究生素养训练的学位课程,计算理论课程的教学改革必须跟上国家创新人才培养的时代步伐,精心设计、合理安排、科学谋划,这是计算机学科发展的需要,是国家积极推进培养创新人才赋予我们的使命与任务。
2计算理论课程的教学内容
人工智能、大数据、云计算、边缘计算等领域正在蓬勃发展,越来越多的经验在实践中累积,但是理论基础都相对薄弱,需要构建各自领域中有较强针对性的基础理论[2]。面对新形势、新需求,计算理论要讲述的内容包括以下几方面。1)以5条基本指令x=x+1、x=x-1、TOAIFx≠0、TOA和y=x为基础的元语言程序描述可计算函数。使用5条基本指令的元语言程序教学过程,就是训练学生使用最基本的指令编程实现复杂的可计算函数的抽象思维能力过程。近年来出现的Python语言是一个比较流行的易学易用的编程语言,其创始人Guido也是从编写Python的编译器开始,将其逐步演化成今天的流行语言。程序员中流行的“人生苦短,我用python”也说明其受欢迎的程度,但火热程度的背后是Guido及团队成员不懈努力的结果,没有开发人员的默默付出,将从底层搭建出来的结果呈现给我们,就没有今天的Python。对热议的中兴事件引起的处理器芯片设计问题来说,将指令集和程序区分开,可以以不变的少量指令构成万变的应用程序。指令集(如x86、MIPS、RISC-V)中不同类型的指令都是有限的,但可以编写的不同程序的数量极其庞大,这样硬件上的固定性与软件上的任意性矛盾就得到解决[2]。2)从初始函数S(x)=x+1、n(x)=0和Ui(x1,x2,xn)=xi出发,通过利用复合、递归算子得到的原始递归函数以及利用复合、递归与取极小算子得到的部分递归函数与递归函数描述可计算函数。递归函数是计算理论的核心概念,因为图灵可计算函数类就是递归函数类,两者完全等价。递归函数是构造更为复杂函数的基础,现代以神经网络为代表的机器学习是一个黑箱算法,可解释性不足,需要一个可被证明的理论作为基础。从递归函数解读深度学习过程,即一层神经网络的输出是下一层神经网络的输入,通过不断地复合与递归层层深入最后得到深度学习训练的结果[3],递归可以构造出更复杂的函数,从而解决更复杂的计算机科学与工程问题。3)使用两符号与多符号的波斯特图灵机、四元组图灵机、五元组图灵机、通用图灵机描述可计算函数。此处的两符号(0和1)波斯特图灵机接近于我们熟悉的汇编语言,而两符号与我们现在所使用的计算机底层操作的符号是对应的;多符号波斯特图灵机是两符号图灵机的一种推广。现代计算机可以处理的数字、图像、音频、视频等各种形式的数据,其实质也是0和1两符号推广到多符号的扩展形式,形式语言与自动机理论也产生于此。四元组和五元组图灵机是以元组形式描述的产生式规则,其中的状态相当于现代编程语言中的环境;每个产生式的前提(也称为前件)和效果(也称为后件),相当于在不同状态下采取不同的动作需要的前提和产生的效果。通用图灵机是进行各种计算的元语言程序,可以完成各种计算操作,但其存在局限性,如计算机病毒作为一种具有特定功能的算法,同样可以用图灵机或通用图灵机进行描述,通用图灵机模型只限于分析一种单一的算法或程序,如果要分析两个或更多的算法和程序之间的联系,这种模型显然不够。文献[4]从计算机的基础理论模型——图灵机模型出发,提出一种扩展的通用图灵机模型EUTM,极大地简化了计算机病毒传染机制的形式化描述,开辟了计算机病毒传染特性和可传播性形式化描述的新领域,有助于正确地理解计算机病毒。4)使用元语言程序描述不可判定性问题。图灵机根据机器的程序处理初始格局,有的初始格局可能导致停机,有的则导致无限的格局序列,引出停机问题。图灵机停机问题的实质:是否存在一个算法,对于任意给定的图灵机都能判定任意的初始格局是否会导致停机。图灵已经证明,这样的算法是不存在的,即停机问题是不可判定的。停机问题是研究许多不可判定问题的基础,人们往往把一个问题的判定归结为停机问题:“如果问题X可判定,则停机问题可判定”,从而证明问题X的不可判定性。停机问题有多种不同的叙述方式和证明方法,分别适用于具有不同特征的问题,如对于目前人们使用的智能手机,经常会出现某APP运行了计算模型上没有进行定义的操作的现象,导致手机对用户的任何操作都无法作出反应,我们称为“死机”。对于这种“死机”行为,手机开发商设计一个检测软件进行监控处理就是一个停机问题的现实反映。显然,根据上述论述,这样的软件是设计不出来的。5)以产生式规则为基础的图厄系统描述可计算函数。这一部分主要讲述图厄系统识别符号串。在形式语义学中图厄系统实际上被称为文法,在计算机科学中,文法是编译原理的基础,是描述一门程序设计语言实现其编译方法的基础,同时也是形式语义学的基础。形式语义学在自然语言处理、程序语言设计、网络搜索引擎以及计算复杂性上都有重要的影响,如通过设计类似于产生式系统的图厄系统识别需要的符号串,可联想到在网络搜索引擎的文本检索中常常涉及的问题[5]:给定一个单词集合,查找包含一个(或全部)单词的所有文档。搜索引擎是这一过程的通俗示例,搜索引擎使用一种称为“倒排索引”的特殊技术,对网络上出现的每个单词(有1亿种不同的单词)所有出现之处的列表进行保存,有非常大的主存的机器保持这些列表的最常见部分随处可见,允许许多人在瞬间搜索到这些文档。此外,图厄系统还是计算机文法的基础,对于语言的语法分析等也起着重要的基础性作用。6)以单带与多带图灵机描述可计算函数。单带图灵机由3部分组成:一条带、一个读写头和一个控制器。图灵机的格局由当前状态、当前带内容、读写头的当前位置组成。图灵机开始运行后,根据转移函数所描述的规则进行计算,图灵机就从一个格局到另一个格局进行转换。图灵机本质上是一个程序或算法的高度抽象,当给定一个输入x以后,就可以计算出f(x)。除了前面描述的计算模型外,人们还研究了图灵机的各种变型,如非确定的图灵机、多道图灵机、多带图灵机、多维图灵机、多头图灵机、带外部信息源的图灵机等,这些图灵机变型对今天的计算机体系结构设计仍具有重要的指导作用。除极个别情形外,这些变型并未扩展图灵机的计算能力,它们计算的函数类与基本图灵机是相同的,但为研究不同类型的问题提供了方便的理论模型。上述图灵机的组合变型演化出当今的计算机硬盘存储表示形式(通过磁头、磁道、扇区等参数),而多带图灵机是研究计算复杂性理论的重要计算模型。人们还在图灵机的基础上提出不同程度的近似于现代计算机的抽象机器,如具有随机访问存储器的程序机器等。
3计算理论启发式案例教学
计算理论课程讲述多种模型,一方面是为了让学生了解与掌握计算理论知识并证明它们的等价性,因而论证Church-Turing问题;另一方面也是为了训练学生创新思维,打破思维框架束缚,培养学生从不同角度解决问题的能力。各种模型具有不同的特点,针对不同的问题各有其价值。不同研究者在解决同一科学问题时,会给出不同的算法:这些算法或者演化于某些著名学者提出的基本方法,或者是自己提出的一个不同于常人的方法(这也相当于一个个小的具有针对性的计算模型)。之所以有脍炙人口的三国演义产生,就在于有陈寿的三国志,三国志相当于我们上述描述的某一“计算模型”,而三国演义就在此“计算模型”下加上民间传说在罗贯中的笔下演化而来的,妙笔生花(从计算机科学角度看就是组合新的理论与方法到原有模型中用于解决新的问题)更加接地气。以具体案例对启发式案例教学作进一步说明如下。案例1:在递归函数的谓词递归性证明中,首先通过使用真值表分析法得到证明过程的特征函数,进一步引入广义德摩根律,并通过启发使少部分学生给出不同于原有教案上的证明方法。案例2:在讲授四元组、五元组图灵机过程中,引入三国演义中的刘备东吴招亲、诸葛亮授赵云3条锦囊妙计的故事展开图灵机的状态变化与操作过程,将深奥的教学内容与大家熟悉的故事巧妙结合,达到寓教于乐的目的。计算理论的讲述一方面可以使学生了解这些计算模型的知识,看到它们的现代应用演化。在教学中,注重启发学生将这种“演化”方法融入自己的科学研究中,利用自己所研究领域先驱学者提出的原创方法加上其他方法及所解决问题的特性解决问题,把“共性”+“特性”解决问题的思想融进计算思维与创新能力的培养过程中。另一方面,在各章不同计算模型讲授过程中,以问题启发学生思考,问题可以是:这些计算模型有什么区别?共同点又是什么?在不同讲述内容中可计算是如何定义的?通过学生思考与教师释疑,学生可意识到同样的问题有不同的解决方法,学会从不同角度思考问题,勇于探索并打破思维框架的束缚,寻求问题新的解决方案,这是创新能力培养的必要过程;同时,学生可在这个过程中充分理解和掌握计算机科学先驱们对问题的定义、方法的描述、性质的验证或证明,这也是今后从事科学研究的研究生应该掌握的必要方法与思维方式。
【计算机学科的基本问题(6篇) 】相关文章:
小型超市店长工作总结范文(整理7篇 2024-10-10
护士个人工作总结范文(整理2篇) 2024-09-14
教学质量教学工作总结范文(整理7篇 2024-09-04
工作总结范文(整理10篇) 2024-08-26
幼儿园教师年度考核个人工作总结范 2024-08-14
售后客服试用期工作总结范文(整理4 2024-08-02
小学学校工作总结范文(整理5篇) 2024-06-19
体育科学体系(6篇) 2024-10-20
计算机学科的基本问题(6篇) 2024-10-20
电工电子总结(6篇) 2024-10-20