APP下载

新工科建设背景下的《Web程序设计》课程实践教学方法探讨

2019-12-27李亦涵陈天宝

软件导刊(教育技术) 2019年1期
关键词:工科代码部署

韩 波,李亦涵,李 兵,曾 华,陈天宝,刘 树

(1.武汉大学 计算机学院,湖北 武汉 430072;2.华为技术有限公司,广东 深圳 518129)

0 引言

当今时代,以互联网、人工智能等新技术为核心的产品和技术创新层出不穷,在新一轮产业结构的升级转型过程中,以华为、百度、阿里巴巴、腾讯、京东、大疆、科大讯飞等为代表的我国一大批高新企业将创新与市场高度融合,为以创新驱动为核心的新经济快速发展作出了重大贡献。新经济的发展需要新型复合科技人才,需要新型的工程教育。因此,“新工科”建设以支撑国家产业升级、推动国家新经济发展为战略目标,以培育创新型、实践型、复合型卓越工程人才为基本理念。基于上述新经济发展的人才需求现状以及“新工科”建设的人才培养要求,教学模式应强调产学结合和跨学科交叉融合,培养学生创新思维,增强协作沟通能力,提升产业环境下的动手实践水平,开拓国际化视野。

同时,云计算技术的快速发展也给超越时空的数字化校园建设提供了新的契机,在云平台教育环境下,学生不仅能实现传统的独立编程,还可以促进老师与学生、老师与老师、学生与学生之间的相互交流、讨论,从而有效提高教学实践效果。因此,探索云环境下的新型教学方法成为时代发展的必然要求。

《Web程序设计》是一门讲授网站建设相关技术的课程,它与互联网+、云计算等新经济蕴含的技术元素具有重要关联。从讲授内容上看,它融合了网站策划与设计、项目组织与管理、前后端开发、数据库设计与连接、网站部署与测试等多个环节内容,对学生的综合理解能力和动手能力均有较高的要求。因此,可以按照新工科工程教育的“新理念”培养学生在网站前后端开发中的创新、综合实践能力。

以往《Web程序设计》课程在高校软件工程专业教授过程中存在一些问题:①重理论轻实践,存在学生只学会了知识点,却缺乏实际建设网站项目的现象,学生动手机会少、动手能力弱;②将网站创意与网站设计割裂开来,造成知道社会需求的人不理解网站技术上能支持到什么程度,而懂网站设计的同学不了解目前社会上的最新需求动态,从而在创新、创业中处于被动状态;③学生以往常常是完成个人网站设计作业,但实际网站设计往往是团队合作,每个学生既需要了解项目概貌,又要负责某一些环节开发,这样才能合作创建具有一定质量的大型网站;④课程存在产学脱节问题,学生使用的开发环境是学校中最初始的集成开发软件,不了解目前大型企业主流研发流程与软件协作开发环境,从而不能很好地为学生顺利到企业工作奠定基础。因此,如何在云环境下通过创新的实践教学方法来满足新经济、新工科背景下对工程人才的需求,是讲授《Web程序设计》课程面临的一个重要挑战。

教育部组织的新工科研究项目以及产学合作协同育人教育改革项目为新工科课程的建设提供了契机。因此,本着产学结合、培养创新复合型、适应市场需求人才的教学目标,通过在本课程的教学过程中引入华为软件开发云这一平台作为辅助实践教学工具,在网站策划与设计、项目组织与管理、前后端开发、数据库设计与连接、网站部署与测试等多个环节中合理安排教学案例和教学方法,从而基于云平台更大限度地使学生们扩展视野、有意识地发挥创造性和协作精神、体验企业真实软件开发环境、在完整的网站开发实战中锻炼动手能力、提高网站开发技术水平。

1 实践教学方法设计

《Web程序设计》是一门注重学生创新能力和实践能力培养的课程,实践教学过程大致分为以下几个环节:网站策划与设计,项目组织与管理,前后端开发,网站部署与测试等。下面就不同环节结合华为软件开发云的应用来探讨相应的实践教学方法:

1.1 网站策划与设计

基于“新工科”建设计划的人才培养要求和目前社会人才需求现状,教学模式应强调产学结合和跨学科交叉融合,培养学生创新思维,增强其协作沟通能力,并提升其动手实践水平。因此,在课程开始之初,应针对学生的创新能力提升方面进行了着重引导。在课程中介绍了世界范围内最热门的15个大型网站案例,分析了它们成功的因素,培养学生在网站策划与设计时使用互联网思维,通过调研市场需求,跨学科、跨领域、多方面地进行网站策划与设计。

1.2 项目组织与管理

在一个实际的网站开发过程中,项目往往不是由单人独立完成的,而是需要一个团队包含的负责不同职能的人员进行协作开发,这个过程需要一个高效的进行项目组织管理的平台以及版本控制的机制。以往传统的教学方法往往侧重于学生个人编程水平的提升,而容易忽略学生在团队合作中的职能分配及合作能力,从而会导致产学脱节的问题。通过在本课程的实践教学过程中优化教学模式,将学生按照项目分组,有意识地培养项目组成员之间的协作能力,并使学生熟悉华为等大型IT企业流行的协同开发模式,为其成为适应社会需求的科技工程人才奠定基础。

在教学过程中引入华为软件开发云作为辅助平台。其所提供的项目管理功能为学生在团队协同开发中提供了一个高效、便捷的合作平台。在实验项目中,将学生分为若干个小组,每组5-7个学生,各组学生自行根据网站建设需要建立Scrum流程项目或看板协作项目,它们可以有效地协助各小组成员进行开发过程中的项目管理和迭代开发。同时,学生可利用项目中的代码仓库进行git分支管理。基于这些功能的实践使学生体验了企业实际开发流程,更深入地理解了在项目组织管理中协同开发方法的重要作用。

1.3 前端开发

在网站开发过程中,前端开发是重要的环节之一。它包括了网站的界面实现及用户交互的优化等,通常使用HTML,CSS,JavaScript等语言进行编程。但与一些服务端语言不同的是,这些客户端语言经由浏览器自行解释,若编写过程中出现语法错误等不易发现和调试,因此一个用户自定义的代码检查工具将极大地提升这个环节的开发效率。为了使学生更高效地学习不同开发语言的特性,也为了便于教师对学生的代码提供指导性的意见,通过借助华为软件云提供的代码检查功能,可依据已经定义好的代码检查规则集对代码进行致命、严重、一般、提示4种不同危险级别的检测。例如,下面这样一段代码,根据预先定义的规则集,就会产生“严重”等级的报错:

var a = 8;

var b = “8”;

if (a === b) {

//不规范,比较结果总是false

}

这是因为JavaSript恒等运算符(===) 不能用于比较不同的类型,其结果总是false,这样if块中的语句就不可达,永远不会被执行。而正确的写法应为:

if (a == b) {

}

或:

if (a === Number(b)) {

}

在教学中,可将华为软件云平台本身提供的代码检查规则集以及根据以往学生代码特点自行添加的规则集相结合,共同检查学生代码的质量。在今后的教学中,可根据实际情况不断增改规则集,这样经过多届学生可积累、完善代码规则库。它们的建立可有效地对学生代码进行改进指导,并可将其作为网站项目质量评估的客观评价指标之一。

1.4 后端开发

后端开发的过程涉及JSP(Java Servlet Page)编写、Java实体类及Servlet设计、数据库的设计与连接等多个部分。

在JSP及Java类的编程过程中,同样可以通过建立代码规则库对学生的代码质量进行自动化检查和指导。除此之外,我们支持并提倡学生在项目实践中,对于一些世界范围内的优秀开源项目进行学习,从而提升自己的软件开发水平和创新思维能力。鼓励学生多借鉴学习华为软件开发云的代码广场,以及在GitHub、开源中国等平台的开源项目,同时也可将自己的项目进行分享。这些平台为学生提供了很好的实战学习资料,扩展了学生的技术视野,通过实例了解和洞悉世界一流网站编程的水平。

同时,在项目编码过程中,可教授学生使用华为云端在线的集成开发环境CloudIDE,它为学生团队在线编码,进行协同开发的代码提交与合并提供了可能。CloudIDE的开发界面和基本操作与平时学生常用的JetBrains公司的IntelliJ IDEA较为相似,无需安装本地软件,使学生可快速进入熟悉的编码环境。在项目完成后,还可在华为软件云平台直接进行编译构建和发布,这有助于进行项目课堂演示,并提高了学生实践练习的学习效率。

在学生后端开发的过程中,数据库管理的学习与实践也是必不可少的。Java Web项目与数据库的连接需要JDBC驱动,通常还需要数据库连接池等技术。在基于云服务器的数据库部署中,学生利用Mysql Workbench等提供的数据库远程连接功能,对远程主机上的数据库进行配置和管理,这提升了学生对部署在远程Apache Tomcat的Java Web项目访问数据库的操作效率。

1.5 网站部署与测试

由于实际的网站开发过程往往涉及到云端远程服务器的部署与调试,因此若按照以往的教学方式,仅让学生局限于在本地环境下进行开发实践是不够的。为此,可利用华为软件开发云提供的远程部署、测试这一功能。在课程开始初期,教师为每位学生分发了一个弹性公网IP,允许学生将项目部署至华为云主机上,进行真正的远程主机管理。平台提供多种版本的服务器操作系统镜像供学生选择,并可在项目部署时选择自动配置环境。以Shell 部署为例,学生可手动指定部署主机、部署路径、命令路径以及编写Shell脚本进行项目部署。在这个过程中,能够使学生对Web应用的构建、部署等过程有更清晰透彻的理解。

同时,学生还利用了该平台的流水线功能,对项目的编译、部署、发布进行一键式自动操作,这大大提高了项目构建及发布的效率,使学生能够更专注于项目的开发过程。

2 教学方法应用效果

经过对《Web程序设计》这一课程2017-2018第二学期的上述创新实践教学方法的探索,可发现相比传统教学模式,这些方法在学生群体中取得了较好的效果及反响。在所有项目小组中,学生都能够有意识地进行创新网站策划与设计,使用协同开发方式进行小组合作,并基于代码规则库的指导,学生编写的代码质量明显提高,有的网站小组拟基于开发的项目参加创新、创业大赛。因此,从教学效果上看,这些实践教学方法能够有效地改善以往理论教学与实践操作脱节严重、课程内容与实际相差较远、学生动手能力和团队协作能力不足的问题,大大提高了学生的网站应用开发水平与实践开发兴趣,为其以后适应企业实际开发模式打下良好的基础。

3 结语

我国以创新驱动经济战略提出的“新工科”建设计划,为大力发展高新技术产业、支持科技创新、促进产业结构转型提供必要的技术人才支撑和储备。新经济、新工科建设的背景给高校工科教育改革,尤其是以软件工程专业实践课程为核心的教学创新改革带来了一定挑战。结合云计算等信息技术的发展,新型教学模式可以在实际教学中利用云环境提高学生创新实践能力,从而培养满足国家创新驱动发展战略要求的复合型人才。

基于教育部“新工科”研究与实践项目以及教育部-华为技术有限公司产学合作协同育人教育改革项目,在《Web程序设计》这门课程中践行了一系列新的实践教学方法。这些方法以培养学生创新能力、实践能力、综合能力为目标,充分利用华为软件开发云平台的现有资源,为学生提供企业级的协同开发环境实现网站创意与讨论、前后端开发、网站部署与测试,并辅助相关规则库对学生代码进行自动化的质量检查与指导。通过在实践课程中开展这些教学改革,学生们在云环境下具有更高的学习热情,老师们可以更好地引导学生进行网站创新策划、组内成员分工合作和全周期的工程开发教育。

基于这些面向实践教学的新教学方式是对于Web课程的一次较好尝试。在未来的教学中,教师应基于学生反馈和经验的积累不断完善教学方法。对于目前仍普遍存在的高校计算机相关课程教学重理论、轻实践,学生动手能力难以满足新经济企业软件技术要求的问题,以及如何更有效地按照每个学生基础和特长实施个性化教学,如何结合人工智能等现代信息技术进行科学评价教学效果等将是需要继续研究的课题,需要教学者在教学实践中进一步探索。

猜你喜欢

工科代码部署
87年工科“学霸”成都追梦记
一种基于Kubernetes的Web应用部署与配置系统
新工科下创新型人才培养的探索
晋城:安排部署 统防统治
新工科背景下项目推动式教学模式的探索
部署
创世代码
创世代码
创世代码
创世代码