浅谈抽象思维在计算机学习与研究中的应用.docx

上传人:b****5 文档编号:5142116 上传时间:2022-12-13 格式:DOCX 页数:21 大小:366.99KB
下载 相关 举报
浅谈抽象思维在计算机学习与研究中的应用.docx_第1页
第1页 / 共21页
浅谈抽象思维在计算机学习与研究中的应用.docx_第2页
第2页 / 共21页
浅谈抽象思维在计算机学习与研究中的应用.docx_第3页
第3页 / 共21页
浅谈抽象思维在计算机学习与研究中的应用.docx_第4页
第4页 / 共21页
浅谈抽象思维在计算机学习与研究中的应用.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

浅谈抽象思维在计算机学习与研究中的应用.docx

《浅谈抽象思维在计算机学习与研究中的应用.docx》由会员分享,可在线阅读,更多相关《浅谈抽象思维在计算机学习与研究中的应用.docx(21页珍藏版)》请在冰豆网上搜索。

浅谈抽象思维在计算机学习与研究中的应用.docx

浅谈抽象思维在计算机学习与研究中的应用

浅谈抽象思维在计算机学习与研究中的应用

摘要:

本文从抽象思维的角度,运用“数据结构”中的经典例子来阐述在计算机的学习与研究过程中应运用抽象思维的方法达到“学其思维,掠其形式”的目的。

同时论述了在计算机的应用中应运用科学的思维方法和注重计算机科学理论的研究。


  关键词
本文来自:

计算机毕业网:

抽象思维;链表;二叉树;图;排序与查找
      
  在几年的计算机教学与实践中,作者发现,大家在学习与应用计算机的过程中,往往采用的是具体的思维方法,即通过举一个实际的例子来“一步一步”地理解算法思想。

本文认为这种“学其形式,掠其思维”的学习与研究方法是不足取的。

在学习与研究计算机的过程中,我们应当运用抽象的思维方法,达到“学其思维,掠其形式”的目的。

下面我们通过“数据结构”中的典型例子来说明抽象思维方法在计算机中的妙用。


  
  1线性表中的单链表的逆转(在利用原结点的情况下)
  
  设逆转后的单链表的表头结点为reversed_head(初始值为NIL),当前正在转换的结点为current,未被转换的结点的单链表的表头结点为not_reversed_head,如图1所示。


  
  则我们可以很快写出如下的算法:


  
  procedurereverse_link(varhead:

pointer);
  var
  reversed_head,current,not_reversed_head:

pointer;
  begin
  reversed_head:

=nil;
  current:

=head;
  not_reversed_head:

=current↑.link;
  whilecurrent<>nildo
  
  begin
  current↑.link:

=reversed_head;
  reversed_head:

=current;
  current:

=not_reversed_head;
  not_reversed_head:

=current↑.link
  end;
  head:

=reversed_head
  end;
  
  可见,运用抽象的思维方法,该算法变得很精炼。


  
  2二叉树遍历的递归算法与线索二叉树的删除算法
  
  二叉树遍历的算法有三种,即前序遍历、中序(对称序)遍历和后序遍历,通常用NLR,LNR,LRN来表示。

运用抽象的思维方法,我们可以从NLR,LNR,LRN的书写当中,得出:


  

(1)无论哪种遍历次序,二叉树的叶子始终以相同的相对次序出现,因为L始终在R的前面;
  

(2)在NLR次序遍历的结点中,第一个结点是二叉树的根,最后一个结点是二叉树的最右下的结点;在LNR次序遍历的结点中,第一个结点是二叉树的最左下的结点,最后一个结点是二叉树的最右下的结点;在LRN次序遍历的结点中,第一个结点是二叉树的最左下的结点,最后一个结点是二叉树的根。


  在对称序线索二叉树的删除算法中,运用抽象的思维方法,我们可以假设该线索二叉树的LNR次序遍历的结点序列为……rP……P1……或……P1……rP……,如图2所示:


  这样,删除结点P时,可以找出如下的思路。


  思路1:

删除结点P时,将其右子树成为r的右子树,或将P的左了树成为P的右子树的最左下结点的左子树。


  
  思路2:

删除结点P时,用r结点去替换结点P,此时,r的左子树应成为其双亲的右子树,或以P为根的二叉树的右子树的最左下结点去替换结点P,此时最左下结点的右子树应成为其双亲的左子树。


  以思路1为例,我们可以写出如下的核心算法:


  
  P1

↑.lchild:

=P↑.lchild;或P1↑.rchild:

=P↑.lchild;
  r↑.rchild:

=P↑.rchild’
  dispose(P);
  
  3图中求最短径的Dijkstra算法
  
  Dijkstra在求图中从一个源点到其他任意顶点的最短路径时,运用贪婪法的思想,将顶点集分为“已确定最短路径的顶点集”和“未确定最短路径的顶点集”两部分,按照路径长度递增的顺序选择当前路径长度最短的顶点,同时修改当前“未确定最短路径的顶点集”的顶点的最短路径长度,直到选择完毕。

初学者对该算法在选择的同时又进行修改,往往不能理解。

如果我们运用抽象思维,用如下的图3表示这种情况,则会易于理解。


  
  其中dist[k]代表源点到当前确定最短路径长度的顶点k的最短路径长度;
  dist[j]代表源点到原先运用贪婪法确定的最短路径长度的顶点j的最短路径长度;
  cost[k,j]代表顶点k和顶点j之间的边上的权值。


  弄清楚这种关系之后,显然我们可以得知:


  
  ifdist[k]+cost[k,j]  dist[j]:

=dist[k]+cost[k,j]
  
  这就是Dijkstra算法的核心语句。


  
  4各种排序与查找算法
  
  对于各种排序算法,初学者在学习的过程中,往往通过运用具体的方法(举一个实际的例子)来理解这些算法的思想。

其实,只要我们运用抽象思维,就可以将几种排序算法归结为一种思想,而且如果该算法不是一种稳定的算法,我们可以很快举出一个反例。


  

(1)思路1:

将被排序文件的排序码看成一个整体
  在这种思路中,我们又可以分成以下几种方法。


  方法1:

将被排序文件分成“已排序好”部分和“未排序好”部分两个部分。


  

(1)假设“R1R2…Ri-1”已经有序(但不一定是最终有序),怎样使得“R1R2…Ri-1Ri”有序(但不一定是最终有序)。

这个问题的实质是在“未排序好”部分选择Ri,将其放到“已排序好”的“R1R2…Ri-1”的适当位置,使得“R1R2…Ri-1Ri”变成有序(但不一定最终有序)。

根据寻找Ri的位置的方法不同,有直接插入排序、二分法插入排序等。


  

(2)假设“R1R2…Ri-1”已经有序并且是最终有序,怎样在“未排序好”的部分选择一个排序码(我们不妨称之为Ri),使得“R1R2…Ri-1Ri”有序并且是最终有序。

这个问题的实质是在“未排序好”的部分如何选择Ri。

根据选择Ri的方法不同,有直接选择排序、树形选择排序、堆排序、冒泡排序等。


  (3)假设“R1R2…Ri-1”、“Ri”、“Ri+1Ri+2…Rn”有序并且最终有序(但“R1R2…Ri-1”和“Ri+1Ri+2…Rn”不一定有序)。

怎样使得“R1R2…Ri-1”和“Ri+1Ri+2…Rn”这两个区间也变成这种形式。

该问题的实质是一个递归算法(当然可以将其改为非递归算法)或者说是一个怎样分区的问题。

根据分区是静态还是动态进行,有快速排序(静态的)、二叉排序树(动态的)、平衡二叉排序树(AVL树,动态的)等。


  方法2:

将被排序文件分成“已排序好”部分和“未排序好”部分多个部分。


  这种方法的基本思想是首先分组,然后归并。

根据分组和归并的方法不同,有Shell直接插入排序、二路归并排序等。


  

(2)思路2:

将被排序文件的排序码不看成一个整体
  以上的思想,都是将排序码看成一个整体,研究的是排序码之间的有(无)序关系,但没有研究排序码本身内部的特点。

如果我们既研究排序码之间的有(无)序关系,同时又研究排序码本身内部的特点,肯定更有助于问题的解决。

在这个思路上,有基数排序等。


在各种排序算法中,判断该算法是稳定的还是不稳定的一种简单方法是:

如果排序码交换的距离大于1,则该算法是不稳定的。


  
  5综合应用
  
  为了进一步说明抽象思维的妙处,最后我们举一个综合性的例子(链表、查找与排序等知识相结合)。


  在实际生活中,我们经常要访问某一类信息,并且还希望将访问过的信息按照访问频度不增的次序排列,这样有利于我们下一次的访问(更快地寻找到要访问的信息)。

我们可以将信息组织成结点并且以循环双链表(带表头结点)的形式表示。

结点如图4所示:


  
  其中llink表示左指针,指向该结点的前驱;
  freq表示该结点访问的频度;
  info表示该结点的信息;
  rlink表示右指针,指向该结点的后继;
  于是其存储结构可用如下的图5描述:


  
  假设当前访问的结点是p所指向的结点,则进行p

↑.preq←p↑.preq+1的操作后,应当调整其在原链表中的位置,使得该链表以不增的次序排列,调整方法如下:


  按照直接插入排序(链式存储)的方法寻找结点p应处的位置,其中表头结点作为监视哨,然后按照循环双链表的插入和删除算法进行结点的重新排列。

核心算法如下(假设当前欲访问信息为x的结点,若不存在信息为x的结点,则将信息为x的结点加到双链表的尾部):


  head↑.info:

=x;p:

=head↑.rlink;q:

=head;{将head作为监视哨}
  whilep↑.info<>xdo{寻找信息为x的结点}
  begin
  q:

=p;
  p:

=p↑.rlink
  end;
  ifp<>headthen{若找到,则调整}
  begin
  p↑.freq:

=p↑.freq+1;
  q:

=p↑.llink;head↑.freq:

=p↑.freq;{将head作为监视哨}
  whileq↑.freq  q:

=q↑.llink;
  
  ifq↑.rlink<>pthen{若需要调整,先删除}
  begin
  p↑.llink↑.rlink:

=p↑.rlink;
  p↑.rlink↑.llink:

=p↑.llink
  end;
  end;
  else{生成新的结点}
  begin
  new(p);
  p↑.freq:

=0;
  p↑.info:

=x
  end;
  p↑.rlink:

=q↑.rlink;{插入}
  p↑.llink:

=q;
  q↑.rlink↑.llink:

=p;
  q↑.rlink:

=p;
  
  通过以上的例子大家可以发现,运用抽象思维方法理解算法思想时,可以达到事半功倍的效果,而且可以在原有算法的基础上进行完善和扩充。

这说明,我们在研究一门学科时,应当是“学其思维,掠其形式”,而不是反之。

同时这又说明了在计算机的应用中,我们应运用科学的思维方法和注重计算机科学理论的研究。


  
  参考文献:


本文出自:

计算机毕业网
  [1]严蔚敏.数据结构[M].北京:

清华大学出版社.
  [2]许卓群.数据结构[M].北京:

高等教育出版社.

[1]

浅谈高速公路路线设计对交通安全设施的影响

  关键词:

路线设计;交通安全;安全意识

 摘要:

随着我国人民物质生活水平的不断提高,国民经济和公路交通建设的快速发展,交通安全越来越受到重视。

公路勘察设计工作“坚持以人为本,树立安全至上”的设计理念,通过完善的道路设计,来有效地控制交通安全,减少交通事故,减少经济损失。

  
  交通工程是公路必不可少的组成部分,是一项有多种工程相互配合、密切联系、共同发挥作用的系统工程,对充分展现公路快速、舒适、安全的特点,减少交通事故,最大限度地发挥公路性能起着重要的作用。

交通工程的设置以沿线地形、地物为基础,以路线几何设计为依据,综合考虑交通工程的设置位置,以提高道路使用功能为目标。


  公路路线线形的优劣,其直接影响驾驶员行车的安全性、快速性及舒适性的程度。

在公路设计中,影响交通安全的因素虽然是多方面的,而公路路线设计对公路的安全性则起到先决作用,一旦通过选线确定公路走向并由此确定路线线形,则其他项目几乎都已经随选定的路线线形得以确定,其它如桥涵构造物的位置等就是如何使之更趋于合理的问题了。


  在公路勘察设计工作中,一定要综合考虑公路功能、行车安全、自然环境等因素,既要坚持地形选线、地质选线,更要做到安全选线;既要充分考虑公路设施的自身安全和运营安全,又要消除公路事故多发点和安全隐患;要尽量采用改善平纵线形的措施,从根本上解决行车安全问题,尤其是对长陡纵坡行车安全问题要给予足够的重视,比如设置紧急避车带。

因此,公路设计工作必须做好公路立体线形的设计,确保道路安全、舒适、和谐。

要将安全放在首位,采取一切有效措施,为公路使用者提供安全保障和人性化的服务,切实提高公路交通的安全水平和服务水准。


  由于道路沿线地形、地物是客观存在的,是不可改变的,因此,交通工程的设计就必须和公路路线设计结合起来,公路路线设计的好坏直接影响到交通工程的设置,影响道路营运期的安全。

公路路线设计主要包含:

平面线形设计、纵面线形设计、横断面设计、线形组合设计以、线形与桥隧的配合设计、线形与沿线设施的配合设计等。


  
  一、平面线形设计
  
  我国公路平面线形的使用主要是直线、圆曲线、缓和曲线,对各种线形的选择,应结合各种因素进行考虑。


  直线是公路设计中运用最广泛的线形,直线在勘察设计过程中有勘测设计简单、距离短的优点,但直线单调,驾驶人员容易产生乏味感,降低集中力,加之驾驶者在直线路段一般都会加速行驶,故过长直线的运用不利于行车安全。

在选用直线线形时,一定要十分慎重,要对该路段的圆曲线半径、超高、视距等采用运行速度进行检验。

我国规定一般直线最大长度为20(V+ΔV),其中V为设计行车速度,ΔV为通常在直线段的实际行驶速度与设计行车速度的差值,一般取ΔV=15~20km/h。

圆曲线线形要适合地形的变化,并能圆滑的将前后线形连接以保持线形的连续性。

圆曲线半径的选用与设计速度、地形、相邻曲线的协调、曲线长度、曲线间直线长度、纵面线形的配合、公路横断面等有关。

选用过大的圆曲线半径,会使得圆曲线过长,这与长直线一样容易使驾驶人员产生疲劳感,容易诱发交通安全事故。

因此,在选用较大的圆曲线半径时,也应该持谨慎态度。

在选用较小的圆曲线半径时,应对相邻路段进行车速极差检验,对视距进行验算,给交通工程的设置提供理论依据,以确保行车安全。


  
  二、纵面线形设计
  
  纵面线形应注意纵向坡度和变坡点处的竖曲线设计,对于驾驶人员而言,与平面线形相比,在视觉上往往是影响线形质量好会的主要因素。

要尽量避免过多的插入竖曲线或小半径竖曲线,这样容易产生驼峰、暗凹、跳跃和断背形象,造成驾驶人员的视觉中断,诱发安全事故。


  纵面线形的优劣很大程度上取决于竖曲线半径的大小,竖曲线半径大小的选择应满足视距要求,且竖曲线长度不宜过短。

一般,凸形曲线段事故率要比水平段高,小半径凸形曲线往往成为事故的诱因。

竖曲线频繁变换会影响行车视距,严重降低公路安全性。


  
  三、横断面设计
  
  公路横断面设计对交通安全的影响不如平面、纵面设计那么大,但是也是设计中不容忽视的问题,横断面的布置应根据道路使用功能、交通量大小、交通流的组成以及安全行车要求进行合理设计,做到连续性和一致性。

在桥梁、隧道与路基衔接路段,其宽度如果与路基宽度不一致时,或人行道与护拦引起路面、路肩宽度发生变化时,或者跨线桥下车行道侧面的桥墩、桥台过近,侧向余宽不够时,都会引起交通安全事故,因此,在设计过程中,也应该加以重视。


  
  四、线形与桥梁的配合设计
  
  对于行驶速度要求较高的公路,除特殊结构的大桥外,均应符合路线总体布设的要求,使桥头引道与路线的线形连续、均衡,避免线形的突变而引发交通安全事故,桥头引道的纵坡不宜过大,过大容易引起桥梁结构的安全。


  
  结语:


  公路交通安全是一个涉及多因素的动态设计工程,良好的道路路线线形,平整坚固的路面结构,清晰易懂的交通标志,合理有效的防护措施等都能为驾驶员提供安全可靠的行车条件。

科学完善的交通安全设计特别是加强路线设计等内容是减少交通事故、减轻旅客生命财产损失有效的手段。


  
  参考文献:


  [1]交通部公路司.新理念公路设计指南[M].北京:

人民交通出版社,2005
  [2]JTGD20-2006,公路路线设计规范
  [3]JTG/TD80-2006,高速公路交通工程及沿线设施设计通用规范

摘要:

为提高人才的竞争力,目前许多独立学院正在开展实训教学。

实训教学的教学质量关系到学生实践能力能否真正提高,以达到和用人单位无缝结合的目的。

因此,对如何提高独立学院的实训教学质量进行探索是非常必要的。

本文针对独立学院实训教学的特点以及授课对象的特点,结合我院项目实训(Java)教学的实践经验,介绍了我院在实训教学实践中所采取的一系列教学方法和取得的教学成果。


  关键词:

实训教学;教学质量;独立学院
    1 引言
  
  实训教学以模拟实际工作环境和现实需求为前提,以大量的工程项目实际训练为手段,是学生理论联系实际、加强技术应用能力和实践能力的训练、提高分析问题和解决问题能力的非常重要的实践教学环节。

学生通过实训,可以受到良好的技能训练,从而快速适应工作环境,真正符合企业单位的需求。

为了提高学生的人才竞争力,目前,各独立学院纷纷推出一种

“3+1”教学模式——在校本科生将接受3年的理论教学和1年的实践训练,即实训教学。

实训教学的教学质量关系到实训教学是否能够真正提高学生实践能力,达到和用人单位无缝结合的目的。

因此,对如何提高独立学院实训教学的教学质量进行探索具有重要的理论意义和实践价值。


  独立学院学生的优点是思想活跃,自我意识强:

缺点是基础不扎实,自制能力、学习的动力和自觉性不够。

为了提高独立学院实训的教学质量,需要针对具体教学对象,在教学设计和教学过程中进行创新。


  我院为落实人才培养目标,从2007年9月开始,对独立学院04级中9个班级共计270名学生进行了Java方向的项目实训。

项目实训(Java)历时95天,取得了较好的教学效果。


  
  2 项目实训(Java)教学概况
  
  2.1 课程概况
  项目实训(Javal是针对大四学生开设的一门模拟公司化管理以实践为主的课程。

通过实训,让学生知道企业内软件开发的流程,掌握在主流的Web框架下进行开发所需要具备的技术和工具。

通过参与实际项目的训练,加强学生的理论基础,并使学生的动手能力得到提高,从而使学生达到企业用人的要求。

实训包括3个阶段:

基础知识串讲、框架开发知识串讲和项目实战。


  
  2.2 授课特点
  参与本次Java项目实训教学的共有18位教师,分为3个教学小组进行管理,每两位教师共同对一个小班(毕业班)进行授课。

1&位参加项目实训(Java)教学的老师,针对课程特点和学生特点,集思广益,努力探索实训课程的教学方法。


  
  2.3 学生特点
  除了08届东软ISS定制班,参加Java方向项目实训的大部分学生学习基础较差。

对重要的基础课程,如:

Java、Web开发技术和数据库原理与应用等,多数学生都掌握得不够扎实,难以熟练应用到项目开发中。

而且一些学生一直以来没有养成良好的学习习惯,也没有较好的学习方法,还有些学生学习主动性较差,学习态度呈现阶段性的特点,课堂和课外学习的自觉性都不够。


  
  3 实训教学相关理论基础
  
  · 实训教学,实质上就是一种基于建构主义学习理论的探究性学习模式。

强调活动建构性,强调在合作中学习,在不断解决疑难问题中完成对知识的意义建构。


  ·实训教学是以真实的或模拟的工作任务为基点,让学生利用各种校内外的资源及自身的经验,采取“做中学”的方式,通过完成工作任务来获得知识与技能。

实训教学强调现实、强调活动,与杜威的实用主义教育理论是一致的。


  ·实训教学的内容主要是来自工作世界的实践任务,学生是在完成实践任务的过程中获得职业能力的发展,是一种基于情境学习理论的教学。


  
  4 提高实训教学质量的探索和实践
  
  针对项目实训(Java)课程的情况、授课的特点和04级独立本科学生的特点,总体教学思路是:

发挥两位教师和小班授课的优势,发挥集体备课的优势,不同教学阶段采取不同的教学方式,始终注意培养和维持学生的学习兴趣。

其中,维持这种兴趣是关键也是教学的难点。

同时,注重增强学生的学习自信心以及注重培养学生良好的学习习惯,比如有目标、有计划、有自我约束。

另外,还需要强调解决实际问题的能力的培养以及团队合作能力的培养。

以下是根据总体的教学思路对提高独立学院实训教学质量所进行的探索和实践:


  
  4.1 培养学生兴趣
  

(1)良好的开端是成功的一半,上好第一节课非常重要。


  对于第一节课,唯一的教学目标就是让学生对实训课程感兴趣。

这里要注意有的学生的兴趣是对课程的,有的学生的兴趣是对任课老师的。

第一节课的主要教学形式如下:


  

● 座谈
  教师了解学生的兴趣、爱好和学习目标;学生了解自己的老师。

座谈可以很好地拉近师生之间和同学之间的距离。


  ●同学上台发言
  让每个同学上台发言,确定自己的实训目标,从而调动学生进行实训的积极性和主动性。


  ●分组、分派职位
  通过分组和分派职位,基本上人人都有明确的职位和职责,进一步调动了学生的学习积极性。


  

(2)学生对实训课程有兴趣之后,还要维持学生的学习兴趣。

根据不同阶段的教学实际情况,采取相应的措施:


  ●举办竞赛
  Java方向项目实训的教学班级统一举办了几次竞赛,也有的教学班级根据本班情况独立举办了竞赛。

竞赛包括:

网页设计比赛、Java程序设计比赛、Oracle竞赛、MVCPK和Web程序设计比赛。

对于统一举办的竞赛,如果想要取得好的效果,与老师和学生对竞赛的理解、准备和认真开展是分不开的。

而且每个教学阶段举办哪些竞赛是根据实际教学情况制定的。

另外,还采用了五彩星光榜和班级树立标杆等方式来提高学生的学习积极性。


  ·沟通交流
  实训过程中两位老师几乎每天都要进行交流沟通,发现学生中存在的问题,分析问题的原因,寻求解决问题的办法。

其中,与学生进行各种方式的交流是比较方便有效的解决问题的途径。

尤其是实训后期,存在问题比较多也比较突出。

学生的学习情绪有较大下降,又面临就业压力,很多学生较毛躁,思想情绪直接影响到实训的后期教学效果。

通过多了解学生的状态,多沟通,并适当地放缓教学进度,减少学生压力。

当学生产生厌学情绪时,适当调整课程内容和教学方式,以保证实训教学顺利进行。


  
  4.2 增强学生自信心
  学生的自信心非常重要。

第一节课座谈的时候很多同学表示Java编程能力较差,对实训没有信心。

在提高自信心

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1