于树科,李 扬,祁宏宇
(江苏商贸职业学院艺术与电子信息学院,江苏南通 226000)
2010 年《国家中长期教育改革和发展规划纲要(2010-2010年)》和2012 年教育部印发的《国家教育事业发展第十二个五年规划》中指出要“大力发展职业教育”“遵循技术技能人才成长规律,着力培养学生的职业技能”“重点培养产业转型升级和企业技术创新需求的发展型、复合型和创新型的技术技能人才”。
C#程序设计课程直接面向企业实际应用需求,是我校高职高专计算机应用技术专业、软件技术专业、物联网应用技术专业所共有的一门高级语言类基础课程,具有十分重要的地位和作用。该课程与C 语言程序设计课程紧密衔接,着重培养学生面对实际项目的需求分析能力、数据结构及算法设计能力、面向对象的程序编写及调试能力等;并且该课程具有知识点丰富多样、抽象性强、实践性强等特点,需要培养学生使其具有较强的系统思维及逻辑思维能力。
传统的以教师主导、理论讲解为主的教学方法,在教学实践过程中存在许多的问题与不足,很难适应C#程序设计课程的特点。为了解决以上问题,本文围绕项目教学法(PBL,project-based learning)在C#程序设计课程教学过程中的应用,从项目任务的提出、项目目标的结构化分解、项目过程中知识点的应用和项目评估4 个方面进行详细阐述[1]。
传统的教学方法以教师作为教学过程中的主导,过多地依赖于书本,强调学习者的理解记忆能力,难以适应C#程序设计课程的特点,难以获得良好的教学效果。
C#语言虽然取消了C 语言中的指针,删除了一些复杂的语法元素,不允许直接对内存进行操作,但仍然具有较高的灵活性,表现为数据类型及运算符丰富多样、语法灵活、类和方法众多等。传统的教学方法以教师为主导,多注重语法和知识点的讲解,学生的学习过程显得十分枯燥,课堂上学生不易集中精力,再加上学习内容具有较强的抽象性,学生难以理解,这些都极大增加了学生学习的畏难情绪,很难激发学生的学习积极性。
传统的教学方法注重课程的学科性、理论性、系统性,而提供给学生实际动手的机会明显不足,学生往往感觉实践与教学是相对独立的,并没有使两者紧密结合,从知识点到应用环节也没有很好地融会贯通,使得学生的实践应用能力难以得到充分锻炼。但是,对于职业教育来说,应用型人才的培养才是高职教育的重要目标,教学无疑应以实践能力的培养和技能的全方位训练为主,理论教学需更好地为实践服务。
当学生面对实际的企业应用时,能运用软件工程的思维方式,系统理解程序设计的整体框架流程,就显得至关重要。传统的教学方法很难将软件工程的思维框架充分表达,并被学生有效地吸收且深入地理解。学生通常经过一个学期的学习后仍然很难独立面对具体的实际应用目标,承担程序的开发和测试。
针对上述问题,我们采用项目教学方法来贯穿C#程序设计课程的始末,以学生为主导,从项目问题的提出、项目任务的结构化分解、项目过程中相关知识点的学习和应用、项目教学评价4 个阶段来实施,增加学生的主动参与性,提高学生的学习积极性,为学生提供更多的实践机会,使学生能更加系统、深入地理解程序设计的整体框架流程。
项目教学法是师生通过共同实施某项目而进行的教学活动[2]。教师将一个相对独立的任务项目交予学生,让学生完成信息的收集、方案的设计、实施以及完成后的评价。教师在整个教学过程中起咨询、指导与答疑解惑的作用。学生是教学过程的主导者,需要了解和把握项目的每一个环节。
杜威首先提出了项目教学法的概念。基于项目的学习强调以学生为中心,鼓励学生询问并提炼问题,对项目进行设计和计划,组织管理项目工作,并鼓励团队协作。支持项目教学法的理论基础有建构主义学习理论、杜威的实用主义理论和情景学习理论[3]。建构主义学习理论认为学习的过程不是被动地接受知识,而是学习者基于已有的知识,在一定的情境下,通过对信息的搜集、整理、分析实现对新知识的探究性学习。杜威的实用主义教学理论提倡“做中学”,即通过完成工作任务的过程来获得新的知识和技能。情境学习理论认为知识是情境化的,学习是个体与情境相互作用的过程。项目教学法通过设立项目任务来构建学习情境,由学生主动完成资料收集、整理、分析,细化项目任务,并在老师的咨询或指导下完成主动的边做边学的整个过程。
项目教学法全面应用于C#程序设计课程需要从宏观和微观2 个方面把握。在宏观方面,教师需要纵观课程全局,熟悉课程整体架构,了解重点与难点的分布,设计出适当的综合项目去覆盖课程中的知识要点。在微观方面,教师需要深入把握课程的各个知识模块,并针对每个知识模块设计具有针对性的微小型项目,推动课程的展开。接下来,本文将从宏观和微观两个方面进行详细阐述。
C#程序设计课程的总体架构可分为5 个主要部分:基本语法元素;结构化程序设计;界面设计;面向对象程序设计;测试。基本语法元素部分包括基本数据类型、运算符和表达式;结构化程序设计部分包括顺序结构、选择结构和循环结构;界面设计包括控件、窗体、GDI+图形等;面向对象程序设计包括类和方法;测试部分包括异常处理及调试。在传统的教学过程中,5 个部分的教学顺次进行。使用项目教学法则可以在项目中有选择性得涵盖并融合这5 部分的内容或某几部分的内容,项目的设计也可以从浅入深,从易到难。例如,综合实训项目图片管理器、俄罗斯方块游戏等。
以设计图片管理器为例[4],项目教学法可分为5 个步骤:
(1)项目目标任务
制作一个图片管理器,用户可以使用它对图片进行匪类管理。
(2)项目的需求分析
①需要良好的人机交互界面;
②对图片分目录管理,用户可创建、删除目录;
③对目录下的图片以缩略图的方式浏览,并可在浏览过程中删除一张或多张图片;
④同目录图片可以顺序浏览,向上或向下切换,可以自动播放方式浏览。
(3)项目详细分解
①界面设计:主窗体MainForm、创建目录窗体FrmCreate-Folder、导入图片窗体FrmLoadPic 等,并在各窗体上分布控件;
②类设计:表示图片的类PicInfo 类、表示目录的类Folder类;
③方法事件设计:例如窗体Load 事件,按钮、复选框等控件事件等。
(4)项目实施与测试
代码编写、调试及测试。
(5)项目评价
该项目教学实施的整体过程如下:首先由教师根据学生学习情况及教学目标确定项目的总体任务目标;引导学生进行以小组为单位的讨论及合作,进一步确定项目的需求;紧接着,引导学生或以学生为主体、教师作为咨询者的方式,通过进一步深入分析,将项目进行细粒度的分解;由学生进行代码编写、调试及测试;最后,由教师引导学生进行项目评价,指出项目实施中做得好的地方,并指出存在的问题与不足,并可对项目进行进一步的深化、改进。
微观设计是指针对某个具体的知识要点或课程模块进行项目设计,例如,针对循环结构进行项目设计。这些小的项目设计贯穿整个教学过程,具有很强的灵活性,可以只覆盖预期教学目标中的知识要点,也可以将覆盖预期的知识要点与已学过的某些知识要点相结合。教师可根据学生的实际学习情况和教学进展及学时分配情况灵活设计一系列小型项目。
将项目教学法运用于C#程序设计课程的教学中,有助于提高学生的学习兴趣,有效增强学生的实践能力,并使学生对所学知识体系有了更加深入系统的理解,引导学生以团队方式自主完成实际项目,遵循培养技术技能型人才的规律,取得了良好的教学效果。
[1]张学林,陈齐超,段珊,等.项目教学法在“C 语言课程设计”中的研究与应用[J].实验技术与管理,2011(2):164-167.
[2]陈婷.C 语言程序设计实验教学改革探究[J].实验技术与管理,2010(10):182-184.
[3]徐涵.项目教学的理论基础、基本特征及对教师的要求[J].职教论坛,2007(11):9-12.
[4]陈广,林沣,伦墨华.C# 程序设计基础教程与实训[M].北京:北京大学出版社,2013.