工程教育驱动的Linux网络编程课程改革
摘要:高等工程教育是工程技术人员培养的主渠道,工程教育改革受到教育界与企业界的高度关注。文章阐述如何立足于工程教育的时代要求,参照本科工程教育人才培养标准,结合信息学院学生特点,以课程建设为契机,对Linux网络编程课程的教学内容、理论教学方法、实践教学模式、教学环境、评价体系等方面实施一系列改革。
关键词:工程教育;Linux网络编程;教学改革;实践教学
文章编号:1672-5913(2013)14-0024-05 中图分类号:G642
高等工程教育是以工程科学技术的研究与应用为特征的专门教育,其培养目标是造就合格的现代工程师。受知识经济和经济全球化时代的影响,社会对工程教育和工程师的期望不断提升。针对这样的时代形势,美国、英国及欧盟等在近年来连续对本国或地区的工程教育改革提出思路。以美国为例,美国工程院在2004年发布的《2020工程师》报告中提出:2020年工程师的关键特征主要有7个方面:分析能力、实践经验、创造力、沟通能力、商务与管理能力、伦理道德、终身学习能力。目前,我国的经济增长方式正在由粗放型向集约型增长方式转变,这对
工程师的素质提出了更高的目标。2010年以来《国家中长期教育改革和发展规划纲要(2010-2020年)》及“卓越工程师教育培养计划”相继颁布,拉开了我国新一轮的工程教育改革。
在这一时代背景下,盐城师范学院网络工程专业坚持以校企合作、工程教育、研究型教学为导向,倡导教学内容工程化,能力培养实用化,能力评价专业化,并进行了一系列的专业建设与改革探索。笔者所在的教学团队以Linux网络编程课程建设为平台,探索“以学生为本,能力为先,因材施教,专长培养,理论与实践并重,特与创新齐行”教学理念的实施方案。该团队在教学内容、教学方法、实践教学模式、教学环境、评价体系等多方面进行了系列改革,目标旨在以教学为平台,有效培养学生的分析能力、实践经验、创造能力、沟通能力、商务与管理能力、伦理道德、终身学习能力。笔者详细阐述了课程改革的具体措施与实施效果。
1 课程性质与教学设置
Linux网络编程是网络工程专业重要的专业必修课程。该课程在系统介绍网络编程所需的基础知识和概念的基础上,主要针对Linux平台,使用C/C++开发环境,介绍基于TCP/IP网络套
接口的基本编程方法,包括迭代与并发服务器编写方法、进程与线程编程技术、I/O编程技术、IPv4和IPv6的兼容性、原始套接口、数据链路访问技术、广播与多播技术等。教学目的在于加深学生对网络协议与体系结构的理解,帮助学生建立网络应用程序设计与开发的知识框架,培养学生程序设计能力。同时,为后续的TCP/IP协议分析、嵌入式系统开发、网络安全、网络管理等课程的学习打下基础。课程设计环节要求学生在规定学时内在Linux平台上完成一个小型网络应用的设计与开发,促进学生对Linux网络开发技术的深入理解。
2 有效教学方法
2.1 倡导教学内容工程化,优化教学内容
基于Linux平台的网络应用程序开发的学习,对学生的专业知识要求较高,既要求学生熟练掌握Linux操作系统的使用与配置、精通C语言程序设计,还要求学生深入理解TCP/IP协议栈与操作系统API。对于初次接触该内容的本科三年级学生来说,入门的门槛较高。因此,合理选择教学内容,设计教学方案,因材施教,显得至关重要。考虑到基于Linux平台的各类网络应用程序虽各有特,但技术原理相通,选取一两个典型开发案例深入剖析,能够起到举一反三的效果。同时,基于Linux平台的网络应用程序开发工程性较强,适合采用CDIO141(C
onceive、Design、Implement、Operate,构思、设计、实施、运作)的模式组织教学过程。本课程依据学生的兴趣,选择类QQ聊天工具、类NMAP的数据包捕获与分析工具等应用中的两个作为课堂教学案例,其余作为开放实验项目选题。
2.2 推行任务驱动教学理念,提高课堂教学效果
针对本课程技术性强的特点,我们坚持“授之以渔,学以致用”的原则,希望能在有限的课时中,通过分析、讲解、演示、讨论、实践的教学手段,引导学生领会该技术的核心思想与应用方法。教学过程中,授课教师坚持培养学生的分析能力和规范的软件开发习惯,以任务驱动与案例教学为引导,每节课有明确的理论知识讲授与模块开发任务。具体做法是:对于课程的知识框架进行提炼,原理采用讲授法;将理论知识分解到相应的程序模块中,结合具体案例讲解,帮助学生加深对知识点的直观认识与理解。在代码的实现过程中,任课教师采用演示加讨论的方式锻炼学生分析程序、调试程序的能力。
教学过程中,我们坚持“小案例聚合、大案例分解”,以环回学习方式巩固学习内容。在基础知识章节的教学中,我们用一个案例贯穿课堂教学过程,不断运用新章节知识扩展案例功能,并在启发学生思考多种解决方案的基础上,讲解新功能扩展的多种解决方案。在功能扩
展的代码实现过程中,依旧采用环回学习方式,进一步复习已学内容,加深对已学知识的理解。在课程教学的后期,以大案例分解的方式引导学生学习系统架构的方法。
2.3 建设双语课程,推进学生国际化能力培养
2011年11月盐城师范学院该课程的双语课程建设项目申请成功,目标是通过英语教学以及英文教材及教学资料的研读,提高学生对专业英文术语的认知水平和英文资料的阅读能力。在为期一年的建设过程中,先后在2009级和2010级网络工程专业学生的教学中实施了双语教学。教学选用内容相近的中英文两本教材,对于教学内容较为容易理解的章节,使用英文教材、英文课件,并用英文讲授;对于教学内容较难理解的章节,使用英文教材、英文课件,但用中文讲授;对于教学内容难理解的章节,使用中文教材、中文课件,用中文讲授。盐城师范学院教务处对2009级和2010级网络工程专业共106名学生进行了问卷调查,统计结果显示,86.7%的学生认为采用双语教学对学习专业知识有帮助,92.5%的学生对本课程双语教学表示满意。3 实践教学组织模式
对于工科学生而言,实践是创造性应用和发展理论的过程,是综合能力形成的过程,大学本科4年是参与工程实践、形成工程思维、获得工程经验的极重要的时机。为了改变实践教学
目标仍然以验证理论知识、掌握实验实训技能为主的现状,本课程在实践教学学时比例、教学内容、教学形式、教学目标等多方面进行了改革,旨在培养学生的实践能力、自学能力、创新能力与协作精神。
3.1 提高实践教学课程比例,建立多层次实践教学模式
我国本科工程教学体系存在“重理论,轻实践”、教学资源分布不均衡的现象。以实践教学所占比例为例,美国大学的课程体系中,实践教学比例均在30%以上,而我国大学这一比例在20%左右,相差较大。盐城师范学院在网络工程人才培养中,大幅度提升了实践课时比例。以Linux网络编程课程为例,该课程总课时为48课时,其中实践教学为16课时,占总课时的33%。2010级网络工程专业Linux网络编程实践课程教学计划见表1,其中设计型实验占开设实验总数的50%,综合型实验占10%。同时,每位任课老师辅助指导一项校级开放实验项目,以具体项目开发为教学内容,指导那些对课程感兴趣的学生做进一步的加深实践训练。开放实验项目可以进一步锻炼学生的自学能力、分析能力、创新能力,积累实践经验,培养学生的技术特长。2009级网络工程专业Linux网络编程开放实验项目选题见表2。
3.2 提倡科研、比赛、教学相辅相成,以成果丰富教学内容
在Linux网络编程课程建设的3年时间里,课程教学团队完成与课程相关的科研项目3项,指导学生获得省级以上比赛二等奖2项,指导学生获得校级优秀毕业设计奖2项。教学研究中研发的原型系统、大学生科技创新作品以及优秀毕业设计作品的积累使得可以用于教学的实际案例逐渐丰富。笔者所在的教学团队从中选择部分案例用合适的方式引入课堂,践行“以科研促进教学,以比赛回馈课堂”的理念。2010级网络工程专业Linux网络编程课程教学与开放实验项目案例库新增案例选题见表3。
3.3 倡导练中学,工程能力培养贯穿实践教学始终
小组学习具有教育上的有效性和资源上的高效性。实践课程教学坚持小组协作,引导学生以讨论、实践、分析、再实践的方式完成实践课程内容。任课教师鼓励学生提出多种不同的解决方案,并通过实践与分析检验新方案的正确性与有效性。
实验教学环节采用启发式教学。实验过程中授课教师提出核心问题的解决思路后,要求学生协作完成实验任务。对于开发工具的使用、程序调试以及重要案例的分析等知识内容的教学采用演示法与讲授法相结合的方式,引导学生学习总结开发经验的方法。
3.4 注重实践,建立多元化的课程评价体系
在教育部发布的《教育部关于实施“卓越工程师教育培养计划”的若干意见》中提出本科工程教育人才培养标准的概念,并强调人才培养标准分为通用标准和行业专业标准。人才培养标准从学生的角度出发,规定学生经过一段时间的学习后,应该具备的“知识、能力和素养”。2008年1月,我国教育部颁布的《工程教育专业认证标准(试行)》中规定了我国工程教育本科层次人才培养的通用标准。该标准指出,我国工程教育本科层次人才必须“受到本专业实验技能、工程实践、科学研究与工程设计方法的基本训练;具有创新意识和对新产品、新工艺、新技术和新设备进行研究、开发和设计的初步能力;具有一定的组织管理能力、较强的表达能力和人际交往能力以及在团队中发挥作用的能力;具有对终身学习的正确认识和学习能力,具有适应发展的能力”。
依据此标准,笔者所在的教学团队针对课程特点,建立了多元化的评价体系。该评价体系兼顾对理解能力(权重0.15)、程序设计与调试能力(权重0.15)、分析能力(权重0.15)、创新能力(权重0.1)、团队协作能力(权重0.1)、表达能力(权重O,1)、自学能力(权重0,15)、学习态度(权重0,1)8个方面的综合考核。
课程考核包括课内实验与期末综合设计两部分,其中课内实验成绩占总成绩的40%,期末综
合设计占总成绩的60%。课内实验有8个,其中4个必做的基础型实验考核成绩在课内实验成绩所占比例分别为6%、10%、8%、11%,3个设计型实验考核成绩在课内实验成绩各占15%,1大学编程课是学什么的个综合型实验考核成绩占总成绩的20%。每次考核均以小组为单位,小组成员轮流作为汇报者汇总其实验内容的设计思路、实现流程以及小组成员协作情况。考核教师按照上述多元化评价体系从8个方面综合打分。
此外,对于参加课后开放实验项目的学生,指导教师按照其学习表现给出成绩。该成绩以0.1系数直接加入课程考核总成绩。通过这种加分的方式,任课教师可以有效地鼓励学生主动思考、主动学习,从而加深对所学知识的理解与运用。
3.5 加强教学资源建设。构建开放、自主学习平台
为了方便学生自主学习,课程教学团队协作完成了课程在线学习平台,该平台集信息发布、教案在线浏览、资料下载、案例源码、授课视频播放、在线交流、作业提交等功能于一体。任课教师定期更新与课程相关的技术动态,为学生答疑。该平台投入使用一年来,得到了大部分学生的认可,好评率为88.2%。
为了适合盐城师范学院实践教学的实际情况和特点,该课程教学团队积极着手自编实验教材,内容涵括Linux编程环境的使用,基于TCP、UDP等多种协议的编程范式等。该教材以项目为驱动,以两个真实应用案例为对象,将模块设计与编码工作分解到每个实验单无。该教材的编写旨在通过真实案例,提高学生的实验效果,帮助学生建立“工程观”,培养分析能力与自学能力。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论