面向计算思维的大学计算机课程教学内容体系

2014-09-27 19:23战德臣王浩
中国大学教学 2014年7期
关键词:大学计算机计算思维教学内容

战德臣+++王浩

摘 要:大学计算机课程讲授计算思维已经成为普遍的共识。然而限于基础-学时-内容的矛盾,人们对面向计算思维的课程内容体系仍旧存在一些困惑。大学计算机课程应该讲授的最小的课程内容集合是什么?本文作者在多年教学实践基础上,结合计算学科对非计算机专业人员未来的影响,论证性地提出了大学计算机面向计算思维的课程内容最小集合以及扩展集合,试图破解在计算机课程教学内容体系方面的困惑。

关键词:计算思维;大学计算机;教学内容;教学方法

一、大学计算机课程现状与存在的问题

国家推动面向所有大学生开设计算机文化课程(后被各学校称为计算机基础课程、大学计算机基础课程)已经近20年,期间经历了若干次的演变和发展,到今天已经明确了用计算思维改造大学计算机基础课程的方针和原则,大学计算机课程应该讲授计算思维也已经形成了普遍的共识[1-4],以计算思维培养为主的大学计算机课程已成为和数学、物理、外语一样的通识类基础课程。然而限于“基础-学时-内容”的矛盾,人们对面向计算思维的课程内容体系仍旧存在一些困惑,致使很多教师的教学内容仍旧停留在所谓“狭义工具论”的层面,或者是停留在汇集计算机各门课程前言、绪论知识的层面,仍没有形成有特色的自成体系的大学计算机课程教学内容,不能满足新形势下大学计算机课程面向计算思维通识教育教学改革的需要。所谓“基础-学时-内容”矛盾是指:大学一年级学生计算机基础参差不齐,有些学生计算机基础很好,而有些学生则相对较弱,讲授哪些内容学生才能受益并能接受难以确定;计算机学科是过去60年发展最为迅速的学科,知识与内容膨胀之快速令人难以想象,如此众多内容怎样进行教学选择成为难题;为保证非计算机专业学生本学科知识的学习,不可能拿出太多学时来学习“大学计算机”课程,而且还面临不断压缩课堂学时的压力。

怎样解决上述的矛盾,作者认为要从两个方面着力破解:一是从课程教学内容体系方面,寻求大学计算机课程教学内容的最小集合;二是从教学手段、教学方法方面,利用MOOC等先进的教学手段来破解这样的矛盾。本文主要论述前一方面的内容。

二、面向计算思维的大学计算机课程教学内容体系

作者曾提出计算之树[5],以一种树型的多维度框架概括了计算学科中所体现的重要的计算思维,试图给出大学计算机的计算思维教育空间。本文在此基础上进一步论述大学计算机第一门课程的教学内容的最小集合与扩展集合问题。

经过多年的实践,我们认为大学计算机第一门课程应至少包含四个部分(本文称其为四个领域)的内容,即课程教学内容的最小集合为:计算与程序;计算系统;算法思维;信息素养。在此基础之上的扩展集合,将增加系统思维、数据抽象与计算思维、网络计算思维。下面从必要性和内容构成两个方面来论述,前者说明为什么要讲,后者说明讲什么。

1.“计算与程序”讲授的必要性和内容构成

为什么要讲授“计算与程序”?首先,计算手段已经成为除理论手段、实验手段外,人类进行科学研究的第三种手段[6],计算与社会/自然的融合越来越深入,其本质是将不同的社会/自然现象或问题表达为计算机可以处理的形式,即符号化、计算化和自动化。其次,“计算”是指针对具体问题寻求并设计算法或程序,目的是使机器替代人进行自动计算并获得计算结果,而程序应是一种广义的概念,是实现系统复杂功能的一种重要手段,即随使用者使用目的不同而对机器基本动作的千变万化的组合,计算系统是可以执行任何程序的系统。“计算与程序”课程对学生计算思维的形成是最重要的。

从最小化集合角度,“计算与程序”课程内容应包含以下知识单元与知识点,如表1所示。

表1 “计算与程序”知识领域的知识单元和知识点

知识单元 知识点

1.1 计算与计算思维 什么是计算机;什么是计算与自动计算;自动计算需要解决的基本问题;什么是计算思维;计算思维对形成各学科复合思维的作用;大学计算思维的教育空间

1.2符号化、计算化与自动化 语义符号化——社会/自然面向计算的基本表达方法;符号计算化——基本的逻辑运算与算术运算;计算0(和)1化——任何信息都可表示为0和1,二进制和编码;0(和)1自动化——电子技术自动实现0和1及其基本运算;分层构造化——用简单的计算(或系统)构造复杂的计算(或系统),逐层构造;构造集成化——将已构造好的计算(或系统))进行封装,便于用其构造更为复杂的计算(系统)

1.3程序与

递归 计算系统与程序的关系:什么是程序,程序的基本特征:复合、抽象与构造;什么是复合,什么是抽象,什么是构造,程序构造的基本方法:迭代与递归;利用递归进行定义;利用递归进行计算;利用递归进行构造

知识单元1.1的目的是使学生理解为什么要学习计算机,什么是计算,为什么要学习计算思维,计算学科中经典的计算思维有哪些,以及计算思维对其未来会产生怎样的影响。

知识单元1.2的目的是使学生理解语义符号化、符号计算化、计算0和1化、分层构造化和构造集成化,这是社会/自然与计算融合的基本思维模式。符号化也不仅仅是指数学符号,而是指最终可以转换为二进制比特的各种符号。理解由0和1连接起来的,由“计算”到“软件/硬件实现计算”的跨越,理解任何复杂的计算都可以由机械/电子系统自动完成。通过这一过程的理解,进而对计算思维的本质“抽象”与“自动化”有一个初步的理解。

知识单元1.3的目的是使学生深入理解什么是程序,理解计算系统就是执行程序的系统,程序是计算系统实现千变万化复杂功能的一种手段;理解程序的基本特征是复合、抽象与构造:复合是对简单元素的各种组合,抽象是对各种元素的组合进行命名并将其用于更为复杂的组合中,构造的基本手段是迭代和递归,用有限的语句来表达近乎无限的、具有自相似性的对象及动作。

这里要强调一点,计算学科的“抽象”与我们平常所表达的“抽象”既有相通的一面又有细微的差别,计算学科的“抽象”是一种可掌握可操作的方法,即用名字表达一种组合,而该名字可以参与新的更为复杂的组合,这是计算学科最本质的方法[7]。

2.“计算系统”讲授的必要性和内容构成

为什么要讲授“计算系统”?首先,计算系统和现实中各种系统既有相类似的思维模式,例如分工-合作与协同思维、并行化分布化提高资源利用效率思维等,同时也互相支持出现创新的复合思维模式,如各种智能系统,这些智能系统本质上则是基于计算的系统。其次,图灵奖获得者Edsger Dijkstra说过,计算工具的理解和使用会影响人们的思维习惯,进而影响我们的思维能力。例如“天猫/淘宝”电子商务、Wiki Pedia等更多的成功事例说明,对计算环境的理解和使用影响了人们的工作/生活的思维习惯,已经成为创新的重要源头。

对于初学者而言,如能理解“程序是如何被执行的”,则有助于学生构造和设计可执行的算法和程序;如能理解“存储体系环境下程序是如何被执行的”,则有助于学生理解并习惯于资源受约束条件下问题解决方案的构造,而不是一般的统而化之、不讲成本、不顾环境、不考虑用户体验地解决问题的方式[1]。对现代计算环境如云计算环境等的理解,则有助于我们建立问题求解的大思维,即能够改变人们生活、工作与研究方式的思维。对通用计算环境的理解,有助于我们研究具有各个学科自身特色的专业化计算系统,有助于建立各学科具体问题求解的计算环境,实现跨学科的共同创新。

从最小化集合角度,“计算系统”课程内容应包含以下知识单元与知识点,如表2所示。

表2 “计算系统”知识领域的知识单元和知识点

知识单元 知识点

2.1通用计算机器模型 通用计算机器模型——图灵机;指令、程序及其执行;图灵机与自动计算;图灵机与算法

2.2冯·诺依曼计算机 机器指令与机器级程序;冯·诺依曼计算机的基本结构;可自动读写的存储器;运算器的简要结构与功能;控制器的简要结构与功能;指令的执行——时钟、节拍与信号;机器级程序的存储与执行过程

2.3现代计算系统 现代计算系统的基本构成;存储体系——不同性能资源的组合优化;计算资源的分工管理:外存管理、内存管理、CPU管理;计算资源的合作与协同——执行程序;计算资源的管理程序——操作系统;现代计算环境的演进——分布、并行和云计算环境

2.4计算机语言与

程序设计 由机器语言到高级语言;高级语言与编译器;不同层次的语言(抽象)与编译器(自动化);计算机语言(程序)的基本构成要素:常量、变量与表达式,语句与程序控制,函数与函数调用;利用高级语言进行程序设计

知识单元2.1是从理论层面看计算系统,指令、程序及程序的执行,为后面不同层次计算系统的理解奠定一些理论基础。知识单元2.2是在简单硬件层面,即CPU和内存的层面来看计算系统,使学生理解程序是如何被存储在内存中,又是如何被CPU读取并被执行的。

知识单元2.3是在2.2的基础上,进一步理解存储体系即资源的限制和利用问题,并简要理解存储体系环境下如何通过分工-合作与协同来执行程序的,同时理解资源管理的作用,在此基础上进一步理解人们是如何扩充资源数量提高资源性能、改善资源利用效率的,进而能简要地理解并行分布计算环境与云计算环境等。本单元的目的是使学生对计算系统的理解能从硬件过渡到软件。知识单元2.4使学生进一步理解如何通过程序来构造计算系统。通过计算机语言和编译器的发展,理解为什么编写程序越来越方便,而机器为什么又能执行越来越复杂的程序,使学生理解不同抽象层次的计算系统。

3. “算法思维”讲授的必要性和内容构成

为什么要讲授“算法思维”?作者认为是没有疑义的,关键在于:对基础薄弱、学时有限的非计算机专业学生讲授哪些算法,怎样讲授算法思维,如何使学生建立算法研究的基本思维模式,如何使学生理解算法与问题和环境的关系。

从最小化集合角度,“算法思维”课程内容应包含以下知识单元与知识点,如表3所示。

表3 “算法思维”知识领域的知识单元和知识点

知识单元 知识点

3.1算法类问题求解框架 算法的概念;问题理解与数学建模;算法策略;算法的数据结构;算法的控制结构;算法的表达方法;算法的实现——程序设计;算法的正确性分析;算法的复杂性分析;算法类问题求解的一般框架

3.2怎样研究算法——算法与问题和环境的关系 为什么要研究算法;为什么要研究快速的算法;算法需要考虑哪些方面——问题复杂性与资源/环境复杂性;受限资源环境下的算法设计与分析;算法与问题的关系,如何从问题语义挖掘求解思想;如何通过对问题及计算环境的深入理解而构造与设计算法;以典型的求解算法来介绍怎样研究算法

3.3怎样研究算法——难解性问题的近似解求解 可求解与难求解问题,即P类、NP类及NPC类问题的概念;NP类问题求解的基本思想——即近似解求解思想;如何从社会/自然中寻求问题求解的思想,例如自然生物的求解思想;算法研究的本质——为什么一个算法可以求解NP问题;算法如何应用——典型NP类问题的抽象与应用相关算法进行求解。

知识单元3.1是从过程和步骤角度阐述算法类问题的基本求解框架,使学生理解构造与设计任何一个算法要经过哪些步骤,在每一步骤中要做哪些事情,使学生理解算法求解的关键步骤是数学建模、算法策略设计、算法设计与表达、算法分析等。

知识单元3.2是在知识单元3.1基础上的进一步探讨,使学生准确理解“问题→算法”以及“问题→资源→算法”,探讨算法与问题和资源环境的关系,体验受限资源环境下的算法构造,体验不同环境可能产生不同的算法,体验通过问题的深入理解来发现求解问题的思想进而构造算法,体验审视问题的不同视角也可能产生非常简单但却很重要的算法。终极目的是使学生理解为问题而研究算法,而不是为算法而算法。

知识单元3.3也是在知识单元3.1基础上的进一步探讨,使学生准确理解可求解问题与难求解问题,以及对于难求解问题,如何设计算法求近似解;使学生体验社会/自然中的问题求解思维同样有助于产生计算问题的求解算法,将具体问题抽象出其数学模型更是有助于算法的发现与构造,进一步使学生深入理解算法研究的本质是什么。

特别要注意知识单元3.2和3.3不能从理论上来引入相关内容,而应从案例即具体问题及求解算法中引入相关内容,使学生通过具体案例进

行体验,否则由于学生缺乏必要的理论基础而造成理解上的困难,达不到培养计算思维的目的。这也是知识单元3.2和3.3被认为对初学者非常困难的原因之一,通过案例来化解难度是教学实施过程需要特别注意的。

4. “信息素养”讲授的必要性和内容构成

什么是素养?简单来讲,素养是一个人应具有的关于某一方面内容的知识基础,或应形成的关于某一方面事物或做某些事情的思维习惯。虽然由于缺乏工具的掌握而暂时做不出来,但他知道这是能够做出来的,并且知道如何做是最好的。虽自己暂时做不到,但却能够欣赏或者能够比较,一旦其掌握了工具或方法,则其所完成的将比一般人更好。当前是信息社会,每个人都离不开信息,一个人获取信息、处理信息和利用信息的能力将影响其未来的工作和生活。因此,信息素养是信息时代每个人应具有的基本素养。信息素养包括数据化方面的素养——管理和利用数据,网络化方面的素养——连接和利用网络,信息出版方面的素养——编排和出版作品和成果,信息安全方面的素养——如何保护自己的数据和设施。

从最小化集合角度,“信息素养”课程内容应包含以下知识单元与知识点,如表4所示。

表4 “信息素养”知识领域的知识单元和知识点

知识单元 知识点

4.1怎样管理和利用数据 数据为什么要管理;数据库与数据库管理系统;结构化数据库与关系模型;结构化数据库语言SQL;数据库的社会影响

4.2怎样连接和利用网络 为什么要连接和利用网络;网络通讯基础;计算机组网与连接;TCP/IP协议及网络传输过程;网络运用基础—HTML与XML语言;网络自动搜索;网络运用及其社会影响

4.3怎样编排和出版 传统媒介出版与电子媒介出版;信息出版物的基本要素及其属性;期刊文章与图书的构成要素与编排要求;电子讲演稿的基本构成要素及编排要求;非线性媒介出版物的内容组织方法

4.4 怎样保护信息与网络的安全 什么是信息安全;计算机病毒及其防治;网络入侵及其防范措施;信息安全的职业道德规范及法律法规

知识单元4.1关注的是数据化方面的思维与素养,其核心是数据库及基于数据库的数据利用问题,目的是使学生理解数据管理的重要性以及数据管理的手段,体验基于数据库的数据运用方法,理解数据库的社会影响。

知识单元4.2关注的是网络化方面的思维与素养,其核心是网络连接方法及网络运用问题,目的是使学生理解机器网络连接及信息传输的几个核心概念,进而理解机器网络之上的信息网络、社会网络等网络运用问题,理解网络对个人和社会的影响。

知识单元4.3关注的是信息出版方面的思维与素养,其核心是理解不同出版物如图书、期刊文章、电子讲演稿、电子媒介等不同出版物的构成要素和出版要求,其本质是学习内容组织的方法和技巧,而不是学习各种文字处理软件。能否使用文字处理软件是一个问题,然而能否用文字处理软件编排出符合要求的、格式精美的出版物是另一个问题,前者只是软件的学习与掌握,而后者则是一种素养-信息出版素养的培养。

知识单元4.4关注的是信息与网络安全方面的思维与素养,其核心是理解可能对信息与网络安全造成影响的计算机病毒、网络攻击等的基本原理与防护手段,进而提高信息与网络安全方面相应的防护能力。

5. 大学计算机课程的教学内容的扩展集合

前面给出了大学计算机第一门课程教学内容的最小集合。在此基础上,本部分给出该课程教学内容的扩展集合。扩展集合的内容除包括前述的最小集合外,还应增加系统科学思维、数据抽象与计算思维、网络计算思维的内容。

表5 扩展集合的知识单元和知识点

知识单元 知识点

5.1系统类问题求解框架 系统的概念;系统科学方法;系统的问题域建模与结构化思维;系统的软件域建模与面向对象思维;面向对象的程序设计;模块与系统的实现;系统的结构性问题探讨;系统的可靠性与安全性

5.2 数据抽象与计算思维 为什么说数据也是生产力;由数据库到数据挖掘;为什么需要抽象-理论与设计;数据抽象的具体方法——理解-区分-命名-表达;设计的基本方法——形式-构造与自动化;理论的基本方法——定义-公理-定理与证明

5.3网络计算思维 由机器网络到信息网络;标记语言;基于互联网的创新思维;社交网络-群体互动网络;网络化社会与网络计算方法示例

知识单元5.1是对“算法思维”内容的进一步扩展,由算法扩展到系统,关注的是系统科学思维。问题求解主要包括两个方面:一个是算法类问题求解,一个是系统类问题求解。系统通常是复杂的,具有不同于算法的一系列特性,例如系统有体系结构问题、可靠性问题等,软件系统还有不可见性等。如何把握系统,如何把握系统的复杂性、化复杂为简单、使不可见内容以可理解方式展现出来,算法强调的是数学建模,而系统则更多地进行非数学化建模,系统类问题求解的基本能力对学生而言是需要了解的,掌握了这种能力对于今后各种复杂系统的学习便可非常轻松。

知识单元5.2则是对“怎样管理和利用数据”内容的进一步扩展,由数据库到数据分析,进一步到基于数据挖掘的数据运用。当前数据的运用已成为一种趋势,一切以数据说话,尤其是大数据环境下出现的“不考虑因果而仅关注关联”的数据处理思维,已经产生了很多的创新思维,大学生应该了解这些思维。计算科学关注更多的是规模达到一定程度时数据的分析和运用。另一方面,通过数据领域的模型-语言-系统等探讨一般意义上的数据抽象-理论和设计,使学生对抽象有更深入的理解,同时使学生理解如何从抽象走向理论,如何从抽象走向设计,使学生掌握基本的研究方法,养成科学的研究习惯,对学生的数据化思维的形成与实现是很重要的。

知识单元5.3则是对“怎样连接和利用网络”内容的进一步扩展,由机器网络延展到信息网络,进一步延展到社会群体互动网络,再到物联网、服务网,虚拟世界网络与现实世界各种网络相互融合,很多的创新思维是基于网络化而产生的,学生应该了解这些创新思维。另一方面,如何研究网络化问题,面对网络化问题如何借助于数学手段进行研究,研究各种网络的结构问题、行为问题等将是学生未来不得不面对的问题,通过网络领域问题的数学化抽象,使学生理解如何将小规模网络的结论推广到大规模网络,如何将数学理论应用于大规模网络的研究,使学生理解网络计算科学的基本研究方法,对学生网络化思维的形成与实现也是很重要的。

之所以将上述内容列为扩展集合的内容,一是因为其本身便可构成一门独立的课程,在本门课程中仅能选取典型的案例让学生对这些内容有一个感性和理性的体验,重要的是使学生了解这些思维产生的原因,而不能追求其宽度,仅可通过一个角度来使学生了解。二是其内容有一定的深度,需要在前述最小集合讲授清楚的前提下,并有必要的学时支撑下才能很好地讲授。另外,这些内容对教师的要求也较高,因此现阶段可采取有步骤、有选择地引入课堂教学,而不必追求全面引入,故被列为扩展集合中。

三、面向计算思维的大学计算机课程教学内容体系的实施方法

前面给出了大学计算机第一门课程内容的最小集合和扩展集合,怎样实施也是一个问题,下面针对教学内容体系的实施方法谈几个问题。

1. 知识与思维

毫无疑问,前述内容虽说是最小集合,但其内容覆盖面却是很宽的。如果单纯以灌输知识的方式进行讲授,则其内容肯定讲授不完。例如“符号化-计算化-自动化”知识单元中的每个知识点,如果按知识来介绍,则每个知识点都可能需要几个学时,仅仅一个二进制和编码就可以讲授很多的内容。但换个角度,从思维的角度来介绍二进制,只需让学生理解任何信息都可以用0和1来表示,即可由计算机来处理,便可压缩掉很多的内容,而更关注于知识的贯通,关注于由各个知识点贯通起来所形成的思维即“语义符号化→符号计算化→计算0(和)1化→0(和)1自动化→分层构造化→构造集成化”,关注于理解如何将现象符号化,进一步0和1化,然后即可由计算机硬件和软件予以识别和执行。 因此,“知识”随着“思维”的讲解而介绍,“思维”随着“知识”的贯通而形成,“能力”随着“思维”的理解而提高。这种教学内容的取舍方法和教学方法对大学计算机第一门课程应是很重要的。

2. 大思维与小技巧

毫无疑问,计算机学科充满了太多的“小技巧”。毫不夸张地说,任何一个表示方法或者算法都是充满技巧性的,对学生也是有吸引力的,学生急于想知道为什么是这样或那样的。还是以“符号化-计算化-自动化”为例,为什么几个门电路可以形成“加法器”呢?为什么符号可以参与运算而且结果还能正确呢?几轮的教学实践证明,这些技巧是可以促进学生进一步思考的,也可以激发学生产生想做一做的冲动,正确引导便可能调动学生学习的积极性。

然而,大学计算机第一门课程还是应更多地关注计算学科中经典的计算思维,而这种计算思维目的是启发大学生在信息环境下的创造性思维,即所谓的“大思维”。面对这种大思维的介绍,必然会有许多的小技巧被舍弃或者被略讲,仅做到可以使学生能听得懂即可,而不必过多介绍细节性内容。我们应引导学生既关注小技巧,又要更着眼于大思维。

3. 宽度教学与深度教学

通识教育课程应着重培养学生的思维。思维的特性决定了它能给人以启迪,给人创造想象的空间,并可能潜移默化地被融入到未来的创新活动中。如何使学生更好地理解思维——宽度教学与深度教学相结合的教学是必要的。针对计算思维通识教育,宽度教学是指能够从社会/自然生活中的广义计算讲起,进一步讲解到计算技术与计算系统中的计算,要能够将社会/自然生活中的概念、原理映射到计算技术与计算系统中的概念、原理。通过这种映射,一方面使学生易于理解和接受计算学科的概念和原理(通过对比社会/自然生活中的概念和原理来理解),另一方面可使学生理解计算机科学家是如何借鉴现实中的概念进行抽象和自动化的,进而还可强化学生通过类比跨学科事物进行抽象和自动化的能力培养。如果仅仅停留在宽度教学的层次,那也只是使学生基本理解了思维相关的概念,并不能使学生对相应的思维有深入的理解和体验,即所谓的计算思维的浅层次理解。为了强化计算思维的深层次理解,还需要深度教学。所谓深度教学,是指在学生理解了思维相关的基本概念后,能够进一步探讨思维的一些深层次内容,如思维的本质和思维的应用。通过思维的本质性探讨,强化思维理解的深度,进而强化思维对学生的影响;通过对应用的抽象,强化思维理解的深度,进而强化思维的作用和价值。

计算思维教学应能从宽度教学延展到深度教学,把计算思维讲清楚、讲透彻,对学生的进一步学习和未来的工作奠定一个坚实的基础。

4. 思维与实用

有些同学和教师习惯于以“实用性”来评价一门课程,认为计算思维是没有实用价值的,而“如何拆装机器”“如何使用计算机语言编写程序”“如何使用一个软件完成诸如编排文档、表格计算”等则是实用的,作者也曾经有过这样的认识,此即“狭义工具论”的观点。但经过多年的教学实践后发现,类似前述的所谓实用的内容既是容易掌握的,也是不容易掌握的。说其容易掌握,是指如果我们理解了相关的“思维”,则对具体操作的掌握是容易的,各种软件、硬件、网络等计算系统莫不是遵循某种思维而设计和实现的。说其不容易掌握,是指蕴含在硬件、软件中的思维如果不理解,则对为什么这样操作就不容易理解。因为计算机语言、软件、硬件都是不断在演变的,其操作也都是在不断变化的。但万变不离其宗,其根本的思维如果能够理解,则可以收到事半功倍之效。

5. 原理与案例

相比于经典的数学、物理学科而言,计算机学科可能是不断产生新概念、新原理的学科。诸多概念和原理既源于社会与自然,同时由于其进行了抽象以适合于不同层次的计算系统,形成了许多新概念、新原理。这些新概念、新原理对于计算机学科知识的掌握是必要的,对于能够像计算机科学家一样思考也是必要的。

然而在课程中若仅仅讲授这些新概念、新原理,或者以概念讲概念、以概念讲原理,则对于初学者而言可能有些困难,虽然这些概念、原理记住了,可能记住的只是一个名词,而其背后蕴含的思考、蕴含的思维却被忽略了,而这种思维比这个名词更重要。

能否通过案例来解决这个问题呢?通过案例的引导与讨论,不仅能够把概念、原理阐述清楚,而且能够将概念、原理的抽象过程展现出来,案例驱动、寓理于例,通过社会/自然及生活中的案例和计算技术与计算系统的案例对比,在案例和讨论中引出计算学科的术语、概念和原理,引导学生对计算思维从一个较浅的理解层次逐步过渡到较深入的理解层次。

6. 互联网教学与课堂教学

当前出现的以MOOC(Masive Open Online Course)为代表的互联网教学手段对于解决基础-内容-学时的矛盾提供了有效的手段。MOOC通过短视频网上在线学习、翻转课堂、在线互动讨论、在线考评等手段,可有效支持学生不受时间、空间、师资等方面的限制,重复观看视频、随时随地在线互动讨论以加深课程内容的理解,这可有效弥补课堂教学的不足。同时,课堂教学若能结合MOOC技术,释放课堂的能量,加强与学生的互动和深度交流,则可起到宽度教学与深度教学相结合的效果。宽度教学由视频完成,深度教学则由课堂教学来实现,如此可有效地保证教学质量的提升。关于这方面内容不在这里深入讨论了。

经过多年的努力,人们已经认识到面向计算思维的大学计算机课程应该成为和大学数学课程、大学物理课程一样地位的经典课程,然而受限于诸多因素,该门课程在人们心目中并未达此地位。这说明大学计算机课程仍需要改革,仍需要做出艰苦的努力,其中之一是必须破解“基础-内容-学时”的矛盾。本文提出的大学计算机课程教学内容体系,给出了大学计算机课程教学内容的最小集合和扩展集合,并探讨了相关的教学方法,为破解这一矛盾给出了一种可行的、有效的解决方案。作者相信,通过从事大学计算机通识教育的所有教师的共同努力,大学计算机课程必然会成为和大学数学课程、大学物理课程一样的经典课程。

参考文献:

[1] 李廉. 以计算思维培养为导向深化大学计算机课程改革[J]. 中国大学教学,2013(4).

[2] 教育部高等学校计算机基础课程教学指导委员会. 关于申报大学计算机课程改革项目的通知[Z]. 2012.

[3] 战德臣, 聂兰顺, 徐晓飞.“大学计算机”——所有大学生都应学习的一门计算思维通识教育课程[J]. 中国大学教学,2011(4).

[4] 九校联盟(C9)计算机基础教学发展战略联合声明[J]. 中国大学教学,2010(9).

[5] 战德臣, 聂兰顺. 计算思维与大学计算机课程改革的基本思路[J]. 中国大学教学, 2013(2).

[6] 陈国良等,计算思维与大学计算机基础教育[J].中国大学教学, 2011(1).

[7] Jeannette M. Wing. Computational Thinking[J]. Communications of ACM, 2006, 49(3): 33-35 .

[本文是教育部高教司大学计算机课程改革项目“以计算思维为导向的大学计算机基础课程研究”、“理工类高校计算思维与计算机课程研究及教材建设”和黑龙江省高等教育教学改革项目“面向计算思维培养的大学计算机教育教学改革研究”的研究成果。]

[责任编辑:夏鲁惠]

猜你喜欢
大学计算机计算思维教学内容
新冠疫情期间小学信息技术在线教学内容的选择和实践
以自主学习能力培养为目标的大学计算机课程教学改革
独立学院“大学计算机”实验课程教学改革
民办高校以NCRE为指导的大学计算机课程教学研究
程序设计课程中计算思维和应用能力培养问题研究
等差数列教学内容的深化探究
民族高校C语言程序设计课程教学改革的研究
算法的案例教学探析
浅谈艺术专业学生计算思维能力的培养