面向对象程序设计类课程的工程化教学探讨

时间:2022-09-28 06:12:16

面向对象程序设计类课程的工程化教学探讨

【摘 要】本文针对面向对象程序设计类课程目前在教学过程中出现的问题,根据面向对象程序设计类课程的特点提出工程化的教学模式,并从教学内容、教学方式、实践教学、产学研及考核方式五个方面进行工程化教学的实践,有效提高了面向对象程序设计类课程的教学质量及学生的工程实践水平。

【关键词】面向对象程序设计 工程化教学 教学改革

【中图分类号】G 【文献标识码】A

【文章编号】0450-9889(2017)02C-0153-03

面向对象的程序设计方法已经成为应用程序的业界开发主流。面向对象程序设计类课程在整个专业课程体系中占有重要的地位,其教学目标是让学生了解面向对象的概念并培养学生使用面向对象技术进行程序设计和编写的能力。面向对象程序设计类课程主要包括“C++面向对象程序设计”和“Java程序设计”。面向对象所涉及的抽象概念繁多、实践性强,特别是C++语言语法复杂,Java语言内容广泛。如果采用传统重视理论知识的教学方式,在极其有限的课堂教学中,学生难以领会面向对象的精髓,甚至只能学到一点皮毛,无法学以致用。本文分析面向对象程序设计类课程教学中存在的问题,提出工程化教学模式并付诸教学实践,进行了多元化的教学改革,取得了良好的效果。

一、面向对象程序设计类课程教学中存在的问题

面向对象程序设计类课程的教学过程应该注重理论与实践的紧密结合,注重提高学生的工程实践能力。然而,有不少学生在学完相关课程后,只明白一些语法规则,无法看懂程序,也不清楚这门语言到底有什么作用,更无法使用面向对象的思想去设计程序。

(一)教学模式无法适应工程需求。目前,大多数教师在讲授相关课程时仍然采用以传授学科知识为主的传统教学模式。教师在教学过程中注重语法、语句和基本概念的讲解而忽培养学生程序编写的能力。大部分实验、实训作业只是单纯地对所学知识进行验证和模仿,与实际的工程任务脱节,从而造成学生知识迁徙能力及动手实践能力较差。在整个教学过程中只注重具体技术的实现而忽视了工程化思想培养,与市场需求脱节,导致学生感觉课程枯燥无味,学习积极性不高。这种教师演示、学生模仿的教学模式并不符合人的认知规律,无法培养学生的创新能力。

(二)教学内容与实际工程情景脱节。传统的面向对象程序设计类课程教材往往以介绍编程语言为主线,一般都是先给出相关的概念和定义,然后使用简单的程序进行阐明,缺乏工程中典型的实例介绍。通过课堂的讲授,学生虽然掌握了相应的知识点,但无法形成系统的知识体系。教学内容的安排只注重系统性,缺乏实用性,与实际工作场景有相当差距,无法为学生引入工程中所使用的新方法、新技术。这样,学生总觉得相关知识与技能“学过了,但不会做”,或者“什么都会一点,但是具体工作都不会做”,走向工作岗位的时候发现所学的内容并不能完全胜任所担负的工作。

(三)考核方式单一。在考核方式上仍然以分数为主要激励手段,虽然综合了考勤、作业、平时表现和卷面成绩几方面的因素,但无法真实评价学生的学习过程及实践能力。特别在卷面考察中,程序设计类题目的评阅一般按步骤给分,但实际情况是即使一个关键字有错,整个程序也无法运行。单一的考核方式使得学生只关心与考试成绩相关的学习内容,不重视多元化知识的积累及实践操作,而在课堂上学习到的内容其实只是工程实践中最基础的知识,往往与实际工程的要求相差甚远。

二、工程化教育的含义

从以上分析我们可以看到,传统的面向对象程序设计类课程的教学把重心放在具体技术的实现细节上,没有从实际工程需求出发,忽视了工程化思想培养,从而影响了课程教学的实用性。

面向工程化的教学则是提高学生工程实践能力的有效方法之一。工程化教学是高等工程教育的一种教育理念,其内涵是在培养高级工程人才的全过程中,从培养目标、业务规格设计到教学环节安排、教学内容选择、教学方法选用,从教育决策到教育实施再到教育模式,充分考虑工程的本质、工程工作的要求,体现工程教育的工程特色。就世界发达国家来看,德国应用技术大学、澳大利亚科技大学、日本技术科技大学、法国专业技术学院等都是工程化教育的代表。现代工程教育思想已经逐步从“专业化”转向“工程化”,面向工程化的教育已经成为当前国际高等工程教育的发展趋势。

在面向对象程序设计类课程的教学体系中,采用工程化教学模式,引导学生通过真实工程项目来掌握整个课程的主要知识和技能,是培养学生的工程实践和创新能力、增强学生对未来工作的适应性的重要手段。

三、工程化教学的实践

(一)教学内容的选择。工程化教学目的是使得学生在学习期间就具备职业所必需的实际工作能力,因此,教学内容的设置必须服从于企业需要、岗位需要和工作需要。在进行课程教学之前,首先进行社会需求调查,对企业所需的岗位职业技能进行分析,并结合学生的学习心理特点和认知能力水平来确定学生所应该具有的知识结构及职业能力,从而确定教学内容的设计方案。而且设计方案还需要由学校、行业专家、企业技术专家三方共同论证,以确保能够在有限的课堂时间内有效开展工程化教学。值得注意的是,在工程化教学中,语言细节已经不再是课程的重点。因此,教学内容要进行取舍,应该贴近工程应用的实际,保持教学内容的时代性与前瞻性。

学生在学习面向对象程序设计之前,已经学习过C语言程序设计,对于语言的语句及语法细节已经有所掌握,因此,在课堂上要抓住面向对象的程序设计思想的特征,围绕面向对象的抽象、继承、封装和多态这四大特点展开教学。C++语言是半结构化半面向对象的语言,而Java是纯粹的面向对象语言。考虑到学生已经学习过C语言程序设计,因此我们会先开设C++面向对象程序设计课程。这样学生会体会到结构化的程序设计和面向对象程序设计之间的本质区别。在学习过C++语言中的面向对象概念以后,再开设Java程序设计课程,就会水到渠成,学生会越学越轻松,越来越有兴趣。

在实践教学过程中,还需要注意根据企业需求对软件开发平台进行选择。比如C++应用程序的开发,在教学中一般使用VC++6.0,但在企业开发过程中,一般使用VS版本或QT、wxWidget平台。因此要注意教学过程贴近工程现状,使学生尽可能了解工程开发中的情况。

(二)教学方式的选择。教学内容确定后,需要根据教学内容来选择具体的工程实践项目,将面向对象程序设计类课程的知识点融合在具体的工程实例中。工程实例相互之间应该具有一定的相关性和连贯性,从而理顺课程知识点间的关系,使之相互衔接,形成系统的知识结构,使得整个相关课程的教学体系具有整体性、系统性和框架感。

在C++的教学过程中,我们将一个小型项目“图书管理系统”的设计和开发过程贯穿于整个教学中。将图书管理系统的模块进行拆分,每次课程解决一部分内容,从类的设计到类的继承和派生,从对象到对象数组,从静态多态到动态多态,循序渐进,从简单到复杂。教学过程完成以后,学生对于使用面向对象的概念来开发类似的管理系统就有了一个具体的认知过程。在Java语言的教学中,考虑到学生已经掌握面向对象的概念和含义,采用较为复杂的“网络聊天程序”作为工程教学案例,该案例不仅涉及Java语言的使用和面向对象的思想,还涉及网络协议的理解和B/S程序的设计,能够进一步拓宽学生视野。

在教学方式上,采用项目教学法将“工程项目”引入到教学中。教师在课前即将相关PPT交予学生,由学生自学基本概念。在课堂上,教师引入工程项目,将需要解决的问题以项目的形式交给学生,对该项目所涉及的重要思想和概念进行讲解和强调。在讲解过程中,采用问题驱动的教学方式启发学生,从而充分发挥学生在学习过程中的主动性。之后由学生自己按照实际工作的程序制订解决方案,进而完成整个项目,从而培养学生解决实际问题的能力。在以学生为主体的教学模式中,教师是项目实施的引导者、技术总监和项目经理。教师需要严格把关学生给出的任务解决方案并给出专业意见。在任务完成过程中,教师应该适度给予专业知识及操作技巧的指导。任务完成后,教师对任务的完成情况进行点评,并根据评价针对性地对学生进行辅导。同时,学生之间也相互进行点评,扬长避短。

(三)实践教学的开展。面向对象程序设计类课程的实践教学是培养学生工程实践能力的重要环节。针对相关课程的特点,设置了三个层次的实践教学内容:基础性实践、综合性实践、设计性与探索研究性实践。在课堂教学中,根据需要灵活融合实践教学,摒弃传统教学中理论课和实践课严格区分的模式。

基础性实践主要作用在于巩固学生对于知识点的掌握,由学生独自完成。综合性实践在课程完结后开设,以课程设计为主要表现形式。综合性实践需要根据学生情况选择难度适中的真实工程项目作为开发任务,将学生分为项目小组进行程序开发,完成项目的构思、设计、实现、运作四个环节,培养学生团队合作能力,并帮助学生进一步积累相关的行业知识和项目实践经验。课程的课时极为有限,而面向对象程序开发需要大量的实践才能达到效果,因此在课外开设设计性与探索研究性实践。设计性与探索研究性实践可以由相关的学生社团发起,也可以由教师组织兴趣小组进行学习。设计性与探索研究性实践将重点放在应用上,而不拘泥于具体的实现语言,让学生接触到本专业最新的研究领域,从而拓宽学生的视野,实现与企业的“零距离”对接。这样就形成了一个有梯度、有层次、有阶段性的实践教学体系。

(四)产学研的开展。教师要实施工程化教学,必须自身具备相当的工程素质,因此只有积极开展校企合作,专业教师进入合作企业,参与企业生产、科研、产品推广、服务等各个实践环节,才能克服在教学过程中理论和实践相脱离的弊端。教师依据企业需求和真实的工作过程及时调整面向对象程序设计类课程的内容和教学模式,进而提高自身的学术水平和教学质量。同时,聘请企业的技术人员和主管人员到学校开设相关技术讲座,将企业前沿应用介绍给学生,从而激发学生的兴趣,树立学习目标。在学生开展设计性与探索研究性实践的过程中,聘请企业技术人员作为指导老师,与专业教师一起承担项目运作的指导和监督职责,使学生的程序开发过程符合企业规范,并为优秀的学生创造条件,使其能够参与到企业的相关工作中。同时,加强实验实训基地的建设,开设相关课程的针对性企业实习,为学生创建优良的实习环境,参与真实的企业工程实践。

(五)全面的考核制度。将学生的工程实践能力引入评价体系,并加大工程实践能力在评分中的比重(30%以上)。在团队合作的课程中引入团队评分制,将系统实现、任务分工及合作情况、项目答辩等作为学生的考核指耍对同一开发小组的成员要有明确的个人评价,而不是对小组整体开况进行笼统的考核和评价,让学生体会到(下转第172页)(上接第154页)有付出就有收获,避免个别学生浑水摸鱼。同时,将学生实习企业的反馈计入考核体系,通过收集企业和学生的反馈来指导课程的教学。对学生参与的相关社团活动和兴趣小组的工作进行激励,有条件的予以经费支持或计入奖学金评定。

总之,面向对象程序设计类课程的工程化教学实施取得了一些明显的效果,学生不仅掌握了相关的语言,更对企业中面向对象的程序开发流程有了实质的认识,能够用面向对象的思想来解决相关问题。同时,兴趣小组和编程社团的活动也步入正规,学生参与竞赛的热情高,学习主动,也取得了一些成绩。教学中,教师在得到学生的主动回应后,积极性更高,责任心更强。从实施过程和结果来看,工程化教学方式是符合面向对象程序设计类课程的特点的,是行之有效的。

【参考文献】

[1]胡善风,汪茜,程静静.地方应用型本科院校的课程考核改革探索与实践――以德国应用技术大学为例[J].国家教育行政学院学报,2016(1)

[2]吴薇,朱乐平.澳大利亚科技大学联盟教师发展中心特色探析[J].大学教育科学,2015(4)

[3].计算机网络专业工程化教学改革实践[J].管理学家,2014(19)

[4]杨文君.软件工程实践教学改革探讨[J].计算机工程与科学,2011(S1)

[5]游明英,彭军,杨治明.培养应用型软件人才的工程化实践教学体系探索[J].计算机教育,2009(22)

[6]潘天红,陈权,宋余庆等.工科类专业实践教学改革和创新能力培养探索――依托创新工程设计国际化教学(SPIED)[J].教育与教学研究,2016(9)

【基金项目】桂林航天工业学院教学改革研究项目(2013JB05);广西高等教育教学改革工程项目(2015JGA383)

【作者简介】覃 科(1979― ),女,湖北松滋人,桂林航天工业学院计算机工程系讲师,硕士,研究方向:模式识别,数据挖掘。

(责编 黎 原)

上一篇:新媒体背景下幼师数学教学策略 下一篇:问题驱动教学方法在中学化学教学中的应用举例