马 创 刘 俊 解绍词
(重庆邮电大学软件工程学院 重庆 400065)
随着信息科技的飞速发展,特别是以人工智能、大数据、区块链等为特点的新一代信息技术的兴起,Java语言作为当前最为流行的编程语言之一,Java语言程序设计课程也是国内乃至国外很多高校计算机相关专业必修的专业基础课程。由于Java语言具有面向对象、可移植性、简单性、动态性、健壮性、分布性等优点,已广泛应用于游戏控制台、互联网、手机智能卡、手持式电子消费类产品和企业中应用等多个领域[1]。
目前,从学生就业和相关课程教学反馈回来的信息,直接指出了课程的教学内容与市场的实际需求的脱节现象,学生的所学知识往往很难应用到实际的工程项目中。由于受学时和传统教学方式的限制,教师只能在课堂上教授浅表层的知识点,没有时间进行深入学习。因此,要想彻底改变这一格局,教育者要意识到,课堂教学活动中最宝贵的资源是师生面对面相处的有限时间,这些时间应该被用于实现深层次的学习。在大量优质的MOOC、SPOC出现以后,学生完全可以借助新的教学手段在课前进行浅表层学习,老师则负责指导学习在课堂上进行基于问题、基于案例的深度学习,这种学习可以以实验、研讨、报告、辩论等形式展开,教师在整个教学活动中,只是一个引导者、组织者。
在传统的Java语言程序设计课程中,长期存在以教师教授知识为主或“填鸭式”教学方式,学生被动接受知识,使得学生缺乏自主学习能力以及为了期末考试学习、不考不学、考完就丢等问题,传统方法在激发学生创新性、积极性方面存在不足,学生很难对自己所学知识进行实际应用。
虽然我校2017-2018第二学期在《程序设计(4)(Java平台)》的教学过程中采用了翻转课堂的方法,但由于Java语言程序设计相关技术更新快、内容驳杂、不同具体技术入门周期平滑度差异大等特点,在教学实践过程中,发现还存在如下问题:
Java作为一门编程语言,需要大量的专业理论知识作为基础,而专业理论知识往往与Java语言内在逻辑关系强度较弱,因此需要学生具备较高的自觉性和主动性。Java语言的精髓在于各个框架,而框架的学习,是一个相对漫长的过程,对基础理论的要求相当高,未掌握正确的学习方法,不能以正确的态度对待未知问题,使得学生容易产生畏难心理,进而对本门课程的教学效果产生较为严重的负面影响。
以知识为模块,存在各章节内容设置相对孤立,缺乏关联,考核方式单一等问题,不能使学生达到相应的教学目标;在实践教学环节中,尽管安排了该课程为理论与实验同排,但实验采取的教学方式一般是“学生自主实验+教师随堂指导”,且所做的实验都是一些演示性和验证性的,学生在解决实际问题时,难以运用所学知识。
虽然我校上一学年对《程序设计(4)(Java平台)》课程采用了翻转课堂的教学模式,对学生们采用了“预习+讲解+作业”的模式,但是由于班级人数较多,所安排的学时相对于Java语言的知识点而言相当紧张,所以无论在时间上还是人数上,均难以保证对每个学生的教学效果。
针对上述存在的问题,本文结合实践经验,从教学的方法、手段、内容等方面进行阐述,以提高学生的创新能力、实践能力、完善教学模式、有效监督学生的学习进程为核心,构建以目标驱动为导向的Java语言程序设计课程教学改革的新参考方案。
本文基于目标驱动的思想,使《程序设计(4)(Java平台)》课程从授课内容、授课方式等方面遵循“理论—目标—实践—理论”的循环上升的培养主线。
3.1.1 教学内容引导化
及时更新教学内容,优化教学大纲,跟上技术的发展步伐。摒弃传统教学方式的弊端,吸取其优点,教学内容配合新的教学方式与课时安排,注重Java语言的方法论教学,以面向对象、目标驱动为手段,引导学生学会用Java语言的思维去思考实际问题,真正做到以Java语言为主线、目标为导向,将所学专业知识融会贯通,学以致用,同时引导学生课外参加课题研究、自主解决问题,鼓励学生积极主动学习。
3.1.2 授课方式目标化
探索建立目标驱动的授课方式:(1)Java语言解决实际工程目标问题的指导性和方法论;(2)实现《程序设计(4)(Java平台)》课程教学目标的授课方式要符合Java程序设计语言方法论的具体实践。将课程教学过程演化为实际工程目标解决的严谨逻辑思考过程,不断强化学生的程序思维惯性。
3.1.3 工程目标理论化
针对一些具体的工程应用实验任务可以不限方案、不限技术,仅以目标完成度为依据。引导学生立于设计思维的高度,审视工程项目的实施,发散学生知识面的广度,而后有选择性的加强某一领域知识储备的深度,从而引导学生在课程学习上广度与深度相结合,根据学生自身擅长和技术特点,进行不同分支方向引导。将学生所学基础理论知识贯穿于整个工程目标完成的始终,将主管的工程设计及经验思考过程转化为理论知识的运用推理过程。
3.2.1 课前过程
课程开始前,学生需参考课程的教学大纲及课时任务目标,每周依次在线提交下一周学习计划和预习报告。学生根据学习计划查询授课计划中的相关资料,包括网上博客、技术文档等,对Java语言基础知识、编译环境及周边技术建立完善的短期指知识树,可以有效地节约课堂上对基础知识的讲解实践,也间接引导学生主动学习的积极性。
3.2.2 灵活的课时管理
通过课前过程学习提交的学习计划和预习内容报告,教师可以针对预习报告中反映的学生自主学习情况内容有效地安排课时,把主要的时间放在引导学生思考如何将所学理论知识应用于实际目标问题和如何正确面对未知理论知识,可以有效地缓解Java语言教学与实际工程任务需求之间难以平滑度过地矛盾。
同时可以根据学生们地预习内容、问题和课前讨论,邀请更擅长某个领域地教师负责现场指导,当专业问题过多时,可以适当追加指导老师人数。通过这种方式,既可满足学生学习时对教师指导与答疑的需求,又可避免教师资源浪费。
传统书面考试的方式,学生为了应试,容易出现只关注基础知识,而忽视自身实践工程能力的培养和软件思维模式的形成。因此,除了通过笔试考核学生对基础知识掌握情况,增加程序开发考核环节,考核学生的动手能力、解决实际目标问题能力。
在教学过程中树立“以学生为主体,以教师为主导”的教学理念。“以学生为主体”,强调在学习过程中充分发挥学生的主观能动性,将学生的被动学习化为主动学习;“以老师为主导”,强调更好地发挥老师的主导作用,同时要真正重视并切实搞好“学”[2]。
新的教学方式要求教师具有理论与实践能力,能够合理灵活地将理论与实践相结合进行教学,引导学生更好地适应新的教学模式,进行主动地自主学习。因此,需构建培养和培养混合型师资力量。
随着新一代信息技术时代的兴起,Java语言程序设计课程作为很多高校软件工程专业基础课程,本文主要以培养学生运用Java语言思维解决实际目标问题能力和创新能力为核心,将创新教育思路与课程体系和教学方法有机结合,以开放式、互动式教学为手段,通过教学模式与考试方式的改革,推动课程建设与改革工作的持续与深入进行,实现“培养学生的解决问题能力和自主学习能力,合理构建形式多样的教学模式,对学生学习过程有效监控”的目标,从而力争达到提高学生的学习效果,不断实践,全面提升课程建设质量。