随着计算机技术、信息技术和网络通信技术的快速发展,软件产品和网络环境逐渐融合,使软件运行平台逐渐从封闭、集中的单机环境向动态、开放和多变的网络环境转变,软件系统开发也逐渐趋向于网络服务化。因此,网络资源和环境成为软件系统开发主要考虑的因素之一[1]。
摘 要: 针对软件工程专业的特点、培养目标和对网络技术的需求,结合学院网络实验室建设的情况,从教学内容安排和实验教学等方面进行探讨,构建了一个适合于软件工程专业的实验教学体系。在“计算机网络”课程教学中,侧重网络基本原理、常用协议分析、网络编程应用,突出实践应用能力的培养,让学生具备进行软件系统设计所需的网络知识,并进一步提高软件系统设计和编程能力。
关键词: 核心期刊发表,计算机网络,软件工程,课程教学,实验
Discussion on course instruction of computer network for software engineering major
Huang Yongping
(Department of Mathematics and Computer Science, Guangxi Normal University for Nationalities, Chongzuo, Guangxi 532200, China)
Abstract: Aiming at the characteristics, training objectives and the network technology demand of software engineering, combined with the construction of college network laboratory, the arrangement of teaching content and experimental teaching are discussed. A suitable experimental teaching system for software engineering is constructed. In teaching, the basic principles of the network, protocol analysis and network programming application are focused on. The training of practical application ability is emphasized to give the students network knowledge enough for software system design and improve the abilities of system software design and programming.
Key words: computer network; software engineering; curriculum instruction; experiment
0 引言
“计算机网络”是计算机专业和通信专业的一门必修课,涉及的知识包括计算机技术、通信技术,它是一门交叉型的综合学科,是学生掌握网络相关知识的基础课程。我院在计算机专业侧重软件工程方向,软件工程专业的培养目标是面向软件产业界对软件工程技术人才的需求,培养以计算机应用软件开发为基本技能,掌握扎实的计算机基础理论知识和较宽的工程专业知识,具有创新能力、工程实践能力和团队协作能力,素质全面的复合实用型软件人才[2]。因此,软件工程专业的 “计算机网络”课程不能是单纯的理论教学。
本文围绕软件工程专业的培养目标,探讨软件工程专业的“计算机网络”课程教学方法,根据软件工程专业特点,针对培养应用型人才的需求,合理安排教学内容,构建适合软件工程专业的实验教学体系,加强学生实践动手能力和应用能力,让学生在实验过程中加深对网络知识的理解,提高网络软件编程能力,使之符合软件工程专业强调学生动手实践能力的特点。
1 根据专业特点,合理安排教学内容
目前没有专门针对软件工程专业的计算机网络教材,通用的计算机网络教材一般着重介绍网络技术理论知识。大多是以OSI(Open Systems Interconnection)七层模型或TCP/IP五层模型为线索,采取自顶向下或自底向上的介绍方式[3-4]。内容安排上还包括无线网络、网络安全、宽带接入技术以及新型网络技术等等,概念太多,知识体系太理论、太抽象,不适合用于以培养应用型人才为目标的软件工程专业学生学习。而且,“计算机网络”课程覆盖知识面广泛,学生不可能在有限的时间内掌握所有的网络技术知识,因此,需要对教学内容进行筛选、调整和组织。
根据软件工程专业的特点,针对培养应用型人才的需要,确定本课程教学内容主要包括网络基本原理、网络常用协议分析、网络编程应用和网络操作技术,侧重讲解网络基本原理、网络常用协议分析和网络编程应用等内容。在内容的讲解上力求循序渐进,先让学生了解计算机网络基础知识,主要包括:计算机网络发展状况(计算机网络、电信网络和有线电视网络三网融合)、计算机网络主要性能指标(带宽、数据率等)以及计算机网络体系结构,然后围绕TCP/IP五层模型,在物理层上重点给学生讲解数据通信基础知识、常用传输媒体和信道复用技术。数据链路层讲解上,先简单介绍现在数据链路层要解决的基本问题,然后重点讲解PPP协议和以太网技术,让学生通过学习常用数据链路层协议以加深对数据链路层功能理解和初步学会网络协议分析。网络层以IP协议讲解作为重点,结合学院IP分配情况,让学生学会IP基本配置和子网划分,通过讲解常用的路由协议让学生掌握路由表和分组转发过程。基于现在学院内部以及其他单位内部大量使用私有IP情况,网络地址转换NAT也作为网络层的重点内容讲解。运输层,首先让学生掌握端口号相关知识,然后进入UDP协议和TCP协议学习,让学生充分理解端到端通信和进一步掌握协议分析方法。应用层,重点讲解常用协议,包括:HTTP、FTP、DNS等,并安排服务器配置、协议分析和编程实验。如果课时允许,在网络安全方面,挑选一些学生感兴趣内容进行讲解,如通过访问控制列表ACL配置限制上外网的时间、钓鱼网站欺骗、ARP攻击等等;在无线网络方面,让学生动手进行无线路由配置,实现无线上网。 在教学过程中重点让学生掌握计算机网络基本原理、学会网络协议分析方法、锻炼网络编程能力、学会基本的网络操作和简单的网络配置。在课程内容选择上,要从传统的偏重计算机网络理论的介绍转变为比较实用的学习,突出实践应用能力的培养,让学生具备软件系统设计所需的网络知识,并进一步提高软件系统设计和编程能力。
2 注重理论与实验相结合
“计算机网络”课程覆盖知识面广,概念多、内容抽象,如果采用纯理论教学方式,学生对真实的网络环境缺乏了解,教师很难在有限时间内把计算机网络抽象的原理和协议讲述清楚,学生也很难真正掌握计算机网络相关技术。因此,“计算机网络”课程教学需要理论与实验相结合,教师讲解理论知识同时结合实际操作培养学生动手能力,并且实验教学中要结合生活实例,提高学生兴趣,激发学生的学习主动性,让学生在动手实验过程中加深对网络理论知识的理解。
目前,计算机网络课程的实验内容基本上可以分为三大类。①网络基本操作和配置实验。其内容包括:网络操作系统(Windows系列或Linux)安装;各种应用服务器搭建和管理,如学习搭建Web服务器、FTP服务器、DNS服务器、DHCP服务器、邮件服务器等;进行简单的网络配置与管理,如网线的制作、组建局域网、文件共享和安全性设置、用户账户管理等等。②网络协议分析和编程实验。在掌握网络基本原理的基础上,理解网络协议的概念和功能,学会网络协议分析,应用高级编程语言(如C、JAVA或C++)编制一些网络协议和服务,实现简单网络应用,加深对网络原理和协议的理解。③网络工程实验。学会交换机、路由器等网络设备的配置与管理;通过网络硬件设备或使用模拟实验软件组建中小型网络等等。
从软件工程专业对应用型人才需求和培养的角度考虑,学生学习计算机网络课程,除了对计算机网络基础知识、网络体系结构理解外,应重点掌握TCP/IP协议分析和应用实现,充分理解网络工作原理,包括数据封装、发送、接收、解封装等。所以,构建适合于软件工程专业的实验教学体系,应重点安排网络协议分析和网络编程类实验,而对网络基本操作和工程类实验应该进行分析和筛选,有针对性的安排实验,以使学生能在有限时间内掌握网络基本环境搭建和基本网络配置,加深对网络工作原理和协议的理解。
首先,网络协议分析和网络编程类实验是软件工程专业的重点,结合实际网络模型和网络软件,从应用的角度分析和引导学生掌握网络原理知识。指导学生学会网络分析和监测软件(如Sniffer、Wireshark等)的使用,学会捕获网络数据包,掌握网络协议的分析方法,在这基础上,鼓励学生进行网络程序设计和协议实现。内容安排上要循序渐进、由浅入深,让学生容易接受和充满信心,从而激发其学习兴趣。可以从学生熟悉的宽带拨号上网所用的数据链路层协议PPP协议开始,该协议格式简单,学生容易接受,有利于对协议分析方法的掌握,然后按照 TCP/IP网络体系结构分析和学习各层次重要的协议,如Ethernet帧、ARP协议(掌握ARP广播和ARP应答过程)、IP协议、UDP协议、 TCP协议、HTTP协议、TFTP协议、FTP协议、DNS协议等[5]。在协议分析的基础上,让学生动手编写网络程序,如编程实现Ethernet帧的封装与解析、IP数据包的捕获与解析,实现功能简单的Socket 通信软件(如TFTP简单文件传输)。通过实际网络编程训练,让学生掌握数据从应用层传输层网络层数据链路层物理层的封装和解封装过程,加深对网络协议与实现方法的理解,掌握网络环境中软件编程的基本方法,逐步提高网络软件编程能力。
其次,在网络基本操作训练方面,让学生掌握常用网络工具的使用以及能够进行简单网络配置,能为软件设计实现必要的网络环境配置,内容主要包括:局域网组网、IP配置、Web服务器、DNS服务器的配置。此外,让学生掌握一些最基本的网络知识以及做联网软件开发必须用到的基本技能,包括直连线、交叉线的使用;ping、ipconfig、tracert等基本网络命令的使用;简单的网络故障排除和基本的网络服务等。
最后,网络工程管理类实验让学生对网络设备有感性认识,辅助学生对相应协议和网络技能的理解。我院内部拥有网络基础和安全、网络综合布线实验室,学生可以在实验室认识课本上所讲述到的交换机和路由器以及综合布线系统,包括机房的机柜、配线架、实际的物理连线以及网络拓扑,增加感性认识。在此基础上,可以通过实际设备或通过使用Cisco官方模拟软件Packet Tracer组建中小型网络,帮助学生理解网络的基本架构。通过简单交换机配置,让学生掌握虚拟局域网VLAN,学习划分VLAN方法。路由器配置方面,重点让学生掌握静态路由和动态路由RIP协议的配置,以理解路由表、路由协议以及分组转发过程;实现网络地址转换NAT实验[6],充分理解私有IP和公有IP地址相关知识。对于能力比较强的学生,鼓励他们完成一些比较难但广泛实用的实验(如VPN)等。
3 结束语
本文根据软件工程专业的特点,针对培养应用型人才的需求,确定“计算机网络”教学内容主要包括网络基本原理、网络常用协议分析、网络编程应用,结合理论实验教学,构建了适合于软件工程专业的实验教学体系,让学生在实验过程中加深对网络基础知识、网络协议与实现方法的理解,逐步提高网络软件编程能力。网络课程概念多且比较抽象,今后的工作将进一步研究如何使教学内容更形象、更生动,以激发学生对网络课程的学习兴趣。
参考文献:
[1] 左开中.复杂网络与网络化软件系统[J].计算机应用与软件,2009.26
(5):94-95
[2] 韩姗姗.软件工程专业中《计算机组成原理》课程教学的探讨[J].浙江
工业大学学报(社会科学版),2012.11(2):1-2
[3] James F.Kurose, Keith W.Ross, Ming Chen. Computer Network―
Top-down Approach. Beijing: Machinery Industry Press,2007:180
[4] Andrew S, Tanenbaum. Computer Network. Beijing: Tsinghua
University Press,2001.