时间:2022-07-13 01:12:35
序论:好文章的创作是一个不断探索和完善的过程,我们为您推荐十篇程序设计实训总结范例,希望它们能助您一臂之力,提升您的阅读品质,带来更深刻的阅读感受。
一、实训教学的性质和任务
Java技术是计算机科学与技术相关专业培养的核心技能,本课程设计是在《Java程序设计》课程上设置的,在高职高专人才的培养中占有核心地位。它是巩固学生所学理论知识、培养学生动手能力并使理论与实际相结合的重要实践环节。
本课程设计的目的和任务,是通过学生用Java语言设计一个完整的应用程序,使学生综合应用所学知识完成软件的分析、设计、调试和总结,提高学生对Java语言的综合应用能力和解决问题的能力。
二、实训教学方法手段和考核方法的设计
(1)实训教学方法和手段
任课教师根据课程《网络程序设计Java》教学大纲中的重点内容,给出相应的题目或项目,指导学生完成任务。实训前必须制定好上机步骤,弄清实训目的;要求学生掌握实训项目所需的知识、操作方法或步骤,并写出详细的实训报告。
(2)实训考核方法
通过设计答辩方式,并结合学生的动手能力,独立分析解决问题的能力和创新精神,实训报告和答辩水平以及学习态度综合考评。
考核标准包括:
1.设计与实训报告 (20%);
2.程序的可用性,实用性,通用性,可扩充性(30%) ;
3.学生的动手能力、综合解决问题能力、创新精神(20%) ;
4.答辩水平(20%)。
5.态度和纪律 10% (分为优、良、中、及格和不及格五档)
三、实训内容与要求
(1)java系统程序开发
资产管理系统、学生信息管理系统、电子商务系统、网络购物系统、网络聊天室、人事管理系统、选课系统、论文管理系统、新闻系统、考试管理系统、学生宿舍管理系统等。学生可以小组为单位任选其一完成。
(2)Applet程序开发
做一个广告屏,显示一段文字,如图1所示,能够对文字的颜色、风格、字体、字号等修改。
要求:做成APPLET程序或APPLICATION程序;用APPLETVIEWER运行;能够在网页中运行。
(3)游戏开发
1.五子棋双人对弈
开发游戏性程序,例如五子棋双人对弈程序、扫雷程序,根据学生情况,此部分为选做内容。
五子棋双人对弈程序要求:
①按“重新开具”可以开始新的一局。
②需提示当前该哪方下棋,并提示已下棋子的信息。
③一方赢时游戏结束。
2.俄罗斯方块游戏。
说明:以上内容为模板内容,其它题目也可自己设计,但难度要相当。具体内容可根据实际由指导老师审定。
(4)总体要求
1.对系统进行功能模块分析、控制模块分析正确;
2.系统设计要实用;
3.编程简练,可用,功能全面,具有较好的健壮性;
4.说明书、流程图要清楚。
四、授课计划与学时安排
(1)教师介绍本课程设计的目的、内容、要求、方法和安排。(4学时)
(2)学生消化信息、完成设计报告。(6学时)
(3)教师审查设计报告。通过审查的学生的设计报告,然后调整确定实施方案。 (4学时)
(4)学生完成课程设计的程序设计环节指导老师作必要的现场指导。(20学时)
(5)验收并简单考核。(4学时)
(6)撰写总结和实训报告。(2学时)
五、课程设计指导教师
由主讲教师和实验指导教师共同承担。
六、课程设计地点
关键词:Java程序设计;项目任务驱动;项目实训 。
Java 语言作为一种纯面向对象的程序设计语言, 是目前世界上优秀的编程语言之一, Java平台以其移动性、安全性和开放性受到g迎,在企业中得到广泛应用,尤其是近年来基于 Android 系统的Java 手机软件发展十分迅速,在形成一个新兴产业。Java 程序员的就业前景广阔,可以从事 Java 桌面软件开发、Java手机软件开发、Jsp网站开发以及其他与 Java 语言编程相关的工作。 《Java 程序设计》作为我院软件技术专业的专业必修课,力求使学生掌握 Java 面向对象程序设计能力,具备从事 Java 编程工作的基础,提高软件技术专业学生的就业能力。 对《Java 程序设计》教学进行深入改革、提高教学质量,有利于抓住当前 Java 技术广泛应用,社会对 Java 程序设计人才需求量大的有利时机,提高软件技术专业学生的就业率,提升软件技术专业的影响力。
一、《Java 程序设计》课程的教学现状
(一)课程地位和特点 计算机软件技术专业的培养目标是:培养德、智、体全面发展的学生,能掌握计算机系统基础知识和基本原理,熟悉计算机系统常用(软硬件)工具,具有一定的硬件操作和较强的软件开发能力。学生毕业后,既有大专层次的理论知识,又具有本专业较熟悉的实际操作技能适应在企事业单位计算机应用一线上直接参与管理或工作;适应在计算机软件企业从事专业的软件开发工作。 安排在第二学期,为培养学生“从 事软件开发工作”而开设。教学目标是让学生掌握 Java 面向对象程序设计能力,具备从事 Java 编程工作的基础。前导课程是《C语言程序设计》,掌握基本的编程能力基础;后续课程是《Java Web 开发技术》,学习实用的编程技术。 《Java 程序设计》是一门典型的程序设计类课程,由于程序设计本身具有的抽象性、 Java语言的复杂性和严谨性及传统教学模式的影响,学生普遍感到学习难度大,学习兴趣不高, 接受程度有限。
(二)难点和不足 由于程序设计工作本身具有的抽象性,对学生的逻辑思维能力要求较高;而 Java 语言的复杂性和严谨性,又使学生普遍感到 Java 语言学习难度大;加之传统教学采用的“先讲解后演示再练习”的方法,往往让学生感觉到过于枯燥和抽象;而当前《Java 程序设计》的课程体系更使之难以适应高职院校培养高技能人才的要求,其主要问题有: 1. 课程体系设计不合理。当前《Java 程序设计》的授课模式以理论讲授和演示为主,理论内容占主导地位,而实训环节处于从属地位。 由于当前的《Java 程序设计》高职课程体系很大程度上仍然是本科课程体系的简化版,是从本科课程体系中删除较难理论内容并增加实践内容而形成的,并没有完全摆脱本科模式的影响。然而,高职教育的培养目标是不同的。 高职教育更强调培养熟练的动手实践能力。因此,高职课程和本科课程在课程体系的设计应该是完全不同的,不仅仅是理论与实践的比例问题,而应该重新设计课程体系,使理论内容为实践内容服务,才能真正实现以培养动手实践能力为主导。 2. 实训内容设计不合理。当前《Java 程序设计》的实训内容大多属于验证性实训,与真实开发项目存在很大差距,学生难以适应实战项目实践,对培养岗位职业能力的作用非常有限。课程现有实训内容是根据理论内容设计的,是为了验证理论内容而实践,从而导致实训内容强调紧扣理论内容,而忽略了真实的岗位情境,造成实训情境过分理想化。这样即使学生能掌握一些实践技能,但是这些技能在真实的岗位情境中却难以应用。因此,必须设计好实训内容,突出 Java 语言的实用性、针对性,才能引导学生“在做中学”。 针对上述问题,我们引入项目任务驱动式教学法,对《Java 程序设计》课程教学进行改革。
二、《Java 程序设计》课程的项目任务驱动式教学改革
(一) 项目驱动是一种教学理论基础上的教学法
在教学过程中,把具体的、学生感兴趣的、有意义的具体任务作为线索,将知识点巧妙地隐含在每个任务之中;学生在预定情境下,经过思考并借助教师的引导解决问题,通过自主建构的方式获得知识、 培养职业能力。 与传统教学 “教师讲、学生听”,教师处于主动传输知识的地位,学生处于被动接受知识的 地位的模式相比,项目驱动法强调的是 “以学生为主体、以教师为主导、以任务为主线”。在 任务驱动法教学过程中,学生能充分发挥主观能动性,围绕任务要求开展实践探索,教师不再是课堂的中心,单方面地向学生灌输知识,而是在学生完成任务的过程中起到组织、引导、督促、 协助、评价的作用。采用这种教学方法,可以解决传统教学存在的无法充分调动学生的积极性和创造性,项目驱动式教学改革符合高职教育发展方向,符合国家教育部《关于全面提高高等职业教育教学质量的若干意见》 提出的高职教育的教学过程要突出实践性和职业性的要求。
(二)《Java 程序设计》课程的项目驱动式教学
1. 概述
为了更好地实施教学,切合高职教育人才培养的要求,培养适应行业需求的程序设计人才, 我们在《Java 程序设计》课程中引入任务驱动教学法,以行业流行的my Eclipse 作为开发平台,对 《Java 程序设计》课程教学进行改革。我们紧扣 教学大纲,重新梳理《Java 程序设计》课程的知识体系,设计一系列具有实用性和趣味性的任务案例,并将所有知识点融入到各项目案例中。建立一套任务驱动式课程体系。我们以培养岗位职业能力为主线,用典型任务序化知识,并将知识融入任务情景之中。按“教师提出任务->学生分析任务->学生解决任务->学生提交任务完成报告->学生相互评价->教师总结与评价”的结构组 织每一个任务。任务驱动的整个流程按照实际需要进行安排,如果不能在一个教学时间单元中完成整个流程,则可以分段进行,比如把学生解决任务这个模块放到课余时间进行,让学生自主学习与挖掘新知识,加深对知识的理解。
2. 课程体系的优化设计
《Java 程序设计》课程的内容由三大部分构 成:Java 基本语法、Java 面向对象机制、应用编程。其中 Java 面向对象机制部分具有较强的理论性和抽象性,应用编程部分则更多偏向实践性。 由于该课程的知识点覆盖面广,内容之间联系紧密、互相渗透,我们根据教学目标重新梳理知识点之间的联系,按照任务驱动的模式将知识体系划分为 14 个模块,每个模块又包括三个小任务即启发式模块、知识点任务和实践巩固任务,14 个大的模块如下所示: (1)Java 开发环境的搭建和使用。Java 特 点;Java 实现机制;Java 的体系结构;集成环境 myEclipse 。 (2)Java 基本语法。Java 应用程序结构; Java 程序编写及运行过程。Java 语言标识符和关键字;Java 语言数据类型;Java 语言运算符与表 达式;分支控制结构;循环控制结构 (3)类和对象。类与对象概念与特征、属性和方法;类与对象的关系;定义类的语法;创 建类的对象;使用对象的步骤;类的方法组成部 分;定义和使用类的方法。变量作用域;定义包和导入包的关键字;Javadoc 注释。 (4)封装和重载。封装的作用;对属性封装;用构造方法实现对象成员的初始化。方法重载;Java 中的构造方法与实例方法区别;对构造方法进行重载。 (5)继承和多态。继承的概念;继承关键 字;父类与子类之间的关系,super 关键字。多态 的概念;静态多态,动态多态;多态的实现。 终类和抽象类。 (6)接口。接口的概念,接口编程的实 现; (7)数组。声明和创建数组;数组的初始化;数组元素的使用。 (8)字符串。定义、初始化字符串;字符 串常见操作及方法;StringBuffer 类的定义和方 法。 (9)异常处理。异常的概念;异常处理结 构;抛出异常;声明异常;自定义异常。 (10)GUI 编程。Java GUI 界面的基本原 理;常用的 AWT 和 Swing 组件;布局管理器;菜 单;Java 事件组成;委托事件处理机制;常用事件类; (11)数据库编程。JDBC 的概念;JDBC 框 架结构;JDBC 驱动程序 JDBC 驱动程序编程的基本步骤。 (12)文件 I/O 编程。Java 的文件管理; Java 目录管理;文件的创建;文件类的方法;顺序文本文件;流的操作步骤;随机文本文件;文件的追加。 (13)多线程编程。Thread 类;Calendar 类;SimpleDateFormat 类;线程的状态;线程的优先级;线程的通信。 (14)网络编程。TCP/IP 协议;Socket 类; ServerSocket 类;UDP 协议;发送数据包;接收数据包。 本文提出的课程体系将教学重点放在实践 较强的应用编程部分,涵盖了GUI 编程、数据库编程、文件 I/O 编程、多线程编程、网络编程等 技术,而对理论性、抽象性较强的 Java 面向对象机制,不再深入分析其内在机理,只要求学生掌握基本的概念、原理和语法,为后面的应用编程提供基础。
3. 实训内容的优化设计
Java 程序设计具有很强的实践性,但其理论知识却很抽象,学生仅理解理论知识点是远远不 够的。传统的“先讲解理论知识点,再展示演示案例帮助学生理解,后再进行实践练习”的做法是以教师为主导,学生被动学习的灌输式教学法,这样导致学生学习兴趣不高、接受程度有限,导致演示案例和实践练习的效果大打折扣。 对此我们重新设计教学流程,摒弃这种以教师为主导的做法,突出学生在学习中的中心地位。首先在每个单元中精心设计一个有趣、具有启发性的演示案例,先让学生看到程序运行效果,激发其学习兴趣和积极性;然后从案例中引出该知识点的任务,让学生分组讨论该任务,分析该任 如何完成;接着限定任务的完成时间,让学生在该时间内完成任务并提交任务完成报告,在任务完成后学生们要进行小组互评;后教师再根据学生完成任 务的情况进行总结和评价,包括对学生任务完成 程度的评价,对任务背后的知识点的解释,对学生还没熟悉的重难点进行总结。至此,学生通过完成任务,不但对相关知识点有了一定感性认识,而且通过任务评价和总结,能够更好地理解和消化理论,提升为自己的理性认识;后根据需要再设计 1-2 个案例作为实训练习,由浅入深、由简单到复杂地巩固知识点和技能。很明显,这是一种 “从实践到理论,再从理论到实践”的做法,符合人类认识客观世界的规律。由于该任务贴近学生学习的真实情境,学生感到亲切、容易理解其次,由启发式案例提出本节要完成的任务。这里任务比启发式案例要求稍高,有利于在学生现有的基础上挖掘自己的潜力,更深的理解知识。学生在接到任务后当堂讨论并分工,这样有利于培养他们的团队合作精神,学生完成任务的过程可以放在课后进行。在任务完成后需保留源代码,对程序运行结果保留截图并用 ppt 演示任务完成流程和填写任务完成情况表;回到课堂上后学生将任务结果进行展示并对其他小组评分,教师进行评价并补充讲解重难点,包括程序结构、定义变量、数据类型、运算符和表达 式、分支控制结构、循环控制结构等。教师对知识点和关键技术步骤进行总结,对实践练习中出 现的问题进行分析,可以帮助学生构建一个 晰、完整的知识结构后,进行实践巩固练习。,以任务为驱动,教师只是起到引导的作 用,这样学生掌握的知识才是真正属于自己的知识。
三、结语
如上所述,项目任务驱动式教学的关键是合理设计项目任务,将知识点巧妙地隐藏到任务中,让任务本身具有趣味性并尽可能地贴近真实情境,使学生在完成任务的过程中不仅获取相关知识,而且发展实践能力。理论知识点不再是案例的主导, 而是作为演示案例的抽象推广。实践证明,对于《Java 程序设计》这门理论性和实践性都很强的课程,通过引入项目任务驱动教学法,进行项目实训,使理论和实践互相渗透,确实能够,激发学生的学习热情,改善教学效果,提高学生的动手实践能力,能更好地满足高职院校培养实用型技能人才的要求。
作者简介:侯春明(1979-),男,白族,湖南吉首人,吉首大学信息科学与工程学院,讲师。(湖南 吉首 416000)
基金项目:本文系吉首大学校级教改课题“计算机课程群教学中技能培养的教学改革与实践”的研究成果。
中图分类号:G642.45 文献标识码:A 文章编号:1007-0079(2013)28-0163-02
高校信息类专业(如计算机科学与技术、网络工程、电子信息工程、通信工程、物联网工程等)课程体系中,程序设计类的课程占有相当的比重。常见的专业课有“C语言程序设计”、“Visual Foxpro程序设计”、“面向对象程序设计”、“汇编语言程序设计”、“网络程序设计”等。由于信息类专业的应用领域非常强调技术实现,普通高校学生必须具备较强的编程能力,才能满足社会对人才的要求。据统计,普通二本高校信息类毕业生,除了小部分继续攻读硕士博士学位外,绝大部分都在毕业后直接从事专业技术工作。[1]虽然不同专业对计算机编程能力的要求和应用领域各有不同,比如电子信息工程和物联网工程更侧重对硬件的控制和嵌入式方向,而计算机科学与技术和网络工程等专业更侧重系统软件开发和应用软件的开发。但是从整体上看,这些信息类专业都对学生的编程能力提出了较高要求。为了达到相应的培养目标,相关课程群应该在课程实训环节进行改进,以求提高学生的程序设计能力,进而全面提升学生的专业水平和动手能力,为国家和社会培养合格的人才,这是需要深入研究的课题。[2]
一、计算机课程群实训课的特点与不足
计算机课程群的实训课程是连接理论课程与编程能力的桥梁,程序设计类课程群对编程能力的培养尤为重要。但是在教学实践过程中,要达到全面提升学生动手编程能力的状态,面临诸多困难。
1.课时不足
随着高校课程体系的全面改进,为了宽口径的培养学生,以便学生将来能有更广阔的就业领域,信息类的各个专业被加入了越来越多的课程,程序设计类课程也面临着课时紧缩的问题。一方面要保证理论课的讲授与教学,另一方面要保证学生动手编程能力的提高。这样理论课程的时间显得非常紧张,必须在有限的时间内尽可能的把该语言中的各种各样的知识点传授给学生,还要保证他们能有足够的课时在实训课环节完成相关的实训内容,为此在时间和教学上就要合理安排。
2.技术的快速发展
信息类专业发展速度迅猛,很多技术在过去的几年快速的诞生和崛起。传统的程序设计类课程主要是侧重对基本语法的掌握和中小规模问题的分析与解决。比如运用一些经典的算法解决某些数学问题,并编程实现。这样的培养模式的结果是毕业生的动手实践能力无法满足社会上IT企业对人才的要求。
3.师资力量不足
高校教师的教学负担很重,除了要完成各种教学和科研任务外,还要负责学生管理工作。从全局来看,高校的信息类专业是新兴专业,很多高校的该专业教师以中青年为主,部分教师还需要进一步进行深造,比如攻读博士、博士后、做访问学者、参与各种学术交流等。因此,在计算机程序设计类的实训课中,很多时候都是一个教师辅导数十人学生。师资力量不足也是制约学生的计算机程序设计能力全面提高的重要因素。
二、计算机课程群实训课的教学改革建议
1.针对不同专业进行有重点的课程设计
为了提高计算机专业毕业生的职业素养与编程能力,学校应该加强学生的实训教学环节。[3]虽然信息类的不同专业都会开设各种程序设计课程,但是不同的专业侧重点明显不同,比如电子信息、电子科技、物联网等专业,从专业培养目标上看更接近对硬件的控制。在实训课的综合训练项目以及相应的课程设计的培养环节上,可以考虑做单片机、嵌入式系统中的项目。将编程能力训练放到具体的硬件控制项目中,既符合相关专业的专业培养目标,又能帮助学生有效的将程序设计课程与硬件类课程群进行融合,既提高了编程能力,又提高了综合的专业知识的应用能力。比如C语言程序设计,如果只是反复的训练经典的算法和习题,编程能力的提高还是有限。但是如果学生完成一个软硬件相结合的系统设计,对C语言在单片机控制或嵌入式中的应用开发能力就会快速增强。当然,对于计算机科学与技术或网络工程这样的专业,其专业培养目标更偏向于上层应用,也可以选择相关的实用性的软件开发项目(如数据库系统等)来训练学生的动手编程能力。在完成项目的同时,学生一方面加深了对相应专业课的认识,另一方面也加强了编程能力。
2.充分调动不同学生群体的学习积极性
在高校的专业人才培养模式中,不能按照一个固定的模式要求所有的学生,必须考虑到学生自身的实际情况,调动不同学生群体的积极性,才能最大限度的提升学生的程序设计能力。比如现在很多高校都将计算机等级考试和学位证挂钩,非计算机专业的学生必须通过计算机等级考试,才能顺利获得学位证。针对这一学生群体,应该将针对等级考试的训练合理的放入到实训环节,同时鼓励学生积极主动的多做等级考试的习题,并在上机实训的过程中多做题库中的题。一方面可以提升编程能力和动手能力,另一方面也能提高通过等级考试的概率。
最近几年,高校程序设计比赛以及其他的一些设计类比赛越来越受到高校和学生的重视。对于有志于参加全校、全省、全国甚至世界级比赛的学生,在实训环节中可以积极引导他们进行相关的训练。比如参加ACM程序设计大赛的学生,可以鼓励他们在实训环节中,在完成正常学习任务的基础上,充分调动主观能动性,多练习ACM题库中的习题,由浅入深,步步推进。而立志参加嵌入式系统设计的学生,也可以主动去编写一些嵌入式环境中的程序。使学生群体在提高自身编程水平的同时,也能更加接近相应大赛的要求,收到一箭双雕的效果。还有一些学生,立志于从事应用系统的开发,比如网站系统设计、数据库系统设计、电子商务系统、智能手机应用系统、物联网应用系统等。该学生群体对学习的实用性比较看重,更愿意在毕业前就找到专业领域的一个主攻方向,孜孜不倦地钻研该方向,往实用的方向发展。结合这些学生的兴趣和爱好,应该在相关的实训训练和课程设计中鼓励他们多动手写程序,进而力争做出对社会有实用价值的应用系统。在提升了编程能力的同时,也能更多的为社会作出贡献。
3.加强对编程能力的考核
传统的教学模式注重对知识的考察,计算机类课程群也不例外。一门专业课学习完成后,最常见的考核方式就是闭卷考试。这种方式可以很好地检查学生对该课程知识体系的掌握程度,但是对编程类的课程群来说,闭卷考试很难全面考核学生的编程能力。在教学实践中,经常遇到书本知识掌握良好但上机编程能力较差的学生。为了促使学生参与编程能力训练,应该加强对编程能力的考核。比如组织上机考试,将考试成绩纳入到整体的考核成绩中;也可以鼓励学生提交应用软件系统。但是上机考试在实践中也存在一定的困难,如普通考试,一个班级只要2个监考教师即可,但为了避免学生作弊,计算机上机考试需要大量的教师参与监考。另外,如果是固定的几个习题,在机房的环境中不便于监考,而如果是从海量题库中随机抽题,又很难做到绝对的公平,因为有的学生可能抽到较为容易的题目,而有的学生则可能抽到较困难的题目。但是从发展趋势上看,为了提高信息类专业学生的编程能力,加强对编程能力的考核还是非常有必要的。
4.在校企合作中加强编程能力的培养
信息类专业学生的一个主要就业领域是IT企业,如何培养适应现代IT企业的合格毕业生,一直是高校信息类专业教师研究的重要课题。外部社会和技术变化越来越快,高校中的很多课程和教学变化往往不能及时和外部接轨。为了解决这个问题,可以考虑广泛开展校企合作,选择一些专业对口的大企业,以实习的方式组织学生去企业学习,在实践中提高学生的程序设计能力。高校的程序设计类课程更多的是注重学生知识体系的建立和基本编程能力的培养,而各类IT公司更看重的是学生的实际研发能力。高校应该尽量和IT企业开展合作,一方面鼓励学生积极参与到企业的实际项目研发中,另一方面也可以扩宽学生的就业渠道,全面提升学生的编程能力。但是实现起来也有诸多困难,比如:高校的课程安排紧凑,学生要挤出较长的时间参与企业的软件研发,时间上比较困难;有的高校位于经济不发达地区,高校所在城市很难找到能提供相应机会的企业;低年级学生没有技术实力参与到企业的研发中,而高年级学生尤其是大四学生,又面临找工作的就业压力,到处参加面试也会给相关的实训和实习工作造成影响。
三、在提高学生编程能力上的一些实践
作为二本高校的计算机教师,在教学过程作了一些有益的教学改革尝试,初步取得了一些效果。作为班主任,在自己管理的班级中对学生进行分类,钻研应用技术的学生,鼓励他们组成兴趣小组(比如嵌入开发小组、电子设计小组、信息安全技术小组、数据库应用技术小组等),在实际项目的研发中提高编程能力。这些学生毕业后大部分成长为国内一些IT企业的技术骨干,而将来选择从事IT领域非研发方向(如管理、市场、技术支持类工作岗位)的学生,则鼓励他们学好基础知识,扩宽知识面,同时积极参加计算机等级考试和其他的一些技术类证书考试。为他们收集大量的考试资料,调动相关学生的学习兴趣,鼓励他们多通过相应考试。对于立志参加各类学科竞赛的学生,则鼓励他们更多的将精力放到比赛的训练和准备上来,并指导部分学生获得了较好的竞赛成绩。
四、结论
针对高等院校尤其是二本高校计算机课程群的实训课程的现状进行了分析,特别是针对程序设计能力不强的现状进行了分析,给出了在程序设计类课程群的实训环节进行教学改革的一些建议,并总结了为提升学生编程能力所积累的一些工作经验,以期为广大的工作在教学岗位的计算机教师提供参考。
参考文献:
中图分类号:G423.07
在"十一五"期间,高职院校特别是民办高职招生有了很大的压力。为了保持招生规模,生源质量不断程不断下降之势。计算机类专业学生学习能力较差,对程序设计类课程普遍存在畏难情绪。
1.程序设计类课程存在的问题
随着信息化的逐步深入,对计算机专业技术人员的程序设计能力要求越来越高。而民办高职院校的生源基础较差,加上师资队伍建设的投入不足,程序设计类课程目前仍存在一系列问题。
1.1 忽视行业技能更新需求
软件行业主流技术的更新周期也越来越短,但部分民办高职目前仍然在开设VB、VFP等课程。这些语言或编程工具已经日趋淘汰,在实际应用中已经没有任何意义。如果以计算机等级考试为由继续开设此类课程,将会和行业应用背道而驰,与高职的人才培养目标渐行渐远。
1.2 忽视学生基本能力培养
在信息技术飞速发展的今天,对课程教学内容进行必要的更新也是合情合理的。但一些学校在设置课程的时候,出现盲目跟风的情况,一个新软件上来了,马上就更新课程。在不断抛出云计算、物联网概念的同时,往往忽视良好编程思维和习惯的培养。软件行业是个对基本素质和基础技能要求非常高的行业,学生没有基本的算法、数据结构、操作系统的知识,不懂软件设计过程是学不好程序设计类课程的。
1.3 忽视课程教学体系建设
一些学校在课程安排方面,往往花大量课时讲了很多种编程语言。由于总学时的关系,每门课程的教学内容都是蜻蜓点水,学生的学习效果很差。教学总有其内在规律,学习是循序渐进的过程。通过加强课程体系建设,突出一门核心编程语言的训练,让学生懂算法、会编程,现在看来十分必要。
2.职业教育课程开发原则
在职业教育领域,目前已经构建了许多课程开发程序,形成了多种课程开发模式。职业教育课程鲜明的个性特征,决定其课程编制必定要遵循某些基本原则。
2.1 基于数据资料的原则
因与生产一线工作紧密结合,职业教育课程的编制需要建立在足够的数据资料基础上。需要通过查找与学校、行业企业有关的数据来论证课程是否有必要编制,需要对学生的个性特征与职业特性的匹配程度等数据取舍课程内容。
2.2 基于行业依赖的原则
让行业的专业人员参与到职业教育课程开发中去,才能使职业教育课程内容真正符合工作岗位的要求,以保证职业教育课程内容跟上技术的发展。职业教育课程开发要尽量依靠行业来进行课程开发,校企合作是职业教育课程开发的重要支持条件。
2.3 面向学生主体的原则
职业教育课程的主要任务是提高学生的职业能力,为学生就业做准备。因此,必须否定传统的"供给导向"的职业教育课程模式。高职院校学生入学成绩的差异、男女生学习风格的差异、不同专业学生学习风格的差别也都是必须要考虑的因素。
2.4 面向未来发展的原则
作为与生产、生活最紧密结合的职业教育,不仅要考虑课程实施的预期效果,还要根据未来的发展变化不断地修订课程。在职业教育课程开发中,要使课程具有一定的前瞻性,才能增强学生在未来就业中的竞争力。
3.课程教学体系构建
将程序设计类课程贯穿于三年教学的全过程,确保学生在校期间程序设计类教学的时间不断线,编程技能训练的层次不断递进,形成了以"技能体验--技能强化--技能保持"为三个编程技能训练阶段、以"课程实训-技能鉴定-项目实习-毕业设计(顶岗实习)"为四个编程技能训练模块的矩阵式课程教学体系。
课程实训模块。由专业技术实训、岗位技能强化实训和职业素质拓展等教学环节组成,实施"双结合":验证型操作与应用型实训相结合;素质训练与创新能力培养相结合。每门程序设计类课程均开设相应的课程实训。
技能鉴定模块。利用课程置换方式学习微软、甲骨文、IBM等知名IT厂商的认证课程,让学生在毕业前就可获得至少一种专业主流技能证书,并参照工信部等有关部委制定的行业标准对学生进行技能水平评估,以保证学生在校期间所学到的知识与产业发展保持同步,增加其就业成功砝码。
项目实习模块。依托于项目资源库,由认知实习、课程实习、专业综合实习、毕业实习四类不同层次的实习组成。大一开始,每年都会安排一类层次的实习。实训环节实施阶段管理,模拟企业典型工作过程,以项目驱动为主,衔接前后课程。
毕业设计模块。让学生在顶岗实习阶段,灵活运用所学到的知识,独立设计、制作、调试,完成一个综合性、实用型的项目。有利于深化其所学的专业知识、培养分析问题、创造性解决问题的能力和加强团队合作精神。并通过毕业论文的答辩,锻炼和考核学生的思维、语言表达能力。
3.应用情况
正德学院从2007年起,采用"矩阵式"课程教学体系对计算机类专业程序设计类课程进行教学改革试点。从3届毕业生的就业情况来看,学生的编程能力得到了普遍的增强,从事软件行业的比例比往年有大幅度提高。
4.总结
随着江苏省注册入学的进一步推行,民办高职院校学生学习能力差已经成为了普遍现象。这个学生群体课外复习自学的愿望不足且能力不行,如何充分利用课堂教学时间是改革的第一步。我们需要构建切合实际的课程教学体系,才能提高高职高专学生程序设计类课程有效信息的摄入。
参考文献
[1]宋红,李珍香.新世纪新任务下对高职高专计算机类专业教育的思考[C].全国高等院校计算机基础教育研究会2002年会学术论文集:67-68,2002
2 学生的学习现状
此次学习型实训的实训科目是动态网站开发,分别采用jsp和php技术完成,需要学生具备程序设计和网页设计与制作等预备知识。学生前期知识有C语言程序设计,Dreamweaver网页设计制作课程,符合学习型实训项目的基本要求。但是,从《网页设计制作》课程的教学内容和学生对程序设计课程的实际掌握情况来看,又相差甚远。《网页设计制作》侧重静态网页的制作基础知识的讲授,与动态网站开发中网页制作技术的衔接,与实际的行业技术要求有一定差距。另一大难点是,学生对程序设计课程的掌握,《C语言程序设计》是学生学习程序设计的入门课程,就以往的教学经验看,每个班中只能有少数几位同学能够喜欢并领会程序设计的思路。另一部分同学能达到教学的基本要求;还有部分同学因为不喜欢看到英文,所以对程序设计课程也有抵触情绪。总之,如何让学生学好动态网站开发,最大的难度在于如何激发学生程序设计的兴趣,提高程序设计的水平。
3 学习型实训在教学方法改革中的几点尝试
生产性实训是完全贯彻了工学结合的教育理念,为了能够培养高素质技能型人才而做出的大胆尝试。学习型实训的重点在于“学习型”,不仅仅是为帮助学生补充知识,更是要指导学生如何提高学习能力,古人说得好“授人以鱼 不如授人以渔”。而要制定符合学习型人才培养目标要求的学习型实训实施方案,同样需要必须贯彻工学结合的教育理念。
3.1 从分析学生未来工作岗位和岗位能力入手,制定学习型实训的实施方案。 在学习型实训的方案制定中,必须根据企业提出的学生就业岗位和岗位能力要求,明确学生未来的就业岗位是什么,岗位能力要求是什么,岗位核心能力是什么。为了做到这一点,指导教师主动联系在职的企业人员,了解网站开发行业的流程和对岗位能力的要求,要进行岗位能力分解,明确在网站开发行业中所对应的岗位和岗位群,对应的基本岗位能力,岗位核心能力,同时结合生产性实训的总结,从而制定学习型实训的实训目标和实施方案。
网站开发行业中需要有团队合作,根据实际项目和公司规模决定团队的人数,其中必不可少的是美工和程序设计人员两个岗位。学生未来的岗位则是后者,程序设计员的岗位技能要求有:HTML,JavaScript,数据库,动态网站开发编程语言(如:PHP,JSP,ASP,.NET,C#,Java等等)。
结合生产性实训的任务,学习型实训的实训目标和实施方案中突出了动态网站开发团队精神的培养,动态网站开发中几个知识技术点的学习和应用。
3.2 根据岗位能力的确定和分解,结合生产性实训的需求,明确实训任务和实训的学习过程。 按照“干什么,学什么;缺什么,补什么;要什么,给什么”的原则,遵循行业规律、高职教育规律、学生自身成长规律,确定培养岗位能力所对应的培养目标,在此基础上,明确实训任务。
当时网页设计制作的流行技术是DIV+CSS,动态网站开发普遍使用的编程语言是PHP,JSP,数据库则是MySQL。而注册、登录、留言板、BBS是动态网站中必不可少的几个功能模块,根据以上的调查和了解,教师确定了具体的实训任务。为了提高学生的学习能力,在实训任务中制定了学生的学习计划,如:网上有规范的DIV+CSS教程,安排学生自学这部分知识,并给予相应的指导。因为学生是通过自己摸索、研究和实践而掌握的,所以印象深刻,在同学之间、老师和同学之间一起探讨的过程中,也提高了兴趣,达到了很好的效果。
3.3 在确定主要实训内容的基础上贯彻工学结合的教育理念,设计实训过程。 根据高素质技能型人才培养目标和岗位能力的要求,针对学生的共性和不同的个性特点,以培养提高学生的职业素质为重心,以培养提高学生的能力为重点。按照职业素质、岗位能力、岗位能力拓展以及学生岗位能力提升的不同要求,教师设计出各个实训环节。
自学环节:DIV+CSS网页制作技术;
互联网技术的高速发展已经对我国的教育领域产生了深远的影响。与此同时,“Java程序设计”课程的教学和改革也迎来了挑战和机遇。因此,为了提高“Java程序设计”课程教学质量和教学效果,充分发挥学生的主动学习积极性,探索线下线下的混合式教学模式显得非常必要。教师要不断深化和改革课程教学,创新教学模式,最大限度上提高课程价值。混合式教学(即线上教学)与传统课堂教学(即线下教学)相融合,可以在很大程度上推动“Java程序设计”高职院校的教学获得新的成效。然而结合实际情况,虽然我国大多数高职院校开展了“Java程序设计”课程的混合式教学,但是,教学过程中还存在着不少的问题和弊端。因此,高校教师还需要深入对“Java程序设计”课程混合式教学模式的研究和探讨。
1 高职“Java程序设计”课程教学现状
“Java程序设计”是我国高职院校软件技术专业的一门重要专业基础课程,其主要内容比较广泛,而个体差异广泛存在于我国高职院校的学生中,并且很大一部分学生的计算机思维能力较弱,自我约束能力和自我学习能力较差,这就导致了在进行“Java程序设计”课程教学时存在着巨大的困难[1]。
1.1 学生正确学习意识不足
由于高职院校中的学生普遍缺乏良好的自我约束和自我学习能力,同时也对专业不够重视,对课程的认识性不足,相当一部分学生在课堂中打瞌睡、玩手机,这让“Java程序设计”课程的教学变得十分困难。
1.2 课程实训安排不合理
由于“Java程序设计”课程在很多高职院校中只会开设一学期,因此学生对于课程的整体学习和课程进度的把握显得十分有限。“Java程序设计”课程目前朝着多样化的趋势发展,然而,我国高职院校“Java程序设计”课程普遍缺乏对实训课程的合理安排,并且可能会降低已有的实训课程难度来满足基础较差的同学,导致实训效果和实训效率很低。
1.3 课程体系建设还有待加强
许多高职院校在进行“Java程序设计”课程的教学和设计时,往往都没有考虑到学生的基础能力是比较薄弱的,忽略了学生只是软件技术专业的“初学者”身份。教师在专业课程的教学过程中,也没有进行对阶段性教学成果的总结与反思,只是不断地要求学生进行专业知识和技能的学习,从而导致学生缺乏对课程的总结和反思。同时,缺乏对“Java程序设计”这门课程的后续安排,缺乏循序渐进的课程体系,使得学生的学习动力不足,课程前后衔接不完善也导致了学生出现知识脱节的情况,不利于学生的长期学习。
2 线上线下混合教学模式分析
2.1 合理科学的教学评价体系
笔者认为,一个完整的课程评价体系应当是贯穿在整个混合教学过程中的,评价体系应当完整地将学生在学习过程中的状态展示出来,在教师进行课程的全面教学过程中,要充分鼓励学生积极自主参加教学评价,从而让学生能够掌握自身的学习状态。教师也应当在教学过程中,充分地对学生知识掌握能力和技能掌握能力进行综合评价,并且设置学习小组,对学习小组长进行领导力评价。建立起这种评价体系,能够在很大程度上带动学生的积极性,提高学习积极性。
2.2 充分认识学生的学习需求
学生的学习需求是任何一门课程能够良好实施的重要基础。课程教学目标应当在充分结合了学生学习需求的基础上进行设定,为后续的教学工作最大化提供便利[2]。学生的学习需求一般来讲是分为主观和客观的。在学生的角度而言,主观学习需求就是对教学成果和教学目标实现的期望,而学生今后的职业发展、社会地位、薪资待遇等因素则是学生的客观学习需求。“Java程序设计”课程混合式教学要充分地对学生的主观和客户学习需求进行平衡,尽量做到主观需求和客观需求能够对等。
2.3 教学策略制定
“互联网+”大背景下,线上线下混合式教学已经成为各高职院校教学的基本模式。传统式教学是一种很强的主观式行为,强调的是教师的教学行为,而混合式教学策略则是充分展示教学环境和教学资源等元素。在制定混合式教学策略时,教师要注重随时对课程进行优化和改善,比如可以对学生进行分层次教学,对不同层次水平的学生安排不同的教学实施任务,能够帮助教师很好地完成教学任务,同时也能够高效地达到教学目标。
3 线上线下混合式教学在“Java程序设计”课程中的具体应用
3.1 设置合理的教学项目和情景
“互联网+”背景下,不同课程的教学项目和情景、课程设计形式等都是多种多样的。通过利用互联网将学生的学习和课程的教学紧密联合在一起,是一种当下非常新兴的教学模式,同时也是一种重要的、不同于传统教学模式的突破。在混合式教学模式中,教师需要把互联网课程与课程实施项目、理论情景进行紧密结合,比如可以在教学过程中设置图书馆管理系统、学生信息管理系统等情景,并对其进行合理设计,能够在一定程度上提高学生的学习兴趣[3]。
3.2 提高实验课程占比,提高实验教学力度
实验教学在“Java程序设计”课程中占比非常大,教师在设计混合式教学的过程中,应当着重突出实验教学的力度,充分体现“Java程序设计”教学的实用性和适用性,增加实验教学在课程中的课时占比[4]。教师还应当在每一次实训课程开展前,提前给学生布置实训任务,让学生充分地对学习任务进行了解和预习,这也能够让学生在课外进行自主探索学习。此外,教师在课程的期中考核和期末考核中也应设置充分的实验内容,这也能在一定程度上提高学生将理论知识转化为实践应用的能力。如此,才能够大大地提高混合式教学的教学效率,充分发挥实训教学和实训课程的作用。
3.3 优化和不断完善课程体系
“Java程序设计”课程旨在提高学生编程能力,提高项目开发能力,因此,课程体系的不断优化和改善对于“Java程序设计”课程的混合式教学实施显得尤为重要。“Java程序设计”前中期要求学生重点掌握语法基础、数据库等知识,后期则需要学生重点掌握面向对象、Java高级特性等知识。所以,对学生进行综合评价,掌握学生的学习需求,了解学生的学习能力,是教师不断优化和改善课程体系的良好方式。只有构建出合理且科学的课程体系,“Java程序设计”课程的教学实施效果才能得到良好的保证。
4 结语
总之,开展和实施混合式教学对于“Java程序设计”课程的教学有十分重要的作用。许多高职院校也在大力地建设和发展自己的网络课程,并已经在教学过程中实施混合式教学。教师也可以在“互联网+”大背景下不断地进行网络课程教学创新,为学生创造和提供良好的学习条件。
[参考文献]
[1]刘长旺.基于工程实践能力培养的Java程序设计课程教学改革研究[J].教育教学论坛,2017 (25 ):134-135.
中图分类号:G642 文献标识码:A 文章编号:1006-4311(2012)06-0207-02
0 引言
程序设计课程是计算机专业学生必修课程之一,要求知识面广,逻辑性强,程序编写灵活多样,需要一定的创新思,对学生锻炼抽象思维、掌握程序设计的思想和方法,培养学生解决实际问题的应用能力有着不可或缺的作用[1][2],同时程序设计课程也是软件人才培养的基础课,学好这类课程是学生就业的基础。但是在教学过程中发现,大部分学生能够掌握各单个知识点,并能顺利通过考试,而学完整个课程后,面临一个实际问题时就无从下手,没有真正掌握程序设计的要领,无法独立编写完整的程序。本人结合实际教学情况,分析程序设计课程教学中存在问题,探索用项目教学方法提高人才培养质量,从而增强学生的就业能力。
1 项目教学模式
项目教学模式是指师生通过实施一个完整的项目而进行的教学活动[3],通过这种教学模式可以把理论教学与实践教学有机结合起来,不仅能够提高学生对理论知识的理解,而且锻炼实际解决问题的能力,增加实际项目经验。本文作者结合实际教学经验,总结提出项目教学模式的一般步骤如下:
1.1 项目准备 项目教学法是以项目为中心组织教学,项目设计的好坏直接决定着教学效果。首先,教师准备的项目最好是自己做过的具有实际应用价值的例子;其次,教师准备的项目应包含两种类型,一类是上课用于展示讲解的项目,另一类是学生课程实训的项目;再次,明确项目产品的功能,实现目标及评价标准;最后,项目还必须具有实用价值,与社会生活联系紧密。
1.2 项目展示 在项目教学展开之前,教师就应该把提前准备好示范项目展示给学生,通过展示示范项目调动学生的好奇心,激发学生的学习兴趣,这样才能让学生积极、主动地参与项目学习。
1.3 教师讲解示范 教师应围绕当前学习的知识点,选择合适项目,并示范完成项目的过程,向学生讲解此项目需要的有关理论知识与操作技能,使学生有明确的目标和感性认识,知道实施该项目要解决哪些问题,关键步骤在哪里,用到了哪些新知识。项目的讲解示范让学生能够进行“知识迁移”,将教师讲授的知识转化为自己的知识。
1.4 人员分组 项目小组是项目教学法主要的教学组织形式,教师要在示范项目讲解完成后,学生实训项目开始前把学生分为不同小组,可先让学生自由组合,然后教师根据对每个学生的学习能力、性别、性格等差异进行适当调整,合理搭配男女生数量,使每个小组实施项目的能力基本在同一个水平线上,这有利于教学整体进度的把握。
1.5 项目方案确定 学生实训项目可以由任课教师给出,也可由项目组自行确定,但自行确定项目必须经过教师确认。项目确定以后,小组成员根据项目功能要求提出自己的方案见解、实施步骤及工作计划。项目小组各成员必须严格遵守方案确定时间进度表,按时提交软件产品,这也项目教学的目的,模拟企业真实环境,让学生体验程序开发的过程。
1.6 项目实施 项目实施是项目教学法的主体与关键。各项目小组在组长的组织下按照项目方案确定的实施步骤,完成系统分析、逻辑设计、代码编写、程序测试等工作,最后提交修改完善后的项目产品。学生在项目实施过程中学习新知识,运用旧知识,模拟企业软件开发过程,完成从学习知识到运用知识的转化。
1.7 项目评价 项目评价是项目教学法的重要环节,评价内容应与“知识、能力、素质”的高职教学目标一致[4]。评价包括项目组自评、同学互评和教师评价三部分,先由项目进行自评,总结自己在项目实施过程中学到的知识、技能和方法,找出自己的不足并进行改进;然后以项目组长为主,向全班同学介绍本组的项目产品、设计实施过程以及如何解决遇到的问题;最后教师对各项目组的产品进行综合评价,指出其存在问题,给出改进建议。
2 项目教学在“WEB程序设计”中的实践
关键词:C++语言;教学模式;教学方法
基金项目:西华大学软件工程特色专业项目(10TSZY317);西华大学教育教学改革项目(西华教字[2010]407号)。
作者简介:陈红红,女,讲师,研究方向为软件工程及计算机教育。
C++语言是我校学生接触的第一门程序设计语言,由于数据类型繁多、语法结构复杂、内容丰富,加上课时有限,因此,在教学过程中教学双方都有困难。实践证明,如果缺乏教师引导,学生容易产生畏难情绪,学习兴趣难以激发。
现有的教学模式一般都采用理论加上机模式,即课堂上讲语法,上机调程序的教学模式,而区别只是两者的比例不同。就课堂教学而言,由于课时有限,教师要完成教学任务,课堂教学仍然是教师满堂灌,学生处于被动学习状态,学生的学习热情很难调动起来。另外,一个教师带一个班学生在机房上机,很难做到全面辅导和即时解答每个学生提出的问题,难以达到教学目的。虽然教师要求学生上交源程序、上机报告等内容,但无法杜绝学生相互抄袭的现象,学生实际编写和调试程序的能力没有提高。
教师讲学生练、教师示范学生模仿的教学方式,让学生感觉枯燥乏味,没有兴趣,难以理解,久而久之,学生便失去了学好C++语言的动力,教学效果也不理想。
让学生在短暂的课程学习时间内掌握C++语言的基本知识和编程技能已成为我们教学探索的目标。
1 我们的做法
以前,我校“C语言程序设计”和“面向对象程
序设计(C++语言)”分别在大一下期和大二上期开设。前者的学时为56(理论)+32(上机),后者为48(理论)+16(上机)。虽然课时不少,但教学效果不明显。经过两个学期的学习,学生除了掌握一些语法知识,具备一些简单的编程基础外,面对复杂的编程问题,仍然无从下手。针对这种情况,同时,也是为了适应高校教学改革的需要,我们的新教学计划把这两门课合并为“C/C++程序设计语言”,放到大一上期对新生开设,学时为64(理论)+16(上机),同时在大一下期新开设了“C/C++基础编程实训”课程,学时为32上机学时。经过两年的实践,我们对该教学模式有了一些体会。
1.1 教学目标及内容
我们的实训以培训能力为主要目标,培养学生编程思想和编程能力,使其具有一定的独立和协作编程能力。
我们根据学生的具体情况制定了相应的教学计划,把实训内容分为九个章节,其中七个单元实训,两个综合实训。如表1所示。
每章节由实训目的、实训预备知识、实训内容与要求三部分内容组成,既有验证环节,也有设计和编程环节。
表1 教学内容及课时分配
1.2 教学模式及方法
我们将实训放到机房。理论课和上机课不再有明确的界线,可以在上机的过程中穿插理论知识的讲解,这样做可以使学生将理论知识和具体实践相结合,加深学生对抽象概念的理解,具体做法如下。
针对每次单元实训,教师首先根据学生的具体情况抽出10~15分钟进行实训预备知识点的复习,再根据学生的知识背景、学习方法、接受能力等各方面的不同情况,做一些个性化的教学。例如,在课堂上随机抽取两至三道题目要求学生课堂完成。对基础较好的同学要求全部完成,基础较差的同学可以只完成一题,其余的题作为课后作业必须完成。同时,我们鼓励学生不要放弃,循序渐进。与以前的上机实验相比,这样的实训练习加强了对学生独立编程的考核,提高了他们的动手能力,大多数学生从实训中获得了成就感,有了学习的信心。
经过了几个单元的训练后,我们安排一次综合实训。以面向过程部分为例,由于之前已经对数据类型、程序控制结构、数组、指针、结构体等基本知识点进行了针对性的训练,所以该综合实训就是结合目标系统,对上述知识点进行组装的问题。
我们将全班同学分成6个项目小组,各自完成一个目标系统的开发。由于我们在大一上期已经开设了软件工程课程,所以,我们要求学生按软件工程思想进行项目开发和管理,由组长负责人员分工和团队协作,强调需求分析过程,要求提交需求分析报告,以考查学生对系统的理解程度。最后按项目考核方式进行验收,要求每个同学都要参加答辩,并完成实训报告。
这种项目训练方式培养了学生之间的协作能力和自主学习能力。从检查结果来看,学生对此表现出了浓厚的兴趣。这种将软件工程思想融入程序设计教学中的模式,不但巩固了软件工程教学的理论知识,又让学生明白了程序设计的作用和地位。通过责任感和成就感激励了学生参与的积极性,使学生体会到开发的乐趣和过程,激发出强烈的编程兴趣。既达到了教学目的又取得了较好的教学效果。
实践证明,先设计后编码的这种方式,既培养了学生分析问题、解决问题的思维能力,又使学生获得了编程的思路和技巧。如果把单纯的程序设计语言比作制作的话,那融入了软件工程思想的程序设计实训就是组装了。众所周知,组装要比制作容易多了。
1.3 教材的选用
目前很多的案例教材,通常都给出了相关的程序源代码,这会导致学生放弃思考,直接复制交差。针对这些情况,我们组织教师自行编写实训教材。课程内容的组织和案例选择上既不能太难,使学生感到畏惧,也不能太简单(因为学生已经具备了一定的基础),而使学生失去探索和学习的兴趣。为此,我们针对每次单元实训,既有验证环节的训练,又有设计环节。重点突出解题思路和方法,让学生觉得通过努力可以编出程序。学生在这一过程中既进行了思考、设计,又取得了成绩,有了成就感,培养了分析问题和解决问题的能力。
对于所有的题目,我们都会事先做一遍,这样做虽然增加了教师的工作量,但教学效果明显。我们在同年级两个不同专业上采用了两种教材,一种是上述的自编教材,另一种是选用现成的案例教程。经过一学期的实训对比,采用前者教材的学生在编程能力、解决问题的能力等方面强于后者。
1.4 课程考核
我们的实训目标是使学生能综合运用所学的知识进行一定难度的程序设计。为此,我们提出了该课程考试的指导思想:即重视实训过程,看重编程能力的提高。我们采用复合考核的方式,考试成绩由平时考核、过程考核和期末机考成绩组成。重点突出“会不会做”,强调学生的开发能力考核。实践证明,这种考核方法不但能更客观地反映学生的学习情况,还能引导学生有意识地加强上机实践能力的培养,起到了良好的教学效果。
具体的考核成绩组成如下。
1) 平时成绩*10%(考勤成绩*40%+课后编程作业*60%)。
2) 期末机试成绩*40%。
3) 实验成绩*50%(7个单项实训占实验成绩的50%,2个综合实训占实验成绩的50%)。
1.5 软件开发团队的组建
结合实训模式,我们从现有的学生中挑出了一些比较优秀的学生,组成了软件开发团队,每周安排一些时间进行指导,引导并培养他们确定自己的研究方向。我们从自学一些必要的准备知识入手,通过小组学习、讨论的方式完成自学过程,在储备了一些基本知识及技能后,我们根据学生的具体情况,给出一些研究方向及问题,让学生去钻研完成,同时选出其中能力较强的同学,加入到实验室研发团队中,与研究生一起跟随指导老师做一些实际项目,以提高学生动手能力,扩展知识面,为将来的学习或工作做好准备。
以前的课堂教学,教师和学生的互动机会有限,对学生的情况也不太熟悉,更谈不上组织学生参加项目竞赛。但通过实训,教师与学生的互动环节增加。
尤其是通过软件开发团队的组建,对学生的知识背景、动手能力等各方面情况都比较清楚。这样做,一方面解决了项目人员的后备军问题;另一方面提高了学生的学习积极性。
2 结语
综上所述,融入软件工程思想的C/C++实训教学模式,将理论讲授为主、实践为辅的传统的教学模式转换为以实训为主、理论教学为辅的新模式。它以实训本身的魅力吸引学生自主学习,解决了初学者对编程的恐惧心理,提高了对程序设计的兴趣。当然,在新教学模式的探索中,我们也遇到了一些困难,比如教材出自不同的教师,对难度的把握不一致。太难,初学者容易丧失信心,容易放弃;太容易,又会导致能力得不到提高。总而言之,该教学模式正在进一步完善中。对比10级和09级的学生,前者的动手能力和学习兴趣总体上明显高于后者。实训提高了学生的学习自主性和积极性,使学生逐渐具备真正的软件开发能力,并在分析问题,协作意识、设计和测试能力等方面都得到了锻炼和提高。教学质量和教学效果明显提高。由此可见,这是一个成功的教学模式。
参考文献:
[1] 徐章艳.“C语言程序设计”实验教学的探讨[J]. 电气电子教学学报,2004(2):84-89.
[2] 黄俊,熊炎. C语言程序设计课程教学改革的研究与实践[J]. 计算机教育,2008(2):23-52.
[3] 张本成,龚伟. 面向对象程序设计教学改革探讨[J]. 内蒙古师范大学学报:教育科学版,2008(1):134-136.
[4] 陈向明. 小组合作学习的组织建设[J]. 教育科学研究,2003(2):5-8.
[5] 王平,朱艳辉. 计算机程序设计教学中的教学方法研究[J]. 电脑知识与技术,2005(21):93-95.
[6] 杨其宇,张霞.“C语言程序设计”课程教学探讨[J]. 广东工业大学学报:社会科学版,2006(增刊1):94-95.
[7] 肖潇,贺细平. C语言程序设计教学探索[J]. 计算机教育,2011(5):65-68.
Exploration on Teaching Model of C/C++ Programming Training Base on Software Engineering Ideas
CHEN Honghong
中图分类号:TP312.1-4 文献标识码:A 文章编号:1007-9599 (2012) 16-0000-02
C#作为一种简单、现代、面向对象且类型安全的编程语言,由C和C++语言衍生而来,虽然与C和C++有相似之处,但是它有自身的特点和优点。C#语言的优势如下:
具有高度的灵活的性和强大的底层控制能力,能与计算机硬件直接通信。
具有可移植性,尽管程序的编写是针对所使用的操作系统和特定的计算机硬件系统的,但是只需要做少量的修改就可以应用于其他系统。
代码高效,具有相当的执行效率。
1 课程特点
根据高职教学的特点在课程设计上体现“以就业需要确定岗位,以岗位确定能力(技能、技术)”的原则。每一岗位技能由一个系列课程(2~4门课程+1~2门实训课程)教学进行培养,形成“岗位系列课程链”。也就是,把职业岗位要求的一项专门技术看成是一项任务,并设计成一个贯穿教学全过程的课程链;以核心知识课程打好技术和能力基础;以行动导向的实训课程或课程设计项目培养职业需要的技能。在软件开发核心能力的培养中,C#程序设计是非常重要的一环,所以在课程讲授主线上,按照“读程”、“编程”、“开发”、“测试”、“研发”的能力结构和学习过程设置教学环节,学生可按“模块化、组合型、进阶式”等方式选择学习内容,逐步深入掌握编程知识,并兼顾其他能力培养。
2 教学实施及管理
在实际教学中,教学模块设计以软件开发岗位任职要求、工作过程为导向,任务驱动,遵循由易到难的规律,形成由单一能力培养到综合能力培养的思路。把软件开发分为C/S和B/S两种模式,对于两种模式分别以综合实训项目入手,强调实际工作能力的培养,而不是单一知识点的掌握。目前,企业对毕业生的用人标准中,动手能力、学习能力、与人沟通能力和团队合作能力,是其选择人才的重要标准。动手能力和实践经验的提高,必须在实践环节的教学管理中加以训练和培养。通过实践课环节的学习,学生的动手能力、自主学习能力等技能都得到了提高。而其项目开发本身的趣味性和挑战性,很好地激发了学生对实践环节的学习积极性。因此,加强实践环节的培养是C#程序设计课程的教学重点。在教学中综合运用多种教学方法。根据C#程序设计课程的特点,并通过几个学期的教学实践证明,采用项目教学法,在不同的项目中设计小的教学情境,模拟真实的工作环境,用实际任务驱动教学的开展,采用激励式教学法、团队互助式教学法等多种方法共同使用,使学生更好的掌握各项知识和技能。对于不同的知识点灵活的运用不同的教学方法,达到良好的教学效果。
3 校企合作课程建设
深化教学改革,遵循软件技术职业能力的形成规律,发挥教师的实践工作经验,强化任务(案例)驱动和“以做为主”的教学方法,将企业中真实项目、案例和技巧融入到教学中,使课程的讲授更加贴近企业的真实工作环境和技术要求,并进一步强化“以教师为主导,学生为主体”的教学理念。
在教学中通过角色扮演的方式模拟企业的实际工作环境,使学生感受更加真实。企业技术人员和教师在软件开发实训项目中通过扮演项目经理以及系统设计师等角色,带领学生完成真实的软件项目。软件开发是一个多角色协作的过程,有配置经理、开发人员、文档作者、测试人员、维护人员几个角色可供选择,只有在实训项目中让学生通过扮演适当的角色,才能给学生真正沟通,协作体验,并获得适应未来工作需要的实际经验。
4 多种教学手段的应用
4.1 精心设计教学课件,合理设计教学情境
在课堂教学中,不是死板的运用PPT演示知识点,而是把知识点穿插在实际案例中,合理的设计教学情境,让学生更加深刻的理解所学知识点。
4.2 讲解编程思路,引导学生编程
在教学过程中,教师并不是把大段的程序发给学生,再给学生讲解程序功能,这样只会使学生一味的抄袭,缺乏自我思考。教师应该引导学生,让学生参加到程序的开发中,随着教师的思路一同完成的程序的编写,并把程序中相近的部分让学生独立完成。
4.3 利用LanStar教学广播系统
在教师讲解知识点和课后总结中,通过广播教学方式,让全体学生的注意力集中在教师身上,提高教学效果。在学生自主练习时,学生可以运用LanStar系统进行课堂提问,教师可以及时辅导,并且可以让学生自己把优秀的学生作品,通过LanStar系统展示给其他同学,提高学生的综合素质。
4.4 利用互联网进行课后教学辅导
课后教师运用QQ、MSN等软件,为学生提供远程在线指导随时解决学生在学习过程中所遇到的问题,教师可以通过QQ软件提供的远程协助功能,教师可以远程登录学生的电脑,为学生解决编程中的各项问题,使学生的学习不再局限于有限的课堂教学时间。
5 探索以技能考核的新方式
在考核方式上,知识理论性按融合了知识点与技能点的试卷形式进行考核,项目设计按作品完成情况进行考核,实训操作按操作和测试过程中学生现场表现进行考核,对于不同内容采用不同的考核方式,考核标准也有所不同,该标准应包括:实训题库(学生必须掌握的操作技能)、评价标准、组织形式等内容。实行终结性考核与过程性考试相结合的方式。以实际技能为导向,把实践能力和项目能力纳入考核范围。采用笔试、机试、综合作业、项目评审考核等方法。并以此全面衡量和控制教学质量。
所以,在课程的考核中既要考核学生理论知识的掌握程度,学生的实践动手能力,更要考核学生的团队协作能力,通过平时的知识点考核和最终的项目展示、项目答辩达到预期效果。
6 总结
在C#程序设计课程的教学中,通过与企业之间的合作,取得了良好的教学效果,教学中采用企业的真实项目开展教学,并邀请企业技术人员与学校专职教师共同完成课程的讲授,既发挥了教师理论知识强的优点,也使学生在企业技术人员身上学到了最新的实践技能。 “工学结合”项目贯彻整个教学过程,学生在课程学习中,参与企业的真实案例,让学生在真实企业环境中提升岗位技能。在教学中,强化任务驱动和“以做为主”的教学方法,将大量真实的任务、案例和操作技巧融入教学内容,使课程内容紧贴生产实践和技术前沿,强化“以教师为主导,学生为主体”的教学理念。
参考文献:
[1]王婧.任务驱动法在计算机课程教学中的应用[J].计算机教育,2011,8.
[2]游祖元.C#案例教程[J].电子工业出版社,2008,8.
作者简介:张志锋,男,讲师,研究方向软件工程。
随着我国信息化程度的不断提高,对软件技术人才的需求越来越大,为满足社会对Web技术发展的需要,现在许多高校开设了Java Web方向的本/专科教育。JSP技术以其本身独特的优势受到软件界的青睐。企业需要理论基础扎实、动手能力强的综合型应用人才。然而学生在学校学习的“滞后性”加上缺少项目经验等原因,导致了高校JSP人才培养过剩与企业人才匮乏之间的矛盾。所以作为学校来说,在教材建设、教学方法、教学过程等环节上也必须要进行相应的改革。
1理论知识项目化
理论知识是概括性强、抽象度高的知识体系,而理论知识与实践活动又是相互依存相互影响的。首先理论知识来源于实践活动,是对实践活动的总结和升华;它又反作用于实践,指导实践活动有序前行。
传统的JSP程序设计课程理论性强。为了改变传统的JSP程序设计课程教学的状况,强调理论与实践教学并重,引进以项目为驱动的教学思想,是当前程序设计课程改革的重点。在JSP程序设计课程建设中,教师在培养学生掌握理论知识的同时,应当着重培养学生的动手能力和创新能力,提高学生的团队协作能力、实践能力、项目经验,从而培养更多更优秀的满足市场需求的软件工程师。
怎样能够使理论知识项目化,培养出综合能力强的软件工程师一直是郑州轻工业学院软件学院“质量工程”中重点关心和解决的问题。
为了实现理论知识项目化,笔者在教学中把讲解的理论知识点分解到项目中,根据理论知识特点以及实际情况,在学习理论的同时讲解项目,为了完成项目,学生会主动学习理论知识。这样既能够培养学生的动手能力,也能够使学生在兴趣中掌握理论知识。
下面以清华大学出版社出版的《JSP程序设计技术教程》(甘勇主编)教材为例,说明理论知识项目化的过程。教材结构如下:
第1章对Java Web技术进行综述。
第2章对开发Java Web技术所需的开发环境进行介绍。
第3章对开发静态页面所需的常用技术HTML、CSS和JavaScript进行讲解。
第4章在前3章内容的基础上,通过项目实训提高学生的项目设计、项目规划以及基础知识掌握和运用能力;在教学中,可在讲解第3章以前讲解本章实训内容,根据本章实训内容结合第3章相关理论知识开发静态页面,通过与项目的结合方式提高学生学习的兴趣;也可结合本章实训内容讲解第3章知识。
第5章介绍JSP的基础语法,使学生了解JSP页面的构成和使用。
第6章介绍JSP的常用内置对象。
第7章讲解JDBC的使用,学生通过第7章的学习学会使用连接数据库的基本技能,为第8章和第12章的项目实训奠定基础。
第8章的项目实训是对前面7章知识的综合运用,通过本实训在掌握基本理论知识的同时,提高学生项目开发经验,可以在讲解第5~7章以前讲解本章项目实训内容,也可结合本章内容讲解第5~7章的知识点。
第9章介绍JavaBean的思想,在软件行业代码重用一直都是软件人员追随的目标也是业界人士一个梦想,JavaBean技术是代码重用的关键性技术。
第10章主要讲解Servlet技术,Servlet是MVC设计模式和Web框架中关键性技术。
第11章介绍了JSP提供的标签库。
第12章是基于MVC的项目实训,是对以上所学知识综合练习的项目实训,通过项目实训,能够很好地综合掌握和运用前面所学知识,提高学生的整体实践能力。可以在讲解第9~11章知识点以前讲解本章项目实训内容;也可结合本章内容讲解第9~11章的知识点。
通过以上教学过程可以看出,项目能够激励学生学习兴趣,能够激励学生学习理论知识的欲望,这就是所提倡的理论知识项目化。在具体的教学实施中,通过项目提高学生学习的“兴趣”,“兴趣”又推动学生主动学习理论知识。
理论知识项目化的教学方法可以在改革原有的理论教学方法的同时,对原有教材进行改革,这也是“卓越工程师计划”课程体系改革中的重要组成部分[1-2],能够在“卓越工程师计划”中真正提高学生的实践工程能力。
2理论实践结合化
理论知识应当发挥的作用也是在教学过程中首先要改革的问题。理论和实践结合,注重在理论的基础上强调实践能力。在讲解理论知识以前,先讲解项目的开发以及将要学习的理论知识在项目中的应用。在JSP程序设计中,把理论知识根据知识体系分解成若干部分,每部分知识点用一个项目进行理论和实践的结合讲解。这样能够很好地实现理论和实践的结合,能够使学生在学习理论的同时又能培养学生的项目实践能力[3]。
目前,软件培训行业的兴起是社会发展的需要,同时也暴露高等教育中存在的问题,这也是教育部提倡“卓越工程师计划”的一个主要原因。当前的教学模式仅培养学生理论知识已经不能满足软件行业的需求,需要加大学生的实践能力培养。
怎样吸取IT培训的优点,培养出综合能力强的软件人才是高等教育应当关心和必须解决的问题,也是“卓越工程师计划”的目标。
在JSP程序设计课程“质量工程”中[1],将具体的项目结合理论知识进行讲解,采用项目驱动的思想进行教学活动,实验内容以项目形式体现,尽量使用较大案例,这样既可以能够使学生学以致用,也能通过项目对所学理论知识综合应用。通过理论和实践的结合,引导学生掌握理论知识的同时提高学生实践能力。
理论实践结合化教学法可以改变原来在实验中只编写小例子的实验模式,通过项目实践培养学生实践能力和创新意识,这也是卓越工程师教育培训计划中的主要关键步骤[2]。
3实训项目专业化
课程实训是指学习完一门专业技术课程后,集中1~3周的时间进行项目实训,完成对该专业技术课程以及相关专业课程综合能力训练。我院大部分专业技术课程都有实训环节。JSP程序设计课程是课程结束后进行一周的实训(5天8小时=40小时)。
在实训项目选择上,根据学生所学理论知识以及个人自学能力,选择适合学生练习的实训项目,如个人信息管理系统,电信资费管理系统。通过项目训练模拟软件企业进行项目开发的过程,对选择的实训项目进行分析、设计、实现和测试。
为了培养学生团队精神和协作能力,应采取项目组的形式进行实训,以项目组为单位,每组6~10人。
按教育部相关规定要求,要建立一支“高水平工程教育师资队伍”。通过“走出去、请进来”的办法打造“双师型”师资队伍,通过外派教师到企业顶岗工作或聘请企业技术人员到校兼职任教,使学生在校4年期间,至少有多门专业课由具有多年以上企业经历的教师承担。建立并完善与“高水平工程教育师资队伍”相符合的教师评聘、考核和专项激励政策[1-2]。
项目实训老师肩负技术指导老师和项目经理双重角色;学生既是“员工”又是学生。实践证明,这种“准员工”的实践教学模式对学生能力培养有一定的帮助[3]。
实训项目专业化的教学方法是教学活动模拟企业管理模式,通过实训项目的引入既改进原来的实训过程,又提高师资队伍水平。这也是“卓越工程师计划”中培养学生综合项目开发和实践能力,实现“质量工程”的主题思想,同时也是“卓越工程师计划”中师资队伍建设的主导理念。
4课程过程实训化
以企业模式指导学生学习,以“准员工”标准管理学生,是“卓越工程师计划”的最终目标。在高校学期期间,为了能够培养满足企业需求的工程师,在课程的每个阶段都应该按照企业的要求进行教学和指导学生的学习。
在理论知识项目化教学方法以及理论实践结合化教学方法中,都按照实训项目专业化的要求进行项目的开发。
JSP程序设计课程通过3~5个既能概括课程知识点又能对知识扩展的项目的开发,在提高学生理论知识的同时,培养和提高学生项目实践开发能力。如果该专业的课程都按照上述新的教学方法和理念培养学生,使他们在学习期间能够通过20~30个项目的训练,一定能够培养出一大批满足企业需求的“卓越工程师”。
5结语
“卓越工程师计划”需要高校探索出一种高效的人才培养模式,为我国经济社会服务。我们以软件工程专业JSP程序设计课程为出发点,探索符合我院发展需要的教学理念和教学方法,为我院“卓越工程师”培养奠定基础。相信随着研究的不断深入,该培养模式一定会对教育部“卓越工程师计划”的实施起到推进作用。
参考文献:
[1] 李智.“质量工程”项目总体情况介绍及专业建设[R]. 国家教育部“卓越工程师教育培养计划”启动会,天津,2010-06-23.
[2] 林健. 卓越工程师教育培养计划[R]. 清华大学“卓越工程师教育培养计划”专题报告会,北京清华大学,2010-10.
[3] 张志锋,王文冰. 以就业为导向的学生综合能力培养教改研究[J]. 计算机教育,2010(11):99-101.
The Implementation of JSP Programming Course in Excellent Engineer Plan
ZHANG Zhifeng, LIU Yuxi