融入现代技术的软件课程体系教学改革研究
2018-01-09杨正武
摘要:计算机科学与技术专业学生既要掌握基础知识,还要掌握当下主流技术。许多大学把大数据和云计算技术纳入到计算机科学与技术本科专业的软件课程体系中,而软件课程体系是计算机科学与技术本科专业的三大专业课程体系之一,且居于核心位置。对软件课程体系内容进行了探索性整合,寻求它们内在的统一性,为软件课程的创新改革提供方法上的指导和依据,促进教学效果的改进,以提高学生专业能力。
关键词:软件课程体系;教学改革;计算机科学与技术专业;大数据;云计算
DOIDOI:10.11907/rjdk.172675
中图分类号:G433
文献标识码:A 文章编号:1672-7800(2017)012-0235-03
Abstract:Computer science and technology undergraduate students should master basic knowledge and mainstream technology.Many universities have big data and cloud computing technology into the undergraduate curriculum system of software of the computer science and technology, and software course system is computer science and technology one of the three professional undergraduate course system, and the core position.For exploratory software on the curriculum content integration, to seek the unity of their inherent for innovation of software course reform provide methodological guidance and basis, to improve teaching effect, ultimately achieve the improvement of students' professional ability.
Key Words:software course system; teaching reform; computer science and technology; big data; cloud computing
0 引言
大數据和云计算技术正深刻地改变我们社会、经济方方面面[1]。大数据和云计算是计算机软件体系的数据与计算两大核心内容。计算机科学与技术专业、软件工程专业均设置了软件课程体系,软件课程体系的改革与创新包括课程设置、课程内容、课程特点以及课程教学改革。增加大数据、云计算及相关具有特色的融合性课程,以适应计算机技术的发展和社会经济需求。根据专业培养的目的和能力要求,结合当下主流技术,统一融入软件课程体系,确立各门课程的地位和作用,以培养学生的计算思维能力。
1 软件及课程体系解析
软件技术已经发展到大数据和云计算,但基础技术仍是数据与计算,两者彼此独立,相互交融。在计算机科学中,数据(data)指所有能输入到计算机并被计算机程序处理的符号的介质总称,为具有一定意义的数字、字母、符号和模拟量等。算法(Algorithm)指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,用系统的方法描述解决问题的策略机制。计算机经典公式为:程序=数据结构+算法[2],将该公式扩展为:软件=数据+加工处理,可以把所有软件层次抽象为统一形式,即数据(实体)与加工处理。不同层面的数据实体对应不同的加工处理规则,就如同现实的物理界一样,微观世界、中观世界与宏观世界的实体不一样,运动的规则也不一样。这里数据是广义上的数据。数据包括数据项、数据结构、数据库、大数据。数据本身具有自含的加工处理,如数据类的基本运算、对象数据的操作、数据结构的基本操作、数据库基于模型的标准操作、大数据的Map-Reduce计算模型,这些自含的加工处理也称为基本运算。广义的加工处理包含数据的基本运算和外部加工,狭义的加工处理只是数据的外部加工。数据加工分为内存数据直接加工和外存数据间接加工。
“软件=数据+加工处理”将课程体系划分为软件代码世界、软件模型世界与软件系统世界,如图1所示。
1.1 软件代码世界
代码程序以语言、伪语言、框图语言等方式展现,这个层次中的数据主要是各种基本类型数据、数据结构、对象数据,以内存形式表现。程序设计课程的核心内容是以常量、变量为主要形式的内存数据,以及加工处理这些数据的结构化过程或函数。程序就是加工处理和数据的有机组合体[3]。面向对象程序设计课程一方面把对象作为内容的数据;另一方面以方法、继承、多态、消息传递、关系等方式处理加工这些对象数据[4]。编译课程内容是把加工处理由计算机高级语言处理方式转换成计算机低级语言处理方式。
1.2 软件模型世界
把软件系统需求映射到软件代码的过渡和中间层次称为软件模型世界,以图、表、数学符号等形式表达这种中间层面实体[5]。
1.3 软件系统课程
数据库课程内容:以关系型为主的数据库原理以及自含sql语言查询应用[6]。软件工程课程是以业务需求、阶段、方法等方式处理加工外部数据[7]。大数据课程围绕大数据的分布式数据文件以及数据处理模式展开。云计算课程:围绕基于互联网的相关服务,提供动态易扩展且经常是虚拟化的资源。
“软件=数据+加工处理”使整个软件课程体系整体上统一,且该统一性基于软件及课程体系的不同层次,使不同的软件课程有着高度的一致性和关联性[8]。endprint
2 软件课程改革指导思想
根据对软件及课程体系解析,笔者认为所有课程均应围绕数据和加工处理两条主线来展开内容。不同的课程中,针对其所处软件世界的不同层次和侧重,数据与加工处理不同,其相互关联、相互作用的方式也不相同[9]。
2.1 程序设计课程
程序设计课程内容处于软件底层,按“软件=数据+加工处理”的公式具体化为“程序=数据+算法”展开该课程内容[1]。
首先,展开数据主线,对常数、常量、变量、数据类型、数组、指针等内存数据,围绕表达式、数据说明语句以及程序,分析程序中的数据部分。内存变量一定要重点强调内存特点及运算特性。例如int x 语句,首先分析x变量,就是分析变量x对存储单元的指示,从软件角度掌握内部存储单元。存储单元是根据地址标识实施存储单元内容的操作;存储单元具有读与写两种基本操作,读取后其内容不变,写入则其内容以新抵旧;再分析int x 语句中 除了定义x是一个变量,int也是一个类型:确定存储单元的长度;类型确定了有哪些基本运算。其次,展开算法主线,以语言中的操作语句及算法来分析数据的加工处理过程。例如:该循环结构是通过语句的操作对语句中的数据进行加工,该循环结构〔表达式〕就是控制语句部分的前提条件。操作类语句有两个作用:加工数据语句。该类语句把数据与对数据的操作融入统一的整体;控制过程语句:该类语句控制语句方向和过程。最后,明确程序设计就是用算法来加工处理数据,以完成任务。把上述两条主线分析清楚后,程序也就是两条主线按任务的有机融合。
2.2 软件工程课程
软件工程课程处于软件世界中的顶层即软件系统层次。
首先,展开数据主线,该数据主线以外部数据(或是文件或是数据库)作为内容数据。以需求阶段为例,分析数据流、数据字典等,从动与静、整体与局部来全面描述系统所需数据。
其次,以业务需求、阶段、方法等处理加工方式,对这些外部数据进行加工处理。以需求阶段为例,分析业务系统的各种功能需求、性能需求、安全需求等。
最后,明确软件工程就是用业务系统加工处理外部数据,达到软件系统目标。以需求阶段为例,数据需求与业务系统需求相互联系、相互作用,共同构成需求阶段的全部内容。
2.3 數据背景与加工处理背景
有些课程内容虽然表面只归属于“软件=数据+加工处理”中的一个方面,但实质上却有另一方面的内容。例如,建模课程,其内容是把软件系统需求映射到软件代码的中间层次,处于软件模型世界层次中,以图、表、数学符号等形式表达这种面向功能的中间层面实体。尽管没有涉及到数据,但在其背景数据下理解建模的意义和应用会更深刻和全面。数据库课程狭义上包含sql语言的加工处理,广义上包含业务系统的加工处理[10]。
3 结语
当前计算机新技术不断涌现,大学教育也要与时俱进,以创新视角去思考。从软件及课程体系特点去划分内容,统一共性,学生既能在整体上掌握软件及课程体系的本质,又能在此基础上把握各门课程特点和内在联系,从而实现专业培养目标。
参考文献:
[1] ANAND RAJARAMAN,JEFFREY DAVID ULLMAN.互联网大规模数据挖掘与分布处理[M].王斌,译.北京:人民邮电出版社,2012:1-7.
[2] 殷人昆.数据结构(C语言描述)[M].北京:机械工业出版社,2013:5-21.
[3] 苏小红,王宇颖.C语言程序设计[M].第3版.北京:高等教育出版社,2017: 5-8.
[4] 郑宇军 .C#面向对象程序设计[M].第2版.北京:人民邮电出版社,2015:2-4.
[5] 牛丽平.ULM面向对象程序设计与分析基础教程[M].北京:清华大学出版社,2016:5-15.
[6] 萨师煊,王珊.数据库系统概论[M].北京:高等教育出版社,2010:45-78.
[7] 张海藩.软件工程导论[M].北京:清华大学出版社,2000:5-21.
[8] 杨正武.基于阅读分析程序的程序设计教学方法[J].软件导刊,2013(10):176-178.
[9] 连玉明.大数据[M].北京:团结出版社,2017:20-25.
[10] 汤庸,叶小平.高级数据库技术与应用[M].北京:高等教育出版社,2011.
(责任编辑:杜能钢)endprint