薄树奎
摘要:内容宽泛是计算机导论课程教学中的难点。文章提出借助面向对象思想的优势,将计算机导论课程内容分成5个相互联系的对象,每个对象有各自的属性和行为,内容涵盖计算机导论课程的主要知识点。进一步阐述如何从逻辑上将教学内容组织起来,从人的认识规律入手讲解新知识,使大一新生易于接受,并能建立完整的学科知识体系。
关键词:计算机导论;课程教学;面向对象
计算机导论是计算机专业的入门课程,也是计算机专业完整知识体系的绪论。计算机导论课程的教学目的,是让大一新生了解计算机专业知识能解决什么问题,应该学什么、如何学,同时激发学生对计算机专业的兴趣,并帮助他们更好地步入后续专业课程的学习。
目前计算机导论相关的教材,大都是概括地讲授计算机学科主要课程的基本内容和应用,并介绍这些课程相互之间内在联系,使学生对计算机学科的理论基础、重要应用有一个基本的了解。国外教材的内容与我国教材差别较大,主要由于学生的背景和现状不同,并不适合目前大学生的实际情况。国内教材内容和课程的教学目的是吻合的,但普遍存在的一个问题是,大一新生在学习这门课的过程中,感觉教学内容过于分散,把握不住重点,很难理解老师讲的“是什么”;而且在学完这门课程后,也并没有明显的收获感,即使每节课都听瞳了,最后也像什么也没有学到一样。教学中存在这样的问题,一方面是和计算机导论这门课程的性质和特点相关,它本来就是介绍计算机学科整体课程体系的,知识点当然会很多,很分散,大学一年级的学生没有专业知识的基础,不能很好地把知识点联系起来,从而造成学习困难;另一方面,教师的教学方式也会产生一定的影响,如果按照传统的教材内容列表进行讲授,仍然摆脱不了每章就是对主干课程的简介这种教学模式,结果还是晦涩难懂。目前有许多关于计算机导论课程教学内容和教学方法的讨论,近年来还提出了以计算思维为导向的计算机导论课程教学内容改革,这些都推动了计算机导论课程教学的发展。
课程的性质和特点是先天的,可以改变的是教学思维和教学方式。从以往教材内容和相应的教学过程来看,计算机导论这门课往往缺乏逻辑性,因为其中的每一章对应一门或几门专业课程,在教学过程中常常是围绕后续课程讲解,即计算机专业有什么样的后续课程,计算机导论就有什么内容的章节,这样就难免把该课程讲成各门课程的简介。计算机导论课程是对计算机学科的介绍,不依赖于后续开设的课程,在逻辑关系上应该先有导论课程,后续课程要围绕导论课程展开,而不是相反。因此,需要对计算机导论的教学思维进行转换,这门课程是计算机“科学”的导论,而不是计算机“课程”的导论。
1.面向对象教学思想
面向对象是一种重要的分析方法,它将现实世界的事物抽象成对象,通过对现实世界的抽象与建模,帮助人们对复杂系统进行认知与理解。在面向对象思想中,世界是由各种具有自身运动规律和内部状态的对象所组成的,不同对象之间的相互作用和通讯构成了完整的现实世界。因此,应当按照现实世界的本来面貌理解世界,通过对象及其相互关系反映世界。采用人类在认识客观世界的过程中普遍运用的思维方法,可以直观、自然地描述客观世界中的事物,更符合人们的认识习惯和客观规律。
面向对象思想是人类自然的认识过程,针对计算机专业知识体系,通过自然的方式去了解相关的内容,是合适的选择。计算机导论是大学新生入学以来的一门新课程,面向对象分析方法符合人们认识新事物的规律,因此采用面向对象思想讲授计算机导论,符合新生认识“计算机科学”这一新事物的规律。首先,面向对象分析方法强调各个对象之间的关系,而不必了解对象内部运行机制,适合让学生了解计算机导论中各部分内容之间的逻辑关系,而不必深入了解其详细内容,符合计算机导论课程的教学特点。此外,将面向对象思想引入计算机导论中,还有助于培养学生的面向对象思维方式,为以后程序设计课程的学习奠定思维基础。
2.计算机导论课程中的对象
将面向对象思想引入计算机导论课程的教学,核心问题是如何将本课程的教学内容合理的划分为互相联系的对象,从而使学生能够更加容易理解计算机科学。为此,根据该课程的性质和特点,结合计算机学科“什么能被有效的自动计算”的根本问题,将计算机导论课程的教学内容抽象为以下几个对象:计算机学科,计算机,计算,数据与信息,网络。首先通过“计算机学科”介绍本专业的相关领域,然后介绍“计算机”是什么,怎么工作,进一步说明计算机如何“计算”,之后是计算机计算的对象——“数据与信息”及其相关的属性知识,最后是多个计算机的互联构成计算机“网络”对象,涉及网络相关知识。计算机导论课程内容对象关系如图1所示。
2.1计算机学科
从学科的高度对计算机科学进行介绍,让学生了解计算机专业研究领域,相关的核心课程,应用方向等。根据百度文库的解释,计算机学科是研究计算机的设计、制造和利用计算机进行信息获取、表示、存储、处理控制等的理论、方法和技术的学科。一级学科计算机科学与技术主要有以下几个研究方向:计算机科学理论,计算机体系结构,计算机软件,网络,人工智能,计算机应用,其中每个研究方向又有更详细的分类。针对每个研究方向,通过实例简单介绍研究内容和应用领域,使学生有一个大概的学科知识框架。根据具体面向的学生所学专业,将其划分到相应的学科方向,进一步明确本方向的研究领域和应用前景,激发学生的学习兴趣。引入计算机学科领域的典型问题,如汉诺塔游戏、哲学家共餐问题以及图灵测试问题等等,让学生感受到计算机学科的科学性和趣味性。另外,根据当前科学技术的发展,适当介绍学科领域前沿,比如当前芯片的集成密度、最高的网络速度、人工智能的发展水平等,更能促进大一新生对本学科发展的向往与探索。
2.2计算机
作为硬件实体,计算机的概念应该在教学开始阶段就要介绍清楚。计算机是个什么东西?首先,从概念上介绍计算机的诞生和发展简史,从简单的计算工具到电子计算机所经历的发展过程,以及计算机的发展趋势。然后解释计算机的类型,包括大型机、微型机、单片机、嵌入式系统等分类及其应用领域,并结合实际案例加以说明。
基于面向对象思想,确定现代计算机对象的属性和行为,其属性包括数学属性和物理属性;行为有自动运行、计算和处理数据。数学属性主要包括数制、算术和逻辑运算;物理属性指的是计算机的硬件基础,主要是元器件、逻辑门。通过硬件实现二进制的状态、二进制的逻辑和算术运算,进而实现存储数据和计算机指令控制。在这些数学和物理属性的基础上,引入存储程序和操作系统的概念,实现计算机的自动运行行为,进一步实现复杂的计算和数据处理。
在“计算机对象”内,将数学基础、硬件组成、工作原理、操作系统、程序和数据各部分内容有机地组合起来。在逻辑上将各个部分串起来有助于新生理解“计算机对象”的整体。计算机对象的这些构成里面,每个子对象又可以通过面向对象的思想作进一步的解剖,说明这些子对象的属性和行为,真正以符合认识规律的面向对象思想进行计算机知识的讲解。
2.3计算
在计算机科学领域,广义的计算概念也包括数据处理等方面,当然首先是要理解一般的算术运算过程。从计算机讲到计算是自然的事情,在“计算机对象”中已经有了计算的基础,即数学理论和硬件实现,而复杂的计算是如何实现的?理解“计算”对象,首先是计算的属性,包括所使用的语言和复杂度;其次是计算的行为,有计算过程和实现方法。围绕计算机如何进行“计算”的问题进行讲解,所涉及的知识点有程序设计、编程语言,算法、编译等。
计算的任务是人给出的,即要完成什么,怎样完成,这就需要人和计算机交流的“语言”——程序设计语言。程序设计语言又可以分为高级语言和低级语言,以及各自的进一步分类等等。为了解决复杂的计算,需要专门学习算法的知识,关系到计算的复杂性问题,并介绍典型的几个算法,如递归,循环等。采用某种高级语言编写的程序,可以告诉计算机干什么,而计算机对语言内容的理解和执行过程,涉及编译的知识。这样,就围绕“计算”这个对象,将语言、程序、算法、编译等知识点,有条理的展现在学生面前,而且让初学者对计算机的计算过程有个宏观的认识。
此外,让学生进一步加深理解计算机的计算过程,引入“计算思维”的概念,计算思维是以计算机解决问题的方式去思考,像计算机科学家一样考虑计算问题,这也是计算机科学领域从业者需要具备的思维方法。结合一些典型的数学运算如开方,来加深对计算机解题方法和计算思维的理解。
2.4数据与信息
在计算机中,数据是被计算的对象,也是初学者最容易想到和问到的问题,即计算机中“数据”是什么样子的?列举最常见的数据对象实例,并将现实世界中的数据分类为子对象,包括数字、字符、汉字,声音,图像,视频等。要对数据进行处理,首先得设法对它进行描述和表示,让计算机能够理解并加以处理。因此,首先要对数据对象及其子对象进行属性的描述,包括编码、采样、量化等,而无论什么数据对象,在计算机中都要转化成二进制,而且所有内容均保存在文件中,文件有各种类型和名称。结合不同的数据形式,让学生了解现实世界如何表示成二进制形式,是数据处理中首先要解决的问题。
在了解数据及其子对象属性的基础上,介绍数据对象的行为,包括存储组织和常用办公数据的处理。数据存储组织中一个重要的知识就是数据库,数据库也是数据的子对象,可以为学生解释众多数据管理系统中的数据去哪儿了。首先是数据库的基础理论,然后结合数据库实例展示一些主要的操作,使学生对数据库有个感性认识。进一步说明数据结构在数据库中的作用和重要性,着重强调数据结构的概念,以及程序、算法和数据结构的关系,对所学的知识做一个逻辑上的链接。常用办公软件如WPS或Office,是数据处理的实例,结合数据对象的概念,简单介绍其常用功能,并通过适当的实践练习提高计算机的应用能力。
2.5网络
网络对象是计算机对象的集合,即把多台计算机连接起来就组成了网络。网络对象的属性有类型、功能、组成和体系结构。而网络对象又可以包含两个子对象即局域网和互联网,介绍两者的区别和联系,让大家理解生活中常用的两个概念。网络既然是由多台计算机相互连接起来的,就要理解网络的连接方法,即网络的拓扑结构和接入方式。网络拓扑结构是实际的网络连接的一种抽象,除了介绍常见的几种拓扑结构外,这种抽象的方式也是计算机专业在解决问题的时候经常要用到的,结合实际的计算机网络及其采用的拓扑结构,使学生对将实际问题进行抽象的理解有个初步的印象。通过智能手机的网络连接体验,使学生了解各种网络接入方式。
网络对象的行为包括正常的行为和非正常的行为,正常的网络行为即各种网络应用,从网络通信和资源共享两个方面进行说明。其中网络通信涉及IP地址、域名等知识,结合生活中常见的网络应用,进一步说明网络通信的知识。资源共享则有数据传输服务、信息检索以及万维网等。此外,结合日常应用,列举出近年来新兴的网络应用,如电子商务、移动终端通信等等。而非正常的网络行为有非法入侵、恶意软件、网络攻击等,与之对应的网络安全知识有反病毒、反黑客、防火墙以及入侵检测技术等,还有数据加密、安全认证等相关的概念。通过介绍计算机网络对象的属性和行为,将网络相关的知识进行有逻辑的组织,使学生更好地理解和掌握相关的知识点。
3.结语
采用面向对象的计算机导论教学,并不是重新设计课程的教学内容,而是将原来的教学内容进行更加科学的归整,根据提出的几个“对象”将所有内容做一个重新分组,使这些教学内容都被包含在互相联系的几个“对象”中。这样大一新生就能首先掌握计算机科学所包含的几个大的部分,然后每个部分又有哪些细节内容,使他们能有一个总体的计算机学科框架知识。与计算机导论课程类似,其他学科也可能存在同样的问题,将学科自身的基本问题提炼成若干个典型的、互相联系的“对象”,有利于学生理清本学科基本知识的脉络。因此,基于面向对象思想的导论课程教学,对其他学科也有很好的借鉴意义。