首页 理论教育 软件专业研究生科研能力培养探索

软件专业研究生科研能力培养探索

时间:2022-03-04 理论教育 版权反馈
【摘要】:摘 要 文中针对软件专业研究生科研能力的培养进行了探索。具体来说,研究生的科研能力主要包括:发现科学问题的能力、科学实践能力、研究论文的写作能力等。研究生所具备科研能力的高低是衡量该研究生综合素质的一个很重要的指标。因此,加强研究生的科研能力培养既是时代提出的任务,也是高等教育改革的内在逻辑和本质需要。软件专业研究生应根据软件产业和领域需求,培养高层次、实用型、复合型、国际化的人才。

软件专业研究生科研能力培养探索

计算机科学与工程学院 雷聚超 研究生部 卢莉萍

摘 要 文中针对软件专业研究生科研能力的培养进行了探索。实践表明,通过知识储备、问题归纳、分析讨论、阶段总结、结果评估五个步骤的循环进行,可以极大地提高研究生的科研创新能力,为软件专业研究生的科研能力培养提供了一种新的工作方法。

关键词 软件专业;科研能力;研究生;培养

研究生的科研能力是研究生具备独立从事科学研究的一种技能,它是研究生在完成学业后应具备的基本科研素质。具体来说,研究生的科研能力主要包括:发现科学问题的能力、科学实践能力、研究论文的写作能力等。

研究生所具备科研能力的高低是衡量该研究生综合素质的一个很重要的指标。因此,加强研究生的科研能力培养既是时代提出的任务,也是高等教育改革的内在逻辑和本质需要。随着我国软件事业的快速发展,如何培养出具有高科研能力的研究生成为每个指导老师的一个重要课题[1]

一、科研选题

软件专业研究生应根据软件产业和领域需求,培养高层次、实用型、复合型、国际化的人才。培养学生具有扎实的理论基础、合理的知识结构,具有创新能力和优秀的职业素养,侧重提高学生的软件设计与开发能力,工程组织与管理能力等[24]。因此,好的选题对培养研究生的科研能力至关重要。从笔者多年的经验来看,软件专业研究生的科研选题应密切结合工程实践,使研究生能够在实践中锻炼和提高自身的独立工作能力;同时,应具有一定的理论性、科学性、创造性和前沿性,使研究生能够充分发挥自己的科研想象能力,并将自己的聪明才能应用于工程实践,让实践去检验。

二、软件设计能力的培养

优秀的软件离不开优秀的设计。如何正确、高效地设计软件,寻求科学方法的指导,使软件开发过程“科学化”,将软件开发活动置于坚实的理论基础之上是文中探讨的重要内容。软件工程需要软件方法学为依据和指导;软件方法学依赖于软件工程环境及工具来发挥实际效用,以避免系统中的歧义性、不一致性和不完备性,寻找规范的“求解过程”来正确、高效地设计软件。作者认为,优秀的软件不在于软件设计平台而主要在于软件设计思路,无论你用JAVA、VC、VB、DELPHI、ASP、JSP等,其主要目的是为了让用户方便快捷的使用,并在使用过程中不出现BUG,只有这样才能得到用户的肯定。然而,软件运行过程中,依据用户需求的变化也需要不断的更新,因此,如何设计出便于更新和更加通用的系统至关重要。为此,笔者根据多年指导研究生进行程序设计的经验,要求学生在软件研发阶段一定要循环进行五项基本工作,即知识储备、问题归纳、分析讨论、阶段总结、结果评估。

1.知识储备

知识储备就是要求学生在完成相关科研任务前(或过程中)必须掌握的相关基础知识,需要学生查阅学习大量的与课题相关的中外文资料,以便在实际研发过程中给自身以明确的解决问题的思路。目前的工具平台软件相当丰富,不可能全部掌握,但这并不重要[5]。软件平台只是作为一种完成软件编写的基本工具,要掌握一种编程平台的操作,对于软件专业研究生来说花费不了多长时间。但要有好的软件设计就必须有一定知识储存。就软件专业研究生来讲,必须掌握的基础知识包括:基本语法、数据库相关技术和组件相关技术。

基本语法是最最基本的了,任何软件都需要语言来支持,语言都有自己的语法规则,这是最基本的知识储备。

数据库技术非常重要,SQL语法是几乎所有数据库都需要的。关系数据库可以解决许多关联的数据库技术问题。存储过程和函数的使用可以极大地提高程序运行的效率,大量的运算往往需要存储过程或函数来完成。例如工资管理、电量电缆管理、工程预算、人民币小写大写转换等。因此,掌握SQL的这些相关知识都是必须的。

组件技术在许多程序平台中都存在,但要开发自己的组件来完成工程课题的相关工作,就必须对组件的底层进行深入的分析和研究。有了自己的组件,不仅可以提高编程效率,也使整个系统更加容易维护。无论是C/S或B/S系统,组件技术都显得十分重要。

2.问题归纳

问题归纳是将要进行的软件任务的相关技术进行分类,提取相同或相似的部分。然后使用类技术或组件技术将这些相同或相似部分作为模块进行处理。这样不仅可以节省大量的代码编写时间,而且还能为以后其他系统模块的编写提供一定的技术基础资料。例如标准化作业管理系统项目,该项目的每项工作完全建立在工作流的基础上。项目编写完成后大约有六百多个窗体,而工作流中的每个窗体基本都包含“增加”、“修改”、“撤销”、“保存”、“删除”、“返回”、“审批”、归档等按钮,如果在每个窗体的按钮事件中全部写入代码则需要进行大量的重复工作,耗费巨大的人力物力,同时,工程进度也非常缓慢。经过归纳,将工程项目中相同的部分提取出来,并通过设定相关参数对每个流程窗体进行识别,从而设计出合适自己工程项目的组件,这样,在窗体设计时只需使用鼠标将组件拖到窗体的相对位置,窗体的设计就基本完成了,而不需要在按钮事件中填写代码(除了极个别的特殊情况需要填写一定的代码)。如此以来,程序设计几乎变成了窗体设计,原来完成一个流程控制系统大约十天的时间,现在只需要一天时间,工作效率得到极大提高,也使学生明白了编写组件的重要意义。

3.分析讨论

分析讨论是要求课题组所有人员对所从事的工作任务每周进行一次研讨。发现存在的问题,提出修改方案。同时,将新的设想与见解同大家讨论,激发每个学生开辟新的思路、挖掘新鲜题材。就标准化管理系统而言,前期的归纳,将按钮要完成的任务全部写进按钮事件,经过分析讨论,将通用的部分写成类;后又经过问题归纳、分析讨论,将事件全部代码写入组件,这就使认识上升到了一个新阶段。而整个研发过程变成了由编写全部代码到编写部分代码再到不写任何代码而实现系统的全部功能,唯一需要做的就是设计美观实用的窗体。

共同的分析讨论可以发现并解决许多相关问题。集思广益可以为软件的设计提供非常丰富的技术资源。软件设计涉及的知识相当广泛,完成同一种功能可能有非常多的实现方案,而代码的执行效率也相差甚远[6]。而在这些实现方案中选择最优的,就是分析讨论的主题。有一个图片录入浏览的流程,当数据库打开时需要加载大量图片,加载需要等待很长时间,已经到了让人难以忍受的程度。经过分析讨论,将组件的数据库连接方式修改为关系式方案,当数据库记录滚动时只打开当前需要浏览的图片,问题就得以解决。

当然,分析讨论必须建立在具有丰富的技术知识支持的基础上进行。这就要求指导老师一定要全面掌握本专业的技术知识和国内外发展现状,为学生指明下一步应该学习的知识和需要进行的工作。

4.阶段总结

阶段总结是指当工程课题进行到一定阶段时必须进行的工作。每个人撰写阶段进度工程报告,对自己本阶段的工作进度、存在问题、解决方法以及仍然存在的问题通报给整个课题组成员。其他课题组成员则对其进行分析讨论,提出改进方案,并对照自己的工程课题进行引进和排查。

5.结果评估

结果评估主要让课题组成员互相测评对方所完成的工程软件。这一步骤非常重要,首先通过互测可以检测工程软件各模块中存在的问题,然后再反馈给软件设计编写者进行改进。最后再进行各模块组合联调。对于发现的问题就需要多方查阅资料或者在网上寻求帮助。在系统功能达到满足后,还要对性能指标进行进一步论证,力求达到最优的系统工作模式。结果评估中最重要的一点是测试系统的纠错能力,这点往往被许多研发者所忽视。例如:只能是数据的地方是否可以录入文字,字段长度是否合适等。作者的经验,一个优秀的软件,系统纠错代码往往要占到总代码量的2/3。

要特别强调的是:在结果评估过程中,必须充分考虑主程序、子程序的功能、入口参数、出口参数、局部变量、函数调用的规范性,还要充分考虑与MYSQL、ORACLE、ACCESS、DB、EXCEL等接口系统的兼容性。例如在设备管理系统中,用户往往需要将大量的EXCEL数据导入到你的系统,你就必须提供一套相对通用的数据导入导出系统,否则,用户会因为重复录入数据而拒绝使用你的系统。

在实际的工程课题进行过程中,上述五个步骤循环进行,各自并非独立。每个环节都需要另一个环节的支持,直至工程项目完成并达到验收标准。通过这种循环进行的工作,使研究生的科研能力得以不断提高,并具备完全独立工作的能力。

三、结语

高等学校的首要任务是培育人才,而培育人才的关键之一是科研。做学问必须围绕科研,唯有通过科研工作才能培养研究生的科研能力。尽量让研究生直接参与科研的各个环节或承担项目的子课题,提高他们的科研能力。

多年的实践已经证明,文中所论述的培养研究生科研能力的方法是成功有效的。从已经走入社会的研究生来看,他们中有许多已经担任了部门科研团队的领导,并把在校的这种科研方法带入他们的工作实践当中。使他们在工作中具有细致准确的观察能力、精确娴熟的操作能力、独创敏捷的思维能力、新颖大胆的想象能力,为他们成为一名合格的高级人才打下坚实的基础。

参考文献

[1] 杨玉良.漫谈研究生培养中的一些相关问题[J].学位与研究生教育,2007(2):1.

[2] 张帆.软件项目风险管理和控制研究.大连海书大学硕士研究生,2010.

[3] 徐肇杰.任务驱动教学法与项目教学法之比较[J].教育与职业,2008(11):36.

[4] 李昌新.研究生课程教学的研究生及其强化策略[J].中国高教研研究,2009(4):24.

[5] 庞给国.自主学习——学与教的原理和策略[M].上海:华东师范大学出版社,2003.

[6] 刘续画.计算机教学中如何引导学生进行探究性学习[J].西北职教,2006(7):51.

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈