任培花,康振峻,王丽珍
(1.山西大同大学数学与机算机科学学院,山西 大同 037009;2.中国人民解放军93601部队,山西 大同 037006;3.山西大同大学教育技术科学学院,山西 大同 037009)
随着各行各业对计算机技术的应用越来越普及,社会对计算机专业开发人才的需求也越来越多。为适应这种需求,目前我国许多高校计算机系开设了各种程序设计语言课程如 C、C++、Java、JavaScript、C#等。但学校的教学现状是我们的学生对基础语法知识掌握较好,但严重缺乏项目实践和创新能力,无法适应社会的需求。当然这样的现象背后有些是客观原因,但很大问题在于我们的传统课堂已经与市场需求脱节了。笔者作为一名一线的授课教师,经过对山西大同大学计算机系2009级计算机专业4个班学生进行的问卷调查结果分析:70%的学生迫切希望接受公司式的项目实践教学,只有30%的学生认可传统课堂的重要性,但这部分学生都是曾有过项目实践经验,才有了对语法进行进一步加强学习的要求。从这个调查结果不难看出我们必须寻求一种新的课堂对传统课堂进行补充,进行取长补短,要尽快改变这种只见树木不见森林的学习方法。
学校真正让每一位学生深入公司进行项目实践培训,从人力、财力、安全的角度来说,是不现实的。好在计算机专业学生因为专业的需要一般都配有电脑,甚至许多都是便携式的笔记本,而且在校上网比较方便,这样为我们第二课堂的开展提供了一个很好的物资保障。网络学习属于一种非正式学习[1]模式,计算机专业学生利用网络进行非正式学习有助于开展第二课堂。本文将借助Web2.0技术,建设基于项目实践学习的网络课堂即构建Web2.0环境下程序设计课程自主学习平台。
传统课堂的授课方式是按照教材教学大纲要求,教师将课本的程序语言知识点和典型程序设计例题讲解给学生,然后学生在实验课上对所学知识进行验证式的学习,这样的学习方式,学生可以很好地对语法知识进行学习。 然而从另一角度,传统课堂容易把学生的学习重点集中在语法上,容易把程序设计课上成程序语言课,不能进行真正的程序设计的学习。因传统课堂不能引导学生形成合理的学习方法,所以学生对程序设计课程的态度比较消极,直接的后果是学生对课程本身缺乏足够的学习兴趣、学习中缺乏自主性、探究性、不能用系统观进行程序设计的学习,进而间接地影响到学习效果。
Web2.0 是以 Blog(博客)、RSS(内容聚合)、Wiki(维基)、Tag(分类分众标签)、SNS(社会性网络软件或社交网络服务)、Social Bookmark(网摘或社会化书签)等社会软件的应用为核心,依据六度分隔、XML、AJAX等新理论和技术实现了互联网新一代模式[2]。Web2.0技术极大地满足了网络用户的个性化需求,用户在Web2.0环境下进行学习,用户既是信息的创造者和信息渠道,同时也是信息的受益者,极大地体现了用户的自主性。把Web2.0技术这些变革性创新用于程序设计课程自主学习平台的设计中,给学生带来一个全新的网络课堂,该课堂学习内容以项目为单位、注重学生自主学习的培养、团队的合作等。优势就在于学生在项目任务的驱动下容易完成知识的迁移、可以提高学生应用知识解决实际问题的能力、可以整体把握项目流程等。
Web2.0的技术表现形式有很多种如 Blog、RSS、Wiki、Tag、SNS 等。对 Web2.0 进行技术分类可以分为两类:创作型和连接型。创作型技术的代表包括Blog、Wiki等,是用来供给用户创造信息的;连接型技术可以帮助用户寻找信息,代表性技术包括 RSS、SNS以及Tag等。 利用Web2.0技术的优势,将参与、互动、共享的理念带到程序设计教学中来,给师生构建一个自由共享、开放互动的平台。进入平台的师生之间、学生之间可以共同编织一张知识的大网,在这里知识的创作、传播和共享变得更加便捷。用Web2.0技术搭建学习平台的技术搭配方案有很多种,代表性的有网上作业批改模型设计(Blog+RSS)、建立学习圈的设计(Blog+Tag+RSS)[3]等。系统针对Web2.0中各项技术的特点,提出一种新的平台技术搭配方案:Blog(博客)+Wiki(维基)+RSS(内容聚合)+Tag(标签),如图 1。
图1 Web2.0环境下程序设计课程自主学习平台的技术搭配方案图
在Web2.0环境下程序设计课程自主学习平台中,有教师、学生两种角色,各自担负着不同的使命和任务。
1)教师功能分布情况。
(1)上传程序设计课程学习资料:需要提供不同阶段的学习资料,基础篇、中级篇、高级篇。资料可以是各种形式:视频、课件、PDF文档、word文档等。
(2)课程消息发布。
(3)项目任务发布:要根据不同学生的学习状况,定时发布简单项目、中等难度项目、专业系统项目任务,无论属于哪类型的项目都要给出适当的技术支持,如Java语言编写Web项目,可以明显提示学生按照MVC模型开发系统,分为视图层、业务层、数据层。甚至必要的话,可以给予学生完整案例使学生可以即时参照。
(4)教师答疑:可以通过博客留言或者QQ即时交流功能回答学生疑问。
2)学生拥有的权限功能。
(1)学生在平台中可以自主学习:学生进入教师博客或者利用RSS订阅教师的博客,及时了解教师最新的课程要求和项目任务发布情况,然后学生根据自己的知识基础,选择是否学习课程内容。
(2)协作学习:学生之间可以组成团队合作完成项目如1号学生可以做前台页面 (视图层)、2号学生做数据层(建立数据库)、3号学生编写控制层。一个团队的学生可以通过RSS互相订阅各自博客,以了解团队的整体进度。
(3)项目任务发布:学生发现好的项目,可以放在自己的博客上,供其他学生学习,但是要标明该项目的难易程度,属于简单项目、中等难度项目还是专业系统项目。
(4)学生答疑:学生有时为了方便,可以在学生内部寻求项目疑问帮助,办法同教师答疑。
网络学习平台采用的是B/S模式,即浏览器/服务器结构。在这种结构下,由浏览器向Web服务器发出HTTP请求,Web服务器调用数据库中的数据,生成HTML代码,并向浏览器发出。这样就大大简化了客户端的负荷,减轻了系统维护与升级的成本和工作量。B/S模式的工作原理如图2。
图2 B/S工作原理
根据B/S结构的特点以及基于Web开发的一般原则,Web2.0环境下程序设计课程自主学习平台体系结构的实现分为三层:模型层、视图层、控制层,即MVC模式。其中,视图层位于客户端,它是与用户直接交互的浏览器界面,模型层和控制层位于服务器端。
Web2.0环境下程序设计课程自主学习平台是基于SSH(Struts+Spring+Hibernate)框架开发的,使用的软件开发工具为MyEclipse5.5,开发语言则是Java语言。开发的方法是原型法,即先开发一个简单的可以运行的原型,根据学生的反馈不断的进行修改和完善。服务器端操作系统:Windows NT/2000;数据库是:SQL SERVER 2000/2005。
前台页面开发可以用DreamWear网页设计工具设计,其中登录界面和新用户注册页面等可以采用一种交互性更强的网页开发技术Ajax。
该平台面向的用户群分为教师和学生两类。没有注册就访问平台的师生只能以游客的身份进入登录页面如图3所示,但无法对网站内容进行学习和更新。申请注册的新用户点击登录页面的“注册为新用户”就可以进入新用户注册页面如图4。登录页面和新用户注册页面属于前台视图层可以用DreamWear网页设计工具设计。至于登陆页面或新用户注册页面与后台数据库的验证可以采用Ajax技术实现,Ajax在浏览器与Web服务器之间使用异步数据传输 (HTTP请求),实现局部刷新,可以提升页面的性能。
图3 登陆页面
图4 新用户注册页面
以下是对新用户注册页面用Ajax进行注册名长度验证的代码,把以下代码嵌入到<head></head>之间,只要用户注册的名字长度小于2个字符或大于10个字符,无需点击注册页面的确认键,不离开当前注册页面,页面会马上做出“注册新用户名必须在2个到10个字符之间!”的提示。用同样的方法可以在当前页面验证用户名已经存在、邮箱输入格式错误等。
针对当前计算机专业程序设计课程的教学现状,利用WEB2.0“以人为本”的理念,以及博客、维基、网摘和内容聚合的技术应用,设计开发了一个Web2.0环境下程序设计课程自主学习平台。平台集成了 Blog(博客)、Wiki(维基)、Tag(标签)三大模块,并且任意一个模块都可以使用内容聚合(RSS)进行订阅,通过个性化首页聚合了用户所感兴趣的内容,在SSH架构的协助下,平台功能基本实现。不过,更重要的是,在今后的平台教学实施过程中,教师应该起到极大的推动作用。最初,教师应要求学生注册用户名、完成培训任务、集体网上讨论等。认为只有让学生养成Web2.0环境下的参与和分享意识,这个平台才发挥了最大的效应,变成真正自由共享、开方互动的平台。
[1]柴阳丽.Web2.0环境下大学生非正式学习现状调查与对策研究[J].电化教育研究,2011(12):63-68.
[2]刘向斌,杨珉.基于Web2.0的企业知识管理系统设计与实现 [J].计算机工程,2009(8):104-106.
[3]张林.Web2.0的校园门户系统的设计与实现 [D].成都:成都电子科技大学,2010.
[4]严冰,吴国祥.Web2.0与远程教育人才培养模式改革 [J].中国远程教育,2010(3):12-19.
[5]单举芝,刘述.基于Web2.0的教师远程研修平台设计初探 [J].中国电化教育,2009(3):105-108.