当前位置: 东星资源网 > 文档大全 > 通知书 > 正文

充分发挥学生自主科研在《计算机软件技术》课程创新教育中的作用_计算机软件技术专业课程

时间:2019-01-09 来源:东星资源网 本文已影响 手机版

   摘要:《计算机软件技术》课程是工科本科生的一门重要课程。本文探讨如何在《计算机软件技术》课程教学中发挥学生自主科研在创新教育的作用。我们在教学中根据学生的不同层次、不同特点、不同爱好进行分类指导,鼓励学生结合教学内容进行理论研究或工程实践。在科学研究中,深化了学生对课程知识的理解,培养了学生的创新能力。
  关键词:计算机软件技术;创新教育;教改
  中图分类号:G642 文献标志码:A 文章编号:1674-9324(2012)03-0165-02
  
   一、前言
  《计算机软件技术》是非计算机专业学生的计算机基础课程之一,有着很广泛的应用价值。但能真正理解并掌握它却很不容易。因为其涉及知识面广、概念多,造成内容上枯燥乏味,容易使学习者失去学习的兴趣。这就给老师在教学上、学生在学习上造成了一定的问题。因此,该课程教学面临的一个严峻的课题就是:如何既能保障学生掌握本课程的主要内容,又能让学生积极参与、主动参与。对这一问题进行深入研究,并能在教学实践中获得良好效果就具有很急迫的现实意义了。《计算机软件技术》课程内容分为四部分(数据结构与算法、软件工程、操作系统、数据库),每一部分都是计算机专业学生学习的一门课程,相互之间既互相联系又比较独立。而非计算机专业的学生要在一个学期32个学时的时间内学习它们,难度可想而知。不过需要指出的是,繁杂的内容和教学时间的限制虽然确实给老师在教学上、学生在学习上造成了很大的困难,但是这些并非不可克服的困难。造成目前该课程教学困境的主要因素应该是:①部分教学内容陈旧,没有反映本学科科学研究的发展水平;②教学理念还存在一定的滞后,课程教学中未能充分体现创新教育的理念,对学生缺乏科学研究层面的引导力;③学生自主参与程度较低。传统教学是以传授知识为主,而非以学生为主体,没有对学生自主发现知识的能动性给予充分重视。
  二、课程讲授中的学生自主科研实践
  《计算机软件技术》课程内容分为四部分:数据结构与算法、软件工程、操作系统、数据库。在这四大模块中,我们分别按照每部分的特点和课时计划进行了学生自主科研的实践。
  1.数据结构与算法。数据结构与算法主要包括:常见算法简介、堆栈和队列、二叉树、查找和排序算法。我们在初期主要准备了一些课题,以下是若干示例:①几种常见算法的时间复杂度比较研究。②问题的固有复杂性和具体实现算法复杂性的关系。③利用堆栈实现任意有理分式计算。④具有优先级顺序的多个队列的数据结构研究。⑤二叉树的先序、中序、后序的递归、非递归遍历算法的c语言实现。⑥北航行政结构的二叉树表示。⑦具有重复关键字线性表的Hash函数最优化设计。⑧排序查找和直接查找的对比实验。在讲到相关内容时,我们就公布几道类似题目让感兴趣的同学选作。除此之外,我们更乐意鼓励同学自己发现问题,或结合自己的专业提出研究问题。比如,一次课间休息时,有一个同学谈到他正在研究故障树分析。他提到故障树的存储能不能用树的结构来处理。我鼓励他试试。但我也指出了它们的区别:故障树的结点除去有先后顺序外,还有与门、或门之分。课后,我们在一起又商讨了一下。我们当时认为可以给结点附加一个逻辑信息。该同学回去后进行了研究后发现,与门和或门都好处理,但是遇到非门就不好办了。因为传统的故障树算法只包括与门和非门。遇到非门只能对其作用域中的故障树求非。而在实际过程中故障树是动态形成的。如何对故障树动态求非,然后建立动态树形数据结构就成了需要研究的问题。该同学结合他的实际背景对此进行了深入研究,写出一篇不错的科研论文。这样的例子还很多。我的体会是创新教育的灵魂是以学生为主体,通过各种方式多和他们交流,碰撞思维火花。现在的学生并不缺少创新能力,缺少的是发现他们创新能力的机制和方式。
  2.软件工程。软件工程部分包括软件开发方法、面向对象的程序设计方法、软件测试等。软件工程与数据结构与算法又有所不同,它是实践性更强的学科。这部分必须让学生亲自进行实践。因此在允许的情况下,我们压缩一部分理论知识传授的课时,增加实践环节的课时,鼓励学生在实践中发现科学问题或技术难点展开研究。我们首先给学生布置若干难度、规模合适的具有实际项目背景的课题。在上课时,要让学生结合实际问题阐述对软件工程基本概念和基本知识的了解。软件开发方法部分我们除了介绍基本的软件开发模型外,还结合实际项目向同学们介绍一些先进的软件开发模型。在软件测试部分,我们让学生参观我们的软件测试实验室,观摩大型软件的实际测试过程。通过这一系列的环节,大大深化了学生对课本知识的认识,也解决了以前学生对这部分内容感到比较枯燥的难题。
  3.操作系统。操作系统是本课程最难的一部分内容。操作系统是理论与实践充分结合的一门学科。要在短短几次课中向学生讲清这部分内容难度十分大。这需要教师对这部分内容的重点要把握到位。为了弥补课时不足,我们在课堂上要充分调动学生的积极性,激发学生展开以科研为引导的自主学习的热情。这样通过同学的课堂学习和课后课程设计相结合,不仅可以有机的把相关知识梳理贯通,学有余力的同学还可以从科研中获得研究的快乐。比如,我们可以向学生布置一个简单的任务:设计一个文件管理系统,目的是通过设计和调试一个简单的文件管理系统,主要是实现操作系统对文件操作命令的执行和管理,使学生对主要文件操作命令的实质和执行过程有比较深入的了解,掌握它们的基本实施方法。该问题既可以做得很简洁,比如单用户情形,只要考虑建立文件、打开文件、关闭文件、删除文件、读文件、写文件、复制文件、查询目录。也可以做得较复杂一些,比如多用户情形,就要考虑优先级、资源调度等。甚至对于部分能力较强的同学,可以让他们尝试考虑用户偏好下的智能算法等。
  4.数据库。数据库这部分内容课时比较少,一般就安排2~4个学时。数据库技术日新月异。讲解这部分内容一定注意让学生在繁杂的名词、概念、数据库新技术中抓住本质的东西。要首先让学生厘清程序设计的历史发脉络,让学生清楚地认识到数据库的产生不是偶然的,是程序设计发展的必然,是解决数据独立于程序的必由之路。这部分如果让学生再独立进行一部分科研训练或课程设计显然课时是不允许的。我们一般结合同学之前的科研内容,之前的课程设计,试图加入数据库的理念或利用先进的数据库技术改善之前的设计或程序。
  三、结束语
  本文探讨了学生自主科研在《计算机软件技术》课程创新教育中的作用。学生自主科研和导师强力介入的一对一或一对几的科研活动不同。《计算机软件技术》课程一般学生数通常可达80~100人左右,不可能实现教师和学生的一对一或一对几的科研活动。因此激发学生自主科研就非常重要。本文探讨了在《计算机软件技术》课程讲授过程中,如何激发学生的自主科研兴趣。当然最初老师还是要实现规定一些潜在的学生可能感兴趣的题目供学生选择。在学生中形成一定的科研范围后,就要鼓励学生自主发现问题、解决问题。不过,在实际实行过程,我们也发现一些问题,比如因为本课程课时较少,会遇到科研创新和课堂必修内容冲突的问题,这需要在实际授课中妥善解决。
  参考文献:
  [1]夏清国.计算机软件技术基础[M].西安:西北工业大学出版社,2003.
  [2]沈被娜.计算机软件技术基础[M].北京:清华大学出版社,2000.
  [3]麦中凡,苗明川,何玉洁.计算机软件技术基础[M].北京:高等教育出版社,2007.
  [4]肖敏雷,肖敏连.计算机软件技术基础课程教学改革与实践[J].电脑知识与技术,2010,6(8):1932-1933.
  [5]艾明晶,王丽,焦福菊.计算机基础课程教学方法的研究与实践[J].计算机教育,2005(2):24-27.
  [6]郭建东,刘乃琦,刘贵松,付彦.软件技术教学内容与教学模式研究[J].计算机教育,2005(3):19-22.
  [7]连若木.高校精品课程建设刍议[J].中国科教创新导,2011(2):175.
  
  基金项目:北京航空航天大学教改项目“基于创新教育的《计算机软件技术》课程改革与建设”资助
  作者简介:白成刚(1965-),男,工学博士,教授,研究方向为软件可靠性、软件测试。

标签:充分发挥 计算机软件 学生自主 科研