李 梅,张小锋
(鲁东大学信息与电气工程学院,山东烟台264025)
摘要:分析C#课程教学的现状和问题,提出项目驱动教学法,从理论、实验到课程设计,阐述项目设计和任务完成情况。
教育期刊网 http://www.jyqkw.com
关键词 :项目驱动;C#;任务驱动
文章编号:1672-5913(2015)15-0085-04 中图分类号:G642
第一作者简介:李梅,女,讲师,研究方向为图像处理,limei_183@163.com。
0 引 言
C#语言是一种全新的简单、安全、完全面向对象的程序设计语言,是软件工程、计算机应用技术等专业的基础课程。目前C#课程教学存在一些问题:教学内容零散,学生学习目的不明确,学习热情不高;理论课堂上以教师为中心,学生被动接受知识,没有注重学生的主体地位;实验课上,主要以基础知识的验证型实验为主,综合型和设计型实验所占比重较少,限制了学生的自由发挥,以至于出现知道类的概念、知道如何创建类,却不知道如何用类的知识解决实际问题等状况,学生的项目开发技能较弱。为了解决上述问题,笔者采用项目驱动的教学方法,以学生为中心,从理论、实验和课程设计3个方面出发,注重应用能力的培养和综合素质的提高,为学生今后的学习和工作奠定坚实的基础。
1 项目驱动和任务驱动的教学法
项目驱动教学法是师生通过共同实施一个或多个完整项目而进行的教学活动,属于探究式教学模式的一种。教师将孤立的知识点设计在一个或多个项目中,学生通过分组讨论、协作学习等多种方式积极主动地获取学习资源,找到解决问题的方法,直至完成项目设计。项目驱动教学法将理论知识与实际项目有机地结合在一起,能有效调动学生学习的积极性,充分挖掘学生实际操作的潜能,提高学生发现问题、分析问题和解决问题的能力。
任务驱动教学法将以传授知识为主的传统教学方式转变为以解决问题、完成任务为主的互动式教学模式;将再现式教学转变为探究式学习,使学生处于积极的学习状态,每一位学生都能根据自己对当前问题的理解,运用共有的知识和自己特有的经验提出方案并最终解决问题。
2 项目驱动教学的设计和实施
2.1 教学内容的选择和组织
我们在讲授C#课程时,围绕学生能力的培养,以创建Windows应用项目为主线,弱化语法知识,把单纯地讲授抽象的理论变为在实际项目中学习理论知识,将教师的课堂讲授变为学生分组讨论、协作开发以及师生互动的过程。具体内容如下:首先学习Windows应用程序中基本控件的使用,穿插介绍C#的语言基础;有了一定的Windows程序设计基础,再结合图形图像处理来学习面向对象编程技术;然后开始ADO.NET和数据库开发技术的学习;在进行教学活动的同时,安排学生以小组为单位开始课程设计;最后是多线程、网络通信的讲授。
在学习本课程的同时,我们注重和其他课程之间的相互支撑。例如,ADO.NET技术涉及数据库的知识,学生只有在掌握基本的SQL语句使用的基础上,才能更加深入理解SQL语句在ADO.NET中的功能,从而决定何时使用、如何使用来达到设计目的。对于一些数据库知识较差的学生,教师会提供相关资料供学生课下补习,使其尽快完成数据库课程和C#课程间知识的相互渗透和融合。
2.2 理论教学
C#的理论教学采用项目引导、小组合作、任务驱动的方式进行。以学生为中心,教师为主导,由一个或多个项目贯穿整个教学,每个项目采用任务驱动来实现,在任务解决的过程中完成知识的掌握和应用。
具体实施过程如下。
(1)项目的设计。项目的设计非常关键,它是良好教学效果的决定因素之一。在学期初,教师依据教学内容设计合理的项目。一般来说,要把握以下原则:①教学内容相关性。项目设计的最终目的是教学,因此必须与教学内容紧密结合,涵盖大部分的教学知识点,并且能在课程规定的学时内完成。这就要求教师能够准确把握教学内容,在对其进行全面分析后,依据知识点的关联程度来选择或设计实际项目。②层次性和扩展性。设计的项目要具有层次性,这样可以依据项目的规模和难易程度,将项目分解为多个子项目,每个子项目的完成不必拘泥一次理论课堂,通过子项目的不断拓展来推动课程的进展。同时,设计的项目要考虑其扩展性,能让学生举一反三,探索项目改善的空间。③难度适中。设计的项目应难易适中,学生在已有知识的基础上,通过一定的努力能够完成项目,太难或太容易,都会影响学生探索知识的积极性,甚至影响教学效果。④实践性。设计的项目应来源于实际生产应用,这样才能激发学生的积极性。
(2)任务的实施。在任务实施之前,以自由选择为主,兼顾“强弱互补”的原则,将学生分组,每组4~6人。各小组选一位有责任心、基础较好的为组长,组长负责督促成员按时完成任务,协调成员间的任务分配。小组成员的相互讨论学习和共同合作能培养团队协作能力,促进学习资源的共享。具体包括如下步骤:①提出任务。教师根据教学内容和教学进度,将一个完整的项目分解成多个子项目,每个子项目进一步划分成多个具体的子任务,确定每个任务包含的新旧知识,要求学生带着要完成的子任务去学习,以探索问题来激发学生的兴趣;向学生下达任务评价单:任务需要掌握的知识技能、素质要求和任务评价标准。②分析任务。教师引导学生对项目分解后的子任务进行分析和细化,首先采用启发式教学引导学生:该任务分为哪些功能模块,在现有知识的基础上能否实现;然后,以小组为单位进行讨论:完成该任务需要哪几个步骤,已有知识可以完成哪些功能,哪些功能的完成需要新知识的支撑;最后,随机选择一个组汇报讨论结果,点评现有知识的局限性,导入新的知识点。③设计完成任务。教师使用多媒体课件将教学目标、教学内容、重点难点讲授给学生。根据上一个阶段提出的问题和新知识的讲解,学生分组学习和讨论,并给出任务的设计思路。小组成员陈述任务的实现方法和具体代码,教师针对学生的陈述提出合理建议,引导学生寻找正确的解决方法,鼓励学生开拓思路,扩展子项目。对于典型问题,教师直接在课堂上边分析边写代码,让学生能直观地看到问题的解决和子任务的完成过程。通过比较教师和小组成员的代码,找出自己的弱点,提高自身的编程能力。④总结任务。在完成任务之后,教师针对任务的完成效果提出项目的改进方法,重点讲解学生在讨论过程中遇到的问题,并导出下次任务。⑤评价任务。根据每个任务评价单综合评估学生的学习成果,了解学生的学习现状和知识架构,鼓励先进生辅导后进生,及时发现项目存在的问题,不断调整教学进度,重新划分子任务,以更好地提高教学效果。
2.3 实践教学
C#是一门实践性很强的课程,学生需要足够的上机实践来充分理解、运用理论知识和训练动手能力。为了能快速有效地提高学生的应用能力,实践教学分理论基础训练阶段和课程设计强化阶段。
1)理论基础训练阶段。
在经过课堂讲授之后,学生已经充分了解到理论知识在实际项目中的应用,这时可以选择规模适中的项目让学生练习,巩固理论知识,训练动手能力。教师引导学生分析项目的需求,并以此制定详细的实验计划。每次实验课指定完成项目的部分设计,最终整合为一个功能完整的模块。训练阶段的学习使用项目驱动的教学方式,让学生自主学习,独立运用C#的相关知识完成教学任务,有助于学生了解和掌握知识点的运用技巧和手段,同时能培养学生的自主学习、探索能力。
2)课程设计强化实践阶段。
随着基础理论训练阶段的开展,学生具有了足够的知识储备和一定的项目开发基础,迫切希望独立完项目的设计过程。教师制定项目的评价标准,学生以小组为单位开始课程设计。首先,学生选择项目题目,题目可以是多种类型,如管理系统类、桌面游戏类等。教师对题目进行筛查,使题目尽可能与实际生活和学习相关。然后,小组成员内分工,每个人根据自己的特长负责完成项目的不同功能,通过小组成员间的相互协作完成项目的需求分析、系统设计、详细设计及编码和测试工作。最后,教师组织各组进行项目答辩,陈述项目的设计目的、实现技术和完成后的效果等内容,教师和其他组同学提问或给出合理建议。在整个过程中,教师从知识的传授者转变为学习的引导者,有目的地引导学生解决课程设计中遇到的问题,监督设计的进展,保障项目设计的顺利进行。
2.4 利用网络平台拓展课堂教学
为了方便学生的自学和教师的辅导,我们利用教学网站、微博、QQ等网络平台,将教学从课堂延伸到课外。教学网站提供教学大纲、课件、授课视频等课程资源库。方便学生下载和学习,将每节理论课的子任务和实验课的要求提前上传到教学网站,学生及时了解教学进度,查看任务单和任务评价标准,提交任务,查看成绩。这种不受时间和地点限制的学习方式,使课内和课外形成了一个有机整体。
2.5 课程的知识点和授课项目
根据C#的教学内容,我们选取了4个项目贯穿整个教学过程,每个项目再划分成不同的子任务。具体的授课项目、任务安排及知识点要求见表1。
3 考核
考试是学习的指挥棒,目前的C#考试方式以机试或笔试为主,侧重于对知识点的考查,但无法全面评价学生的能力。为了能综合考核学生对知识点的掌握程度和各项能力,我们采取基于过程的考核办法,将考核渗透到每一个理论或实验的子任务中。如表2所示,总成绩=平时成绩×50%+期末成绩×50%。平时成绩包括课堂和实验成绩,二者各占25%。其中课堂成绩依据教师指定的任务评价标准,结合小组的完成情况评分,最后将多个任务成绩加权平均,并以小组成绩作为该组的每个成员的成绩。实验成绩则依据学生提交的实验报告计分。通过基于过程的考核,教师不但能及时了解学生对知识的掌握和实际应用情况,同时也能及时发现项目完成过程中存在的问题,从而及时改进教学方法。
4 结语
通过在C#教学中实施项目驱动的教学法,学生的兴趣显著提高,学习变得更有针对性,学生不仅可以系统地学习理论知识,同时,也能够体验完整的软件项目开发的全过程,有利于培养其实践能力、自学能力和团队协作能力。但在具体实施过程中,这种教学法不仅要求教师具有坚实的理论基础,能够准确把握教学内容,合理地选择教学项目并设置子任务,更要有丰富的教学经验,能够根据教学情况随机应变。
教育期刊网 http://www.jyqkw.com
参考文献:
[1]胡萍,蓝庆青.“.NET程序设计”课程的项目驱动教学改革探析[J].中国电力教育,2014(14): 141-142.
[2]解绍词,代劲.基于任务与项目混合驱动的Java平台课程改革探索[J]教育教学论坛,2014(42): 124-125.
[3]彭召意,文志强,朱艳辉,以项目驱动的面向对象程序设计课程教学研究[J]计算机教育,2012(24): 95-98.
[4]郑豪.基于任务驱动和项目驱动的“软件工程”教学研究[J].中国电力教育,2011(4): 101-102.
[5]李梅.应用型人才培养模式下文科类数据库教学探讨[J].计算机教育,2013(21): 100-104.
[6]赵怡.项目驱动在程序设计教学中的应用[J].计算机教育,2014(8): 73-76.
(编辑:郭田珍)