1、提高高校计算机实验室利用率的实践和体会 摘要:本文从加强实验室管理、实验室开放和开设独立实验课程等几个方面提出了一些提高计算机实验室利用率的方法。关键词本文来自:计算机毕业网 :实验室利用率;实验室管理;实验室开放;独立实验课程1引言近几年,我国高校普遍扩招,高等教育已经步入大众化阶段,对高校的软硬件条件提出了更高的要求。计算机实验室作为高校实践教学的重要基地,面临着更大的挑战。如何提高计算机实验室的设备利用率,利用有限的实验室资源给更多的教师和学生提供良好的教学平台,提高学校的办学水平和投资效益,已成为高等学校普遍关心和探讨的一个重要话题。本文结合我院计算机信息基础实验室的仪器设备管理和实验
2、室开放等方面的实践,谈谈我们的体会和思考。2实验室基本情况我院计算机信息基础实验室创建于2000年,目前包括计算机硬件基础实验室和软件基础实验室两个分室,使用面积532m2,实验教学配套设备达531台套,设备资产总值为298万元。本实验室于2005年2月通过浙江省教育厅的普通高校基础课教学实验评估。本实验室主要设备为200余套微型计算机、40套微机接口实验系统、40套计算机组成原理实验仪、仿真器、示波器和相关网络设施,配置有3套多媒体教学系统,可进行现场演示教学;主要承担我院的基础课及专业基础课实验教学、集中实践与毕业设计实习与实验室开放教学任务,也适当安排部分专业课实验。由于承担的教学任务比
3、较大,平均每年人机学时数达到70000以上,为了在有限的实验室资源的基础上更好的为教师和学生服务,需要设法合理调配资源,提高实验室管理水平和方式,提高实验室的仪器设备率用率。3实验室利用率分析影响实验室利用率的主要因素及各因素之间的关系:T(实验室最大可用时间)t1(学年总教学时间)一 t2(实验室准备和设备维护时间)(公式1)M(实验室最大容纳人数)n(仪器台数) m (小组人数)(公式2)S(实验室实际开出人机时数)p(实际学生人数)t3(实际课时数)(t3 T,pM) (公式3)从上述各因素及其关系,可得出实验室的利用率计算公式,作为实验室教学安排的参考依据。G(实验室利用率) S(t1
4、M)100%(公式4)由公式4我们可以看出要提高仪器设备利用率,在实验室最大容纳人数不变和学年总教学时间不变的情况下,必须增加实验室实际开出人机时数,而根据公式3,影响实验室实际开出人机时数的两个因素是实际参加实验的学生人数和实际开出的实验课时数。根据以上的分析,结合本实验室的实际情况,我们发现减低实验设备利用率的主要因素包括:数量冗余:班级人数少于实验设备台套数,造成实验设备空置率较高;课程冲突:实验课程安排时间与其他课程时间冲突;开放不足:非课程性质的开放型实验教学活动不饱满,降低参加实验的学生人数。4提高实验室利用率的策略针对以上的主要影响因素,我们在实践过程当中主要采取了下列方法来提高
5、实验室设备利用率。4.1加强实验室技术管理队伍的建设加强实验室技术管理队伍的建设,是提高实验室设备利用率的保障。首先,计算机实验室的技术管理人员,要选计算机专业和有奉献精神的本科以上的人员负责,以保证日常仪器设备的管理维护,使仪器设备时刻处于良好的运行状态,尽量缩减实验室准备和设备维护的时间,以提高实验室的可用机位和最大可用时间;其次,引进高学历、高职称的教师担任专业实验课教学,结合其研究课题开设开放型实验项目,加大实验室仪器设备功能的开发与应用,提高利用率。实验队伍的加强不但保证了实验课的开出率达100,而且能够加强学生专业知识的掌握和熟悉。因此,要有计划地对实验技术人员进行专业技术技能培训
6、,要定期或不定期地举办仪器设备的维护维修、技术改进和实验技能等培训工作。积极为实验技术人员创造条件,参与科研课题、承担实验研究、参加鉴定会研讨会及国内外一些学术活动,及时了解先进仪器设备发展动态,掌握新知识动向,学科前沿技术,不断获取新知识新技术,及时更新知识结构。定期邀请专家、教授和厂家技术人员讲解先进的实验技术,新仪器的技术情况,新实验测试方法,先进仪器设备的维修、保养技能,实验装置的改进、实验技术的革新、仪器功能的开发等。不断提高实验技术人员的业务水平,保证专业实验室拥有一支业务精良的技术队伍,使专业实验室的实验技术水平和服务质量不断提高。4.2通过实验室开放增加实验内容高等教育根本任务
7、是“培养具有创新精神和实践能力的高级专门人才”,工科院校是培养“工程师的摇篮。但是,目前我国大部分高校计算机实验室主要采用封闭式操作管理方式,该运作方式主要为学生课堂实验教学和教师科研服务,缺少真正面向广大师生全方面开放的实验室,而且在教学计划中,实验课大多为理论课的附属课程,实验成绩往往作为理论课成绩的参考或以很低的比例计入理论课成绩,造成了学生轻视实验学习和实验能力的培养。在这种传统的教学方式下,学生仅仅在有限的实验课时间内,完成教学大纲上要求的实验内容,在课余时间有找不到合适的实践场所,在很大的程度上抑制了学生的动手能力和创新精神,不利于专业应用型人才的培养方向。计算机实验室不仅是高校进
8、行实验教学的重要基地,也是提高学生实践动手能力的重要课堂,通过实验室开放的方式能充分调动学生的学习积极性、提高学生的创新精神,增强学生在IT行业的实际操作能力。本实验室通过实验室对学生和教师的开放的形式,结合大学生数学建模、挑战杯和ACM程序设计大赛等学科竞赛,鼓励广大学生积极参与开放实验室活动,一方面可以极大地增加实验内容,提高设备利用率,另一方面可以提高学生创新实践能力,扩大学校的社会影响。2003我校学生先后通过开放实验室的学习获得数学建模全国一等奖、挑战杯省一等奖、ACM程序设计大赛省金奖等多项奖项,并且带动了更多的学生进入开放实验室学习,以开发小组的形式在开放实验室指导教师的指引下,
9、结合实际的科研项目巩固专业知识的掌握和团队合作精神的培养。通过实验室开放可以促进教师和学生的实验研究和实验水平,也是对高校实验教学的改革和创新。实验室开放可以促使教学方法多样化,通过教师课堂辅导与学生自主实验相结合,丰富了教学内容,提高了学生的学习兴趣与学习效果。实验室开放还有利于培养一支高水平的实验教学队伍,实验教师、实验室管理人员在开放型实验进行过程中,需要不断提高自己的业务水平与服务意识,建立有效的服务体系和监督机制,才能使开放型实验室管理跃上新台阶。4.3减少设备台套数为了适应实验教学的复杂性,提高实验教学效果,我校实验教学班级规模基本上控制在60人以下,但是实验室容量基本上都高于80
10、个机位,这个实际情况造成每次实验课程都达到25%以上的设备空置率。为此,本实验室进行仪器设备台套数缩减,将多余的设备置于独立房间内,实行实验室开放使用。一方面减低了实验室的设备空置率,一方面增大了开放实验室的规模。在未来的实验室建设方案中,也缩减了仪器设备的购置数量,转而提高仪器设备的配置和种类。多年来的教学实践证明大班化的实验教学模式是不能很好的满足现代教学需求的,应当适当的减少设备台套数,可以减少学校实验教学资金的投入的积压,加快设备更新速度,提高设备的档次,更有利于新的实验项目的研究。 4.4开设独立的实验课程传统的教学模式中实验课程大多为理论课程的附属课程,实验成绩一般只是作为理论成绩
11、的参考或以很低的比例计入理论成绩中,忽略了实验教学的重要性和培养应用型人才的需求,在一定的程度上也造成了学生轻视实验学习和实践能力的培养。对于某些实践操作性质比较强的的课程,可以开设独立的实验课程,单独制订实验教学计划和教学大纲,使实验教学从理论教学中彻底分离出来,成为与理论教学并行的教学体系。我院于2005年开设了计算机网络专业实验、计算机软件专业实验、计算机硬件专业实验和数学软件等多门单独授课的实验课程,课程的全过程都在实验室内完成,除了必要的专业设备知识讲解以外,学生都在教师的指导下,按照实验指导书的内容进行实验。经过一年多的运行,实验效果比较明显。4.5延长实验室开放时间在常规的教学时
12、间内,由于学生的理论课程安排紧凑,容易同实验课程安排时间冲突,影响学生的参与率。为此我们利用非常规时间(晚上610点的时间和周末的时间)安排实验教学活动。5总结总之,在高等教育大众化的前提下,提高计算机实验室的利用率为更多教师和学生提供实践教学的场所是一个需要持续研究的课题,还有许多具体的实施难题需要克服,需要广大高校教育管理工作人员继续探索。比如同相关地方企业合作建设,共同利用实验室资源,达到拓宽资金来源渠道,提高实验教学基础条件和专业水平、使实验教学同生产实际紧密结合的目的,是提高实验室利用率的更佳途径。 参考文献1 赵文敏,胡华,周怡. 开放实验教学模式的研究与探讨J. 实验室研究与探索
13、,2006,25(9):1117-1119.2 齐建国. 试论我国高等学校学生创新潜能的开发J. 实验室研究与探索,2004,23(12):4-7.3 张光斗. 现代工程师的摇篮-企业要成为技术创新主体,工科院校要培养工程师J. 高等工程教育研究,2005,(1):8-9.4 陈大鹏. 实验室开放的实践与探索J. 实验技术与管理,2003,20(6):159-161.5 朱昌平, 黄波,沈金荣,刘翔. 现代电子创新实验中心的建设与探索J. 实验室研究与探索,2005 基于大整数的BigDecimal类的实现关键词:大数类;.NET;算法 摘要:以浮点运算的基本理论为基础,结合大整数类BigIn
14、teger的研究,采用面向对象技术,提出大数类BigDecimal的一种设计方法,并给出加、减、乘和除法的算法,最后给出C#语言程序实现。 冯•络伊曼计算机,CPU的计算功能只能计算整数(integer,二进制),需要计算小数(decimal)的时候,就需要利用整数计算能力,通过一定的“方法”完成小数计算,这个“方法”就叫小数运算,它分为定点(fix)和浮点(float)运算两种。其中定点运算是将小数看成是由整数部分和小数部分m.n两个部分分别去计算,因非常浪费计算机资源,基本上不被采用。 一、浮点数表示方法 IEEE(电子电气工程师协会)在I985年制定的IEEE 754二进制浮
15、点运算规范,是浮点运算事实上的工业标准,也是其它进制浮点运算的重要技术参考。 计算机中的浮点运算,是小数点位置不固定,最大限度地扩大数值的表示范围,保持数值的有效精度,协调数值在表示范围和精度方面的要求,使计算机能够表示和运算较大的数字。为了满足小数点浮动的要求,任何一个数必须有两部分组成,一部分是阶码E,另一部分是尾数M,其中用阶数E表示小数点的位置,而尾数M表示一个数的有效数字。记为: f=MbE- 这种表示方法小数点不直观存在,并随E值浮动(浮点运算因此而得名)。 如数f=528000250031.1234567891234,对于基b=10(十进制)情况下,可以表示成:0.5280002
16、5003112345678912341012,也可表示成528000250031123456789123410-13,而在b=109情况下1,可以表示成:0.000000528 000250031 123456789 12340000010000000002,也可表示成528 000250031 123456789 1234000001000000000-2。 文献2给出了十进制下的浮点数的另一种表示形式,这里将其扩展为任意基b(进制)的情况,即将式以另一种形式表示: f=MbE=fn-1fn-2⋯f1f0f-1⋯f-m=fn-1bn-1+ fn-2bn-2+;
17、3;+f1b1+f0b0+f-1b-1+⋯+f-mb-m- 其中fi是一个b进制数字,可以有0,1,2,⋯⋯b-1任意数字,bi表示数码fi在数中的位置。如前面的f在基b=109时可表示为528b1+250031b0+123456789b-1+1234b-2. 式的两边同乘以因子bk可得到: F=bkf=bkMbE=MbE+k=fn-1bn+k-1+fn-2bn+k-2+⋯+f1b1+k+ f0b0+k+f-1bk-1+⋯+f-mbk-m-(3) 此时每个数码左移k位(这里的“位”不能理解为就是十进制位,而应理解为b 进制下的位,如b
18、=109时,一个位就是一个9位十进制数),相对的小数点右移k位。当k>=m 时小数点右移到数尾部,浮点数F就是一个整数了,此是有F=bkf,即f=Fb-k,即f变成尾数为纯整数的浮点数形式。利用浮点数的这个特点,可以将浮点运算转换成整数的运算。 二、基于BigInteger的BigDecimal类及算法设计 (一)基于BigInteger的BigDecimal类设计 对于大的小数,即超出普通编程语言的浮点值集范围的数,都可以转化为一个大整数M乘bE的形式,所以自然就想到利用BigInteger类3构造一个新的大数类BigDecimal来解决大数浮点计算问题。 从以上分析可以发现,在以b为
19、基的浮点数域里,唯一决定一个大数的就是M和E。为了充分发挥BigInteger的作用,我们对式进行规范化要示,即M必须大整数,E是int型整数。 有两种设计方案可供选择,一种是采用继承,即BigDecimal继承BigInteger,增加一个E,以及几个构造函数,并且重写+,-,*,/运算过程。 另一种设计方案是采用组合,即构建一个类BigDecimal,成员里包含一个BigInteger和一个E,当然也要构造函数,以及重新编写+,-,*,/运算过程。 面向对象的设计原则建议尽可能用组合而少用继承来设计新的数据类型,且采用继承方式构建BigDecimal,表达的意思是BigDecimal是一个
20、BigInteger“大数是一种大整数”,而采用组合方式构建,表达的意思是BigDecimal里有BigInteger“大数里有大整数”,显然组合方式更能表达原意,因此,这里给出采用组合方式设计的BigDecimal类,如图1所示,下面给予简要说明。 1.变量部分。 JI基b,JILEN基b的10进制长度,weiShu大数的尾数,必须是一个大整数,jie大数的阶数,jingDu-精度要求,即保留小数点后jingDu“位”。 2.成员函数说明。 第一类是构造函数。构造函数主要用于BigDecimal对象的创建及其初始化,其中BigDecimal(BigInteger:bi,int:integer
21、)最最具代表性的构造函数,使用最频繁,即用一个大整数尾数和一个普通整数阶数,就构造生成了一个大数。为了使用构造的大数更加规范,尽可能少产生无效数据,任何一个构造函数在构造大数时,应去掉尾部多余的“0”。 第二类是基本操作函数。如getJie()是获得大数的阶数,即小数点的位置(相对于指定的基而言),bigDecPnt()是输出大数,getBigInteger()是获得数的大整数部分,setJingdu(int)重新设置精度要求,getJingdu()是获得精度要求,bigDecWrite()是保存大数。 第三类是大数运算函数。它是BieDecimal的关键,共提供了两种形式,一种是运算函数定义
22、形式,其中函数名是.NET的CLS规范指定的运算符函数名,另一种是运算符重载形式的函数,它能最大程度地为用户提供便利的运算符计算。 需要此论文者 请与客服联系 摘 要:介绍C语言的教科书都会在某种类型的变量或数组引出后,紧接着就给出初始化方法。这种分散介绍,既欠完整又拉长篇幅,还不利于说清楚究竟可以用什么,以怎样的次序做初始化。况且初始化毕竟不是非静态局部的必须。本文总体地考察了初始化问题,只要把这些内容放在其他知识之后,就能达到全面、透彻的目的。关键词:C语言;初始化;数组1 概述初始化是C系列高级语言的一种特殊用法。在定义变量或数组时,在名字后跟随赋值运算符及欲赋的值称作初始值
23、,系统就会在分配内存的同时存入相应的初始值。正是这种存储时机的超前性,引出了许多与一般赋值截然不同的语言现象。例如可以把定义int a, b, c; 改作对a、c有初始化的定义:int a = 0, b, c = 100;此时系统在给a、c分配内存的同时还会分别在其中存储初始值0和100。由于程序中定义的变量或数组往往不止一个,它们在开始有效的时间上,一定存在着先后次序,也即起始有效时刻不尽相同。起始有效时刻取决于它们出现在定义中的次序。从总体上来看,全局的起始有效时刻提前于局部的。也是由于初始化是在定义中给出的,不理解起始有效时刻的先后,往往会错误地把还未有效的名字用在提供初始值的表达式中。
24、例如int *p = a, a10; 是错误的,问题出在对p初始化时a还未有效。从定义的次序上还能发现,提供初始值的表达式中错用了一个未曾初始化的变量的不确定值。例如int a10, b = a1; 也是错误的,问题出在a1未曾初始化,它的值不确定。2 初始化意义下的常值有时提供的初始值必须是常值意义的表达式,所谓的常值,包括如下两类:1) 整型常值整数(即整型常量)、字符常量(也是整型常量)或由它们构成的表达式。例如-3512 + 5 * 6dd + 32) 指针型常值(1) 字面指针常量和字符串常量(代表指针常量)。例如(int *)1000I love China(2) 具有指针值的表达
25、式。其中可以出现整型常值,但出现的变量名或数组名乃至成员名,都必须是全局的或静态的,并且还要保证,在计算该表达式时,仅仅取用这些名字对应的内存地址形成的指针值。例如,假设有以下的声明和定义:struct tag short a; char b3;short v, *m, n7, *p5, r57;main() static struct tag vs, ns4; /* */并且还假设它们对应内存的情况为:v、m、n、p、r、vs、ns分别对应:5000、5002、5006、5020、5040、10000、10030那么,从中可以写出一系列指针型常值,见下表,而且这些常值是什么也体现在表里,其中
26、用阴影淡化的极不常用,列于表中仅为了表格完整,也可以作为指针运算的练习。3 变量的初始化3.1 全局和静态局部变量的初始化凡是可以写出直接由变量名接收常值的赋值语句,都可以写出相应的初始化。例如int va = 1, int *m, n7, *p5, r57;main()static int vb = 123;static int *ma = &v, *mb = n,*mc = r3, *md = (int*)I love here;static int *oa = &m, *ob = p;static int (*qa)7 = &n, (*qb)7 = r, (*qc)7 = &r4; 其中
27、,对全局变量va和静态局部变量vb、ma、mb、mc、md、oa、ob、qa、qb、qc做了初始化。3.2 非静态局部变量的初始化凡是可以写出直接由变量名接收赋值的赋值语句,都可以写出相应的初始化。例如int v = 1, r57;main() int n7; int va = v + 1, vb = va + 2, vc = va * vb;int *ma = n + va, *mb = &nvc - vb; int (*qa)7 = r + va, (*qb)7 = &rvc - vb;其中,对非静态局部变量va、vb、vc、ma、mb、qa、qb做了初始化。这方面更多的例子将随后面的例子
28、一道给出。结构体变量直接由变量名接收赋值的赋值语句,只有一种形式,即提供值的表达式得是一个同类型的结构体变量。然而,结构体变量的初始化还存在另外的形式,也随后面的例子一道给出。4 数组和结构体变量的初始化这类初始化,是在赋值运算符后面跟上由一对花括号形成的整体,其中用逗号间隔的每一项依次是为相应元素或相应成员提供的值。如果元素或成员仍为数组或结构体变量,那么为其提供的值还得是由一对花括号括起来的有逗号间隔的一些项,以此类推。最终,从整体外观看,为初始化提供的可能是有嵌套的花括号层次结构。例如,有以下定义:int r25;struct tag ns2;其中的结构体类型如从前那样做了声明。现在来看
29、怎样为r和ns提供初始值。1) 对r来说,它有2个元素r0、r1,应在花括号内准备2项,即 #, #,而r0 又有5个元素r00、r01、r02、r03、r04,应当是包含5项的花括号,即: #, # = #, = #, #, #, #, #, # 关于r1 同理,即有:#, #, #, #, #, # = #, #, #, #, #, #, #, #, #, #于是,便得到了最终的花括号层次结构。2) 对ns来说,它有2个元素ns0、ns1,应在花括号内准备2项,即#, #,而ns0 又有2个成员ns0.u、ns0.v,应当是包含2项的花括号,即:#, # = #, # = #, #, #
30、而ns0.v又有3个元素ns0.v0、ns0.v1、ns0.v2,应当是包含3项的花括号,即: #, # , # = #, #, # = #, #, #, #, # 关于ns1 同理,即有: #, #, #, #, # = #, #, #, #, #, # = #, #, #, #, #, # = #, #, #, #, #, #, #, # 于是,便得到了最终的花括号层次结构。确定了花括号层次结构,在各 # 处提供的初始值必须是初始化意义下的常值,并且还要满足赋值要求的类型匹配。下面将分“满值”、“缺值”,做进一步阐述。4.1 满值初始化在花括号层次结构中,为每一项都提供恰当的值。例如int
31、 na5 = 1, 1+1, 3, 8, 3*8 ;char nb6 = s, t, r, h+1, n,g ;main()struct tag nc2 = 1, p, q, r, 2, x, y, z ;static int ra25 = 0, 2, 4, 6, 8 , 1, 3, 5, 7, 9 ;int rb25 = 8, 6, 4, 2, 0 , 9, 7, 5, 3, 1 ;int *pa5 = &na4, &na3, &na1 +1, &na1, &na0;int *pb2 = ra0, ra1;char *pc3 = nb, I love China, Great Wall; /
32、* 以下是对非静态局部变量初始化的补充 */int a = na1, b = rb10, c = nc0.a;int *m = pa0, *o = pb, (*q)5 = rb;struct tag as = nc0;其中,对全局数组na、nb和非静态局部结构体数组nc;对静态局部数组ra以及非静态局部数组rb、pa、pb、pc做了初始化。后半部分是关于非静态局部变量的初始化,表现形式不胜例举。4.2 缺值初始化可缺少哪些值?可这样理解,首先要清楚外层花括号含有几项,然后保证必须为其前几项,但至少1项,提供值,余下未提供值的项连同逗号一起省略。而欲提供值的项还可能是花括号层次结构,需继续分清它
33、的外层花括号含有几项并为前几项提供值,以此类推。凡是未提供值的项相当于全都提供了0值,表现为与它们相关的内存的每一位皆为0。例如1) int r23 的花括号结构为#, #, #, #, #, #可以给外层花括号的2项#, #, #和#, #, #的前几项提供值,现欲给它们都提供值,而每一项又含有3项,仍可以给它们的前几项提供值,比如分别给前1项和前2项提供值,此时花括号层次结构简化为#, #, #,如果提供的3个值为11、22、33,那么,缺值初始化可以写成:int r23 = , 22, 33;此后r00,r01,r02 r10,r11,r12 分别等于11, 0, 022, 33,02)
34、 struct stag ns2 的花括号结构为:#, #, #, #, #, #, #, #仅给外层花括号的第1项提供值,此时花括号层次结构将简化为#, #, #, #,而其又有2项,现欲给它们都提供值,可是它的第2项又含3项,比如仅给它的前2项提供值,此时花括号层次结构简化为#, #, #如果提供的3个值为10、 p 和 q ,那么,缺值初始化可以写成:struct stag ns2 = 10, p, q ;此后ns0.u, ns0.v0, ns0.v1, ns0.v2ns1.u, ns1.v0, ns1.v1, ns1. v2分别等于10, p, q, 0 0, 0, 0, 05 非静态
35、局部与其他的两点不同1) 由于全局的和静态的变量和数组,在程序的运行其间只分配一次内存,所以只能实施初始化一次。而非静态局部的变量和数组每当所属的函数被调用时都要重新分配内存,因此需要相应地实施一次初始化。 摘要:本文介绍了工学结合模式在”动态Web技术(JSP)”课程中如何进行深度融合,根据在教学中的探索实践,提出了具体的实施方法,将工学结合的教学理念与高职学科教学特点紧密结合,将工学结合的内涵与外延具体化、学科化。关键词本文来自:计算机毕业网 :工学结合;JSP;任务驱动1引言探索适应经济社会快速发展的具有中国特色的职业教育发展思路,已经成为当前职业教育改革与发展的突出问题。实行工学结合是
36、遵循职业教育发展规律,全面贯彻党的教育方针的需要。坚持以就业为导向,大力推进工学结合,是我国职业教育改革与发展的关键问题,是新形势下职业教育改革的重要方向,是加快职业教育发展的根本出路。“工学结合”是一边在企业实践,一边在课堂学习,这两种场所和两种活动之间不是截然分开的,而应该是“学中有工,工中有学”,“你中有我,我中有你”;工学结合体现了“以人为本,全面发展”的教育理念,体现了“以服务为宗旨,以就业为导向”的职业教育指导思想;体现了职业教育新的价值取向,由封闭的学校教育走向开放的社会教育,从单一的学校课堂走向实际的职业岗位,从学科学历本位转向职业能力本位,从理论学习为主转向实践过程为主,从学
37、科中心转向学习者中心;也是具有职教特色的人才培养观。“动态Web技术(JSP)”是我校软件技术专业的一门专业必修课,软件专业的技术体系有J2EE技术路线和.NET技术路线,本课程是针对J2EE技术路线的专业方向,开设在第四学期,在整个课程体系中发挥非常重要的作用。J2EE课程体系中,我们开设了“面向对象程序设计(Java)”、“Java网络编程”、“动态Web技术(JSP)”、“J2ME移动开发技术”、“Struts框架技术”等课程,本课程主要培养利用Java技术进行Web编程,培养大型网站开发的能力,在整个课程体系中承上启下。2课程设置中的“工学结合”邀请企业研发人员、专业课教师和课程组教师
38、共同协商完成课程教学大纲、教学计划、教学进度、教学案例制定或修订,保证教学内容与专业课需求和企业要求零距离对接。课程教学设计中,注重将企业模式搬到课堂,打破传统的“知识型”教学,将项目开发移到课堂,企业实际项目进行分离,每节课以项目功能模块为任务,注重面向过程的结构化,任务驱动知识,激发学生去动手,学生组建开发团队,严格遵守企业开发流程、规范,将功能模块与开发周期紧密结合。教学实践中遵循两条主线,首先是软件开发周期的进度、任务划分,并结合Web开发的特点,然后,遵循工学结合思想,与学习的能力增长线进行深度融合,项目驱动能力,能力促使知识,由感性到理论,再由理论到能力培养。我们将整个课程分为以下
39、任务模块与能力模块,两者进行对应,相互映射,相互结合。同时,我们设计了“项目申报系统”、“网络考试系统”、“公司人事管理系统”,把半成品交付学生,从需求分析、总体设计、详细设计等步骤引领学生,将功能模块分解到学习的每个阶段,采取团队合作、教师指导、独立完成等多种方式,学生通过大型项目的开发,模拟企业开发实战。培养起大型项目开发经验。最后,部署课程设计任务,给定一些选题,如“在线教育网站”(学生也可自行选题), 作为课程期末考核成绩,学生独立完成,并答辩演示,课程总成绩采取形成性考核方式,由平时成绩、课程设计成绩共同组成。3因材施教,多元化推进工学结合3.1走出课堂,融入企业工学结合,最好的学习
40、舞台还是应该走出去,大胆的去企业锤炼,去参与实际的项目开发,我们与深圳市几家著名企业进行深度合作,成立校外实训基地,学生在假期直接进入企业,参与项目开发,另一方面,针对大三学生,我们与企业实行“2+1”模式进行合作。学生在前两年学习完课程后,大三第一学期,就直接进入软件企业,从事软件开发,在开发中去学习,在实践中去锻炼,在项目中去钻研。同时,每位同学也都有专业的指导老师,不定期的去企业了解情况,辅导学生,学生成绩由企业和指导教师共同判定。这种形式灵活,学生积极性高,在企业,零距离贴近实际项目,走进开发第一线,学生的动手能力、学习能力、职业素养、为人处事等都得到大幅度的提高。而且,经过将近一年的
41、企业开发,大部分同学都得到了学生的认可,成为各自岗位上不可或缺的人才,毕业后大多直接留在了企业。3.2参与实际项目开发知识的学习,通常是零散的,课堂的讲解,只能是将学生引入知识掌握的初级阶段。参与项目开发是将知识引入实战的有效手段,对于本课程,学生可以多种方式参与项目开发。使每位同学都有发挥自己才能的空间,针对学习成绩好的同学,我们积极在校内为学校各个部门开发网站,对外拓展联系项目,学生参与了一系列网站开发,如中国高职在线、X泰科技有限公司网站、人事处招聘系统、某医疗机构网站、医护学院网站等。对于开发能力不太强的同学,我们设计了一些模拟项目,例如:在线教育网站、课程学习网站、班级网站等。以项目作为驱动,以能力培养为出发点,以实战为学习手段,学生的学习积极性大为提高,学习也从课堂外延到课外。有一些同学利用本课程中所做的项目,毕业后找到了理想的工作,也有一些同学利用开发网站的技能,开了