基于计算思维的“大学计算机基础”课程教学内容设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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]。对象构造是面向计算过程中的各种对象,例如指令、硬件系统、数据组织、程序函数/组件、系统软件等;过程构造是基于对象的计算形态的构造,例如指令的执行、算法(涉及数据组织和语言)、计算资源调度、分布式处理、软件工程等;验证构造则是针对