摘 要:从教学实践中可以体会到传统的教学方法很难让学生达到真正“掌握”网络技术的教学目的。根据职业教育学生的特点,要想提高学生对计算机网络理论知识的理解与实际动手能力,适应信息化社会对人才需求的变化,应该注重知识与能力的协同培养,在强化学生网络理论知识的同时,提高网络软件编程能力。
关键词:“自顶向下”教学法;应用驱动;互联网;编程能力
作者简介:涂风涛(1976-),男,江西南昌人,豫章师范学院信息科学系讲师,研究方向为网络安全和计算机教学。
中图分类号:G712 文献标识码:A 文章编号:1001-7518(2017)32-0067-03
计算机网络技术的成熟与互联网应用的普及,已对计算机网络教学产生了重大的影响。这种影响集中表现在教学体系与内容的变化,以及社会对网络技术人才需求的变化两个方面。当今网络行业发展的变化,要求高职院校计算机网络工程专业的学生,更是需要具备在网络环境中开发软件的能力。因此,笔者以为基于“自顶向下”的教学理念,对计算机网络课程进行教学改革,把网络能力和素质的培养落实到教学实践中显得尤为需要。
一、“自顶向下”教学方法
“自顶向下”教学方法是以自顶向下的方式来讲授网络,也就是按照OSI模型的顺序,从应用层开始向下一直讲到物理层。在教学中,教师采用“应用驱动”模式来构建整个教学过程,讲授主要网络概念。通过对互联网应用系统的相关概念和功能的讲解,引出相应的设计任务,按照OSI模型自顶向下,层层解析,探讨网络应用系统设计方法和实现技术[1]。学生按任务要求去学习设计和实现网络应用系统的相關内容,以此来培养他们遵循问题解决流程,分析网络工作原理的能力,引导他们掌握分析、设计和实现网络应用系统技术[2]。在教学内容的整体安排上,把教学的重点放在了以应用层和传输层为中心的高层,强调网络应用层案例与编程,让学生在使用网络应用程序环境中进行学习和创新。
二、教学内容设计
在教学内容设计中采用“自顶向下”的教学设计思想,着眼于深入解析互联网应用系统的设计与实现方法,采用“端系统与核心交换”的结构模型,如图1所示。这种结构模型将复杂的互联网结构抽象为“端系统”与“核心交换”的概念,突出网络应用与应用层协议,配合“网络应用体系结构”的概念,以实现网络应用功能所需低层提供的服务为线索。在结合互联网应用系统工作模型和网络应用层协议的基础上,再探讨低层网络提供的相关服务,形成一个完整的思维结构:即“提出问题”——描述网络应用系统的功能需求;“分析问题”——实现网络服务功能的工作模型与应用层协议的设计;“解决问题”——编写实现应用层协议的网络应用体系结构的代码。“网络应用体系结构”指的是学生在设计应用程序时,规定如何在各个端系统上组织网络应用程序。在选择网络应用体系结构时,学生可以选择现代网络应用中使用的两种主流体系结构之一:客户机/服务器(Client/Server)体系结构或对等(Peer-to-Peer)体系结构。我们在实践中发现,这种组织方法有利于学生对网络原理与实现技术的理解。因此,在教学内容安排上,教师在介绍WAN、LAN与MAN等传输网技术发展和演变的历史基础上,突出对网络应用层、网络应用体系结构,以及软件设计方法的讲解[3]。
教学中,从最基本的网络原理出发,通过总结提炼,让学生一步步了解网络技术的发展,理解网络的基本设计原理。通过对处理网络问题的基本方法的掌握,也潜移默化地培养了学生接受新知识、研究新知识的钻研能力,这也是我们在计算机网络课程教学中以“不变”应“万变”的基本思路。
此外,基于“自顶向下”的理念,采用“应用驱动”的教学思路,把互联网应用作为研究对象,从实现设计目的出发,按进程通信的实现,层层推进,直到底层的数据传输层的顺序来组织相关教学内容。
互联网作为《计算机网络》这门课程的教学研究目标是因为互联网已经变得无所不在,使用互联网的体系结构和协议,来学习基本的计算机网络概念。因为我们的关注焦点是互联网,这反映在围绕互联网体系结构的五层模型来组织教学,这五个层次分别是应用层、运输层、网络层、链路层和物理层。对于发展成熟的互联网而言,许多关键性基础问题都已分析的相当透彻。像在网络运输层上,存在的主要关键问题是如何建立可靠通信;网络层上的主要关键问题是如何在Router之间找到“最优”路径;数据链路层上的主要关键问题是多路访问信道的共享。学习这些原理将使学生获得具有长“保质期”的知识,即使今后的网络标准和协议不断发展变化,其中的原理仍然重要。我们发现,在学习互联网体系结构之后,然后再通过强调网络中的基础性问题和解决方案,学生能够快速理解大部分的网络技术。
当然,聚焦互联网还有一个好处是,许多计算机专业的学生都渴望学习互联网及其技术。学生已经知道互联网是一种革命性的技术,网络改变了我们的生活方式。通过对互联网的了解,激发了学生们对其内部原理的求知欲。因此,一旦用互联网作为定向焦点,教师就更易于调动学生们学习网络基本原理的积极性。通过多个学期的学生问卷调查,我们发现采用“自顶向下”方式的教学与传统的教学相比,学生学习计算机网络课程持续保持兴趣度的人数比例发生了明显的变化(如图2所示)。
三、强化网络应用软件设计与编程能力培养
为了适应网络行业对高素质网络人才的需求,我们必须坚持“理论教学与能力培养并重,强化网络应用软件设计与编程能力培养”的教学改革。
在网络课程的教学过程中,讲网络原理必须讲网络协议,讲网络协议必然涉及一些规定。如果只通过网络硬件和软件产品来组织教学,必然会导致学生“只知其表”的状态,学习也只能停留在技能培训的水平上。以往的教学经验告诉我们,仅仅通过书本和课堂学习而掌握的网络知识,对于学生来说是初浅的。学生们往往是通过大量做题、死记硬背而“掌握”很多的网络概念,顺利通过考试。但要真正理解网络理论,提高应用能力,是需要通过项目实训来达到的。
虽然计算机网络和软件编程课程是计算机专业中独立的两门课程,但是由于当前大多数软件是运行在网络环境中,所以网络课程的教学离不开软件编程,并且两者之间还保持了紧密的联系。通过开发网络应用软件,即能强化学生对网络技术的理解,又能提高他们的网络软件编程能力。因此,采用了网络理论与项目实训相结合的指导思想,强化学生网络技术能力的培养。
为了加强学生在计算机网络和互联网应用系统设计与软件编程能力上的训练,在总结多年科研与教学经验的基础上,提炼出与课程内容相适应的网络编程实训项目。例如,教师在向学生讲授网络层的相关知识点时,设计了一个“IP数据包捕获程序设计”的实训项目。通过这个项目开发,让学生更加理解了网络层的基本概念,IP协议的主要特点,IP数据包的结构,以及IP数据包捕获的工作原理。在项目设计时,我们首先向学生提出相关的设计要求;学生根据需求写出相应的开发文档;然后学生按小组一起讨论解析项目的关键问题,教师参与辅导;最后要求学生以小组的形式完成项目的程序代码设计,教师评判的标准是看所设计的程序是否满足设计要求,小组成员分工是否明确,编程是否规范,注释是否清晰等因素。
在任课和实训教师的指导下,学生们可以循序渐进地完成网络编程的課程设计,加深对网络工作原理和实现方法的理解,加强在计算机网络与互联网环境中开发应用系统与软件的能力,适应社会对具有网络应用系统设计与开发能力的高水平人才的需要。
四、“自顶向下”教学法的优点
教学实践反馈证实了在教学中采用的这种“自顶向下”的教学方法有许多好处,并且的确很好实施。
首先,“自顶向下”教学法特别强调应用层,因为它是网络中最重要的应用领域。许多近期“革命”都发生在网络的应用层上,像文件共享、互联网应用和流媒体等。及早强调应用层的教授,不同于传统教学中所采取的方法。传统教学中只介绍了少量的网络应用和需求,应用层范式(Client/Server体系结构和Peer-to-Peer体系结构),以及应用编程接口方面的内容,这已与行业需求存在一定的差距。
其次,作为教师的经验是,在课程开始后就教授网络应用的内容,是激励学生学习积极性的有效工具。学生们从开始学习《计算机网络》便急切想知道自己每天都在使用的万维网服务和电子邮箱是如何工作的。学生们一旦理解了这些网络应用程序的工作原理,便能激发他们学习相关网络服务,以及探究在低层次中如何提供与实现这些服务的学习兴趣。所以,网络应用程序的讲解是保持学生学习该课程积极性的重要手段。
最后,通过“自顶向下”教学,使学生能够较早的掌握Socket编程、服务模型,以及网络协议的概念,这些重要概念为进一步的深入学习扫除了障碍。通过提供用语言编写的套接字编程的例子,我们强调的是主要思想,而不是使学生们陷于复杂代码的困境,使计算机网络专业的学生理解这些代码变得更加容易,提高了他们的应用技能。
五、教改效果
按“自顶向下”方法组织计算机网络教学内容,并采用“应用驱动”的思路进行课程教学改革后,使学生获得了较佳的学习体验,提高了学生的网络理论知识水平(如图3所示),强化了网络应用软件设计与编程能力(如图4所示)。
社会对网络技术人才的需求从初期的主要具备网络规划组建知识与技能型,向进一步掌握网络应用系统设计与软件编程能力的方向发展。社会对网络技术人才的需求从早期小批量、建设性人才,向大规模、多层次、能适应社会各行业对具有网络应用软件系统设计和开发能力的高水平人才的方向发展。面对新技术与人才需求的变化,职业院校计算机网络课程教学一定要适应形势发展的需要。因此,采用“自顶向下”、“应用驱动”思路的教学改革,将成熟的互联网应用技术、传输层协议与网络技术的最新发展有机地融合起来,很好地处理了网络教学内容中的“变”与“不变”的关系,从而使学生具备了以“不变”应“万变”的能力,更好地适应了社会对网络技术人才需求的变化。
参考文献:
[1]王涛,吴振强,任平安.自顶向下还是自底向上?——论计算机网络原理课程教学模式[J].计算机教育,2011(24):65-68.
[2]胡静,等.网络工程专业的网络编程课程教学与改革[J].计算机教育,2014(18):35-38.
[3]陈鸣,等.计算机网络课程教学的思考与创新[J].高等教育研究学报,2008(2):66-68.
责任编辑 时红兵