面向对象程序设计课程改革实践

前言:寻找写作灵感?中文期刊网用心挑选的面向对象程序设计课程改革实践,希望能为您的阅读和创作带来灵感,欢迎大家阅读并分享。

面向对象程序设计课程改革实践

摘要:为了适应应用型本科教学需要,提高学生的实际动手操作能力,缩短学校培养与企业需求之间的差距,通过分析学院在面向对象程序设计教学中存在的一些问题,有针对性地提出了课程群建设、课程内容与教学方式建设、师资队伍建设、学生个性化教学、教材改革、考核方式改革等一系列解决方案。通过实际教学对比验证,发现实验组在实际动手编程方面具备更大的优势,教学效果更好。这些解决方案,能为应用型本科高校在面向对象程序设计及相关课程的教学改革提供了一条解决思路。

关键词:面向对象;教学改革;个性化教学;应用型本科

当前,我院正处于应用型本科院校的转型过程中,学校十分重视实践教学,并十分注重强化应用型人才培养,学校与许多企业也进行密切相关的合作。面向对象程序设计是一门应用实践性很强的课程,符合应用型人才培养的方向,学校对其尤为重视。Java语言在面向对象程序设计方面表现尤为突出,由于其强大的移植能力、多线程处理和网络处理能力成为许多高校计算机技术、信息与通信工程等专业必修的课程之一。当前Java程序员、Java工程师的需求仍十分迫切,但是高校培养的毕业生在计算机编程能力与企业需求间存在一定的差距,多数毕业生缺乏企业需要的实际操作能力,因此,应用型本科院校应该将提高接近企业需求的应用开发能力的培养作为目标,注重毕业生实际应用能力培养,对面向对象程序设计课程的改革十分必要且迫切。

1教学现状

当前,我院在面向对象程序设计这一课程的应用型教学过程中,还存在较多问题,比如:第一,很少有与信息与通信工程专业联系比较紧密的教材,传统教材例子往往偏向网站开发等内容,学生常会困扰于如何将Java语言的知识点与其专业紧密联系并应用;第二,学生基础不扎实、语法薄弱,且课时有限,无法将最新的Java编程技术传授给学生,往往只能偏重教材的独立章节的语法讲解,并通过实战训练,让学生编写功能比较简单的算法,这些算法主要用来验证理论课上所介绍的语法知识,可能并不是非常实用,并且趣味性也不够,学生往往对Java课程的兴趣不高[1][2];第三,网络游戏、手机的娱乐功能日益强大等原因,造成学生课上注意力不集中,课下不愿花时间学习,学生被动接受知识,缺乏学习的积极性、主动性及创造性;第四,在编程过程中,学生往往缺乏团结合作精神,各自编写、调试自己的程序,学生编程能力和协作能力与企业需求仍有偏差[1][3],学生进入企业后经常感觉无从下手;第五,现有的师资队伍主要是学校教师,他们具有较强的理论教学经验,但比较缺乏实践教学经验,较难将工程项目融入教学中,难以胜任应用型本科实践教学要求;最后,目前的考核方式主要采取笔试结合平时表现的考核方式,无法真正体现学生动手能力和应用型能力的考核。

2课程改革内容

针对上述存在的问题,我院的面向对象程序设计课程亟待改革,必须结合我院的应用型转型的办学特色及学生自身的实际情况以及企业对毕业生的编程能力要求等方面加以考虑。通过教学总结与讨论,可以从如下几个方面进行改革。

2.1课程群建设

根据我院实际开课情况,并充分利用C语言程序设计、面向对象程序设计、数据库等课程之间的相互关联,将其有机结合起来,建设成一组课程群,并在教学过程中注意课程间的相互衔接与呼应。C语言程序设计具有比较简单的语法和程序结构,方便学生理解与掌握,避免学生产生畏难情绪,且其语法与Java语言的语法比较相似,容易过渡。因此,将C语言作为入门编程语言进行学习,比较容易带动学生的积极性。Java语言在编写大型案例时,常常需要处理大量的数据,因此需要用到数据库作为后台支持,在教学过程中,应将数据库教学保持与Java面向对象程序设计的联系,以帮助学生更好地掌握知识。

2.2课程内容与教学方式的建设

通过实地调研企业的人才需求为导向,参考他们的岗位要求,听取行业工程技术人员的意见,结合考虑我院学生的实际水平,对教学内容进行改革,及时补充更新和信息与通信工程类相关的项目案例,比如实时数据流的传输、存储、处理等。在教学过程中采取多种教学方式比如:翻转课堂、案例教学,结合典型项目,引导学生通过程序编程进行实践,唤起学生的学习兴趣,进而提升学生的学习质量。通过引导学生进行编程实践,逐渐传授给学生相关的知识,在编程中学,在学习中编程,当所有相关知识都学习完后,学生也编写完一个完整的系统,通过这样的学习方法,来提高学生的学习兴趣,增强他们的成就感,逐步培养学生的学习能力及其创新意识[4]。

2.3师资队伍建设

在师资队伍建设方面,一方面通过鼓励我院专职教师到企业参加兼职工作或培训,培养他们的实践教学经验,使其成为理论教学功底扎实、实践教学经验比较丰富、教学能力较强的,符合应用型人才培养目标要求的“双师型”教师[1][5];另一方面,通过聘请企业开发人员,参与JAVA编程的实践教学,借鉴企业实际开发项目,用项目开发中的任务作为牵引,引导学生完成项目开发的各项任务,包括项目分析、信息采集、计划实施、反馈改进、结果展示、深入思考并拓展等全过程,达到培养和提高学生职业能力的教学目标[6]。

2.4个性化教学

通过采用问卷调查、课堂测试、与学生进行多方面沟通等途径,对学生的学习习惯、学习基础进行全面了解,并分析他们的基本情况[7][8],针对不同学习习惯、学习基础的学生,了解其兴趣爱好和学习效果,试行分组教学方式,有区别的对待学生,结合我系的专业特点和专业基础,在引进项目时,侧重引进与我系相关的案例,比如传感器数据流的采集、传输与处理等方面,避免与计算机系进行的网页处理、网站搭建等方面的教学重合,避免缺乏专业特色。将教学的所有班级按照学生的实际情况分成若干小组,突破传统以班级为单位的教学模式,每个小组作为一个团队,因材施教。通过下达与我系的专业相关的项目作为任务,引导学生进行团结协作,通过任务分解,查阅与项目有关的资料,协同讨论,解决问题,最后进行项目整合,并汇报情况。引导学生通过思考学习、团队合作等,培养自身的学习能力、查阅文献资料解决问题能力,使其具有团队合作精神。[6][9]在个性化教学过程中,对于不同项目团队采取有区别的对待,根据其实际的能力布置相应难度的项目任务,使得基础较好的学生不会因为项目难度小而降低学习积极性,基础不好的学生也不会因为项目难度大而不肯前进。

2.5教材改革

为了保证教学质量,考虑到我院生源实际情况以及专业需求,在传统教材的基础上,收集和电子信息工程专业、物联网工程专业相关的实际案例,汇编成册,完善学生的实践教学教材,并形成习题库、试题库供学生选择练习。通过收集相应的实际案例,以及收集学生练习这些项目后的意见,尝试编写实训教材,完善习题库、试题库建设。

2.6考核方式的改革

对学生的学习情况,从注重结果评价到强调过程性评价,学生课程成绩形成包括考试成绩、实验成绩和平时成绩构成。考虑学生的基础不一样,实行有区别的考核方式,尽可能提高学生的学习积极性,培养优秀学生的同时兼顾大部分学生和基础较差的学生,实验成绩在实验的最后一次实验课产生,并考虑有区别的教学,给每组学生其相应难度的题在计算机上进行实验考试,最终形成实验成绩,不再是统一一道题,实验成绩占总成绩的20%,有助于提高学生学习的积极性;平时成绩占总成绩的20%,由老师依据学生平时的项目学习、自主学习、翻转课堂等情况评定,进一步激励学生认真学习,提高他们的学习积极性和主动性。考试成绩占60%,由期末考试成绩决定,主要考核学生对基础知识的掌握程度。

3实施过程

在实际教学过程中,我们将学生分为试验组与对照组,试验组进行上述教学改革,对照组仍进行传统的教学方式教学,下面着重进行试验组实施过程的介绍。首先,对学生的学习基础与学习兴趣进行摸底了解,将试验组学生大致分为A、B、C三组,他们的基本情况如下:对于A组同学,他们由于学习基础好,并且主动学习的热情高,学习习惯也较好,因此在传统授课的基础上,增加了翻转课堂[10-12]、案例教学、企业项目实践等多种教学方式,课前鼓励他们利用网上教学视频自主学习基本的语法知识,理解基本知识点;课堂上通过案例教学引导他们学以致用,动手实践,让他们对重点知识点理解更加深入;通过设计一些值得探究的问题,引导学生积极思考,激发学生的学习热情,学生在学习过程中保持与教师的实时互动,教师根据学生实际学习反馈的情况,进行有针对性的讲解说明,最后安排企业有经验的工程师进行项目分解与实践教学。本次对于A组同学来说,Java语言特点及运行环境搭建、Java语言编程基础、常用类的使用、图形界面等知识点,采用翻转课堂进行教学,化被动学习为主动学习;类的定义和对象的创建、继承与多态、接口与实现、内部类、异常处理机制、异常处理能力等知识点使用传统教学与案例教学结合;Java输入、输出、GUI界面设计、AWT事件处理、ArrayList动态数组、应用、JDBC体系、多线程概念、线程分类、Socket接口等知识点采用案例教学配合项目实践进行教学。本次采用的教学项目是“灾情数据流实时采集与分析处理”,结合数据处理的实际情况,将项目分解为灾情数据采集、灾情数据分析、灾情数据处理三个方面进行项目分组与实践。对于B组同学,采用传统授课、案例教学、案例实践等,将案例教学贯穿于整个教学环节中,通过各种案例,深入讲解所涉及的知识点,并在整个教学过程中,贯穿“毕业生网报系统”的开发,通过讲解类的定义和对象的创建、继承与多态、接口、异常、Java输入、输出等知识点,引导学生进行“毕业生网报系统”所需的类定义及基本输入输出操作等练习。通过讲解GUI界面设计、AWT事件处理等知识,引导学生进行“毕业生网报系统”的图形用户界面设计,接着通过结合动态数组应用等知识,引导学生完成“毕业生网报系统”基本功能模块的开发。通过讲解数据库、多线程和Socket接口应用等知识,引导学生完成“毕业生网报系统”。对于C组同学,由于其基础较差,主要采用传统教学方式进行授课,配合验证性实验进行知识点理解。同时,对这部分学生进行分组,每组分配一名小组长进行监督学习,确保学生在课后能根据自身的特点进行补缺补漏。

4实施成果

经过课程群建设、课程内容与教学方式的建设、师资队伍引进以及个性化教学等系列改革,对于ABC三组学生,教学效果明显,A组同学能较好掌握面向对象编程的基础理论,并结合信息与通信工程系专业知识,较好地完成教学项目“灾情数据流实时采集与分析处理”;B组同学能够掌握面向对象编程的基础理论,并能够完成教学项目“毕业生网报系统”;C组同学能够基本掌握面向对象编程的教学内容,并具备一定的编程能力。学生基本能够符合预设目标。相比对照组,实验组在实际动手编程方面具备更大的优势。

5结语

本文通过分析信息与通信工程系在面向对象程序设计教学中存在的问题,有针对性地提出了课程群建设、课程内容与教学方式建设、师资队伍、学生个性化教学等一系列解决方案,并通过实际教学对比验证发现实验组在实际动手编程方面具备更大的优势。

参考文献

[1]郑韬,华冠萍,张华音.基于校企合作的Java应用型课程改革[J].浙江树人大学学报(自然科学版),2014,14(4):61-64.

[2]喻晓,陈涛.应用型本科Java语言程序设计课程教学改革研究[J].软件导刊,2014,13(10):163-164.

作者:洪惠群 刘大茂 单位:阳光学院