摘要:随着计算机行业的迅速发展,市场对人才的需求不断增加,如何提高大学生的综合能力成为高校教育改革的核心问题。“Java程序设计”既是高职理工科专业的必修专业课,又是后续专业课程的前置课程。对高职院校Java课程教学现状进行分析,从课程目标、教学方法、教学内容、课程思政、考核方式五方面提出了教学改革措施,以期打造优质课堂,提升教学质量,对高职程序设计类课程的“课堂革命”具有一定的借鉴意义。
关键词:Java程序设计;职业教育;教学改革
一、前言
“Java程序设计”是软件技术、移动应用开发、计算机应用技术等高职计算机类相关专业开设的一门专业核心课。以软件技术专业为例,该课程在整个专业人才培养方案中起着地基式作用,是后续课程Java设计模式、JSP动态网站开发、Java框架技术、Android应用开发等课程的前置课程,学生对该门课程掌握的情况将直接决定后续课程的学习效果。Java语言是一种面向对象语言,语法规则复杂,内容抽象,高职学生普遍基础弱、自制力差,学习此课程动力不足。因此,激发学生学习兴趣,提升课程教学效果,教学改革势在必行。
二、课程教学存在的问题
(一)教学目标不明确
高职院校的培养目标是将学生培养成高素质应用型人才,一些高职院校忽略了学生的学情和职业教育的特点,以通过程序设计类的考证为教学目标,教学重心偏向数据结构与算法等理论知识,导致学生学不懂、不想学。此外,学生不知道学习这门课的意义是什么,学完这门课能做什么,毕业后从事什么样的工作,普遍对课程认识不足,没有建立整体的专业思想,缺乏学习动力和职业规划。
(二)教师为主体,实践教学存弊端
教师在教学中占主体地位,课堂以讲授理论知识为主,案例多为验证语法规则,知识点之间缺乏逻辑连贯性以及与现实生活的联系。学生上机操作基本上是把教师刚刚讲过的例题“抄”一遍,运行出结果便认为已经掌握了该知识点,如果将例题稍加修改或者独立完成课后编程题,便困难重重。教师在实践教学过程中没有注重培养学生独立思考和解决实际问题的能力,缺乏对学生进行真正的软件项目开发训练[1]。
(三)教学内容重点不突出,缺乏合适的实践项目
部分教师照本宣科,按照教材顺序力求每个知识点都讲到、练到,造成教学任务完不成,学生学习兴趣不高。许多院校在开设此门课程之前已开设过“C语言程序设计”,基础部分内容相似,部分教师仍花大量时间讲解语法规则和三大结构,没做到教学内容突出重点,本门课的重点是“面向对象”。许多高职院校课堂采用项目驱动教学法,但实际效果并不理想,普遍缺乏合适的实践项目,主要存在以下几个问题:项目脱离实际、规模过于庞大、知识点覆盖不到位等。
(四)课程思政没落实
近几年各高校积极进行课程思政教学改革,但仍处于起步阶段,课程思政落实情况存在一些问题。部分教师对课程思政认识不足,不愿花过多时间研究这门学问,仍专注于专业课教学。部分教师自身水平能力有限,对课程思政理解不深,认为每堂课都要有思政,或者教学设计中涉及的思政元素与知识点存在两张皮的现象,并没有真正起到在讲授专业知识过程中同时有效进行思想政治教育[2]。
(五)课程考核不合理
虽然大部分院校已经不采用传统的纸质考卷考试,而是以平时成绩和上机考试对学生进行考查。部分教师对平时成绩的评定存在很大的主观性,缺少量化考核标准。上机考试与全国计算机等级考试二级“Java语言程序设计”题型类似,包含选择题和编程题。编程题是在给定的程序基础上进行代码补全、改错、方法编写,或者出一些经典的算法编程题考查学生编程水平。这种考查其实是对知识点理论知识的考核,不符合课程的培养目标,学生学习动力不足,缺乏自主思考和编写程序实现特定功能的能力,更谈不上满足企业的要求。
三、课程教学改革的措施
(一)正确认识课程目标,上好第一次课
学生通常在第一次课时态度端正,注意力集中,教师上好第一次课十分重要。教师要精心设计第一次课,在第一次课上让学生正确认识课程目标,明白学习这门课的意义是什么、学完这门课能做什么、今后能从事什么样的工作,让学生建立整体专业思想,明晰专业学习路线。第一次课不必固定按照教材顺序讲解Java语言概述,应向学生呈现整体的专业人才培养课程体系。以软件技术专业为例,课程学习路线均围绕Java技术,呈递进式,“Java程序设计”“面向对象程序设计”“JSP动态网站开发”“Android应用开发”“Java框架技术”以及不同等级的1+X JavaWeb应用开发职业技能等级证书等,“Java程序设计”在整个课程体系中属于核心专业课、基础课,其学习效果直接影响后续课程的学习,让学生在学期初就明确课程定位与重要性。课程目标是能够让学生完成简单应用程序的设计,至少能在现有程序的基础上加以改造和创新。学生在学习此门课之前已经学过“C语言程序设计”,具备了面向过程的编程思维模式,本门课的核心是面向对象,向学生强调需要转变编程思维模式。第一次课可以向学生展示高年级学生使用Java语言编写出来的各种应用程序、参加技能竞赛的作品,或上网查找Java语言相关的岗位信息,让学生直观感受Java语言能做什么,有什么具体应用场景,让学生清晰自己的职业规划和增强学习动力。第一次课以鼓励学生为主,告诉他们学习过程中虽然会遇到许多困难,但是当程序运行通过必定会产生巨大的满足感和自信心。
(二)启发式教学增兴趣,创设生活化情境促理解
教师在教学过程中,要以学生为中心,进行启发式教学,以培养学生的编程思想,营造主动学习氛围。例如,教师在讲解“面向对象—类与对象—类的声明”这个知识点时,可以重点强调类的声明包括成员变量、构造方法以及成员方法,然后给出具体的编程题目(最好联系生活日常):“定义一个学生类,并创建学生对象,对象信息是你们自己哦!”让学生动手编程。学生进行了课前预习,拥有十到十五分钟时间尝试编程。教师在巡查过程中,会发现有少数学得好的学生可以独立完成任务,而多数学生感到吃力,此时需要教师引导和启发。教师给出部分程序,学生模仿已有程序完成整个程序。
学生类的部分程序如下:
public class Student {
private String name;
//添加代码,声明成员变量age
public Student(String name, int age) {
this.name = name;
//添加代码,使用形式参数age对成员变量age进行初始化
}
public void study(){
System.out.println(name+“爱学习!”);
}
public void introduce(){
//添加代码,在控制台输出“我是X,今年X岁啦!”
}
}
在上述程序中,教师给出了如何定义成员变量“姓名”,启发学生完成定义成员变量“年龄”。在有参构造函数中,教师给出了使用形式参数name对成员变量name进行初始化,启发学生完成使用形式参数age对成员变量age进行初始化。在成员方法中,教师给出了如何定义“学习”方法,启发学生完成“自我介绍”方法的定义。在教师的一步步启发引导下,学生完成了整个程序。
定义完学生类,教师讲解如何在测试类中创建学生对象,并调用对象的成员方法。测试代码如下:
public class TestStudent {
public static void main(String[] args) {
Student s1 = new Student(“周密”, 34);
s1.introduce();
}
}
学生依照教师给出的测试代码测试学生类并创建自我对象、调用“自我介绍”方法,看是否成功输出自我信息。每个人创建的对象不同,而创建对象的类却是相同的,很好地说明了类与对象的关系,即类是模板,对象是模板创建出来的具体实例。教师继续让学生编写生活中的类,比如车子、动物等,举一反三,让学生积极思考,自主完成代码的编写。加强学生“从无到有,由浅入深”的学习体验,增强学生的编程信心,提高学生的编程能力[3]。
(三)重构教学内容,真正做到项目化驱动
教师不必按照教材顺序讲授课程内容,应合理编排和裁剪教学内容,使其更符合高职院校学生的学习规律[4]。教师可以略讲Java编程基础部分,如基本语法、变量、运算符、三大结构以及数组等内容,重点讲解与C语言不同的部分,将整个学期的教学重点放在“面向对象”这一块。传统的Java课程教学是讲完三大结构再讲解函数,学生在超三分之一学期的时间里在主函数中进行控制台的输入输出,这不利于培养学生的编程习惯和思想。教师应该将“函数”章节提前并重点讲解,因为它是面向对象的基础,侧重讲解函数的定义、调用、参数和返回值,让学生牢牢掌握函数这个工具,建立“封装和复用”的编程思想,在以后的教学中要有意识地将函数的应用贯穿始终,不断加深学生印象。
教师应对教学内容进行重构,真正做到项目化驱动。项目的选取内容要兼具趣味性和实用性,可引入企业真实案例,或者各类职业技能大赛的样题,再根据实际情况进行适当裁剪。以完整项目为载体,将课程内容重构,分解为若干个子项目,子项目可再细分为若干个任务。例如,以“基于Java Swing的商品管理系统”项目贯穿教学全过程,将项目分解为五个子项目,本文以“项目二—商品管理”中的“任务一—商品添加”为例,该任务包含的知识点与教学内容见表1。
通过子项目的一步步完成,逐步递进和融合知识结构,通过整合项目模块,让学生了解实战内容和步骤,提升程序设计开发能力[5]。
(四)强化育人意识,确保课程思政建设落地落实
教师要充分认识到只注重技能传授而忽视职业素养培养,会阻碍学生成长与发展。在专业课教学中恰当地融入思政元素,能激发学生学好专业知识、专业技能的热情。工科类学科抽象难懂的知识点通过引入思政元素会变得通俗易懂,这些积极的因素促进提高人才培养质量。教师要做到思想与行动相统一,积极投身于“课程思政”研究之中,积极参加学校或其他平台开展课程思政方面的专题培训,学习同行课程思政建设先进经验与做法,专业教研室集体备课讨论和建设“思政元素库”,建立资源共享机制。《高等学校课程思政建设指导纲要》指出,工学类专业课程要注重强化学生工程伦理教育,培养学生精益求精的大国工匠精神,激发学生科技报国的家国情怀和使命担当,教师要以纲要为指导,充分挖掘所属学科的思政元素,软件技术教研室对“Java程序设计”课程进行了思政教学设计,部分内容见表2。
(五)采用多元化考核方式,注重对学生实践能力的考核
考核要全面客观地反映学生真实水平,将课程评价贯穿于整个教学过程中,淡化期末考试成绩,加大学生过程性考核的力度,能有效提高学生的学习兴趣和学习参与度[6]。教师制定考核标准,考核指标均可量化,开学之初让学生知晓,学生一开始就知道自己这门课的成绩由哪些部分组成,压力与动力并存。本门课的考核平时占比60%、期末占比40%,侧重于实践能力考核。平时成绩包括课前预习,如线上浏览视频、主题讨论、知识点自测,平台记录学习情况的数据;课中的出勤率、课堂参与度;课后的作业、章节小案例完成情况等。期末引入真实企业项目,由小组协作完成,要求学生模拟企业实际工作流程,分工合作完成项目需求分析、概要设计、详细设计、编码、测试和部署,以学生项目答辩的形式进行成绩评定。此过程提升了学生团队合作、交流沟通、语言表达等方面的能力,让每个学生都参与进来,以学生带动学生,让每个人都有紧迫感,都去主动学,营造良好的学习氛围。
四、结语
本文针对“Java程序设计”课程教学存在的问题,提出了“正确认识课程目标,上好第一次课、启发式教学增兴趣,创设生活化情境促理解、重构教学内容,真正做到项目化驱动、强化育人意识,确保课程思政建设落地落实、采用多元化考核方式,注重对学生实践能力的考核”等方面的课程教学改革措施,为未来更完善的课程设计与改革提供了一定的参考依据。
参考文献
[1]彭兵.高职“Java程序设计”课程教学的问题分析及对策建议[J].电脑知识与技术,2019,15(16):78-79.
[2]苏秀芝,匡林爱,刘群.“课程思政”视域下高职“Java程序设计基础”教育教学策略研究[J].电脑与信息技术,2022,30(05):91-93.
[3]欧阳桂秀.提高高职学生Java语言编程能力的探索和实践[J].产业与科技论坛,2019,18(23):200-201.
[4]周密.高职“C语言程序设计”教学改革初探[J].科教导刊,2024(14):99-101.
[5]宋锦华.高职院校Java程序设计课程改革研究[J].科技视界,2022(20):133-135.
[6]张冠兰.“互联网+”背景下高职院校Java实践课教学模式的思考[J].职业,2020(35):78-79.
作者单位:长江职业学院
责任编辑:王颖振、杨惠娟