计算机专业实践能力培养方法的研究与实践

2009-01-20 01:55秦俊平寿永熙
计算机教育 2009年24期
关键词:系统化理论教学实践能力

秦俊平 寿永熙

摘要:本文介绍作者多年来对计算机专业实践能力培养方法的研究与探索,提出优化理论教学、规范实践环节、制定系统化的培养目标等一系列提高综合实践能力的方法。

关键词:理论教学;实践能力;系统化

中图分类号:G642 文献标识码:B

我院现有计算机科学与技术、软件工程两个计算机本科专业。从这两个专业毕业生的就业情况来看,从事计算机应用的最多,从事工程开发的次之,从事科学研究的比例最低。如何提高计算机人才所必须的实践能力,是各所高校所面临的共同课题,我院对此进行了有益的探索,目标是培养具有扎实理论基础和处理实际问题能力的计算机专业人才。

1课题背景

面对就业形势日趋严峻的现状,如何培养出符合用人单位要求的计算机专业人才,是我院多年来一直思考的问题,需要解决的问题主要有:

(1) 计算机类专业同质化严重,基本上现在每所高校都有计算机专业,培养方案大同小异,作为一所地方普通高校,我们的特色在哪里?

(2) 用人单位在招聘时特别强调实际工作经验,即到单位就基本可以胜任工作,这正是应届大学毕业生应聘时的最大弱项,我们能否通过合适的教学安排弥补这一不足?

(3) 传统的教学仍然是重知识轻技术,这一思想在教学过程中、教学考核环节处处体现出来,如何进行改进?

针对以上问题,以“传授知识、培养能力”为目标,我们进行了计算机专业实践能力培养方法的研究与实践,通过师生的共同努力,取得了一定的成绩,项目的主要内容包括:

(1) 优化理论教学;

(2) 规范实践环节;

(3) 系统化的培养目标,提高综合能力。

2优化理论教学

与其它专业一样,计算机专业理论知识是多年积累下来的宝贵财富,行业的每一次进步,都是在理论的指导下取得的。从数据库理论的提出到数据库的广泛应用,从网络、分布式计算理论到云存储、云计算无不如此。坚实的理论知识的掌握对于科研能力的培养,对一个人的长远发展是至关重要的。恰当的教学计划的制定与有效执行,是扎实掌握理论知识的关键。

(1) 核心知识体系是我院计算机教育的基本要求。我院制定了在一定时期内相对稳定并不断改进的教学大纲,大纲一定要覆盖核心知识体系。一个人的精力总是有限的,既博且精往往很难做到,教学计划的制定要侧重基础内容,对扩展内容做出适当取舍,且要及时调整,适应形势发展。如2009年的计算机专业硕士研究生入学考试改为全国统考,我们根据考试大纲及时调整了专业的教学大纲,为同学们参加研究生入学考试奠定扎实基础。

(2) 授课方式上除对大纲规定的内容精心讲解外,每部分再选中一个知识点,作为有代表性的实例,透彻讲解。举例来说,数据结构中树与二叉树部分,我们不仅仅从逻辑上对于树、二叉树进行讲解,还把创建二叉树与二叉树遍历算法的实现代码放在开发环境下,在执行过程中进行分析讲解,其中既有数据元素在内存中如何描述,又有数据元素之间关系在内存中的描述,在调试状态下还可查看存储空间的动态分配与释放过程,给同学们以最直观地感受。

(3) 课后作业的安排尽量面向实际,即使是一些理论性非常强的课程,也进行了这方面的努力。我们认为根据理论知识,找到现实的对应物,并对其加以分析,比机械地、教条地学习,感受更为直观,收获更大。举例来说,操作系统中讲述进程控制块PCB是进程存在的唯一标识,而PCB作为一种数据结构组织方法有唯一编号。我们布置作业要求在具体操作系统环境下,将某一时刻所有进程的信息列出,其中包括PID信息,并对结果进行分析,从而通过实践映证理论。

通过理论学习、实例分析和课后作业的相互配合,同学们可深刻地理解理论知识。同学们学习的不仅仅是枯燥的理论,更重要的是启迪他们的思维,引导他们逐步地、由表及里地认识计算机的软硬件协同工作原理。

3规范实践环节

作为实践性极强的专业,能力是通过解决问题来体现的。这既包括软硬件故障的排除,也包括某个项目从需求分析直至拿出解决方案的全过程。能力是知识的应用,如果说知识是来源于间接经验的话,这种实践能力主要是在日复一日的亲自参与的实践活动中积累起来的。完善、规范的实践教学环节是培养这种能力的关键。此处规范主要指科学地制定培养方案和严格地把握培养环节,强调过程与效果。实践环节的规范应考虑以下几个方面:

(1) 题目的趣味性。实践环节包括课后的编程练习、课程实验、综合设计及毕业设计。对于初学者来说,重要的是兴趣的培养,在学习完理论知识后,完成一些饶有趣味的题目,对于同学们今后进入程序设计大门大有裨益。为了发挥师生的主观能动性,在编写教学大纲时,实验部分只规定知识点,具体实验内容,由师生确定,这样既可以根据学生情况区别对待,也可以不断吸收好的想法到教学中来。对较复杂的综合设计题目,可以由教师拟定,也可以由同学们提出,工作任务按照“总体—部分—总体”的方式一步步推进,由简单到复杂,并不断总结,即后一步的任务是在前面已完成的经过验收的阶段性成果的基础上的进一步完善、扩充,避免同学们产生畏难情绪。鼓励同学们积极参与国际大学生程序设计竞赛(简称ACM/ICPC)等比赛活动,通过参赛树立学生的榜样以带动其他同学,进而创造良好的学习氛围。

(2) 程序设计量的保证。在哲学上讲“量变是质变的基础,质变是量变积累到一定程度的必然结果”。我们认为程序设计能力与日常编程训练就是这样一种质与量的关系。试想一下,从来没写过程序或只写过很少程序的人能设计出高质量的代码吗?哪个系统分析师不是从程序员、程序设计师一步步走过来的?程序设计的能力就是通过在大量的实践中不断地解决问题、感悟积累的结果。我院多年实践表明,学生在校编程训练达到5000行以上,是可以做到的。

(3) 平台的建设。以前的实践环节主要通过教师面对面的辅导、评定来进行,对于课程实验环节,这样的安排也利于师生交流,随着学生人数的增加,基于Internet提供更方便的自学平台,是更有效率的实施方法。为此,我们建设了在线测试平台,为同学们创造更多的自主学习机会,而且在平台上进行每位同学程序设计量的统计,程序设计内容的相似度评估等内容。

(4) 组织方式。较简单题目,个人完成;比较复杂的题目,以小组为开发单位,结对编程。无论题目的难易程度,基本的文档和测试用例必须齐备。一方面在学习中培养同学们的合作意识,另一方面,制订严格、细致的实验大纲,设计合理的实验题目,要求学生完成规范的实验报告,培养同学们用软件工程的思想分析问题,提出方案直至实现并验收。

(5) 将实践内容引入考试环节。在高校扩招后,基本都以大班形式进行授课,如何有效地督促同学学习,除了题目完成后答辩等传统方法外,我们采用在Internet在线教学平台上引入相似度评估的技术方法进行检查,在考试环节增设机试部分,多种方法保证每位同学自己完成一定量的实践任务。

4设定系统化的培养目标,提高综合能力

在校期间各门课程由浅入深,循序渐进的安排,符合认知规律,但在以前的实施过程中,由于各门课程由不同教师讲授,内容的前后衔接,与课程对应的实践任务的安排,缺乏系统性。我院现在实行的是责任教授负责制,各门课程教学计划的制定,要召集相关的授课教师统一协商,针对实践环节存在的问题也不断改进,经过几年的发展,拟定了一个系统化的行得通的培养方案。该方案既考虑了知识面的完整性,也兼顾了要丰富实际工作经验的社会需求。方案主要包括以下几个方面:

(1) 实践任务难度不断深入。制定任务时,尽量将重复性任务去掉,使每个任务都有所收获,并兼顾不同课程之间的交叉。如在刚入学时开设的高级程序设计语言中,从基本的程序语句,到选择结构、循环结构程序的设计,再到文件的访问,作为最基础内容,通过实践环节全部覆盖。而此部分内容在其它课程中,要求同学们直接使用而不再单独布置实践题目,确保学生在有限的课时内学习尽可能多的知识。

(2) 实践任务的完整性。当相关理论知识学习后,安排一个工作量、难度适宜的完整任务。如在程序设计与数据结构学习完成之后,要求同学们完成一个成绩管理系统,从初始的数据输入,数据处理到结果显示,同学们设计方案并予以实现。要求既可以在屏幕上以表格形式显示结果,也可以打印输出,还可以使用文件方式保存表格。通过这样的学习,同学们既对软件有了直观感受,又扩展了知识面,任务完成之后,我们又组织师生进行总结,寻找不足,为下届学生学习做好准备。

(3) 系统知识的培养。不同课程之间内在关联很紧密,在授课时如何把握,是浅尝辄止还是深入探究,对教师是一种挑战。同样的教学内容,不同的授课安排,同学们的收获差别非常大。举例来说,如果在讲授操作系统时,能就某一部分内容对其内部实现以一种直观、易于理解的形式进行展示,要比简单地复述教材上的理论总结效果好得多。把不同课程之间的线索理出来,在授课过程中把脉络传授给学生,将知识形成体系,对培养综合能力大有益处。

(4) 毕业设计题目尽量来自工程实践或科研项目。作为在校期间的最后一项教学活动,要有难度,有饱满的工作量,教师应尽量选择来自于工程实践或科研项目的题目,让同学们经历软件工程的全过程,并且具备收集文献资料的能力。

总体来说,系统化强调的是各门课程之间的衔接,培养的是综合能力。这一环节加深了同学们的专业素养,体现计算机专业与非专业的区别。

5总结

程序设计能力是计算机专业学生的基本功,理论知识的深刻掌握需要扎实的实践能力作为支撑,反过来,学习理论知识并应用到实践环节,又能极大地增强实践能力。经过每个学期不间断的、系统的、大量的锻炼,到毕业前,每位同学已经历了一定数量的、各个层次的编程培养。从最基本的编程题目,到利用各类数据结构、数据库技术的较复杂题目,再到具备完善界面的小型软件,从使用数据库技术组织数据,再到多进程、多线程编程,组件编程,由基本理论到新技术,在校期间都有所尝试,这样的教学安排可部分满足用人单位的工作实际要求。

计算机作为一门实践性非常强的学科,从学生被动接受知识,到积极参与实践锻炼,在这一过程中教师引导同学不断领悟,逐步提高学生的编程、设计能力。这一过程的各个环节如何协调、内容如何取舍,都要不断研究。在这方面我院通过实施一些教改项目、教学研究项目,取得了一定的成果,我们也积极借鉴国内外同行的有益经验,为培养出真正社会所需要的人才而不断努力。

注:本研究得到内蒙古工业大学教学研究项目“ACM/ICPC开放式训练平台的研究与实践”资助。

参考文献:

[1] 教育部高等学校计算机科学与技术教学指导委员会. 高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)[M]. 北京:高等教育出版社,2006:254-255,264-265.

[2] 蒋宗礼. 推进规范办学,培养合格本科毕业生[J]. 计算机教育,2008(7):7-10.

[3] 陈朔鹰,赵小林. 建立软件实践课程体系,全面培养工程型人才[J]. 计算机教育,2008(7):14-18.

[4] 秦俊平,寿永熙,马志强,等. 操作系统课程实例与实践教学方法的研究与实践[J]. 计算机教育,2009(2):30-31.

猜你喜欢
系统化理论教学实践能力
系统化心理护理在生长发育迟缓患儿中的应用价值分析
陪产家属系统化健康教育对孕妇分娩方式的影响
系统化护理干预在阑尾炎腹腔镜术后患者恢复影响
基于工作过程系统化的汽车底盘构造与检修研究
和谐教学法在高校思想政治理论教学中的实践与探索
谈外科学教学的几点体会
嵌入式系统课程“中断、异常与事件”教学实践及启示
高校单片机课程设计教学方法探讨
刍议大学生实践创新训练计划项目
品德教学利用微课开展预学的实践研究