APP下载

基于项目驱动的C#程序设计课程教学研究

2019-12-19蒋红军

广西教育·C版 2019年9期
关键词:项目驱动程序设计课程教学

【摘 要】本文阐述传统的C#程序设计课程教学存在的课程入门受限、理论与实操脱节、课程教学手段创新能力不强等问题和不足,论述基于项目驱动的C#程序设计课程教学设计、实施与教学评价体系构建 ,并进行教学反思。

【关键词】项目驱动  C#程序设计  课程教学  设计  实施

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

【文章编号】0450-9889(2019)09C-0169-03

C#程序设计课程所教学的C#是微软基于.NET Framework平台所开发的面向对象的编程语言,不仅具备C语言和C++语言的应用特征,也全面继承了面向对象的开发思想,而且兼具Delphi与VB语言优势。C#程序设计课程的教学目标为:掌握C#语言设计程序的基本技能,掌握面向对象和结构化的程序设计思路与方法,完成实用性强、可读性强、规范性强的桌面应用程序的写、调和运行工作。从现阶段看,国内高校的计算机专业基本开设了C#程序设计课程,但多年来所用教学方法依然存在传统教学的弊端,并不利于学生系统性知识构建。为此,现代教学主张引入项目驱动教学法,项目驱动教学法有别于传统教学理念,是可以灵活变通和升级扩展的教学方法。对于C#程序设计这样的课程,要求学生动手实践能力够强,采用传统教学方法已经有些不合时宜,应在课程教学中引入项目驱动教学思想,从而持续有效提升学生的学习实践与合作创新能力。

一、传统的C#程序设计课程教学存在的问题和不足

(一)设计语言的学习基础与掌握层次有别,课程入门受限

初入大学的学生,计算机基础知识水平是有明显区别的,在深入学习计算机设计语言方面的情况更加复杂且不容乐观。很显然,硬件设施投入相对欠缺的偏远农村地区学生,计算机应用基础较弱,掌握新的计算机理论与技能的消化和吸收效率也较低;部分学生的计算机基础知识与应用理论学习毫无章法和规律,也无法集中注意力完成学习;有些学生对学习充满了反抗与厌恶,在学业上颓废消沉。除了这些主观因素,C#程序设计中的语法规则、多变表达形式、抽象程序设计思想等客观因素,同样让学生的学习处于被动状态。相关专业的学生在课程学习中,对于设计出像样的程序充满渴望却难以办到,在实践中多次出现错误后,也丧失了调试改进的能力与信心。因此,传统C#程序设计课程教学的不足首先就在于学生对课程的兴趣度不高,课程入门时受到诸多影响和限制。

(二)教学内容守旧,理论与实操脱节

随着时代的不断进步,计算机的软硬件技术都在快速发展,但教育教学的内容更新始终无法与计算机技术革新保持同步,许多内容都可能短时间被推翻和修改,大量课堂沿用陈旧的教学内容。不少计算机教师在设计中偏重程序语言,并未在程序设计的结构、逻辑上花大力气,更未明确学生需要在程序设计中完成怎样的目标,理论与实操存在脱节,以至于不少学生上过专业课程后,在实践动手创新方面并无起色,学生无法用实践操作来验证自己的理论所学,也就无法巩固和提升理论知识的构建,所有的知识点不能系统组合形成对解决实际问题有所帮助的实用性程序。

(三)课程教学手段的创新能力不强,教学效果不明显

C#程序設计课程的教师虽然多数在编程方面技术出众,但是要从教学的角度来传播C#程序设计的思想与内容,还有很大的上升空间。虽然大多数教师尊重课程改革所提出的多样化教学倡导,用多媒体教学替代了传统的“黑板+粉笔”板书式教学,但是又会出现另一个极端,就是教师开始过多依赖多媒体技术手段,PPT制作画面精良,但却没有取得明显的教学效果。课程教学手段的创新能力不强,学生自主探究的学习积极性就难以被激发,学生的课堂主体地位就难以得到真正的巩固,程序设计的教学只会压缩学生在课程教学中的学习创造力,发挥不出应有的教学作用。

二、基于项目驱动的C#程序设计课程教学设计与实施

(一)C#程序设计课程项目的设计

1.项目的合理化设置。项目设置是否合理化,决定了教学效果的好坏。C#程序设计课程中要运用项目驱动教学时,首先应明确设立项目,确保后续工作都能围绕项目合理化展开。通过项目在不断解析中学习,学生可体验到实战性的软件程序开发,从而积攒实战经验。

通常需要从以下几方面加强项目合理化设置:第一,项目应源于真实实践,具备典型性、实用性,关联学生日常工作、学习或生活,可自我识别并激发主人翁意识,放大课程学习兴趣。第二,项目应由教师开发设计,是教师深思熟虑后的成果,便于教师宏观上统领,微观处细化调整与控制。教师熟知其中重难点,因而便于实施针对性教学。第三,要控制好项目规模与难易度,超规模超难度的项目实施只会打击学生信心与积极性;小规模低难度的项目又不能在相同教学资源上得到最优教学效果。项目应涵盖所有知识要点、难度中等且具有挑战性,从这个角度出发选择项目,学生的热情度就会比较高。

2.项目的模块化分解。C#的知识体系庞大,内容点多,项目设定完成后就需要考虑多项目进行模块化分解,要让各模块具备独立功能,然后再次对各模块进行分解,直至可用不同知识点讲解不同模块时分解终止。通过模块化分解,模块与课程知识点之间的联系变得更加清晰,也能验证前期的项目设置合理性。若分解过程中出现某些知识点的遗漏,则应调整增设功能模块,确保知识完整。分解中的不同模块的知识顺序并不统一,需要教师在教学中进行适度调整。实际教学中,教师对融合知识点的不同子模块进行讲解后,就完成整个课程项目的分解,也增进了对相关知识的理解和掌握。当然,对于一些重要知识点而言,并非通过独立的单体子模块所融合的知识理解就能掌握,而是需要结合多个子模块来探索知识点的结构,并积极开展相应的实践操作才可有效掌握重点知识点。这样,通过模块分解将一个综合项目划分成了相对容易的子模块,不仅使得各个知识点融入模块中,学生在完成项目模块的同时也掌握了相关知识点,又可以使学生树立完成任务的信心,充分调动积极性和主观能动性。另外,通过教学实践发现,学生仅通过某个子模块的实践来掌握该模块涉及的知识点是不够的,还应对重要知识点设计多个配套小项目,让学生通过大量的实践真正掌握该知识点。

3.项目教学模式构建。项目驱动教学中,依然需要寻找恰当的匹配教学方法与手段。C#程序设计开发项目多基于网络B/S架构Web应用系统,因此会出现大量功能化的复杂模块,需要开发者在合作中才能出成果,因此在课堂上要鼓励开展小组式团队开发,以小组为单位来执行项目各环节决议。分组过程也含有一定的技术性,主要是确保组间同质、组内异质,这就需要教师把关,认真了解不同学生的优点与个人表现,综合实际情况来兼顾优等生与后进生的互补穿插。小组制项目教学过程中,小组长的责任重大,要富有协调统筹和决定权,各小组成员的责任分工也要明确,整体上推动小组团队开发取得实效。

(二)C#程序设计课程项目教学实施

1.专业人士前期辅导。C#程序设计所要培养的专业人才是面向专业技术岗位的,需要有正确的开发理念和超前的设计技术。因此,学校不应让课堂教学成为信息闭塞的孤岛作业,而是积极邀请富有项目开发经验的专业人士到校辅导。特别是在教师设定好一个项目后,专业人员要从工程角度或专业技术要求出发,为学生梳理项目开发流程,可以通过公开讲座为学生传授最新的项目开发理念与技术。学生在这样的学前辅导中,能更清醒地认识到开发流程与环节,激发热情,提高兴趣,真正保持激情與信心投入到学习中。

2.组织学生优选项目。教学开始后,教师就应引导学生合理选择项目。为了体现学生的课堂主体地位,文中建议不再沿用现今多数项目驱动教学中的惯用方式,即由教师前期设置项目并于启动教学后直接提出项目组织模块设计,学生只需接受教师指导完成开发即可。调整以后的思路应是:教学启动后,要求学生自己寻找项目,并经过学生小组讨论后提出项目,这样在全班中会出现多个项目,由大家集中选择其中的项目。原则上,教师应合理引导学生向已选项目靠拢,因为已选项目代表着教师已经做了充分的研究。

完成项目选题后,教师应尽快引导学生分析项目,并要求学生小组参考各种数据资料,并基于自己的认识完成项目的需求分析和可行性研究,同时将项目中的不同模块进行分解,再由学生讨论判定功能设定科学合理性。教师要注重以下两点:一是自己要结合已有经验,从工程理论与实践应用等角度科学分析学生分解的功能模块,给予必要的意见建议。二是对学生在查阅资料整理信息过程中所出现的创新想法,教师要及时给予肯定与鼓励,适度加载兼具创意与实用性的功能模块。

3.创新项目教学模式。基于项目驱动的C#程序设计课程教学开展中,本文主张可用情境教学法,但需要进行必要的修正和完善。教师确定项目后,可参考项目的真实存在场景来构建课程教学中的程序设计开发场景,确保所有步骤都在操作规程与技术规范范围内,增加学生了解真实项目开发的深刻度。当然,从C#程序设计的课程教学需求出发,应围绕实验室中心开展教、学、练多位一体的教学模式。这主要是考虑到C#语言设计的强实践性,若坚持重理论轻实践,课程学习的意义就大大降低。因此,教师在对相关知识点做必要的讲解点拨后,就要求学生动手,以完成各类实验去验证理论知识点,这样掌握知识要点才会更快,也才有可能实现设计开发创新。在多功能一体的实验室中开展课程教学后,学生随时可以对教师说的某些语法技巧与知识结构进行实验验证,能够第一时间加强印象,达到消化吸收的目的,学习效率容易得到提升。

(三)C#程序设计课程项目教学评价体系的构建

1.个人总结评价。课程教学过程中,当学生最终设计出产品后,教师和学生应从个人角度首先总结自查自评本项目的教学得失。教师要看是否为学生点拨到了教学方案中的所有重点,语法、多态、图形图像、网络编程、数据库等重点是否合理分配,是否有应用或开发编程风格的不正当误导,是否成功激发学生兴趣或与学生保持深度互动,还要自我反省对于课堂内容的控制有没有把握到位,是否已为学生的上机实操提供代码提示、程序调试、错误分析等专业指导。学生的自评主要包括:是否在教师的合理引导下加强创新和发散思维,是否将理论联系实操后加强练习,是否掌握C#语言程序设计思想与方法等。

2.小组交流与评价。采用C#语言完成程序设计开发后,班级的小组团队要首先对成员的作品进行检验和讨论,要给出中肯的点评。特别是对于其中出现的富有创新性的且具有实用性的正确设计思路,要多展开讨论交流,相互之间取长补短,不断完善自身的思维缺陷,不断强化自己的设计开发信心与技能。同时,小组中出现的主题鲜明且独创性突出的作品,教师要首先给予表扬,并利用自己的专业评价标准为学生解释作品的闪光点,鼓励大家共同提升开发信心与热情。

3.综合能力考核测评。C#语言程序设计的技术性突出,知识架构分支多且联系紧密,学生可以在不断学习练习中主动掌握分析与解决问题的能力。课程最终的考核测评方式还应该考虑以上机实验考核为主、以纸质笔试考核为辅的模式。成绩分三部分:一是日常表现,综合成绩占比40%,主要涵盖学生日常各功能模块完成情况、进度要求、重要知识点及不同项目完成情况。二是实操表现,综合成绩占比30%,整体考核学生对全项目的设计开发、安装调试等完成情况。三是笔试成绩,综合成绩占比30%,主查专业课程基本知识点掌握情况。可见,综合能力考核测评涉及学习、实践、创新三方面能力的综考,是十分标准和可行的手段。

三、教学反思

C#程序设计课程上所使用的项目驱动教学法,可以作为典型教法推广到其他课程教学中去。项目驱动教学法其实对教师有相当高的要求,也对学校培养高素质高才干的“双师型”教师队伍提出了更高要求。因此,学校要注重开拓路径加大“双师型”教师培养力度,如可积极开展教师专业性技能比武,外派教师观摩学习新知识、理念、技术、平台,鼓励教师合理规划时间适度参加培训进修、主动申报不同级别教学科研项目、主动进入社会企业中交流取经等。这些内容,对于培养C#程序设计课程的授课教师而言同样重要。

项目驱动教学在C#程序设计课程中的应用已经得到了很多人的认可,但是依然会出现各种不理想问题,这就需要我们积极保持基于项目驱动的C#程序设计课程教学创新。如教师不必自选项目而让学生通过整理、讨论、对比后进行优选项目,理念改变后对学生的帮助作用是明显的。随着课程改革的持续深入,项目驱动教学法还会在具体课程教学中得到完善和改进,以有效推动教学工作的开展。

【参考文献】

[1]田雪.项目驱动教学在《C#程序设计》课程中的研究与应用[J].信息与电脑(理论版),2011(11)

[2]陈翠红.项目导向、案例驱动在高职院校C#课程教学应用与实践探析[J].科技创新导报,2014(16)

[3]党兰学.项目驱动教学在C#程序设计中的应用与实践[J].科技创新导报,2014(17)

[4]司明,龙熙华吗,李占利.构建虚实结合的计算机专业实验教学平台[J].高教论坛,2014(9)

[5]滕金芳.C语言程序设计课程教学方法的探讨[J].高教论坛,2007(3)

[6]张振平.多平台构建虚实结合的计算机网络实验教学体系研究[J].无线互联科技,2016(22)

【基金项目】广西职业教育教学改革立项项目“项目导向教学法在《C#程序设计》课程教学中的应用研究与实践”(桂教职成〔2015〕22号)

【作者简介】蒋红军(1982— ),男,广西全州人,广西农业职业技术学院讲师,硕士研究生,研究方向:计算机软件、计算机网络。

(责编 苏 洋)

猜你喜欢

项目驱动程序设计课程教学
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
高职高专院校C语言程序设计教学改革探索
依托工作室的软件工程实践教学研究
基于物联网项目驱动的嵌入式系统教学改革的研究与实践
基于“红色之旅”项目驱动的《调酒与咖啡》工作室制人才培养机制探讨
会计专业课程教学国际化的探索性研究
高职物流专业“物流费用结算实务”课程开发研究
高职院校医学检验技术专业提高课程教学质量的探讨
《供应链管理》课程教学改革