Visual Basic程序设计课程的计算思维教学实践

时间:2022-06-23 03:44:43

Visual Basic程序设计课程的计算思维教学实践

摘要:计算思维是目前国际与国内计算机教育界关注的热点之一。以“计算思维”为线索展开“Visual Basic程序设计”教学,就是以培养和训练学生的计算思维和计算能力为核心设计教学内容和展开日常教学活动,即 “知识”随着“思维”的讲解而展开,“思维”随着“知识”的贯通而形成,“能力”随着“思维”的理解和训练而提高。将“计算思维”引入“Visual Basic程序设计”教学,作为一种教学尝试,也是一种教学改革,现将其中的一些教学实践与大家共同探讨和分享。

关键词:计算思维;Visual Basic 程序设计;教学

中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)25-6266-03

The Application of Computational Thinking in Visual Basic Programming Teaching

JIA Ru, HAO Chang-sheng, PEI Yi-fei

(The Engineering and Training Center, Inner Mongolia University of Science & Technology,Baotou 014010, China)

Abstract: Computational thinking is widely becoming a hot spot in computer education nowaday.In order to cultivate and train the college students' ability of computational thinking & the computational ability better, computational thinking is applied in Visual Basic Programming Teaching.It is a new teaching reform which will provide a good example for the teaching of other computer education.

Key words: computational thinking; visual basic programming; teaching

目前,计算思维的培养成为国际和国内计算机教育界关注的热点。在我国,2010年《九校联盟(C9)计算机基础教学发展战略联合声明》的核心要点也强调“需要把培养学生的‘计算思维’能力作为计算机基础教学的核心任务”。而且从国家层面上讲,大学计算机基础教育这门课程的定位就是基础课程,也就是与数学、物理同地位的基础课程[1]。既然它是基础课程,课程的教学方法和教学理念就应该像数学与物理一样,将学科的基本理论、基本思维讲给学生。计算和计算思维是计算机基础课程的基本理论和基本思维,科学家已将计算思维和理论思维、实验思维并列为人类三大科学思维[2] ,为此,就应该将计算思维的基本概念和基本理论讲授给学生。因此,在大学计算机基础教育中强调和深化“计算思维”的培养,既有助于计算机基础教育学科的健康、持续发展,又有助于国家战略型人才的培养。

“Visual Basic程序设计”是大学计算机基础课程的重要分支,也是许多高校非计算机专业进行计算机基础教育的重要课程之一,该课程的目标:学习问题求解的思路和方法即算法,理解计算机是如何具体实现算法即如何有效利用计算机编程,最终通过该课程的学习提高广大学生的计算机操作使用能力、应用开发能力、研究创新能力以及计算思维和计算能力。也就是说,培养和训练大学生计算思维不仅是计算机基础教育的现实要求,更是Visual Basic程序设计的课程要求。

1 计算思维

国际上广泛认同计算思维的定义来自美国卡内基・梅隆大学周以真(Jeannette Wing)教授。周教授认为,计算思维(Computational Thinking)是运用计算机科学的基础概念(即思想和方法)进行问题求解、系统设计,以及人类行为理解的涵盖计算机科学之广度的一系列思维活动,它不仅属于计算机科学家,它应当是每一个人的基本技能[3]。计算思维是建立在计算过程的能力和限制之上,由人由机器执行。计算方法和模型使我们敢于去处理那些原本无法由个人独立完成的问题求解和系统设计[4]。计算思维的本质就是抽象和自动化,即如何按照计算机求解问题的基本方法去考虑问题的求解,以便构建出相应的算法和基本程序。

计算思维是一种具有普遍性的科学思维方法,依据周教授的观点,它包含如下主要内容:

1) 通过简约、嵌入、转化和仿真等方法,把一个看来困难的问题重新阐述成一个我们知道问题怎样解决的思维方法;

2) 是一种递归思维,是一种并行处理,是一种把代码译成数据又能把数据译成代码,是一种基于多维推广的类型检查方法;

3) 是一种采用抽象和分解来控制庞杂的任务或进行巨大的任务系统设计的方法,是一种基于关注点分解的方法(Seperation of Concerns,简称SoC方法);

4) 是一种选择合适的方法陈述一个问题,或对一个问题的相关方面建模使其易于处理的思维方法;

5) 是按照预防、保护及通过冗余、容错、纠错的方式,并从最坏情况进行系统恢复的一种思维方法;

6) 是利用启发式推理寻求解答,也即在不确定情况下的规划、学习和调度的思维方法;

7) 是利用海量数据来加快计算,在时间和空间之间,在处理能力和存储容量之间进行折衷的思维方法。

2 以“计算思维”为线索展开“Visual Basic程序设计”教学

思维方法比知识本身更重要。既然计算思维是一种问题求解的基本思维方法,作为从事计算机基础教学的一线教师就应该切实地在日常教学中潜移默化地训练和培养学生的计算思维能力,提高他们的计算思维素养,进而培养和锻炼他们的创新能力。

2.1 以“计算思维”为线索展开“Visual Basic程序设计基础”教学

Visual Basic程序设计基础就是Visual Basic语言。正像自然语言的产生是人类社会活动发展的客观要求和必然结果,同样,计算机语言的产生和发展则是人类使用计算机的客观要求和必然结果。从计算机语言的基本语法到其整体结构,都渗透着许多计算思维。因此,以“计算思维”为线索展开“Visual Basic程序设计基础”教学就是:在讲解相关知识点的同时也要讲授其中所反映的计算思维,通过思维强化知识,通过知识培养思维;这样,既有利于语言本身的学习,又有助于学生计算思维能力的培养。

例如,人们利用计算机就是为了处理信息数据,而不同类型的信息数据,其表达方式不尽相同,其处理方式也会有所不同,那么,计算机是如何实现信息数据的表示、存储和处理?这其中蕴含的计算思维又是什么?首先,根据冯・诺依曼计算机体系结构:从软件方面考虑,可通过声明或定义不同类型数据以表示不同类型的信息;从硬件方面考虑,可通过存储元件可实现信息数据的存储,不同类型的数据占用不同长度的存储单元。可仅仅完成信息数据的表示和存储是远远不够的,如何真正实现数据处理?由此便产生了计算机语言,即利用计算机语言编写的数据处理程序指挥CPU(中央处理器)完成相应的数据处理。这个通过人、机共同努力完成的“问题求解”过程,就是一个计算思维的实现过程,如图1所示。

显然,实现这样一个信息处理的计算思维,是需要计算机语言的技术支持:即数据表示(数据类型)、数据存储(变(常)量)和数据处理(表达式和控制结构),并由此引出Visual Basic语言基础知识的学习。

2.1.1 数据表达

数据表示――数据类型

例如,根据现实生活中不同的信息数据如文本型、数值型、逻辑型、日期型、货币型等,Visual Basic语言便提供了相应的数据类型:String型(字符型)用于表示文字信息,所占用的内存空间最多可达20亿字节;Numeric型(数值型)用于表示数值信息,表示范围越大、精度越高的数据类型所占用的存储空间也越大,如Byte型(字节型)、Integer型(整型)、Long型(长整型)、Single型(单精度型)和Double型(双精度型)、Currency型(货币型)6种基本类型,它们所表示的数据范围和精度依次增大;Boolean型(逻辑型)用于表示逻辑判断的信息,如对/错、是/否、真/假等,占用2个字节的存储空间;Date型(日期型)用于表示日期、时间信息,一般占用8个字节的存储空间;Variant型(变体型)是一种特殊的数据类型,可用于表示任何信息,占用的存储空间灵活;Object型(对象型)用于表示任何类型的对象,一般占用4个字节的存储空间。

数据存储――变(常)量

这些不同类型的数据在计算机具体处理时,一般都被放在一定的内存单元中,但为了进一步高效地使用系统资源快捷地处理这些数据,用户需要指定这些内存单元,于是Visual Basic给我们提供了变(常)量,即用户通过声明或定义相应数据类型的内存单元的符号地址,CPU就可根据这些符号地址准确地存取数据,进而进行相应的运算。

2.1.2 数据处理

简单的数据处理――表达式

Visual Basic在充分利用CPU运算功能的基础上,提供了针对不同类型数据采用不同的计算方式――表达式,它是一种最基本的数据计算方法,主要有算术表达式(完成数值型数据的计算)、字符串表达式(完成字符型数据的计算)、关系表达式(完成数据的比较计算)、逻辑表达式(完成逻辑型数据的计算),并由此实现对数据的初级、简单处理。

复杂的数据处理――控制表达

在日常的信息数据处理过程中,常常需要根据不同条件,实现对数据灵活多样的处理,显然,基本表达式难以直接实现,于是基于这一客观需要,计算机语言便产生了控制表达,即根据条件完成相应的计算,如语句级控制(如分支、循环)和模块级控制(如函数)[5]。

语句级控制的结构有条件语句控制和循环语句控制。条件语句控制结构主要有:If条件分支和Select条件分支,循环语句控制结构主要有:For条件循环和Do条件循环。

模块级控制,对于Visual Basic语言而言,就是过程级控制。Visual Basic将一个工程分为多个模块(也称文件),每个模块中的代码又分为相互独立的多个过程(Procedure)。过程就是具有一定语法格式、完成一个相对独立任务的语句段。在同一个工程中的各过程在代码上相互独立,但功能上相互联系。过程级控制的结构主要有两种:系统内部过程(内部函数过程、事件过程)和自定义过程(用户根据自己需求设计的过程)。

2.2 以“计算思维”为线索展开“Visual Basic程序设计”教学

简单的计算机语言支持,可以完成简单的数据处理,但对于复杂、大量的数据处理,则需要一定的处理方法,这便是程序设计方法。当前,影响最大、使用最广泛的程序设计方法主要有两种:面向过程程序设计方法也称结构化的程序设计方法(Structured Programming)和面向对象程序设计方法(Object Oriented Programming)。Visual Basic语言既可以实现面向对象也可以实现面向过程的程序设计。面向过程程序设计是一种传统的程序设计方法,面向对象程序设计方法是一种全新的、当前比较流行的程序设计方法,但不管是哪种程序设计方法都是值得学习和借鉴、并能有效解决实际问题的计算思维方式。以“计算思维”为线索展开这部分内容的教学就是将程序设计实现问题求解所体现的计算思维讲授给学生,即“方法”随着“思维”的讲解而展开,“思维”随着“方法”的贯通而形成,“能力”随着“思维”的理解和训练而提高,最终使学生真正掌握基于计算技术/计算机的问题求解思路和方法,并逐步培养他们相应的计算思维和计算素养,提高他们的计算能力,进而为他们日后所从事的研究和工作开拓思路、大胆创新奠定基础。

2.2.1 面向过程的设计方法

面向过程的设计方法所强调的计算思维:程序功能的实现主要由过程(或函数)完成实现。在程序中接收或者定义各种数据,然后通过过程(或函数)对数据进行操作,最后将结果输出或返回。面向过程设计方法的特点是将数据结构和过程(或函数)作为两个实体对待,程序设计范型的主要特征:

程序=数据结构+算法

程序中数据结构和过程的分离,造成了程序的可重用性差,程序维护代价高,因此,面向过程的设计方法更适用于功能和数据结构及其关系都不复杂的问题求解。

Visual Basic系统提供了丰富的内部函数、事件过程,而且用户还可根据需要自定义实现一定功能的过程(也称子过程或函数)。无论是系统提供的还是用户自定义的各子程序之间可以彼此独立,亦可相互联系、相互调用,形成了结构化明显的程序结构,其中充分体现了结构化的计算思想:

1) 自顶向下、逐步求精

在进行程序设计时,先把对问题的处理(算法)粗分成几个步骤,叫模块。然后对每个模块再细化为几个小模块,每个小模块再细分为若干个更小的子模块,直到每个小模块功能直接用语言来实现为止。这种逐步细化的计算思维方式,使得程序结构清晰,便于日后维护和修改。

2) 模块化

整个程序就是由几个大模块构成,各个大模块又是由功能相对独立的模块组成,每个模块只能有一个入口和一个出口与外界联系。这种清晰的程序结构,既便于机器实现功能,又便于设计者的设计,同时还便于程序的调试、修改和维护。

3) 三种基本结构

整个程序中的大小模块仅由顺序、选择和循环三种基本控制结构组成。这三种基本控制结构都是单入口和单出口,它们可以任意组合、嵌套,可构造各种功能复杂的大结构,且又能保证每个模块结构清晰、层次分明,致使整个程序结构也很清晰。清晰的结构提供了清晰的问题求解方案。

2.2.2 面向对象程序设计方法

面向对象程序设计方法体现的计算思维:通过操作对象完成需要的功能,对象包括各种数据和方法,方法就是对数据进行操作,然后将得到的结果输出或返回。面向对象程序设计是一种围绕真实世界的概念来组织模型,它采用对象来描述问题空间的实体,强调从问题域的概念到软件程序和界面的直接映射,因此,它更接近于人的自然思维[6]。面向对象程序设计这种新型程序设计范型的主要特征是:

程序=对象+消息

其中,对象是程序的基本元素,传递消息是基本操作。具体体现在这些方面:程序一般由类的定义和类的使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规律;程序中的一切操作都是通过向对象发送消息来实现,对象接收到消息后,启动有关方法完成相应操作;类由继承关系产生相互间联系。一个程序中涉及到的类,可由程序设计者自己定义,也可使用现成的类(包括类库中的类或他人已建好的类),尽量使用现成的类是面向对象程序设计范型所倡导的思维方式。

面向对象程序设计方法一般包含如下四个基本步骤:

1) 系统调查和需求分析

2) 面向对象分析OOA(Object Oriented Analyzing)

3) 面向对象设计OOD(Object Oriented Designing)

4) 面向对象实现OOP(Object Oriented Programming)

在这样的理论框架[7]指导下,在具体教学中,将面向对象程序设计的计算思维的核心概括为:一个中心即以对象为中心、两个基本点即前台设计和后台设计,这里的前台主要指用户界面,后台主要是程序代码,但无论是前台还是后台都是围绕对象展开,并由此帮助学生逐步构建面向对象程序设计方法的计算思维,进而用之解决具体实际问题,尤其是在开发功能较为复杂的大型系统,面向对象程序设计方法将是一种简洁方便、高效的求解方案,不仅如此,还应启发和鼓励学生并创造性地运用这种面向对象的计算思维解决现实生活中的多种问题。

3 总结

以“计算思维”为线索展开“Visual Basic程序设计”教学,就是将程序设计中所体现和涉及的计算思维,通过日常教学予以精讲、明讲、透讲,然后再启发学生利用这些计算思维自主解决实际问题,帮助他们从中领悟“什么是计算思维?如何应用计算思维解决问题”,并在解决问题中自主建构自己的计算思维、锻炼自己的计算能力,进而为他们将来的研究、工作和学习中具有创新思维和创新能力夯实基础。

当然,以“计算思维”为线索展开“Visual Basic程序设计”教学,作为一种教学改革和教学尝试,需要进一步完善,特别是,随着对“计算思维”理论知识与实践知识认识的深化,将会更好地指导教学实践,真正培养学生的计算思维和计算素养,提高他们的计算能力。

参考文献:

[1] 陈国良, 董荣胜. 计算思维与大学计算机基础[J]. 中国大学教学, 2011(1):7-11.

[2] 朱亚宗. 论计算思维[J]. 计算机科学, 2009,36(4):53-55.

[3] Jeannette putational Thinking[J]. Comminications of the ACM,2006,49(3):35.

[4] 董荣胜. 计算思维与计算机导论[J]. 计算机科学, 2009,36(4):50-52.

[5] 何钦铭, 颜晖, 等. “程序设计基础”课程教学实施方案[J]. 中国大学教学, 2010(5):62-65.

[6] 周生炳, 万映辉, 邸晓奕. 面向对象程序设计[M]. 北京:清华大学出版社,2004.

[7] 王栋. Visual Basic程序设计实用教程[M]. 北京:清华大学出版社,2007.

上一篇:校园网络安全的思考与对策 下一篇:企业数据挖掘技术在企业信息化中的应用