“软件技术基础”实践教学探索
2013-08-15张晓东孙丽君
鲁 可,张晓东,孙丽君
(河南工业大学 电气工程学院,河南 郑州 450001)
“软件技术基础”是针对非计算机专业的计算机软件技术及应用课程,对于非计算机专业的理工科学生来说,他们今后的发展方向并不是从事计算机理论的研究,而是在各自的专业领域内利用计算机来处理问题,他们中的大多数将是计算机应用人才,而不是计算机专门人才[1-2]。这两者所需要的知识结构和能力结构是不同的,其培养目标也就不同。
“软件技术基础”课程是面向理工科非计算机专业学生开设的一门结合算法与数据结构、软件工程、操作系统、多媒体技术、数据库等基本理论和技术的基础课程,旨在让学生掌握软件开发涉及的各领域的基本原理和技术[3]。通过实践,培养学生具有软件开发能力、创新意识和团队精神,重点培养学生的上机动手能力、实际解决问题的能力以及知识综合运用能力。实践环节的开展对于学生掌握软件开发活动具有非常重要的意义[4]。
1 传统实践教学模式存在的问题
“软件技术基础”课程是一门强调理论联系实践的课程,学生只有从实践中才能真正掌握软件技术的相关知识,才能真正了解软件开发活动的主要过程[5]。为达到“有效教学”的“有效”目的,针对课程的特点采用事理的教学方法是一个重要的方面[6]。“软件技术基础”是一门综合性的计算机基础课程,主要目的是让学生更好地利用计算机解决专业领域中的问题及日常事务问题。这门课程主要是以培养学生实践能力为主要目的,为培养复合型、创新型人才打好基础[7]。通过这几年的教学经验来看,传统的实践教学环节存在以下几个问题。
1.1 学生普遍缺乏VC++语言基础
我院的“软件技术基础”课程采用的教材是麦中凡主编的《计算机软件技术基础》(第3版),采用VC++作为程序设计语言,而学生仅仅在大学一年级学过C语言,并且大多数学生的C语言基础较差,对于VC++程序设计语言更是一无所知,再加上计算机软件技术基础课程知识点多,内容繁杂,难以抓住重点,在学习了计算机软件技术基础的有关知识后,不知如何用VC++语言程序来实现。
1.2 课内实验学时较少,难以满足教学需要
“软件技术基础”课程的传统实践环节主要是通过上机实验来完成[8]。对于实践性特别强的“计算机软件技术基础”这门课程,实验环节至关重要[9]。我院该课程的总学时为46学时,其中课堂教学学时为38学时,实验学时为8学时。短短的8学时仅仅可以完成几个关于数据结构算法的编程,对于学生理解和实践软件开发的过程是远远不够的。教师在组织课堂教学的时候主要讲述基本概念和原理,而对于程序设计和调试技巧等实践性较强的部分,则只能是点到为止。
这样的弊端就在于学生不能通过实践来认识和学习软件技术的开发过程,不能全面地锻炼软件开发过程中所需要的各项基本技能,导致学生在课程结束之后,对于本门课程没有深刻的印象,对于以后深入学习软件技术,缺乏扎实的功底。因此,典型案例是不可缺少的教学环节 ,能够起到事半功倍的作用[10]。
2 “软件技术基础”课程实践环节教学改革思路
2.1 基于项目的小型软件开发设计的实践模式
学习软件技术基础内容,是为了在实际的工程项目中综合运用[11],为此,要求学生在熟悉VC++程序设计语言的基础上,完成一个小型的软件项目的开发设计。把解决实际问题的思想作为教学切入点,以问题驱动的方式,按照软件工程的开发方法,针对实际问题进行分析,构建数学模型,设计算法,最后编程实现软件开发。具体要求包括:
(1)这个软件项目设计,是每位学生必须完成的课外作业,占期末考试总成绩的20%。
(2)项目的选题范围分为四大类:编程类,动画类,数据库类和自定义题目。编程类的可选题目主要有开发和设计小游戏,屏幕保护程序等。动画类的题目主要是关于课程内容的动画,如数据结构中线性表的插入和删除、二叉树的遍历、查找和排序等。数据库类的题目可以选用任何一种数据库平台,进行学生学籍管理系统的设计、图书馆借还书管理系统的设计等。自定义题目是为了给学生更多的选择,学生可以根据自己的兴趣来进行软件项目的开发。
(3)项目的内容包括需求分析、设计方案、上机实现、测试报告与个人总结。根据软件开发活动和软件工程的相关要求,按照软件生存周期的各个阶段来进行软件项目的开发,并生成各个阶段的相应文档。
(4)项目开发小组学生可以自愿组合,最多3人一组共同完成一个实验项目。小组内的各个成员按照自身能力来进行任务分配,共同完成项目内容。个别能力强的学生可以独立成组,一个人完成所有任务。
(5)项目的验收包括项目报告(打印版)和可执行程序(电子版)2个部分。课程结束一周内提交项目报告和电子版,由教师评阅之后计入期末考试总成绩中。
2.2 构建立体化的实践教学平台
我院设有创新实验室、嵌入式实验室等多个开放实验室可供学生使用。其中,创新实验室是我院全面贯彻和落实电子类学科面向21世纪课程体系和课程内容的改革而创建的新型实验室,为吸引、鼓励广大学生积极参加课外科技活动创造了条件,是我院大学生电子类科技活动的重要场所。嵌入式实验室现拥有ARM920T内核的北京博创UP-NETARM2410S嵌入式教学科研实验箱和UP-ICE200仿真器多套,是嵌入式技术高级人才的培养基地和嵌入式技术相关课程的教学基地。嵌入式实验室主要承担本科生软件项目实践和毕业设计等教学实验任务。
这些实验室为学生进行软件项目设计提供了软件平台和实验场所,为“软件技术基础”课程的实践改革提供了较好的硬件设施,保证了软件项目的顺利开展。
2.3 充分利用网络教学平台
我校建立的网络教学平台,可以制作“软件技术基础”的网络教学系统。作为课堂教学的补充,该系统为学生进行课外的思维拓展、学习交流提供了有效的途径。学生在进行团队的项目开发的同时,可以通过网络教学平台将课堂知识和课外知识结合起来,运用到项目开发中去,真正实现了“理论联系实际”。另外,学生可以在网上和教师交流项目开发过程中遇到的困难,教师可以将学生遇到的共性问题总结出来,挂在网上,供更多的学生学习交流。通过网络教学平台,使得教师和学生之间的关系更加密切,在相互交流中共同进行项目实践,并将这些经验反馈到课堂中去,促进理论教学更好地实施。
3 结束语
从2006年至今,经过6年的教学实践经历,可以明显感受到这种基于项目开发的实践环节对于学生来说受益匪浅。项目课程模式小而精,学生的学习真正做到了理论融于实践,动脑融于动手,兴趣融于行动,学生成为学习的真正主人[12]。大部分的学生能够通过这样一个过程,深入地学习和理解软件开发的方法和过程,培养了自学能力、创新能力和解决实际问题的能力。通过这种基于项目的实践模式,使学生在实践中学习到软件技术的精髓,为学生学好这门专业基础课程起到了非常重要的作用。
(
)
[1]王玲.非计算机专业《软件技术基础》教学实践[J].实验科学与技术,2012,10(2):97-99.
[2]张水利,董军堂,樊延虎,等.“软件技术基础”教学模式的研究与实践[J].延安大学学报:自然科学版,2010,29(2):56-59.
[3]赵晨光,白玉,徐娜.软件技术基础实验教学模式改革[J].中国电力教育,2011(34):136-140.
[4]何洁月,王茜,王伟,等.《计算机软件技术基础》双语教学课程建设与实践[J].北京大学学报:哲学社会科学版,2007(增刊2):112-114.
[5]张选芳.软件技术基础[M].北京:人民邮电出版社,2010.
[6]贺玲,蔡益朝.目标驱动法在计算机软件技术基础教学中的实践[J].空军雷达学院学报,2010,24(6):461-463.
[7]祁俊.创新实验对《软件技术基础》课程的影响分析[J].价值工程,2012(22):255-256.
[8]刘海明,吴忻生,张梅,等.“软件技术基础”课程的双语教学探索与实践[J].高教探索,2007(增刊1):100-101.
[9]张小瑞,孙伟,张自嘉,等.《计算机软件技术基础》教学改革探索与研究[J].中国科技信息,2012(4):129,135.
[10]郭秀清.基于案例组织的软件技术基础教学方法研究[J].电气电子教学学报,2006,28(5):23-26.
[11]刘泽星.软件技术基础教学中融入软件工程思想[J].长沙铁道学院学报:社会科学版,2008,9(4):141-142.
[12]干建松.项目课程模式下软件技术基础教学改革探析[J].电脑知识与技术,2011,7(32):7935-7936.