李永锋
(台州学院 电子与信息工程学院,浙江 临海 317000)
当前,“互联网+教育”成为了教育信息化发展的另一个风口,使得信息化技术与教育深度融合成为当前高等教育改革的热点问题。以MOOC 为代表的在线课程成为信息技术与高等教育融合的重要标志。以此衍生出了微课、翻转课堂、SPOC 等多种实践教学模式,以及催生出许多具有综合性和专业性的优质的在线学习平台,这为资源相对贫乏的地方高校重构教育新生态提供了契机。地方性应用型高校如何结合自身的教学实际、契合相关行业和专业特色,在教学过程中将在线学习资源与传统课程学习进行融合,用好这些资源,以达到创新教学模式,实现学习效果的最优化,是值得我们探讨的问题。
近年来,一些高校计算机软件类教育工作者利用MOOC、翻转课堂和SPOC 对软件类课程进行了理论探讨和实践教学方面的研究,主要涵盖C 语言、数据结构、计算机网络、数据库、软件工程、Web 前端技术和Web 应用技术等课程[1-9],但大多是注重于立足某门课本,利用传统的教学资源开展混合式教学,忽视了软件类课程的更新快和工程性的特点;为翻转而翻转,忽视了结合课程本身的特点、培养目标和社会岗位需求选择合适的教学模式和选用不同的教学平台,鲜有从系统的角度探讨整个技术类课程的。
软件类课程可分为专业基础课程和软件开发课程[10]。结合网易云课堂[11]和现行技术发展趋势进行了扩充,见表1。本文所述软件技术类课程主要是指C 语言和软件开发课程中的Web 前端开发技术、Web 应用系统开发技术、移动互联网应用开发技术和数据库应用技术、大数据库开发课程,其侧重点在于开发和技术的实际应用,培养学生的动手实践技能,而对软件的理论不做过多的要求,因此,这类课程具有很强的实践性和工程性。
软件技术类课程与企业实际应用密切相关,知识内容与学生将来的工作岗位极其相关,其主要的特点如下。
表1 软件类课程的分类
(1)实践动手能力强。软件开发能力是计算机软件类人才应具备的三个核心能力[12]之一。而程序设计能力是软件开发能力的主要核心技术。刷题数量和代码编写行数一直以来是检测一个学生软件开发能力的重要指标,这个指标常成为许多软件公司招聘时选拔学生的重要参考,因此,大量的动手编写代码是软件技术内课程的最重要的特征。
(2)知识综合性强。当前,软件开发技术比较多,如C、Java、C#等;软件形式多样,如有电脑版、移动版和智能终端版等。每种技术自成体系,综合性比较强,学习有一定的梯度。比如Java 系列课程,包含Java 核心编程、JavaWeb 基础编程、JavaWeb 高级编程以及由Java 系列课程为基础衍生的技术方向,如APP 开发和大数据库开发等,还有在开发中辅助的一些软件技术,如UI 设计软件、Web 前端开发技术、数据库应用技术等。
(3)知识更新快。软件技术最大的特点之一就是更新快。软件开发从PC 机到移动终端,从桌面应用程序到Web 应用程序,都在随着系统和应用场景的更新而更新。就拿Web 应用开发技术来说,早期开发时PHP、JSP、ASP 和ASP.NET 是开发的主流,一个后端程序员能够前后通吃。现如今ASP 逐渐销声匿迹,前后端分离的技术成为了主流,JSP 和ASP.NET 逐渐被M*架构的开发框架所代替,而各种开发框架也群雄争霸。
(4)技术资源丰富。“互联网+”和“共享经济”使得计算机技术迎来了新的发展机遇。优质的计算机资源充斥着各大在线学习平台、技术论坛、社区网络、开发平台、专业技术人员的博客、微信和APP 软文中,使地方应用型本科院校的师生们能够接触到企业开发团队和人员的开发思想、流程和技术。
当前,应用型本科软件技术类课程普遍存在课程讲授内容陈旧不成体系,讲授内容基础,课时少不连续,前沿技术课程开不出来,实际项目缺乏等问题。针对这些问题,立足本校实际,利用优质的在线资源开展线上线下的混合式学习,是弥补教学资源相对不足的解决方法,据此,从系统的角度利用软件架构的思想构建一个软件技术类课程的教学实践模型。该模型包含教学资源层、教学平台层和应用层3 层,如图1 所示。
(1)教学资源层。主要根据教学知识点聚集、甄别、优选优质的在线资源,然后根据教学实际情况自制一些教学资源建立教学资源库。地方高校不应在资源相对匮乏情况下,鼓励大量的课程上线,造成大量的网络课程冗余,重蹈在线精品课程和精品开放课程“重建轻用”、“表面化和功利化”、“建设—待用—闲置”[13]的覆辙。技术类课程更新快,而新知识往往通过网络最先传播,而不是课本。讲好了课本,并不等于学好这门课程。现在,互联网企业、IT 培训机构和部分高校建立了各类的带有一定共享性质的在线教育平台和实践教学平台,以及各大技术社区、论坛和技术牛人的博客,地方高校完全可以用好这些资源,而把主要精力放在组织资源进行教学上,使学生学的知识内容能够与企业接轨,锻炼出较强的自主学习新知识的能力,胜任未来技术的发展。
(2)教学平台层。主要是在教学过程中采取“教学练一体”的项目教学方法,并能够根据不同软件技术类课程采取不同的教学平台。地方高校传统的教学方法是2 课时(课堂)+2 课时(机房)的方式进行课堂教学,导致理论课时多和知识内容不连续的弊端。而技术类课程重在实践,而不是理论。因此,采取“教学练一体”的案例式、项目式教学方法仍然是技术类课程的首选。同时,将在线MOOC 平台、实践教学平台和移动教学平台等融入课堂学习,加强学生的课前、课中和课后的管理,提高学生的自主学习能力,开展混合式教学。
图1 软件技术类课程教学实践模型
(3)应用层。主要是通过多模式的校企合作、校内大学生创新创业基地和各类计算机方面的大学生竞赛和软件开放平台进行项目开发实践,训练学生对工程的认知能力,接触一些综合的技术训练,使学生通过实际案例,亲身进行需求分析、开发、部署与发布,以迭代的方式完善,在实践中巩固所学,培养独立思考解决问题的能力和团队沟通协作能力。地方本科院校一般在三四线城市,著名IT 企业几乎没有,对IT 高技术的人才储备和企业项目获得能力相对比较弱。社会的认可度普遍不高,因此,教师和学生很难被社会所认可,获得企业实际项目的机会相当少。长期的无IT 企业实际项目经历,是技术类课程最大的弊端。而出路就在于一方面利用好本地资源,结合地方的产业,把企业导师和往届优秀的校友引进校园,开展师傅带徒弟的方式进行校企合作;另一方面通过各种计算机方面的竞赛,通过“以赛促学,以赛促教”的方式来弥补实践项目的相对不足;最后,通过百度、阿里巴巴、腾讯等互联网企业的开放平台进行项目实践开发。
当前,IT 软件技术应用方向主要有以JavaScript 为代表的Web 全栈开发方向,以Java 为代表的Web 应用和Adroid 移动开发方向,以PHP 为代表的Web 应用方向,以Dotnet Core 为代表的Web 应用方向,以Hadoop 为代表的大数据方向,以Python 为代表的全栈开发和机器学习方向,以及其它的应用方向。这些课程实践性强和行业开发需求要求高,地方本科院校无论在师资上和学生层次上都无法与互联网企业和培训机构相比,因此,借助互联网企业、培训机构的技术优势和在线学习平台开展实践教学,取长补短是不错的选择。据此,本文结合上述实践模型设计了软件技术类课程的实施流程,如图2 所示。
(1)学习者特征分析,确定IT 软件技术类课程应具备的基础知识和实践能力目标。同时,根据课程特点,划分知识结构,分析所使用的教学理论、教学方法、教学手段和教学平台。
(2)根据(1)中划分的知识点,搜集、整理和组织教学资源进行教学内容和教学活动设计,并将课前、课中、课后所需要使用的资源按知识结构和类型有步骤地上传到MOOC 等在线教学平台,建立可实现移动学习和碎片化学习的资源。
(3)根据选定的在线教学平台,并结合传统的教学方法开展线上线下的基于项目驱动的实践教学活动。
图2 软件技术类课程教学实施流程
(4)为学习者搭建多层次多方位的项目实践平台,总结强化教学实践内容,夯实基础和实践能力,提升学习者胜任工作岗位的能力。
由于篇幅的原因,仅选取Web 前端核心开发技术这门课程进行实践。这门课程是Web 应用技术的前导课程,是IT 软件类重要的基础课程,在Web 应用开发中具有一定的代表性。这门课程分别在本校计算机和信管两个专业的大一第一学期和第二学期开设,每学期64 课时。这门课程知识结构主要划分为HTML、CSS 和JavaScript 三大模块。每个模块又根据当前企业的项目应用中流行的技术点和学习者的认知度分解出若干个子模块和对应下的知识点,并将HTML5 和CSS3 的知识点无缝地贯穿到传统的HTML 和CSS 的知识点中。这些知识点大多是凭借自己多年积累的实际项目的开发经验,同时充分地向企业开发导师,以及往届毕业后仍然在开发一线的校友征询的基础上设置的。每个知识点的设置和选用都查阅和甄别了大量的纸质和网上资料,并将这些资料按主题和知识点整理好汇集到互动课堂平台A+课堂派和教学微信公众号中形成教学资源库。同时,也搜集整理历届大学生多媒体竞赛网站组和大学生服务外包竞赛的优秀网站,以及京东、淘宝、腾讯、网易等有代表性的综合性网站的页面作为案例汇入到资源库中。
在教学过程中,通过课堂派可以方便地将事先预习的微视频、录播视频、PPT、拓展资料、思考题等设计好的内容推送给学生,让学生在课前能够基本了解和完成基础知识的学习情况。在课堂中,根据课堂派汇总反馈的预习情况,进行关键知识点的案例讲解与实际代码操作演示,同时布置随堂编程作业,让学生当堂编写的代码和运行效果上传到课堂派,并进行现场的点评,然后将优秀的学生作业公开给每位学生。课后设置一些扩展性的应用案例和阅读资料推送给学生,并规定作业上交的时间。教学过程如图3 所示。
这门课在2016 级信管和2017 级计算机专业4 个班近200 多人中进行了实践教学,在期末考核时按照期末占50%+平时20%+实验操作30%来算分。平时和实验操作的分值直接从课堂派中导出,包含学生的平时考勤、课堂互动、课前预习、随堂练习、实验报告等内容。期末考试以试卷+操作的方式进行。操作题目的设置是精心设计的项目案例。通过最后的成绩汇总后,总体来看,学生的成绩整体呈上升趋势,如图4 所示。这为后续学习Web 应用技术打下了坚实的基础。
图3 Web前端核心开发技术课程教学实施流程
图4 Web前端核心开发技术教学效果
在“互联网+教育”背景下的新技术给教学实践带来新的变革,也改变了教师的教学理念和授课方式,同时,也为地方本科院校的转型带来了机遇。我们对地方本科应用型本科院校计算机软件方向开发课程的实践教学改革进行了探索,并在ACM、大学生服务外包创新创业大赛、电子商务竞赛和多媒体竞赛中屡创佳绩,学生毕业后能够进入微软、阿里巴巴、百度、海康威视等著名的互联网公司,这对地方高校来说是来之不易的。通过实践,主要有几点小结:①基础编程类课程,如C、C++、Java 等程序设计语言,在教学中仍然要以经典教材为主,以在线MOOC 为辅助,以类似于ACM 的程序设计在线判题系统为依托进行实践教学,培养学生的程序设计思维;②软件开发类课程,如Web 前端开发技术、Web 应用技术、大数据开发技术等课程,借助网络中的优质资源和新的教学工具,开展以案例和项目驱动式的混合式实践教学,培养学生的工程能力和自主学习能力;③以赛促学,以赛促教。鼓励学生参与ACM、服务外包、电子商务、多媒体等竞赛,培养学生的团队协作和创新能力。