APP下载

基于计算思维的大学程序设计课程教材建设新思路

2019-08-07

计算机教育 2019年7期
关键词:程序设计环境教材

沈 军

(东南大学 计算机科学与工程学院,江苏南京 211189)

1 大学程序设计课程教材建设存在的问题

随着泛计算社会的到来,大学程序设计课程的地位变得十分重要,其教材建设成为整个教学活动的关键。目前该课程教材建设的流派主要有语言主导型、算法主导型、环境主导型和应用主导型。语言主导型属于传统教学范式,主要强调程序设计语言本身的各种机制及其具体表达[1],将语言的应用交给其他课程以及学生本身。该流派的主要问题是,割裂了语言与语言应用两者之间的内在思维联系,并且对语言机制产生的动因(即如何支持程序设计方法)以及语言各种机制之间的思维联系没有给出解析。算法主导型改进了传统范式,将一些基础数据结构及基本算法作为语言机制的初步应用[2]。该流派的主要问题是,语言机制缺乏系统性逻辑,对语言机制产生的动因及语言各种机制之间的关系没有给出解析,同时,对数据结构及基本算法知识缺乏结构化梳理,过多强调数据结构及基本算法的知识,导致认知难度增加。环境主导型往往结合某种具体开发环境,以其如何使用为主线,穿插介绍程序设计语言机制和环境机制的具体使用。该流派的主要问题是就事论事,适合于技能训练(本文对该类教材不做评论)。应用主导型一般以某个或某些专业的基本应用为主要示例,结合该示例的具体实现,介绍语言的各种机制及其基本使用。该流派的主要问题是,缺乏系统性的语言机制逻辑组织,对语言机制产生的动因及其内在关系同样缺乏解析,并且,因其应用的针对性,缺乏普适的意义。

相对于国内教材建设,国外同类教材建设思路具有明显的逻辑性。首先,将教材分为两个主要层次:面向基础教学类和面向应用类。前者定位于与领域应用相对独立的程序设计基础知识与能力培养,主要面向教学,可以对应国内教材建设状态;后者定位于与领域应用相关的程序设计基础知识与能力培养,主要面向后教学(即离开学校后的进一步教学)的拓展,针对各种特定领域应用,系统化梳理该领域应用应具备的普适处理方法。其次,两类教材的内容和体系具有一定的逻辑完备性。对于面向基础教学类教材,一般都综合了语言、算法及应用,并且,对三者的关系及其运用进行系统化梳理。其教学目标是覆盖语言、算法及应用三个维度,使学生具备程序设计应有的基本能力(即夯实基础知识,兼顾纵向的知识应用能力)。对于面向应用类教材,一般都淡化语言,适当兼顾算法,重点强调领域相关的通用问题处理方法。其教学目标是使学生具备较强的领域应用程序设计能力(即强调知识应用能力)。最后,两类教材建设的基本理念都是以方法为主,而不是以知识为主。尽管国外教材建设思路是西方逻辑文化及其延伸的教学理念使然,具备一定的教学应用优势,然而,它对思维能力的培养仍然是隐式的,其对思维能力的培养深度取决于教师对教材的解读及其教学设计能力。

综上所述,国内各种流派的教材建设思路未能系统地深入到方法和思维层次。国外教材建设思路尽管对这方面的缺陷作了一定弥补,但是其隐式思维能力的培养方式,对于国内大部分教师而言,无法真正起到有效作用。另外,国外教材建设思路的隐式思维能力培养未能深入到计算机学科固有的元思维特征层次[3]。

2 计算思维基本原理及其教学指导意义

计算机学科固有的多维属性,孕育了其独有的计算思维(computational thinking)[4-5]。本质上,计算思维的核心是递归思维,它是处理多维形态的一种最简洁的策略,可以通过有限的基本手段实现无限的应用需求。因此,计算思维具有天生的高阶属性。这种思维策略的关键是构建了一种自含式的基本原理。具体而言,该基本原理是一个二元组(BS,BRS),其中BS表示基础方法(或原子方法)集合,BRS表示基础方法的关系(或原子方法的运算)集合,并且,BRS作用于BS的结果仍然可以是BS的元素,从而使其具备自含特性。

计算思维基本原理的教学指导意义在于强调方法和思维的教学,将具体的知识作为其外化的表现和示例,从而回归教学的本源。深入而言,其教学指导意义在于提升了教学的抽象层次,将目前面向知识传授的单一层次拓展为面向知识传授和方法及思维培养的两个层次,并解析两个层次的内在辩证关系。具体而言,针对程序设计课程,其涉及的方法、语言、环境、应用等都应该围绕计算思维原理展开,并解析原理对各个方面的具体映射和作用,从而培养学生正确的专业思维,播下支持学生未来持续创新的思维种子。

3 基于计算思维的大学程序设计课程教材建设思路解析

3.1 大学程序设计课程的特点

3.1.1 内容及其关系

程序设计涉及计算机语言(简称语言,用以描述程序)、计算机环境(简称环境,用以给出程序构造和运行的基础)、计算机应用(简称应用,用以给出符合计算机特点的问题处理方法及步骤安排)和程序构造基本方法(简称方法,用以给出程序基本结构的定义,包括基本元素及其交互关系)四个方面,称为程序设计四要素。其中,方法是程序设计的内因,语言、环境和应用都是程序设计的外因。程序设计四要素之间相辅相成,缺一不可。语言和环境成为“程序”的约束条件,应用就是满足这些约束条件的“程序”。语言是一种黏合剂,将应用和环境连接起来。语言、环境和应用三个要素给出程序设计要素的外化关系,方法要素给出了程序设计要素的内化关系。也就是,语言和环境的各项机制设立,都必须围绕方法展开或支持方法,应用也是基于方法或是方法的具体运用。作为程序设计的内因,基本方法的演化带动了语言和环境的同步演化,最终又驱动了应用的发展。

3.1.2 教学特点

程序设计课程的教学具有明显的多维特征。一方面,其四个要素需要同步展开。尽管方法作为内因起到核心作用,其他要素都围绕它展开。但是,程序设计的教学却是不断在四个要素之间跳跃。图1(a)所示为四个要素的同步性。另一方面,计算思维作为一个隐式的维度,分别作用于四个基本要素,成为耦合四个基本要素的关键,图1(b)所示为相应的解析[6]。

图1 程序设计的多维特征

3.2 大学程序设计课程教材建设的新思路

大学程序设计课程教材的建设思路应该针对四个基本要素,分别找到其二元组(BS,BRS)的具体映射,并在此基础上构建教材的体系。

3.2.1 方 法

程序设计方法分为多个逻辑层次,一般包括面向数据组织和数据处理的基础方法、面向程序模型及结构定义的基本方法和面向应用的应用方法。基本方法是对基础方法的应用,应用方法是对基本方法的应用。本质上,基础方法和基本方法属于原理性层次,应用方法则属于原理的具体应用层次。对于基础方法,具体映射的定义如图2所示。

图2 计算思维原理到基础方法的映射

对数据组织和数据处理两个方面的基础方法及其关系的不同认识,构成不同的程序设计基本方法。伴随着人类自身对程序构造问题认识的不断深入,程序设计基本方法得到不断的演化,经历面向功能方法、面向对象方法、面向组件方法和面向服务方法的发展,每一种基本方法都给出程序的基本要素及其交互关系的定义,即程序基本结构模型的定义。程序基本结构模型的定义就是建立在计算思维原理之上,面向功能方法的具体映射为({模块},{模块之间的关系}),面向对象方法的具体映射为({对象},{对象之间的关系}),面向组件方法的具体映射为({组件},{组件之间的关系}),面向服务方法的具体映射为({服务},{服务之间的关系})。从模块到对象,从对象到组件,从组件到服务,粒度不断扩大,抽象层次及平台独立性越来越高。

3.2.2 语 言

语言作为一种描述工具,从其本身来说主要是提供各种描述机制。由于语言是方法的外化体现,因此,语言机制构建必然是为了支持方法。因此,计算思维原理对语言的具体映射就是给出用于表达基础方法和基本方法所定义二元组的相应语言机制。以C++语言为例,其映射关系如图3所示。

图3 计算思维原理到语言的映射(1)

考虑到语言要素自身的系统性,对于语言机制及其关系也遵循计算思维原理。图4(a)所示为语言的基本体系,图4(b)所示为语言机制及其关系的计算思维原理映射[7]。

图4 计算思维原理到语言的映射(2)

3.2.3 环 境

作为语言赖以作用的基础,环境一般分为程序运行支撑环境(或开发平台、运行平台)和程序开发(或写作、构造)环境两大类。程序运行支撑环境就是指计算机系统,包括系统软件操作系统(operating system,OS)。程序开发环境主要是指用于程序开发的工具集,两种环境的关系如图5所示。程序设计课程中,主要侧重于开发环境,其计算思维原理的映射如图6所示。

图5 程序设计环境

图6 计算思维原理到环境的映射

另一方面,针对环境自身,也遵循计算思维的宏观视图,即所有环境基本上都是围绕工程管理基本模型来构建,由此,环境的使用方式及其界面的设计与使用都基于定义的工程管理模型展开。随着应用的复杂而导致的程序规模庞大问题,现代程序设计环境所定义的工程管理模型也依据计算思维原理进行拓展,支持多维的工程管理模型。

3.2.4 应 用

应用一般是指对具体问题的处理。也就是,针对给定的具体问题,基于基本方法找到一种问题处理的方案,然后用语言将其表达出来并在环境中实现。尽管某个问题的解决方案是多样的,然而,在此,问题解决方案必须受到计算机这个特定环境的限制和约束。也就是,程序设计中的应用是人类处理问题的思维在计算机环境中的投影,这种投影具体表现为问题解决方案应满足计算机系统的特性和程序基本模型。这种独有的、在约束条件下的问题处理过程,形成了各种面向各类问题的有效的处理方法,并通过抽象建立起相应图式或模式。依据计算思维基本原理,程序设计应用的精髓在于发掘各种基本应用模式,以及对各种应用模式进行灵活建构。应用模式及其建构成为计算思维基本原理到应用要素的具体映射如图7所示。

图7 计算思维原理到应用的映射

4 教材建设新思路的现实意义及影响

建立在对学科特征及思维本质深刻认识基础上的教材建设新思路具有重要的现实意义,主要体现在:①是“教育部关于进一步深化本科教学改革全面提高教学质量的若干意见”的最贴切实践,提出的以思维和方法为核心的教学理念,回归了教学的本质,诠释了本科教学“本”的内涵[8];②为程序设计课程的教学改革及发展指明正确方向;③引导并实现教师工作性质回归教学研究,促进教师自身专业认知能力及素质的提高;④针对中西方文化差异,给出基于显式专业思维能力培养的教材建设方法并由此驱动教学设计,消除了国外教材建设中隐式思维能力培养教学方式对国内教学的不适应性;⑤深入元思维层次,并在此基础上重构程序设计课程知识的新结构视图,建立面向元认知能力培养的全新教学模式的基础。建材建设新思路的全面实现,必将对我国新一轮程序设计课程类教学改革的发展产生深远影响。

猜你喜欢

程序设计环境教材
教材精读
长期锻炼创造体内抑癌环境
一种用于自主学习的虚拟仿真环境
重视教材探究,多法破解圆锥曲线点线距
医学专业“Python程序设计”课程教学改革总结与思考
题在书外 根在书中——圆锥曲线第三定义在教材和高考中的渗透
基于Visual Studio Code的C语言程序设计实践教学探索
孕期远离容易致畸的环境
从细节入手,谈PLC程序设计技巧
源于教材,高于教材