18

2024-05

课程群的解时空构建

| 来源:网友投稿

摘 要:构建课程群的解时空,按时间维与空间维分别对课程与课程群进行分析,对课程群的普遍性与课程的个性作泛化分析, 改变以往按一门课程来制定课程目标和任务的做法。培养和提高学生程序设计能力一直是计算机科学与技术、软件工程专业等专业的教学重点和难点。构建计算机设计课程群的解时空,突破传统的程序设计能力培养模式,从课程群的时空角度来重新解释课程任务和改变培养方式。

关键词:课程群;计算机设计;解时空;程序设计能力

DOI:10.11907/rjdk.143907

中图分类号:TP302

文献标识码:A     文章编号:1672-7800(2014)012-0014-03

作者简介:杨正武(1963-),男,贵州贵阳人,贵州财经大学信息学院教授,研究方向为信息化与软件工程。

0 引言

课程群由若干门课程组成,这些课程都有一个或多个相同的目标,该目标是建立在课程群基础上的抽象,课程群的目标是知识传授和掌握问题的解,课程群中的课程就是具体实现这些解,因此有必要在目标问题解的时空上,加以具体落实和逐步展开。从课程群中各门课程的开设学期来看,所有课程群均一致;各门课程是内容与形式的具体落实,所有课程群的在空间中的内容和形式都有所差异。计算机程序设计类课程群涵盖程序设计课程、面向对象程序设计课程、数据结构课程,这些课程是计算机科学与技术专业的基础课程,也是信息类学科的基础课程。程序包括用规范语言或类语言表达的完整的源代码和部分代码段。程序设计类课程群的共性目标是解决程序设计问题,程序设计问题的解实质可以理解为:在教学实践中,培养和提高学生的程序设计能力。培养和提高学生的程序设计能力一直是困扰教师和学生的重要问题,从课程群的角度来讨论程设计教学,是一种创新尝试,可以用新视野来认识程序设计,改革教学方法。

1 研究方法

采用多维分析法和时空分析法。多维分析法认为,事物有若干性质,并由这些性质构成,分析事物的变化和发展,就是分析事物的性质。作为一种方法,其将对事物的分析等价为对事物多质的分析,没有交叉互质的一个性质就是一个维,对事物多质的分析方法就是多维分析。任何事物都拥有自身的时空,事物性质的变化都必然是在事物的时空内变化和发展,对事物性质分析最本质的方法就是在时空维上的分析。以计算机设计课程群为例,从时间维来看,问题分阶段逐步展开、逐步解决。分阶段即分程序设计课程、面向对象程序设计课程、数据结构课程;逐步则是指从简单到复杂,从语言到程序阅读,再到程序设计的过程。在时间维上,程序设计问题的解有一个重要的观察点,即程序阅读。从空间维来看,程序设计=数据+算法+语言。其中,数据+算法为程序设计的核心<sup>[1]</sup>。空间维是两维的,即数据维与算法维。程序设计课程解决离散数据与结构化算法的设计问题,面向对象程序设计课程解决对象数据与对象互动算法,数据结构课程解决数据结构与算法。算法是数据的操作过程。计算机设计课程群中的课程数据形态具有差异,算法是对其一定形态数据的加工。从空间来看,程序设计问题的解有两个重要观察点:数据和算法。

2 时间维分析

程序设计问题在课程群的时间维上,一般都能体现从简单到复杂。在数据上从简单的无结构数据到有结构的数据,从简单的无操作数据到有操作的对象数据。在程序设计上,从不可分解问题的简单设计到可分解问题的复杂设计,从语言学习到程序设计学习。程序设计问题解在课程群各自独立的课程的时间维上,没有得到足够和充分的展现,严重影响了学生对问题的认识,以至于学生无法掌握程序设计能力。如同要有充分的文学阅读,才能为文学创作奠定基础,由于程序设计的复杂性,从语言学习再到程序设计学习,才会使程序设计学习简单化,程序设计问题解的学习也是能力的学习,而非理论知识系统的学习,需要有能解决实际问题的经验。经验分为直接经验和间接经验,程序设计的间接经验是他人设计的程序。阅读程序就是学习程序设计的间接经验。阅读程序作为程度设计的重要过渡桥梁,使学生在符合认识与学习规律的条件下,充分掌握程序设计能力。程序设计的学习过程划分为:语言、程序阅读、程序设计。在解程序设计的过程中,将程序阅读作为新的观察点和分析平台。程序阅读就是对已知程序或程序段的阅读,程序阅读又分为3个步骤:理解程序结构、模拟计算机执行程序、上机验证。程序阅读有3种层次:第一种是能读懂程序中所有语句和数据,这是基础层次,是其它层次掌握的条件和前提,属于计算机语言;第二种是能读懂程序设计中的技巧和方法;第三种是能读懂程序设计中的设计思想<sup>[2]</sup>。

3 空间维分析

3.1 课程群的解空间与各课程的子空间

计算机设计课程群的解空间可即程序设计解空间分解为:结构化的程序设计课子空间、面向对象程序设计课子空间、数据结构课子空间,如图1所示。计算机设计类课程群的解空间与它的三个子空间是整体与部分的关系。因此,一方面课程群的解空间由3门课程的解空间构成。另一方面课程群的解空间具有抽象性和普遍性,3门课程的解空间呈现泛化。课程群的解空间具有程序设计最本质的意义,对课程群中各门课程有着本质的指导意义。课程群的解空间有数据维和算法维,程序设计课的解空间是由离散数据维和结构化算法维构成;面向对象程序设计课的解空间由对象数据维和对象互动的算法维构成;数据结构课的解空间由结构数据维和结构数据的算法维构成。程序实质就是对已知数据进行加工得到结果数据,是数据与加工过程的相互作用。

图1 计算机设计类课程群的课程组成关系

相比较程序设计解的二维而言,数据维是处于主要和核心位置,程序设计就是围绕数据的加工处理。程序设计课与面向对象程序设计课的加工处理方式有所区别,程序设计采用结构化的处理方法,如顺序结构、选择结构、循环结构;面向对象程序设计采用对象方法,如继承、事件、多态等。对数据的分析至关重要,离散数据是与运算是分离的,主要分析数据的形态,即常量、变量、表达式。其中变量是重点,体现了数据与存储空间的联系;面向对象程序设计的数据是对象的一部分,即数据成员;数据结构程序设计的数据有结构,且重点在结构上。

3.2 各课程的数据分析

在结构化的程序设计中,数据变量对应一个存储单元,有三层含义:一是表达物理存储单元;二是表达存储单元的存储内容;三是存储内容的读写性质。必须全面完整理解和掌握此3个含义。例:int x  数据变量定义,分配一个存储单元;x=0;x<=10,数据变量体现存储单元的存储内容:x++;cout<<x,数据变量读写反映了数据变量内容的变化。

int main(int argc, char* argv[])

{   int x;

For (x=0;x<=10;x++)

cout<<x; }

 仅用存储单元表示变化的数据是不够,还需用存储单元的存储地址间接地确定存储单元,并存储数据。例如:

int main(int argc, char* argv[])

{   int *p;

P=new  int;

For (*p =0; *p <=10; *p ++)

cout<<*p; }

int *p;P=new  int两个语句等价于int x语句,都是分配存储单元,只是方式不一样<sup>[3]</sup>。

关于面向对象程序设计(C#语言)的程序重点关注和描述对象数据成员的构成、内容变化和访问限制。只有关注和分析有关联的对象数据成员的关联情况、对象数据成员与存储空间的关系,以及与对象数据成员的一切有联系的内容,才能实现对数据的全面掌握。例如有源程序<sup>[2]</sup>:

public class Automobile

   {    private string name;

       public string Name

       {  get { return name; }

           set { name = value; }  }

       private float speed;

       public float Speed

       {   get { return speed; }

           set { speed = value; }        }

       private float weight;

       public float Weight

       {     get { return weight; }

           set { weight = value; }        }

       public Automobile(float speed, float weight)

       {    name = "大卡车";

           this.speed = speed;

           this.weight = weight;        }

           }

执行下列语句:

Automobile aut= new Automobile(80, 3);

aut.Name=”解放”

对象的构成和初值描述记录如图2所示。

图2 对象构成和初值描述

在此基础上,了解和掌握以数据为加工处理的算法过程,才合乎程序设计能力培养的逻辑<sup>[4]</sup>。

数据结构(C语言)程序的重点是数据的逻辑结构及定义性描述。例如:顺序表就是利用连续存储空间的线性关系来实现连续存储空间中数据元素的线性关系,只有先从数据的逻辑结构上理解,才能理解存储实现,分析数据的物理结构以及两者之间的关系,如图3所示。数据定义是对实现数据逻辑结构的计算机语言代码的描述,在算法设计之前须要有充分的分析、表现、描述,以使算法设计有依据和目标<sup>[1]</sup>。

图3 顺序表物理存储实现

严格语言定义,顺序表的静态结构定义为:

#define ListSize 100         //最大允许长度

typedef int ElemType;

typedef struct {

     ElemType elem[ListSize];

  int length;

} SeqList;

在程序设计中,首先要分析数据,充分、全面、清晰地分析数据后,再作算法分析和设计。在数据与算法的二维空间中,基于数据加工处理的算法才会自然合乎逻辑地体现出其过程。

4 结语

构建课程群的解时空,按时间维与空间维,重新组织和理解课程目标和任务,不失为一种新的教改思想和方法。构建计算机设计课程群的解时空,突破传统的程序设计能力培养模式,还需其它环节的配套实施,如课件、教材、习题等,只有这样才能有好的教学效果。

参考文献:

\[1\] 殷人昆.数据结构(C语言描述)[M].北京:机械工业出版社,2013:1-2.

[2] 杨正武. 基于阅读分析程序的程序设计教学方法[J].软件导刊,2013(10):176-178.

[3] 郑莉.C++面向对象程序设计[M].北京:清华大学出版社,2002:45-46.

[4] 郑宇军.C#面向对象程序设计[M].北京.人民邮电出版社,2003:31-33.

(责任编辑:陈福时)

推荐访问:构建 时空 课程

最新推荐New Ranking

1软件实施方案(实用8篇)(完整文档)

方案是从目的、要求、方式、方法、进度等都部署具体、周密,并有很强可操作性的计划。我们应该重视方...

22023年应聘自我介绍(优秀18篇)(精选文档)

范文为教学中作为模范的文章,也常常用来指写作的模板。常常用于文秘写作的参考,也可以作为演讲材料...

3房屋租赁合同电子版免费(汇总19篇)【优秀范文】

在人民愈发重视法律的社会中,越来越多事情需要用到合同,它也是实现专业化合作的纽带。那么合同书的...

42023年度上课看课外书检讨书(模板20篇)(精选文档)

范文为教学中作为模范的文章,也常常用来指写作的模板。常常用于文秘写作的参考,也可以作为演讲材料...

52023年最新春节晚会结束语十字(11篇)(完整)

无论是身处学校还是步入社会,大家都尝试过写作吧,借助写作也可以提高我们的语言组织能力。范文书写...

6护理干事个人总结(实用8篇)

工作学习中一定要善始善终,只有总结才标志工作阶段性完成或者彻底的终止。通过总结对工作学习进行回...

7坚持方面名人名言(通用16篇)【优秀范文】

人的记忆力会随着岁月的流逝而衰退,写作可以弥补记忆的不足,将曾经的人生经历和感悟记录下来,也便...

8代发工资协议签好后多久发放(优秀8篇)

人的记忆力会随着岁月的流逝而衰退,写作可以弥补记忆的不足,将曾经的人生经历和感悟记录下来,也便...

9美术论文鉴赏(大全19篇)【精选推荐】

在日常学习、工作或生活中,大家总少不了接触作文或者范文吧,通过文章可以把我们那些零零散散的思想...

10领导辞职报告(汇总20篇)(范文推荐)

在经济发展迅速的今天,报告不再是罕见的东西,报告中提到的所有信息应该是准确无误的。报告对于我们...