网络工程专业围绕教学关键点的网络软件课程群构建
2016-12-21崔海文梁荣靳红梅
崔海文 梁荣 靳红梅
摘要:指出函数是教学中的核心关键点,提出以此关键点为教学重点串联各个程序类课程并构建网络软件课程群,重点阐述教师在理论和实验课程教学中应该加强学生对函数部分的学习,更新课程内容,将函数贯穿于整个课程群。
关键词:网络软件;课程群;函数;方法
0.引言
根据多方面的权威调查,网络工程专业应用型人才应具有基于C/S、B/S、Web的网络应用系统设计与开发能力。网络软件方向是网络工程专业一个重要的培养方向,对于网络软件类课程,网络工程专业学生熟悉网络原理本应具有的编程优势,但目前的软件课程教学中仍存在诸多问题,网络软件类课程群的合理构建是网络工程专业的一个重要研究课题。
1.问题分析
高校一般将c语言作为第一门程序设计课程,安排在第1学期或者第2学期。如果学生没有掌握好c语言,也即没有具备程序设计开发的核心能力,那么学生会对编程失去兴趣,而且往往在第2学期就选择网络工程专业的其他方向,导致在后续软件类一系列课程的学习中出现问题,甚至放弃学习,比如说学习数据结构与算法、面向对象编程(C++和Java)、网络编程、嵌入式编程等课程比较困难,在教与学上都形成恶性循环。
计算思维能力是网络软件课程群中程序设计开发的核心能力,只有具备核心的计算思维能力,才能更好地学习后续的相关课程并逐步产生兴趣。高级语言程序设计、数据结构与算法、数据库原理、操作系统、Web技术等课程都需要计算思维的能力。面向过程语言中的函数也即面向对象语言中的方法,笔者认为把函数(面向对象中的方法)作为教学关键点,就是对计算思维能力培养的最直接方法。程序设计类课程教学对实践性要求很高,而函数本身就是最基本的实践实例单元。
无论是面向过程语言,还是面向对象语言,函数都应是教学过程中该把握的教学关键点,也是各类程序设计语言的连接点,程序设计语言之间的相关性就是函数部分。对函数部分的掌握既可提高计算思维能力,又能加强对其他语言的自学能力。教师应当以建构式教学方式并从广度和深度上展开函数教学。对于面向过程语言,讲解广度是指贯穿课程始终,讲解标识符与函数(标识符的驼峰法命名规则与函数定义、文档查阅、代码阅读)、数据类型与表达式在函数中应用(常见的数学问题)、程序基本结构与函数(封装即降低与Main函数的耦合、头文件中的函数声明)、数组与函数(函数参数的思考、函数体多层循环可读性思考)、递归函数和普通函数、标准函数库(数学模型的建立,成为一个设计者)、结构体与函数(数据结构初步)、指针与函数(内存存储的物理结构与程序的逻辑结构)、文件与函数(IO的升级)等。讲解深度是指设定场景分别从对问题的功能分析、数学模型的建立、函数的周期及其类型、合理的参数构建、函数体内算法的复杂度思考、函数的重构、函数名称及参数的命名方法、代码的分布、合理的查阅文档、如何使用类库API函数等几方面重点展开。函数部分不仅是一门语言课程的关键点,还是各个语言之间连续性学习的连接点,我们以函数(方法)为教学关键点构建网络软件课程群。
大部分学生常会在第1阶段出现计算思维能力差的问题,而影响到第2阶段的学习。在第2阶段中如学习面向对象技术,亦可以从函数(方法)人手,主要关注业务逻辑,处理实际的问题。每个阶段遇到的问题可以在当前阶段解决,重视对方法的撰写,提高计算思维能力。知识不是通过教师传授得到的,而是可以通过构建式教学引导,采用构建式教学方法,带领学生一起重构函数,遇到问题,查阅API文档,解决问题而得到的。每个阶段都可以把函数(方法)处理作为教学的关键点。
2.依据教学关键点的核心能力培养
网络软件的课程安排应是一个合理的课程群结构,课程之间有相互的关联,程序设计中的各个知识点也有关联性。每个学生都有自己的学习方式,对于不同的程序设计语言都可以从函数部分人手并以此为切入点,按照个性化的学习方法深入学习和提高计算思维能力并不断扩展。依据教学关键点构建3阶段课程如图1所示,分别根据学生在各个阶段遇到的问题,利用教学关键点构建各个阶段的课程教学重点。
3.以教学关键点为核心的课程构建
作为教学关键点,函数设计包含数学和相关业务流程方面的问题。教!厣讲授的关键就是要分析和讲解业务流程问题,并将其转换为学生熟悉的数学问题,即计算思维。教学目标是成为一个设计者,写好一个可读性高、易维护、易测试的函数。
3.1网络软件课程群构建
西安科技大学的网络工程专业包含网络软件开发方向,网络软件课程群是网络工程专业课程群的重要组成部分,确定该课程群以函数作为教学关键点,以提高学生的软件开发能力为主线,以C语言程序设计、数据结构、面向对象技术(c++和Java语言程序设计)、数据库原理、网络编程、嵌入式编程、Java Web程序设计、网络软件项目管理几门课程为基础组建课程群;将c语言程序设计开设在第1学期,将数据结构、面向对象技术(c++和Java)、离散结构开设在第2学期,将数据库原理开设在第3学期,将网络编程开设在第4学期,在网络编程的基础上将嵌入式编程开设在第5学期,在面向对象课程的基础上将Java Web程序设计课程和网络软件项目课程分别开设在第5学期和第6学期,使网络软件课程在能力构建和开设形式方面形成一个不间断逐步加强的课程群。依据教学关键点构建的主要知识和教学目标群见表1。
3.2实践环节构建
1)基于教学关键点验证实验的规划。
根据教学关键点,在每个阶段按照文中提到的教学广度设计各部分的实验。例如,在函数命名部分,采用帕斯卡命名法,对函数、参数等标识符的命名最好采用自描述具有语义的名称;对取数据的定义,从远程获取数据可以用FetchlnfoData,从本地存储加载数据可以用LoadlnfoData,通过计算获取数据可以用CaculatelnfoData。通过以上命名规则的实例可以很好地从一开始就培养学生规范化地撰写函数,重视函数及参数的命名规则。
2)计算思维为导向的课程综合设计实验的规划。
在课程综合设计实验中,有计划地让学生学会分析系统功能,利用模块化思维去划分功能,分别针对功能实现函数的撰写,同时依据教学深度分析每一个设计的合理性,不断地重构,理解设计模式。
3)网络思维为导向的网络工程专业软件实践的规划。
网络思维是计算思维的重要发展,网络协议的功能分层和对等通信就是这种思维方式的集中体现。例如,计算机网络协议的基本交互方式是请求响应,协议分层思想更是处理网络问题最重要的思维方式。教师应合理利用网络工程专业的网络思维优势,加强学生对网络软件题目的深入理解,如课程群中包含的网络编程课程是网络软件开发的本质,网络应用类程序开发都是在此基础上封装相关的操作。文中构建的网络软件课程群能加强学生的网络思维能力,可以令学生更深入地理解网络程序本质。教师在设计此类实践时可以串联网络编程、Java Web等多门课程。
4)网络软件应用实战训练的设计。
教师可从两方面让学生参与实战训练:一是可以让学生参加教师的项目,从中了解一个软件项目的各个环节;二是可以让学生申报互联网+类的创业项目,让学生作为项目的负责人并进行轮岗和角色体验,培养学生的软件工程应用能力、软件工程项目开发与测试能力、职业素质等,从而使学生熟悉软件项目开发的流程和规范,养成良好的软件开发习惯。
4.结语
合理的网络软件课程群对培养学生的计算思维能力、系统架构分析和设计能力具有重要的作用。笔者针对目前教学中学生遇到的一些问题,从教学关键点的角度对网络软件课程群进行建设与改革,提出以c语言程序设计、数据结构、面向对象技术(C++、Java语言程序设计)、数据库原理、离散结构、网络编程、嵌入式编程、Java Web程序设计、网络软件项目管理几门课程为基础组建课程群,给出课程群的主要知识与教学目标群要求并结合相对应的实践类课程,在小范围分组的学生培养中采用以函数为教学关键点的课程群,实践证明学生的软件开发能力得到了较大的提高。