基于CDIO理念的《JAVA网络编程》课程教学模式探讨*

    林睦纲 赵辉煌 陈坚祯 郑光勇 唐四薪

    

    

    摘 要:文章根据工程应用人才培养目标和网络编程课程的特点,在CDIO工程教育理念的指导下,从教学目标、内容组织与设计、教学实施等方面,对《JAVA网络编程》课程的教学模式进行探讨与研究,提出了知识讲解案例化、能力培养项目化、课程考核全面化的网络编程一体化教学模式。教学实践表明,该教学模式有效地把教学知识点与工程实践融合在一起,提高了学生学习的主动性和积极性,培养了学生的网络编程能力与工程综合实践能力。

    关键词:JAVA网络编程;CDIO教育理念;教学模式

    中图分类号:TP311? ?文献标志码:B? ? ? ? ? 文章编号:1673-8454(2021)04-0045-04

    一、引言

    网络编程是网络工程、软件工程等计算机相关专业的一门必修专业课程。该课程在《操作系统》《计算机网络》《软件工程》和《数据库》等课程的基础上,通过学习互联网工作原理、因特网寻址方式、TCP和UDP套接字编程、多线程编程和网络数据库编程等内容,使学生掌握网络应用程序设计技术,培养网络编程的能力[1][2]。然而,根据网络编程的教学情况与用人单位对毕业生的反馈信息显示,大多数学生有较扎实的理论基础,但实际编程能力较弱、不熟悉开发工具、缺乏主动性和团队协作精神、难以适应企业工作环境,与企业的要求还存在一定的差距。分析其原因主要有:①网络编程课程涉及的知识面广,教学中缺乏知识融合与衔接,导致知识点散乱,学生的学习兴趣不浓;②传统的“以教师讲解为主、学生被动接受学习”的教学模式,不利于培养学生的主动性、编程能力和创新能力;③“重理论、轻实践”,缺乏对学生协调合作能力的培养,导致学生动手能力差,不能很快地适应企业工作环境。

    CDIO工程教育模式是由麻省理工学院、瑞典皇家工学院等四所国际著名的工科院校率先提出的工程教育教学模式,它以产品研发到产品运行整个生命周期中的构思(Conceive)、设计(Design)、实现(Implement)、运行(Operate)为主线,构造一个工程教育环境,让学生在实践环境中主动学习相关的专业技术知识,培养学生的系统工程能力、自学能力、组织沟通能力、团队协作能力和创新能力,使学生具备一名优秀的工程师应有的知识、能力与素质[3][4]。同时,它创新性地提出了CDIO 愿景、CDIO 大纲和具有很强可操作性的关于能力培养、一体化学习、实施与评估等十二条标准[5]。因此CDIO教育模式符合工程技术人才的培养规律,已经成为了国际工程教育公认的一种系统可操作的工程教育方法,也是当前高校工科教育改革的重要指导思想[6-8]。

    但由于每一门课程的特点及教学内容不一样,如何把CDIO教育理念与具体课程的教学相结合,设计有效的教学模式,培养学生的工程创新能力?目前各高校仍在不断地探索与实践中[3-9]。笔者主要根据《JAVA网络编程》课程的特点和教学目标,结合该课程近几年的课程建设与教学实践,在CDIO教育理念的指导下,从教学目标、内容组织与设计、教学实施等几方面对《JAVA网络编程》课程的教学模式进行探讨与研究,希望能为网络编程的教学提供借鉴与参考。

    二、基于CDIO理念的《JAVA网络编程》课程教学设计

    CDIO教育模式基于“做中学”和“以项目为载体”的教育理念,将教学内容、教学模式、教学实施、评价方式等各个方面融为一体,使学生在工程项目中学习理论知识,提升工程实践能力。对于实践性很强的《JAVA网络编程》课程,在教学过程中,教师可以遵循CDIO的教育理念,采用知识讲解案例化、能力培养项目化的教学模式,把教、学、做融为一体,对教学的各个环节进行一体化设计。

    1.《JAVA网络编程》课程教学目标

    课程的培养目标是教学的依据和学生能力评估的标准。因此,笔者首先根据CDIO能力培养的标准与用人单位对网络软件开发人员能力的要求,从知识、技能、能力与素质四个层次确定《JAVA网络编程》课程培养目标,如表1所示。

    根据培养目标,笔者确定《JAVA网络编程》课程的教学目标是以项目与案例为教学内容的组织形式,在案例讲解中学习网络程序设计的基本原理与模型、常用的网络编程接口、套接字编程技术与思想。在项目自主实现过程中,通过实践应用复习回顾面向对象程序设计、操作系统等基础知识,加深对网络编程技术与思想的理解和应用,熟练掌握开发工具的使用,掌握网络应用程序开发的流程,培养学生软件开发能力与项目管理能力,形成系统的软件工程开发观念和良好的编程习惯,能够应用所学的专业知识与技术来分析解决实际問题,具有良好的团队协作精神、专业素养和创新能力。

    2.《JAVA网络编程》课程教学内容组织与设计

    《JAVA网络编程》课程与《JAVA程序设计》课程不同,《JAVA程序设计》课程主要是学习JAVA语言的基本语法与JAVA编程思想[9],而《JAVA网络》编程,不仅以JAVA程序设计为基础,还涉及许多操作系统、计算机网络等相关知识,如网络程序中客户端与服务器端要协同配合,为了避免在交互过程中出现阻塞要涉及多线程编程。因而《JAVA网络编程》课程的教学内容更丰富、更复杂、实践性更强。考虑到《JAVA程序设计》课程在此前已经开设,因此我们根据网络编程课程的特点与教学目标,在CDIO理念的指导下,对《JAVA网络编程》课程的教学内容[10-12]组织与安排如表2所示。

    三、基于CDIO理念的《JAVA网络编程》课程教学模式的实施

    根据CDIO的工程教育理念,在《JAVA网络编程》课程的教学中,教师以项目或任务等形式来模拟具体工程环境,指导学生进行网络编程知识的学习与网络编程能力的训练。笔者采用了“知识讲解案例化、能力培养项目化、课程考核全面化”来组织实施网络编程课程的教学。在整个教学过程中,教师是知识的传授者,传授基础知识;教师也是项目的布置者、引导者、监督者,布置项目、引导并监督学生完成项目;学生主动学习教师传授的知识,同时学生又是项目的协作者、设计者、完成者,主动设计、相互协作共同完成项目。基于CDIO理念的《JAVA网络编程》课程教学流程如图1所示。

    1.知识讲解案例化

    在CDIO教育理念中,学生掌握基础知识是工程教育的前提。CDIO教学模式并非是减少基础知识的学习,而是通过工程项目实践,加强学生对基础知识的学习与理解,使之具有更扎实的理论基础知识和更强的分析解决问题能力。在教学实施中,对每一个教学模块,教师要选择好一个难度适当、与教学内容及知识点紧密相关的项目,并把项目拆分成若干个知识点,对每个知识点进行案例化。教师可以把该教学模块的知识点及案例以翻转课堂或微课等混合式教学形式布置给学生进行学习。在课堂教学中,教师主要对学生不易理解的知识点进行重点讲解,对学生在项目中出现的问题进行答疑解惑,学生对实现的项目进行演示与评估,教师对项目进行点评。

    2.能力培养项目化

    工程教育最终要回归到工程实践。在实践中,主要培养学生的基本技能、人生态度、交流沟通、团队协作能力和创新能力。项目实践是工程教育最有效的形式。在《JAVA网络编程》课程教学中,我们根据项目“构思、设计、实现、运行”的生命周期,采用能力培养项目化的形式组织教学,其具体实施步骤如下:①教师根据教学内容选择设计相应的项目,把项目任务发布给各项目小组。项目小组一般2—3人,事先通过学生自由组合或指配的形式划分项目小组。项目小组收到项目任务后,对项目组人员进行分工,每个组员承担不同的角色,集体查阅相关资料对项目进行需求分析,并检查自己的知识储备与不足,及时地反馈给教师(构思阶段)。教师对知识点进行案例化讲解,并帮助学生指出需求的不足,让学生进一步明确项目需求。②项目小组根据需求,拟定设计方案,并提交教师审核;教师帮助指导项目小组修正好设计方案(设计阶段)。项目小组根据设计方案分工合作进行项目实现,并及时反馈项目进度以及遇到的困难给教师,教师指导、督促项目小组完成项目(实现阶段)。③由各项目小组自评项目,提供自评报告,向教师与其他项目小组演示项目成果,教师与其他项目小组评价项目的完成情况,教师对项目进行点评,项目小组根据评价情况反思并完善项目,并把完善后的项目提交给教师,由教师根据实现情况及各方面的评价给出成绩(运行阶段)。

    3.课程考核全面化

    传统的课程考核模式是以平时成绩加期末考试成绩组成。对于操作性很强的《JAVA网络编程》课程,这种考核方式不能反映学生的能力素养,更不能评价学生的学习过程。因此在笔者的教学模式里,形成了全面化的考核评价方式来评价表1所示的培养目标:以平时成绩来检验学生的学习能力与基本素养的形成;以期末成绩来衡量基础知识与专业知识的掌握情况;以项目完成情况与质量来评价学生的专业技能、团队协作能力、分析解决问题能力和创新能力。其中,平时成绩占课程总成绩的40%,主要根据课堂教学的出勤、课堂表现、跟教师的交流沟通、回答问题的情况由教师打分决定;期末考试成绩占课程总成绩的30%;项目成绩占课程总成绩的30%,其成绩大致为:学生根据自己在项目中的贡献与表现自评(占项目成绩的20%),项目小组根据组员在项目中的贡献情况给予组员评价(占项目成绩的40%),其他项目组对项目小组项目的完成情况及文档进行评价(占项目成绩的20%),教师对项目小组项目的完成情况、文档及成员贡献情况进行评价(占项目成绩的20%)。

    四、结束语

    经过近两年的基于CDIO理念的《JAVA网络编程》教学模式实践, 笔者从学生的课堂表现、项目实现和考试情况等方面对教学效果进行了观察与评估。在课堂上学生能够积极主动地表达自己的见解,提出自己的疑惑,有强烈的学习欲望;在项目中,学生能够独立查阅类库和自学相关的技术编写程序,能够独立地调试程序中的错誤,尝试用各种不同的方法去实现程序的功能,而且团队合作能力、文档撰写能力都有了显著的提升;在项目答辩中,能够清楚地展示项目的功能,从容地回答问题;在理论学习中,学生不仅知其然,而且知其所以然,考试成绩有了较大的提高。教学实践表明,该教学模式有效地把理论知识与工程实践融合在一起,提高了学生的主观能动性和学习热情,培养了学生的网络编程能力与工程实践能力。在后续的教学过程中,教师还将加强与学生的沟通与交流,不断改进教学方法,完善教学模式,更好地提高教学效果。

    参考文献:

    [1]林睦纲,姜小奇,魏书堤,等.《网络编程》课程教学改革研究与探索[J].福建电脑,2011,27(1):37-38.

    [2]刘青云,焦铬,陈坚祯.MIMPS教学法在网络编程实践课程中的应用研究[J].福建电脑,2018,34(7):79-80+128.

    [3]王硕旺,洪成文.CDIO:美国麻省理工学院工程教育的经典模式——基于对CDIO课程大纲的解读[J].理工高教研究,2009(4):116-119.

    [4]顾学雍.联结理论与实践的CDIO——清华大学创新性工程教育的探索[J].高等工程教育研究,2009(1):11-23.

    [5]王刚.CDIO工程教育模式的解读与思考[J].中国高教研究,2009(5):86-87.

    [6]叶民,孔寒冰,张炜.新工科:从理念到行动[J].高等工程教育研究,2018(1):24-31.

    [7]顾佩华,胡文龙,陆小华,等.从CDIO在中国到中国的CDIO:发展路径、产生的影响及其原因研究[J].高等工程教育研究,2017(1):24-43.

    [8]康全礼,丁飞己.中国CDIO工程教育模式研究的回顾与反思[J].高等工程教育研究,2016(4):40-46.

    [9]林宏,李彤,张雁,等.基于CDIO工程教育模式的Java程序设计课程建设与改革[J].云南民族大学学报(自然科学版),2020,29(2):133-139.

    [10]朱辉,朱志国,李刚.Java网络程序设计[M].西安:西安电子科技大学出版社,2014.

    [11]董相志,唐玉凯,张岳强,等.Java网络编程案例教程[M].北京:清华大学出版,2017.

    [12]唐四薪.TCP/IP网络编程项目式教程[M].北京:清华大学出版社,2019.(编辑:李晓萍)