基于计算思维的“大学计算机基础”课程教学内容设计

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于计算思维的“大学计算机基础”课程教学内容设计
摘要:如何将计算思维能力培养作为计算机基础教学的核心任务,已经引起了计算机基础教育界的广泛关注和讨论。

作为高校计算机基础教学的入门课程,“大学计算机基础”迫切需要进行基于计算思维的教学内容改革。

本文在分析计算思维核心方法和思想的基础上,围绕抽象级、指令级、语言级以及系统级的典型计算环境设计课程教学内容的思想,提出了一个课程教学内容的组织架构,并以“计算机网络”为例分析了以问题为引导的具体教学单元实施方法。

关键词:计算思维;大学计算机基础;课程教学;计算机网络
自从2010年8月中国9所高校联盟在西安会议上发表了《九校联盟(C9)计算机基础教学发展战略联合声明》以来[1],国内高校对运用计算思维作为新一轮计算机基础教学改革的指导思想已形成了广泛的共识。

2011年11月在杭州召开的大学计算机课程报告论坛上,许多院校对围绕计算思维的计算机基础教学改革进行了不同的解读。

笔者认为,目前对计算机基础教学进行新一轮改革的认识是充分的,但如何以计算思维去指导计算机基础教学的具体改革实践,尤其是在“大学计算机基础”课程教学内容的重新梳理和组织方面,仍然有许多值得探讨的问题。

一、“大学计算机基础”课程教学内容改革的需求
教育部高等学校计算机基础课程教学指导委员会制定的《计算机基础课程教学基本要求》所提出的4×3知识体系结构和1+X课程体系[2],不但回答了上什么课的问题,也科学地阐述了为什么要上这些课的问题。

尤其是“大学计算机基础”课程(即1+X中的“1”),在计算机基础教学中占有极其重要的地位。

这是我们进行计算机基础课程建设的基石,也是教指委和广大从事计算机基础教学工作的教师们多年辛勤工作的结晶。

由于计算机基础课程所依赖的计算机科学、技术、工程等发展极为迅速,知识更新周期越来越短,使得传统的以技能为主的应用型课程远远滞后于学科发展。

尤其是传统的应用技术课程下移到中小学阶段,使得许多高校的大学计算机基础教学入门课程“大学计算机基础”的内容不能满足大学新生的学习要求。

笔者最近在和西部一些高校计算机基础课程的教师接触过程中,他们对此更有深刻体会:以技能性为主的计算机基础课程已经到了非改不可的地步。

即使已经进行了课程内容改革的部分学校,仍然面临着课程应该涉及什么内容及如何组织的困惑。

不同于大学阶段的数理课程具有完备、循序渐进的体系,计算机基础课程尤其是“大学计算机基础”涉及知识点很多,各种知识互相交叉,很难梳理出一条清晰的脉络,往往从教材到教学过程都是以名词解释为主,也就是解释了“是什么”,却难以进一步解释“为什么”。

因此,在新的课程改革中如何表现课程的知识体系就成了亟待解决的问题。

例如,在介绍计算环境时,往往局限于具体的机器描述,忽视了对计算环境核心思想的介绍和分析;再如,介绍算法也局限于实现过程,忽视了求解方法的思路。

课程教学内容建设是一项“工程”,不但要解决课程的内容体系,也需要解决如何在教学过程中组织和表现具体的内容。

计算机基础教学应该有别于计算机专业教学,不可能也没必要涉及计算机技术的方方面面。

大学生学习计算机基础课程,不仅要了解计算机是什么、能够做什么、如何做,更重要的是要了解这个学科领域解决问题的基本方法与特点。

计算机作为通识教育的重要内容,不只是简
单地拓展学生在计算机方面的知识面,更需要展现计算机学科的思维方式[3]。

“大学计算机基础”课程作为大学计算机基础教学的入门课程,需要有相对稳定、体现计算机学科核心思想和方法的内容,不但要解释相关知识是什么,更要回答它们为什么,特别要在不局限于特定机器的条件下,抽象表达计算模型和原理、方法及其实现,因此需要在更高层次上进行课程教学内容建设。

更为值得注意的问题是,由于一些高校“大学计算机基础”教学内容改革的滞后,使得相关学校的教学主管部门开始质疑该课程设置的必要性,有的已经开始将“大学计算机基础”课程从必修改为选修,或者干脆只保留了程序设计类课程。

归根结底,我们必须正视以上问题。

能够解决上述问题的关键就是“计算思维”。

如果将计算机作为机器,它是一种工具,是具有计算功能的工具;但是,它依赖的科学基础并不是机器本身。

这就是把计算机称为“科学的机器”以及把其学科称为“机器的科学”的原因。

计算思维反映了计算机学科最本质的特征和最核心的方法。

将计算思维能力培养作为计算机基础教学的核心任务,不仅紧紧围绕现有计算机基础教学的根本任务和核心知识内容,而且反映了计算机学科的本质,也体现了通识教育应有的特征[3]。

因此,需要全面正确理解计算思维,并运用计算思维的思想对“大学计算机基础”课程的教学内容进行重构。

二、计算思维的核心方法是“构造”
正如陈国良院士等专家所指出的那样:“计算思维不是今天才有,早就存在于中国的古代数学之中,只不过周以真教授使之清晰化和系统化了”[4]。

卡内基·梅隆大学(CMU)周以真(Jeannette M. Wing)教授认为“计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动”[5]。

按照周以真教授对计算思维的解释,计算思维建立在计算过程的能力和限制之上,由人或机器执行。

这一点特别重要:并非所有计算过程都是由计算机完成的。

进一步而言,计算思维最根本的内容,即其本质是抽象(Abstraction)和自动化(Automation)。

现实意义上的计算思维的基础是计算机学科。

计算机学科既是构造计算机器的学科也是基于计算机器进行问题求解的学科。

从问题求解的角度看,计算机学科所涉及的问题求解均是基于一定计算模型(环境,包括计算机器)和约束上的问题求解。

这里所说的计算环境,并非是单一的机器层次上的,而是存在不同层次的计算环境。

计算机学科不同的研究领域可以理解为在不同计算环境中的问题求解。

例如,在抽象级上的图灵机研究;在指令级上的硬件设计;在语言级上的程序设计;在系统级上的操作系统、数据库设计以及应用软件设计,等等。

无论面向什么层次的计算环境,问题求解首先需要解决的是问题的表示,例如编码/解码和建模等都是典型的例子。

只有这样才能够建立计算环境所能理解的基本计算对象,进而为基于计算环境的问题求解提供可能。

进一步需要设计问题求解过程,典型的方法有:约简、嵌入、转化、仿真、递归、并行、启发式推理、平衡与折中等。

最后需要验证以确定计算过程的正确性与效率,典型方法有预防、保护、冗余、容错、纠错等,其中还需要多维度(时间、空间、简洁、社会、成本)考量计算的效率。

因此,从本质上说,计算思维的核心方法是“构造”(Construct)。

这里面包括了三种构造形态:对象构造、过程构造和验证构造[3]。

对象构造是面向计算过程中的各种对象,例如指令、硬件系统、数据组织、程序函数/组件、系统软件等;过程构造是基于对象的计算形态的构造,例如指令的执行、算法(涉及数据组织和语言)、计算资源调度、分布式处理、软件工程等;验证构造则是针对
前述两个构造的有效性分析,包括测试与分析、系统安全性、可靠性及对社会的影响等。

因此,计算思维能力的重要表现就在于培养其构造能力。

进一步地讲,我们可以将计算机学科的12个重复出现的基本概念[6],与“构造”进行关联分析。

可以认为这些12个基本概念实际上就是针对对象构造、过程构造和验证构造的不同的方法与原则[3]。

从学科思维角度看,与计算机学科关系最密切的传统思维方法主要是数学思维、逻辑思维和工程思维。

计算思维不是一种孤立的思维,在不同层次(环境)上的问题求解也体现了传统思维的许多特征。

如下图所示。

计算思维与传统思维图
抽象级(如图灵机)的问题求解具有数学思维的特征,指令/语言级上的问题求解(如程序设计)具有明显的逻辑思维特征,而在系统级的问题求解中则大量应用了工程思维方法。

实际上,也可以把数学思维、逻辑思维、工程思维中的相关思想映射到计算机学科相对应的理论、抽象和设计的相关形态上。

和计算机科学与技术专业能力培养不同的是,计算机基础教学层次上的计算思维能力培养不需要也不可能涉及计算思维的方方面面,而应该面向各专业计算机应用需求,培养学生基本的计算思维能力。

主要体现在3个方面,即:对计算机的认知能力,具有判断和选择计算机工具与方法的能力(包括运用信息技术的学习能力等)以及运用计算机解决专业问题的能力。

三、教学内容组织
近年来,许多高校对大学计算机基础课程教学内容进行了大力度的改革,突破了过去那种以计算机应用技能培养为主的教学模式,取而代之的是更多地教授计算机系统知识,更加突出课程的基础性。

但是,面对纷繁复杂的计算机专业词汇,如果没有厘清相关的内容体系,无疑将使得学生从“不要学”变成“不会学”,因为即使一个计算机专业的学生要弄清那么多名词、概念也不是一件容易的事。

“大学计算机基础”是高校极为重要的一门计算机基础类课程。

该课程内容的改革应该围绕计算思维的核心思想,梳理和删减现有课程教学内容,避免概念的堆积,建立围绕计算思维核心思想的内容组织体系,突出核心的基础内容。

基于上述分析,我们认为“大学计算机基础”教学内容应该涉及抽象级、指令级、语言级以及系统级的典型计算环境,使学生对这些计算环境的基本原理以及基本问题求解方法有所认识,进而从中了解从计算思维的基本方法,培养计算思维的基本能力。

因此,下面是我们基于上述思路提出的一种教学内容组织架构。

1.计算的历史与影响。

介绍人类追求自动计算的发展历程以及现代计算机技术对经济发展和人类社会进步所带来的影响。

今天的计算机从最初的机器发展成为一门学科是人类智慧、想象力发挥到极致的体现。

计算机学科与其他各门学科的结合,改进了研究工具和研究方法,促进了各门学科的发展。

现在,计算科学已经成为推动人类社会文明进步与科技发展的三大手段之一。

2.计算模型。

这是对计算机的高度抽象,最为经典的模型为图灵机/波斯特模型(Turing/Post Model),解释了机器的计算能力及其局限性,同时它还是研究算法的重要工具。

按照图灵-丘奇命题,所有可计算的都是图灵机可以执行的。

3.处理器模型。

以指令为基础理解具有程序能力的自动计算过程,进而理解现代计算机模型(也被叫做冯·诺依曼模型)。

4.信息的编码与存储。

信息的编码与存储是问题表示的基础,也是应用计算机求解问题最基础和核心的工作。

通过介绍数制(进制)、逻辑代数和典型数据的编码与组织方法,了解数据在计算机中的基本表示和存储,包括存储器结构和
数据的基本组织关系。

5.算法和程序。

算法是计算机科学的核心和精髓。

通过理解算法的表示与评价、基本算法以及程序的基本控制结构,初步理解计算机解决问题的自动实现过程。

6.操作系统。

作为计算平台的操作系统,无疑是计算机软件系统中最为重要的软件,也是构建系统的平台基础。

这一部分的内容组织不是基于如何使用操作系统,而是需要理解它是如何解决计算资源的竞争问题,高效实现资源共享与分配等。

7.计算机网络。

某种意义上,最为吸引大学生的计算机应用技术就是网络。

网络是一个集计算机、通信于一体实现资源共享和信息传递的计算环境。

网络技术日新月异,网络的核心思想应该是解决资源共享和信息交换中的“约定”问题以及可靠传递问题。

在以上内容中,“计算的历史与影响”从历史和现实的角度认识计算机技术的影响和作用;“计算模型”在抽象级计算环境上理解计算的基本原理;“处理器模型”则展现指令级计算环境的基本构成,进而理解现代计算机的基本工作原理;“算法和程序”则从语言级计算环境角度说明计算的基本过程和方法,使学生了解计算机问题求解的基本方法;“操作系统”和“计算机网络”都是典型的系统级计算环境,涉及同一物理机中计算资源竞争问题和不同物理机间信息交换问题的解决思路和基本方法,其中也包含了系统效率与验证这些基本的工程方法;“信息编码和存储”是计算机问题求解的基础,也是最基本的计算对象构造。

这些内容涉及不同层面的计算环境的基本构造方法以及对象构造、过程构造和验证构造等基本构造内容,是计算思维最基础和核心的内容。

以上归纳,并非完全是教材的章节,也不完全是课堂教学的顺序,而是一个教学内容组织架构。

在具体课程教学中,需要根据这个架构,对每部分内容给予合适的描述,使之能够被正确理解。

四、教学实施:以“计算机网络”为例
前面我们设计了一个基于计算思维的“大学计算机基础”课程教学内容组织架构。

从整体上看,这个架构所包含的内容与许多高校现有课程的教学内容有较大的重叠和相似。

但基于计算思维的计算机基础教学内容改革不仅仅是教学内容体系的梳理,更重要的是在各部分内容的具体教学中如何组织和呈现相应的教学内容,使学生通过学习理解计算思维的基本方法,而不是简单的概念堆积和知识堆积。

我们认为,较为合适的教学过程应该是围绕问题求解的基本过程。

即通过问题的引入,寻求解决问题的思路,进而引出问题的解决方法或实现方法,使学生了解相关内容的核心问题和核心解决方法。

这里以“计算机网络”部分的教学为例,分析说明相关教学内容的实施方法。

1.问题引入。

网络是将分布在不同地理位置上的具有独立工作能力的计算机用通信设备和通信线路连接起来,以实现资源共享和信息传递的系统。

因此,网络系统需要解决的核心问题有:收发端的识别(谁收发信息)、内容识别(收发什么信息)、信息传递路径(路由选择)、信息传递的安全性和完整保障(容错技术、较验技术、身份认证)等。

在网络技术的每一个环节,都可以通过适当的问题引出各种可能的解决方案以及对最合适、最有效同时也是最经济的方案的选择。

因此,网络中的各知识点本身都是问题所致的,也是应该通过问题引入解决方案进而成为技术的。

2.解决思路。

解决上述网络核心问题最主要的思路就是“约定”,不同机器之
间有了统一的约定之后就可以方便地识别谁发送了什么信息。

这种约定在网络技术里就是各种各样的协议。

所以,在网络技术中最为经典的表述就是“有网络必有通信,有通信必有协议”。

为了减少网络协议设计的复杂性,网络设计者并不是设计一个单一、巨大的协议来满足所有的网络通信要求,而是采用把通信问题划分为许多个小问题,并相应设计单独的协议,使得每个协议的设计、分析、编码和测试都比较容易。

网络分层模型就是这种思想的体现,也体现了约简、分解、调度、折中等计算思维的思想。

3.现有实现。

网络分层模型在目前实际网络应用中就是OSI/Internet模型,前者是7层协议模型,后者是4层结构。

在现实应用中,网络有不同的类型,比如按照网络的覆盖范围有:局域网、城域网、广域网和互联网等。

4.进一步发问。

可以进一步地深入分析网络问题,例如:IP是实现收发端识别的基本方法,但当IP地址濒临枯竭,就需要有新的解决方案,如动态IP、IP6等;如果联网的机器过多,那么就会出现通信中的瓶颈,如何解决?这就是网络规模问题,现行的解决方案是设立A、B、C三类网络,以适应不同规模。

层出不穷的网络应用,从技术层面,并没有新的技术,只是各种技术的综合运用,例如Web2.0。

在学习了网络的基本知识以后,再通过回溯的方法思考“网络模型”,也许能够使学习者有豁然开朗之感。

有关虚拟世界的议论,很大程度上是社会问题,而不是技术本身,因此通过问题引入的学习,不但能够使得学生对具体的技术有所了解,也能够了解到许多网络问题并非是技术问题,但是和技术相关的。

这种学习能够使得学习者的视野得到开拓。

以上是以计算机网络为例,分析我们运用计算思维指导计算机基础课程教学的思路。

因此,可以将“大学计算机基础”课程教学内容的设计定位于一个适当的高度:围绕计算思维相关的内容体系,结合应用实例和解决问题的过程,在较高的层次上去理解计算过程、计算原理和相关方法。

事实上,无论以何种方法或途径组织计算机基础知识,最终对学习者而言需要把对计算机的感性认识以及使用计算机的激情引导到培养计算思维能力上来。

希望学习者在今后的专业学习或者工作中,遇到专业问题能够较为熟练且习惯于思考“如果让计算机来处理这些问题,那么应该如何做”。

一个训练有素的专业人员,不但需要知道计算机是如何组成的,也需要知道如何通过抽象表达问题,进而实现自动化处理,同样也需要知道哪些问题是计算机可以解决、哪些问题是计算机不能够解决的。

这些就是大学计算机基础课程教学需要达到的教学目标。

参考文献:
[1] 九校联盟(C9)计算机基础教学发展战略联合声明[J]. 中国大学教学,2010(9).
[2] 教育部高等学校计算机基础课程教学指导委员会. 高等学校计算机基础教学发展战略研究报告暨计算机基础课程教学基本要求[M]. 北京:高等教育出版社,2009.
[3] 何钦铭,陆汉权,冯博琴. 计算机基础教学的核心任务是计算思维能力的培养[J]. 中国大学教学,2010(9).
[4] 陈国良,董荣胜. 计算思维与大学计算机基础教育[J]. 中国大学教学,2011(1).
[5] Jeannette M. Wing. Computational Thinking[J]. Communications of ACM,2006,49(3):33-35 .
[6] 中国计算机科学与技术学科教程[M]. 北京:清华大学出版社,2002.。

相关文档
最新文档