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