APP下载

应用型本科院校学生程序设计能力培养模式

2015-05-30黄旭

计算机教育 2015年4期
关键词:培养模式实践教学

黄旭

摘要:针对应用型本科院校学生程序设计能力存在突出问题的教学实际,分析影响学生程序设计能力提高的因素,从优化教学内容、创新教学模式、强化实践教学等方面对学生程序设计能力的培养进行探讨,提出以“设计求解问题的方案”为核心的程序设计能力培养方法。

关键词:程序设能力;培养模式;实践教学;问题求解

引 言

程序设计能力是计算机相关专业本科生专业能力的核心组成部分,对学生深入理解专业基础知识、促进业务素质培养、提高就业质量具有基础意义。对高等院校而言,切实提高计算机专业本科生的程序设计能力无疑是提高教育教学质量、促进专业建设的有效途径 。

目前一些学校的计算机专业针对此项能力的提高设置了C语言程序设计、程序设计基本训练、Java程序设计、C++面向对象程序设计等多门课程,累计课时量占到大学四年总课时量的l/10以上。这反映了学校对学生程序设计能力培养的高度重视。然而在实际操作过程中,实施效果并不理想。笔者对部分二本、三本的大三年级学生进行了调研,有近1/4的学生对程序设计表现得非常陌生,有超过1/3的学生对程序设计表现出畏惧心理。

1 问题分析

目前影响学生程序设计能力提高的主要因素在于以下几个方面:

(1)教学过程中,只注重语法知识的传授,忽略了解题思路训练,致使许多学生面对问题有畏难情绪,不知如何下手。目前多数程序设计语言类课程授课方式单一,理论课照本宣科,实验课过度放任,不适合二本、三本学生的实际情况。C++面向对象程序设计未能较好地体现“面向对象”的特征,学生体会不到设计方法上的优越性,而仅仅是被动接受新的语法,增加了心理负担。在教材选择上存在误区,认为程序设计类教材大同小异,忽略了优秀教材在解题思路训练方面的特色。

(2)相关理论化程度较高的课程内容枯燥,未能调动起学生主动学习的兴趣,致使学生理论模型与程序代码之间对应关系模糊。笔者认为,计算机专业课程具有鲜活的工程来源,即使像数据结构、算法等课程,也与现实生活、工程设计实例之间存在密切联系。目前的教学过程往往忽略了对此类联系的深入挖掘,未能调动起学生的学习兴趣,既影响了学生对理论模型的理解,又影响了程序设计能力的训练。

(3)实验环节过度强调算法执行效率,忽略了编码规范性,代码写完后就束之高阁,学生事后总结不够,影响了学生对思路的整理。笔者认为,代码功能、执行效率固然是程序设计所追求的目标,但程序设计更应该清晰地表达编写者解决问题的思路,程序应当成为记录问题解决方案、传播求解思路的载体,这才是程序设汁的根本。

2 培养模式

面对这些挑战和困难,许多学校正加紧对计算机程序设计课程的教学进行改革实践。随着计算机应用的普及,甚至一些非计算机专业的学生也在强化程序设计能力的培养,已有学者进行了一些有益的探索 。笔者从优化教学内容、构建新型教学模式和强化实验教学等方面人手,对培养应用型本科院校学生程序设计能力进行了探索。

2.1 基本思路

以培养学生求解问题的能力为目的,以提高学生兴趣为手段,以训练程序设计技巧为核心,着力培养学生的创新思维能力 、提高学生程序设计能力。基本思路如下:

(1)提高学生采用计算机程序设计的思维求解实际问题的能力。建立实际问题与求解模型之问的关联,训练学生面对实际问题构建求解模型的能力。

(2)提高学生对程序设计方法的兴趣。采用由简到繁、由具体到抽象的思路,训练学生逐步建立程序代码与实际运行效果之间的关联,形成代码町视化的思维模式,引导学生逐步建立对程序设计的兴趣 。

(3)训练相应的程序设计技巧、编码规范。通过剖析实际项目,引导学生养成科学、规范的程序设计习惯。

2.2 具体步骤

从优化教学内容、构建新型教学模式和强化实践教学等方面人手,改革程序设计基本训练课堂教学和实验教学,强化学生程序设计基本思路的训练 ,培养学生良好的程序设计思维,养成良好的编程习惯,通过理论与实践的紧密结合,并充分强调实践教学,从而提高学生的程序设计能力。

(1)优化教学内容,以训练学生程序设汁基本思路为导向,构建程序设计基本训练课程体系。课程教学中贯彻程序设计基本思路的训练,强化分析问题、解决问题能力方面的训练,注重问题分析思路 。加大基本算法、伪代码、流程图方面内容比例,培养学生面对问题形成求解思路的能力。教学内容组织如图1所示。

以C语言教学为例,第一个阶段采取双管齐下的方法:一方面向学生展示最简单的代码示例,剖析代码结构,使学生对源代码有直观认识,建立代码与执行效果之间的关联;另一方面借助流程图等工具,强化学生问题分析能力以及设计求解步骤能力的训练,引导学生养成用流程图分析问题的思维习惯。第二阶段围绕解决问题,逐渐融人基本语法的教学。第三阶段结合更为复杂的问题求解,进行综合训练。其中流程图工具的教学是本课程课堂教学的关键,应投入足够的时间,让学生充分理解。

同时,将基本语法的教学融人实际案例当中,加强学生用分析案例的思维理解基本数据结构、业务流程。增加程序案例分析的比重,通过阅读代码熟悉程序设计风格,理解程序设计皋本方法。

(2)构建具有课程特点的新型教学模式。一是多媒体教学方法。利用多媒体课件将很多难以理解的算法流程以直观形象的方式演示出来。二是类比教学方法。用实际应用和生活中人们熟悉的事物与枯燥、抽象的数据结构、算法思路进行类比,帮助学生直观、形象地理解和掌握程序设计基本知识,激发学生的学习兴趣。三是参与式教学方法。由教师根据教学目标与教学内容设置若干的教学主题或问题,同时也有选择地接受学生在课堂中提出的问题将其作为新的讨论主题,围绕对主题或问题的讲解和讨论让学生充分参与到教学过程中来。四是源代码比赛。通过“擂台”的方式让学生针对同一问题展示各自的解决方案,并评估方案的优劣。提高学生对编程细节的把握。

前三点可以全面照顾到各层次学生的学习需求,第四点有助于基础较好的学生进一步提高。实践中发现,部分基础较好的学生对源代码比赛有强烈兴趣,他们能够自发地从代码执行效率、代码长度、界面友好程度等方面阐述自己的代码质量。

(3)强化实践教学环节,提高学生的程序设计能力。营造良好的程序设计训练氛围。通过小型比赛、思考题、讨论课等方式引导学生提高对程序设计的兴趣,加强相关能力的训练。引入实际项目,训练学生阅读代码、理解代码的能力,将对知识点的分析应用到对实际项目的理解中,提高学生学习的兴趣。强化代码规范意识,培养学生养成良好的程序设计风格。注重实验规范,引导学生书写规范的实验报告,绘制流程图。

实践环节要强调模块化以及增量方法的教学,引导学生训练“自顶向下、逐步细化、函数实现、增量开发”的思路与技巧,建立顶层设计、模块化分析的思维,掌握增量开发方法。在作业、考试批改时,不能只看程序的最终执行结果,还要给设计过程较高的分值比重,引导学生重视设计过程,强化“问题求解”理念。

2.3 操作方法

(1)授课过程中以“设计求解问题的方案”为主线,强化学生建立问题求解模型。通过实际的问题案例,引导学生构建“问题分析一算法描述一代码实现”三步走的方案,训练学生分析问题、用算法语言描述问题的能力。

(2)基本语法与程序设计相结合,每周确定特定知识点进行强化,并设计3~5道题目进行详细分析。

(3)通过分析实际项目案例,提高学生阅读代码的能力,并熟悉代码编写规范,深入理解代码执行机理。

(4)通过讲解流程图、代码比赛等形式调动学生的积极性,主动钻研代码,不断提高程序设计能力。

操作中强调案例的引领作用,通过程序设计实例引导学生理解语法知识点和程序流程,通过项目案例引导学生理解程序结构以及业务流程。通过有形的案例融合问题分析以及代码实现两方面的能力,促进面向问题求解的程序设计能力培养。以案例为中心的教学模式如图2所示。

笔者在两个班的C语言教学中采用了上述方法。一个学期以来,班内对程序设计感兴趣的学生日益增多,部分原来没有动手习惯的学生也在逐渐尝试编写完整的代码。学期结束时,有20余人报名参加ITO人才培养实训,有5名学生主动申报了学校的智能家居学生科研计划项目,10名学生积极参加服务外包创新应用大赛,并在省赛中获得二等奖、三等奖各1项。这些成绩的取得,表明学生在C语言的课堂学习中激发了兴趣,增强了信心,切实掌握了“问题求解”的方法,而且对今后学生的学习将起到良好的示范带动作用。

此外,加强与相关院校的交流合作,走出去学习成熟的经验,也是探索培养模式的手段之一。程序设计类课程的授课教师应该经常参加相关教学方法改革的会议,不定期举行跨校听课学习。同时,要加强与国际服务外包人才培养基地的合作,交流培养经验,共享教学研究成果。

3 结语

对于应用型本科院校计算机等专业学生而言,程序设计能力培养是综合能力养成教育中的重要组成部分,也是影响其就业的关键因素。笔者针对目前这类学生的学习实际,提出以“设计求解问题的方案”为核心的程序设计能力培养方案,从教学内容、教学模式、实践环节等部分对方案加以阐述,并总结了教学实践中的操作方法。下一步将在程序设计能力培养方面作进一步研究,以此作为提高学生实践能力、进而提高学生就业质量的有效途径。

猜你喜欢

培养模式实践教学
服务地铁工学结合
电子信息类高技能人才培养模式分析
小学高年级数学自主学习能力的培养模式探析
青年农民创业人才培养模式研究
茶学专业校企合作实践教学探索
《电气工程毕业设计》 课程的教学设计
研究型学习在传热学实践教学中的应用
思想政治理论课实践教学研究述评
高职院校商务礼仪课程教学改革探索刍议
基于人才培养的高校舞蹈教育研究