以任务驱动为导向的Java程序设计课程教学探讨

2022-05-30 05:16刘慧琳
电脑知识与技术 2022年16期
关键词:Java程序设计任务驱动教学模式

刘慧琳

摘要:Java程序设计对计算机相关专业的学生来说是一门非常重要且实践性很强的课程,文章针对传统授课方式的弊端,根据该课程的特点,结合成都师范学院相关专业学生的学习情况,对课程的教学内容、教学模式、实验实训和考核评价等方面进行了探讨,提出了以任务驱动为导向的教学模式,以此来激发学生的学习兴趣,促进学生对课程知识点的理解和掌握。文章提出的教学模式,以培养学生的编程和解决实际问题的能力为教学目标,通过一个个任务推动课程教学。

关键词:Java程序设计;任务驱动;教学模式

中图分类号:G642        文献标识码:A

文章编号:1009-3044(2022)16-0147-03

1 引言

1.1 Java的应用前景

Java语言作为一门应用广泛的编程语言,有非常广泛的应用前景,它的生态系统几乎涵盖了目前市面上所有的软硬件。它常用于网站开发、游戏开发、桌面程序设计、移动终端应用,以及其他应用软件的开发,广泛应用于移动、银行、保险、物流、医疗等各大行业,其对Web应用以及电子商务的迅速发展做出了巨大的贡献。它在当前热门的云计算、大数据、物联网、人工智能和区块链等技术领域也有着广阔的应用前景。

1.2 课程教学现状

大部分计算机及相关专业普遍开设程序设计类课程,目前这类课程在很多学校采用以教师讲授为主的“填鸭式”教学方式,这种教学方式以教师为中心,以教师对知识的讲解为主体,而学生在这一教学过程中被动接受,教学效果不理想。近年来针对Java程序设计的课程改革研究得到了高校广泛的重视[1-3],大部分研究是以项目驱动模式进行探讨的[1-3]。成都师范学院计算机科学学院从2016年开始招收数字媒体技术专业本科生,该专业文理兼收,一部分学生具有较强的理工科思维,一部分学生在文科方面比较擅长。根据数字媒体产业对人才需求的调研制定了该专业人才培养方案并设置了相关课程教学体系。Java程序设计已成为计算机科学与技术、数字媒体技术等本科计算机相关专业的一门重要的专业选修课程, 在教学计划中占有重要地位。为了适应时代和行业的新要求, 该课程打破基于学科逻辑的计算机理论教学方式, 尝试以任务驱动为导向, 着力培养学生实践和创新能力[4],提升学生就业能力。

1.3 目前教学存在的问题

近十几年,各高校陆续开设了Java程序设计课程,目前该课程的教学主要存在以下几个问题:

1)传统式讲授,学生接受较差

传统教学方式通常是老师对各个知识点采用“理论讲解+案例演示”,学生被动接受。这种教学方式以理论教学为主,有部分实践操作也仅局限于课堂案例或者相关练习的验证性实验操作,课堂气氛不够活跃,很难激发学生学习的主动性和积极性,教学效果不佳。

2)学习热情常常是先高后低[3]

学生刚开始学习阶段的学习兴趣较高,大部分学生愿意参与到理论和实践教学中来。但是,随着课程知识点的复杂度和程序代码量的增加,部分学生开始跟不上教学进度,体现在:课堂上学生不愿意参与讨论和互动;不能灵活应用所学知识;实验作业仅能完成讲过的案例,对稍微变化或拓展的练习就无法下手。

3)学生的综合实践能力较差

学习过程是单一的知识点和相关简单案例结合讲解,虽然能让学生理解单个知识点,但所学知识点比较孤立,各个知识点之间缺乏有机的融合,学生很难掌握章节之间和课程之间的关联。并且前后所学的知识点不能很好地衔接,涉及多知识点的综合应用就无从下手。

4)学习成就感较差

学生学完整门课程后,没有综合实践能力,体会不到学习Java语言的作用,感觉只是多学了一门编程语言,成就感较差,也在一定程度上影响就业。

5)以项目驱动教学模式的局限性

项目驱动教学模式是以项目为主体的教学方式。该方式是让学生参加真实的项目设计,在完成项目的过程中完成教学任务[5]。这种方式虽然能够避免传统农教学模式的一些弊端,激发学生的学习兴趣,提升实践能力,但是也有一定的局限性。项目往往不能包含全部的知识点,项目的分割和各个教学知识点不一定很好地衔接。

面向任务驱动的教学模式更加注重理论到实践的运用,有助于改善理论与实践之间的关系, 以项目为主线,以任务为纽带密切联系知识点,通过实践训练提高理論水平,以理论知识指导实践运用,提升整体学习效果。

2 任务驱动教学模式

任务驱动教学模式是以项目和任务为核心,在教学过程中以具体项目为主线展开,把相关的知识点融入各个教学环节中。在实际教学中,教师通过提出问题、分析问题,明确问题所涉及的各个知识点,指导和督促学生进行学习。把项目分解为一个个独立的任务(按知识点分解,任务尽量以难易程度适中、容易实施来确定),以完成具体任务为目标的教学过程。

任务驱动教学方式把学生按大的项目分成若干小组,按文理科学生搭配,编程基础好和基础差的学生组合的方式分组,每个小组完成独立的一个项目。教师将项目划分为一个个任务(任务对应理论知识点),每个小组的学生根据自身的特长合理分配任务,学生根据任务的需求来学习对应的技能,由被动学习转变为主动学习,从而调动学习的兴趣,发挥学习的积极性。在任务完成的过程中,既锻炼了学生的自学能力,又培养了他们的动手能力,还增强了大家的团队协作精神。

3 项目设计和任务划分的原则[6]

采用任务驱动的教学方式时,项目的设计和任务的划分非常重要。一个好的项目设计需要涵盖本课程的各个知识点,每个知识点设置为一个任务,任务要难易结合,各个任务相互联系又相对独立,并且重点突出。任务把知识点串联起来,能构成整个课程的学习内容,组成一个项目[6]。教师在组织和划分任务的先后顺序时需要考虑学生的理论基础、动手能力和学习能力,任务应该从简单到复杂自然过渡,中间要注意知识衔接。另外,选择的项目应当业务简单,对复杂的业务逻辑进行适当拆分,形成多个业务简单的任务,便于理解;项目最好具备一定的趣味性,让学生能在愉快的实践过程中熟悉课程的理论知识。

4 任务驱动法的教学过程设计

任务驱动教学设计尽量与日常生活和学习相关,这里以 “学生信息管理系统”项目为例探讨具体的教学实施方案。该课程的知识体系主要分为Java基础知识(包括程序的基本结构、基础语法、基础编程等),流程控制和数组,面向对象的编程(包括类和对象,超类、子类和继承性,包、访问控制和接口),异常处理,多线程设计,输入输出流,GUI编程等。

每个教学阶段的实践任务如表1所示。

5 任务驱动法在教学过程中的实施

Java语言主要分为基础和提高两部分进行教学,每个部分按章节知识点进行分类,按知识点的粒度设置为大小不同的任务,将大任务进一步拆分为适合教学的小任务。教师将每个小任务涉及的知识点进行讲解,并录制成微课辅助学生学习。在任务的实施过程中,每个小组中编程能力强的学生可以帮助、带动能力较弱的组员。学生在实践过程中,对不熟悉的知识点可以反复观看相应的微课进行学习,下面对具体任务的实施进行探讨。

5.1 Java基础知识部分

学习目标是让学生掌握Java语言的基本语法,包括基本数据类型、运算符和表达式,流程控制语句和数组等内容。教学实践是引导学生完成学生成绩的管理任务,包括搭建开发环境,编辑器的使用规范,学生成绩的统计、排序、求平均分等实践任务。

5.2 Java语言的提高部分

学习目标是掌握面向对象的编程,熟悉继承、多态、抽象类的使用,并掌握异常处理的方法以及多线程设计的思想。通过实现设定的任务来完成知识点的教学。面向对象的编程部分以人员信息管理和计算多边形周长和面积两个任务为主线进行教学。

1)面向对象的编程部分

面向对象的知识是教学重点,以人员信息管理任务来完成以下知识点的教学:类和对象的定义,包括类的成员变量和成员方法的定义、构造方法的定义和方法的重载、访问控制、类的封装性和继承等;以计算多边形周长和面积的任务来完成抽象类及其继承等知识点教学。

2)异常处理

在学生成绩单任务中添加对除零、数组越界、类型转换错误、文件IO错误等情况的处理。通过几个在实际生活中可能遇到的异常问题的处理,使学生了解异常处理的作用并掌握具体的处理方法。

3)多线程设计

设计提供多人进行成绩录入和查询的任务,该任务使用队列进行成绩数据缓存,采用多线程技术实现系统的并发访问;成绩队列成为临界访问资源,通过队列锁机制解决资源争用问题。

4)输入输出流

设计实践任务有:创建文件夹和文件,查询文件属性,将学生成绩写入文件中,并从文件中读出成绩数据等。

5)GUI编程

设计成绩录入和显示成绩列表的界面,实现系统界面的布局和设计,掌握Button 、Label、TextField等常用控件的使用。

6 教师和学生在任务实施过程中扮演的角色

6.1 教师教学指导

教学过程中,教师的作用主要是引导作用,介绍项目,划分任务,讲解和分析与任务相关的知识点,指导学生从所学的理论知识应用到实际的任务中[7]。

6.2 学生实践操作

学生实践围绕任务展开,首先是根据任务梳理需要的知识点,学习和理解相关知识,通过对任务的理解、讨论,完成任务的进一步拆分。小组内部讨论形成实操方案,各成员按计划分工,先对单一知识点的实践作业进行操作演练,再逐步将子任务进行叠加、组合,形成较大的任务模块,最终把课程学习中组员完成的一个个小任务串接起来形成一个完整的项目。

在各个任务阶段,小组内各个成员对完成的模块相互测试,发现问题,提出改进意见。每个成员接触到的知识局限在子任务涉及的知识点,通过相互测试和修改,完成相应知识点的学习和补充,达到全面学习的目的。

在任务实施的过程中,学生需要阶段性汇报,总结任务实施情况,针对遇到的问题提出解决方案,记录小组内讨论的过程,要求每个同学参与,轮流進行汇报。

7 考核评价

考核评价[8]主要包括四个方面:

1)单一知识点的考核

针对每个小组中的每个成员,都需要完成对应的知识点编码练习,教师根据学生提交的实践作业,检查任务中知识点的涵盖情况,对知识的综合运用能力进行评价。

2)任务完成情况考核

根据小组的分工,对每个任务的设计文档和实现过程,以及软件运行情况进行评价。检查任务功能完成情况,并对源代码进行检查,通过对软件实现的算法思想,代码书写、程序注释等编程规范性进行评价。

3)团队协作能力考核

考核学生在小组任务中对相关知识点的掌握情况,了解学生在执行任务过程的态度(积极性和认真度)和完成质量。结合学生对知识点、实现技术细节的熟悉程度推断学生在相应任务中的参与程度,按学生参与程度越高则团队协作能力越强进行考核,并对小组成员间的合作和互助情况做出评价。避免出现小组少数同学包揽任务,部分成员不参与的情况。

4)小组综合能力考核

项目完成后进行答辩,每个小组需要对各自的项目进行讲解、运行,对每部分功能的实现进行说明,回答教师和其他小组成员的质询和提问,最后做出综合能力评价;小组成员之间还要相互进行评价。

对各个任务完成情况进行考核的表格模板如表2所示:

8 结束语

以任务驱动为导向的Java程序设计课程教学对传统的教学方式进行了改革,以教师的理论讲解和课带实验为主的教学,转变为以任务驱动为导向的教学方式,不仅调动了学生学习的积极性,还增强了学生专业素养、沟通能力和团队协作精神。当然这种教学模式不能一成不变,还应该根据学生的专业情况、学习能力进行调整,在实践过程中不断改进,努力将学生培养成为适应社会需求的高素质技能型人才。

参考文献:

[1] 李丹.项目驱动教学模式下的《JAVA程序设计》课程改革探讨[J].电脑与电信,2019(4):28-30.

[2] 李跃飞.基于项目驱动法的《Java程序设计》课程教学设计[J].亚太教育,2015(16):90.

[3] 徐静.体验项目驱动的Java程序设计课程建设思路[J].计算机时代,2014(5):64-65.

[4] 柳长安,白逸仙.以问题为导向的虚拟现实课程改革与实践[J].华北电力大学学报(社会科学版),2017(3):126-129.

[5] 李晓玲.行为导向 德国职业教育教学改革的理论与实践[J].教育发展研究,2002,22(11):109-111.

[6] 彭召意,文志强,朱艳辉.以项目驱动的面向对象程序设计课程教学研究[J].计算机教育,2012(24):95-98.

[7] 刘玉文,陈春燕,翟菊叶,等.基于任务驱动的《C语言程序设计》在线教学方法[J].黄冈师范学院学报,2021,41(3):126-130.

[8] 郭银章,王丽芳.基于项目任务驱动的C语言程序设计课程教学改革与实践[J].计算机教育,2017(2):41-44.

【通联编辑:王力】

猜你喜欢
Java程序设计任务驱动教学模式
群文阅读教学模式探讨
Java程序设计基础课实践教学中的分层教学模式研究
任务驱动, 启发学生自学
“一精三多”教学模式的探索与实践
“导航杯”实践教学模式的做法与成效
5E教学模式对我国中学数学教学的启示