面向职业技能培养的软件开发课程改革探索
2015-05-30张智慧
张智慧
摘 要: 传统的软件开发课程,以培养编程技能和逻辑思维能力为主,已远不能满足人才市场的职业化需求。在分析当前软件开发课程存在问题的基础上,结合C语言程序设计课程教学实践,将信息系统软件运行机理融入课堂教学实践,提出面向职业技能培养的教学改革方案,并给出课堂教学内容设计实际案例。实践证明,该教学方案提高了学生灵活运用知识、解决实际问题的工程能力。
关键词: C语言; 程序设计; 职业技能; 课程改革
中图分类号:G424 文献标志码:A 文章编号:1006-8228(2015)05-54-02
Abstract: The traditional software development course, focus on programming skills and logical thinking ability, can not meet the needs from the human resource market. Based on the analysis of the existing problems of current software development course, combining with the teaching practice of C language program course, this paper propses a teaching reform scheme for occupation skill training, integrates the information system software mechanism into classroom teaching practice, and gives one example of teaching design. The practice proved that, the reformed teaching scheme improves the students' engineering ability to apply knowledge to solve practical problems.
Key words: C language; programming; occupation skill; course reform
0 引言
在国家“信息化带动工业化”战略指导下,企业信息化飞速发展,带动了区域经济转型和产业结构升级,相关行业和企业对信息技术人才的综合素质能力要求越来越高,对从事信息技术应用型工作的技能型创新人才需求非常迫切[1]。高级语言程序设计作为高职院校信息技术专业的必修课,主要是面向编程技能和逻辑思维能力培养,人才培养质量和规格已远不能满足人才市场需求[2]。职业能力是人们从事其职业多种能力的综合,也是高等职业教育的重点培养目标之一,主要指灵活运用知识解决实际问题的工程能力和动手能力。当前流行的C++、Java开发平台运用,一般信息系统,Android应用开发,以及一些工具的应用和配置等,都离不开C语言的基础知识。如果将职业能力培养注入到C语言程序设计的教学目标,从系统工程的角度,重新安排知识点的学习路径,结合信息系统的建设、管理、运行、维护工作需求,增强实际应用技能和解决问题能力培养,将有利于提高学生的学习积极性和第一任职技术能力培养。
1 面临问题分析
C语言基础知识普遍适用于当前流行的开发平台,成为很多高职院校信息技术专业的必修课。但是,现有的C语言程序设计教学往往过多的关注结构化程序设计方法,按照知识点的先后顺序和难易程度讲解程序的基本结构[3],注重语言的各种语句、语法和命令,即便是列举了一些典型例题,也仅仅是从编写程序的角度帮助学生理解所讲的内容,无法达到灵活应用的教学目的,课程学习价值得不到充分发挥。
1.1 与应用需求脱节
很多学生毕业后认为程序设计课程教学安排不合理,37%的学生认为对就业没有任何意义,20%的学生认为没有掌握所学知识[4]。究其原因,是因为随着计算机和互联网应用的普及,人才需求两极分化严重,大量的人才需求是信息系统管理、运行和维护人员,不需要开发系统而要懂得系统优化配置、故障排除和客户服务。对于高职教育而言,显然应要求学生从技术上理解信息化系统的构成和配置。
1.2 与技术发展不相适应
计算机技术已经从一个高端的技术行业演变成一个工具,云计算、物联网等新技术层出不穷,多数实际应用是利用第三方平台进行二次开发,只需调用相关的软件构件,通过图形化的界面配置几个参数就能实现简单的应用。企业更关注人才解决实际应用问题的技术能力。单纯的语句、语法教学模式已经不能满足技术发展需求。
1.3 与职业技术能力不匹配
对语法、命令掌握的技术壁垒很低,但是数据建模、抽象问题的解决能力需要系统的学习。学生通过程序设计课程学习,应该能够真正理解掌握计算机软件的内在运行逻辑机理,而不是了解简单的语言规范。现有授课模式下,学生只是被动的接受语法和语句,而不能真正掌握软件的运行机理,也就无法转化成自身的职业技术能力。
2 面向职业技能的教学改革方案
职业技能体现的是第一任职技术能力。要适应市场人才需求,转变以传授知识为主的理论教学为提升学生技术能力的应用教学。教学内容要围绕应用技能需求设计,提炼出共性的知识和应用范畴,提高学生对程序设计背后运行机理的掌握,培养学生提出问题、分析问题、解决问题的综合能力。其教学强调在应用情景的驱动下,最大限度地调动学生的主观能动性,探究完成任务或解决问题,增强创新实践能力。
2.1 C语言应用现状深度分析
根据来自CodeEval的编程语言统计数据分析,2013年开发者使用Object-C飙升了300%,C#增长了100%,JavaScript增长了33%,Java虽然降低了14%,仍保持在领先地位。国内一些教育网站,则大量推崇Java编程、C#和Android应用开发。虽然已经很少将标准C作为开发工具,但上述这些编程语言的基础知识都在C语言程序设计教学中有体现。
2.2 教学改革思路
以就业第一任职技术能力为导向,突出程序运行机理分析和解决实际问题方法等应用内容,提高施教的针对性。在教学计划上,要依托学生在计算机组成和操作系统等相关课程上学到的知识,把软件系统运行机理融入到程序设计,增强C语言程序设计授课的有效性。在教学目标上,在掌握C语言编程基本规则的基础上,适当增加软件系统管理、配置和优化。在教学重点上,围绕编写、调试和配置一个实用、规范、可读性的程序,灵活运用任务驱动和项目教学法,由简单到复杂,逐步涵盖C语言的基本语法、编程知识点,涵盖实际运行维护各项流程,设计并实施一系列完整的项目,充分发掘学生的创造潜能,提高学生解决实际问题的综合能力。
2.3 课程教学方案设计
改革后的C语言程序设计课程,以学习项目为知识载体,以项目导向活动作为课堂教学的主要形式,突出项目开发过程中的管理、运行、维护等能力培养。教师要充分利用自身的知识能力优势,分析就业市场需求,定位课程岗位能力培养目标,在教学设计时突出对学生的专业技能、项目经验、职业素质等方面的训练。课程设计通常包括:设计项目、分解任务、协作开发、应用评价、迭代升级五个环节。首先,要对项目开发的相关技术进行概况式介绍,包括开发环境搭建、项目背景、任务要求。设计项目要由简到繁,前后关联,递进完善,将C语言程序设计的知识点融入到一系列项目中;分解任务,要成立项目小组,对应项目开发中的项目管理、系统分析员、程序员、测试员和运行维护人员等角色,轮流完成指定任务;协作开发就是创建仿真工作任务,采用任务驱动调动学生的积极主动性,由项目小组独立完成任务;应用评价要组织对一次任务完成情况进行研讨,分析下一次项目迭代升级方案,继而开展项目的迭代升级。
3 课程教学设计方法案例
精心设计课堂实例是教学内容的关键。仿真项目的安排,应该遵循课程内容之间的内在逻辑关系,充分包含课程知识点,完成相关应用知识和技能的掌握。
3.1 项目设计
让学生充分了解当前常用的C语言开发平台,在此基础上搭建TC2.0开发环境,研讨应用软件的安装配置基本要求,培养学生的项目建设能力,将其作为学生从事信息技术应用的基本技能。例如每五人分为一个仿真任务工作组,完成一个“找出最大数”的应用程序编写。其中每个人轮流担任项目管理,负责沟通协调项目开发中出现的问题,汇总系统分析员、程序员、测试员和运行维护人员文档,撰写项目报告。要求学生在程序设计过程中,不只是完成某一功能,还要分析每一行语句的应用场景,通过查找资料,转化为应用技能。下面例子中,重点是注释中的应用说明,拓展学生的知识点。
#include//C语言调用的头文件,实现对已有函数的引用,
可根据需要选择。C#、Java也有类似作用的package。这是实现程序复用的主要途径。
int main(void) //主程序,必须存在,是系统调用软件进程的入口。
Windows、Linux操作系统管理进程的入口,也可实现程序之间的调用和通信。本程序涉及了int和void变量类型,int类型数据在实际应用中可以用来表示一些整数如职员序号等。
{ //C程序的分段标识,以C为基础发展起来的程序大多以此为标识。
int i,j,k,t; //定义变量,要放在函数的最前面。主要是要考虑具体应用的对象属性。
printf(“input 3 number(exp:12 32 34):”); //输出显示,一方面
是调用已有的程序模块,二是实现程序界面的交互,当前主要是图形化交互界面,但在工业控制上还有一些字符型交互界面,主要取决于具体的应用场景。
scanf(“%d %d %d”,&i,&j,&k); //函数调用,接受键盘输入。每个
应用程序都要通过与输入输出设备实现信息的收集,存到相应的内存变量,然后进行处理。
t=i; //临时存储,计算机的功能之一就是存储功能,很多实际应用
都需要将数据格式化后进行存储处理。
if(j>t) t=j; //比较逻辑处理,完成功能要求,并存储结果。
if(k>t) t=k;
printf(“\n The max number is :%d”,t); //函数调用,显示结果。
由采用的函数决定什么方式来显示结果。加格式符是为了显示的人性化。
renturn 0; //向上层操作系统或调用程序返回运行结果,可以实
现应用间的衔接。
} //完成顺序程序结构的处理。
根据这一示例,学生分别完成程序设计、文档编写,并通过查阅相关资料,开展应用拓展分析。通过这个简单的项目设计,能让学生在学习C语言编程基本规则的基础上,创建仿真工作任务,让学生带着任务学习,拥有学习的主动权,带动起学生的学习兴趣。这个过程可以有效地拓展学生的应用技能。
3.2 项目评估
组织小组讨论,引导学生分析项目存在的应用问题。该程序存在的主要问题,一是只能处理3个数;二是程序不能重用;三是程序结果无法存储。一个完整的用户报告应包括提交问题报告和新的需求报告。通过学生的研讨和书面报告,对学生的综合素质进行评价,并给出问题处理方法建议。
3.3 项目迭代
在项目评估问题的基础上,提出项目迭代任务,一是进行输入保护,采用循环的方式实现随机个数数据输入和比较,掌握循环结构知识点;二是利用函数实现程序代码级的重用,掌握函数知识点;三是实现数据文件写入,掌握文件操作方法。教师讲解示例,完成相关应用分析后,交予仿真任务工作组进行实践开发。这样就将枯燥的语法融入到了一个不断完善的项目应用过程中,培养学生思考问题、解决问题的职业能力。
4 结束语
本文提出的C语言程序设计课程改革方案,以一个完整项目的迭代升级贯穿教学过程的始终,将编程知识点融入每次任务设计中,在任务驱动下提高学生学习的积极性和主动性,以仿真任务工作组提高学生沟通交流和实际工作能力,以应用拓展分析带动职业技能提升。该方法通过近年来的课堂教学实践,取得了较好的效果,学生在毕业实习阶段就明显得到了企业用人单位的认可,是一种适合于程序设计课程的教学方法。
参考文献:
[1] 工业和信息化部中小企业司.中小企业信息化发展指南[M].机械工业出版社,2013.
[2] 朱殷勤,论高职计算机应用专业技能型创新人才培养[J].农业网络信息,2013.11:150-153
[3] 武相军等.实例拓展法在结构化程序设计教学中的应用[J].计算机教育,2013.2:47-49
[4] 赵立恒.论高校计算机人才培养[J].高教研究,2013.12:242