APP下载

以能力培养为导向的C#程序设计课程教学改革

2015-12-16周国军程裕强吴庆军

玉林师范学院学报 2015年2期
关键词:程序设计教学法知识点

□周国军,程裕强,吴庆军

(玉林师范学院 数学与信息科学学院,广西 玉林 537000)

以能力培养为导向的C#程序设计课程教学改革

□周国军,程裕强,吴庆军

(玉林师范学院 数学与信息科学学院,广西 玉林 537000)

围绕能力培养的目标,针对C#程序设计课程教学中普遍存在的问题,探讨了基于能力培养目标选取和提炼教学内容、灵活运用多种教学方法开展理论教学、以能力培养为导向设计实验项目等几个方面的教学改革方法. 给出了改革的思路,在实践中取得了较好的教学效果.

能力培养;C#语言;程序设计;教学改革

1 引言

C#语言是一种基于.NET平台的面向对象编程语言,以其简洁的语法、良好的扩展性、完善的错误处理机制等优点得到了广泛应用.近年来,IT行业对C#开发人员的需求量很大,为满足就业市场的需求,很多高校都开设了C#程序设计课程.对大多数应用型高校而言,该课程的教学目标是培养学生使用C#语言分析和解决实际问题的软件开发能力.由于该课程具有知识点多、实践性强的特点,理论和实验教学的难度较大.

已经有很多高校教师以能力培养为目标对C#程序设计课程的教学改革进行了研究,取得了很多有价值的研究成果.但是,在该课程的教学中仍然普遍存在以下几个问题:教学内容的选取不合理,没有或者很少对教材讲述的内容进行提炼,教学重点、难点不明确,学生难以掌握所学知识;没有根据教学内容选择合适的教学方法,学生对所学知识感到枯燥无味,不利于培养分析和解决问题的思维能力;实验项目过于简单,只是根据理论教学内容设计了一些验证型实验项目,缺少了设计型项目和综合实践型项目,不利于培养学生综合运用所学知识解决实际问题的编程能力;考核方式单一,不能对学生的学习成绩和综合能力作出客观评价.

本文围绕能力培养的目标,针对C#程序设计课程教学中普遍存在的问题,结合笔者在该课程教学中的探索和实践,对教学内容选取和提炼、理论教学方法、实验项目设计、考核方式等几个方面的教学改革思路进行了探讨.

2 基于能力培养目标选取和提炼教学内容

2.1 教学内容选取

C#程序设计课程的知识点很多,大多数教材在内容安排上都全面地覆盖了这些知识点.如果把教材内容完整地搬到课堂上,学生就难以掌握繁杂的知识点.与传统的重语法教学模式不同,应用能力的培养目标强调对知识的运用,应该以实际应用为出发点按照“必需和够用”的原则选取教学内容[1].C#语言的应用领域广泛,可以开发单机程序、C/S结构的网络程序和B/S结构的Web应用程序.由于教学课时的限制,选取的教学内容不可能面面俱到.围绕能力培养的目标,教学内容的选取应考虑以下两个因素.

(1)选择具有通用性的章节内容以满足一般软件系统开发的需要,包括:C#的开发环境和程序调试、基本语法、面向对象程序设计、泛型集合与索引器、委托与事件、Windows应用程序设计、文件操作、数据库编程.

(2)在通用性章节教学内容的基础上,根据专业培养方案和课程设置增加专业性的教学内容以满足特定领域的软件系统开发需要.比如:计算机软件专业可以增加GDI+图形绘制和图像处理、多线程和异步编程、多媒体编程技术等章节内容,网络工程专业可以增加Socket编程、FTP文件传输编程等内容.

2.2 教学内容提炼

理论与实践是紧密联系的,如果要达到熟练使用C#语言编写程序的目标,就得具备过硬的语法功底和完整的知识体系.C#课程的知识点多而广,但各知识点的重要性和使用频率是不同的,教师可以对知识点进行提炼以突出教学内容的重点和难点[2].根据教学重点和难点组织教学内容有以下两个优点:可以帮助学生在较短的时间内掌握重要的、常用的知识,以便触类旁通学习其他知识点,从而构建起该课程的完整知识体系;其次,教师引导学生在实际应用中根据需要自学其他次要的、不常用的知识点,培养了学生的自学能力.

教学内容的提炼需要考虑的因素较多,从应用能力培养的角度出发,可以从学生的认知能力、C#语言的应用发展方向提炼教学重点和难点,具体说明如下.

(1)根据学生的认知能力确定教学重点和难点.C#课程的先修课是C语言程序设计、数据结构和数据库原理,在已有相关知识的基础上掌握新知识是比较容易的,因此,在先修课中已学过的内容不适合作为教学重点.比如:C#的循环语句有while、do/while、for和foreach,由于C语言和C#语言的while、do/ while、for语句的语法格式相同,这三种语句的知识点就不适合作为教学重点,相应地,foreach是应作为教学重点.

(2)根据C#语言的应用发展方向提炼教学重点和难点.就目前而言,C#的应用开发方向主要是用于企业级的Web开发,与ASP.NET相关的知识点应作为教学重点.比如:Windows窗体程序设计的教学重点不是窗体界面的美化,而是与窗体类相关的对象、属性、方法和事件.

3 理论教学方法改革

程序设计课程的理论教学应解决三个基本问题:为什么教、教什么、怎么教[3],即培养学生分析和解决实际问题的思维能力.就目前而言,大多数C#教材的内容以基本语法和概念、操作步骤和代码为主,对案例的分析较少.要达到能力培养的教学目标,就要求教师针对不同的章节灵活运用多种教学方法,将抽象的理论知识转化为形象生动的教学内容,引导学生思考和分析问题,提高理论教学的效果.

3.1 案例教学法和比较教学法

案例教学法有助于学生理解和掌握抽象的理论和概念,能培养学生的分析能力[4].教学案例可以取自教材或实际生活,一个好的案例应具有典型性、趣味性和综合性.一些C#教材给出的案例普遍存在规模太小、数量太多、分析太少的缺点,需要对这些案例进行重组才能形成少而精的教学案例,在讲解案例的过程中才能有足够的时间去分析程序设计的思路.

比较教学法的三个特征要素是对象、内容和方法[5],在C#语言中有很多满足这三个要素的可比较知识点,因此,该教学法可以很好地应用于C#课程的理论教学中.在C#课程的很多章节中,可以结合案例教学法和比较教学法设计教学内容,这对学生掌握知识、提高分析能力大有好处.例如,在“抽象类与接口”章节的教学中,可以使用一个案例演示抽象类的定义和抽象方法的实现,再使用一个案例演示接口的定义与实现,然后对抽象类和接口进行比较,最后讨论抽象类和接口的应用场合.

3.2 启发式教学法

程序设计的关键步骤是分析问题和设计算法,因此,在C#课程的理论教学中,教师要积极地引导学生思考问题,培养学生的思维能力.启发式教学方法能激发学生思维[1],灵活运用该教学方法能提高C#课程的教学效果.在C#语言中,对字符串进行处理的类主要是String和StringBuilder.下面以StringBuilder类的教学为例,介绍启发式教学法在C#课程教学中的运用.

引入问题:如果要把一个含有10000个元素的String类型数组s的所有元素值连接成一个字符串,应该怎么办?

大多数学生会给出以下答案:

String t = "";

for (int i=0; i<10000; i++) t += s[i];

引导学生分析问题:每次循环要生成一个新的String对象,10000次循环则生成10000个String对象,内存消耗很大.

引出StringBuilder类,讲解StringBuilder类的特点和常用方法,再次引导学生分析以上问题,便会得到一个更好的答案:

StringBuilder sb = new StringBuilder();

for (int i=0; i<10000; i++) sb.Append(s[i]);

4 以能力培养为导向设计实验项目

传统的“重理论、轻实践”教学模式不利于应用型人才培养,实验教学是提高学习能力、实践能力和创新能力的重要环节,要达到能力培养的目标就必须重视实验教学.就目前而言,C#程序设计课程的实验教学中普遍存在以下两个问题:教学方法单一,学生学习动力不足;实验项目简单,难以提高编程能力.已经有很多教师对该课程的实验教学方法进行了研究和改革,提出了项目驱动式、任务驱动式等教学方法,对提高该课程的实验教学效果起到了推动作用.

能力的提高是一个循序渐进的过程,实验项目的设计也应该体现层次渐进、弹性可变的原则[6].实验项目大致可分为三类:学习知识的验证型、运用知识的设计型、拓展知识的综合型.验证型实验主要由学生自主进行,其目的是通过编写和修改简单的程序来掌握教材和课堂讲授知识.设计型和综合型实验主要由教师选取和设计项目,引导学生单独或以小组方式完成.从能力培养的角度考虑,实验项目应该以设计型和综合型为主,这就要求教师精心选取和设计实验项目.以文件和目录管理章节的实验教学为例,设计的项目如表1所示.

表1 文件和目录管理实验项目

从表1可以看出:设计型项目要灵活运用较多的知识点才能完成,综合型项目除了综合运用所学知识外,还得通过查找MSDN和相关资料才能完成.在实验教学中应适当地增加设计型和综合型项目的比例,通过实验项目提高学生的学习能力和编程能力.

5 考核方式改革

传统的考核方式一般采用“平时成绩+期末考试成绩”的方式,平时成绩以出勤、课堂表现为主,期末考试以笔试的试卷得分为主.这种考核方式不能对学生的学习成绩和综合能力作出客观评价,也是导致学生缺乏学习动力的主要原因.因此,需要对考核方式进行改革,基本思路如下.

(1)采用“平时成绩+期末考试成绩+项目完成情况”的评价方式.

(2)在期末考试中增加上机考试,笔试考查常用知识点的掌握情况,机试考查运用C#语言的熟练程度.

(3)对实验项目的完成情况进行考核,考查学习能力、综合运用C#语言的编程能力.

6 结语

本文针对目前C#程序设计课程教学中普遍存在的问题,围绕能力培养的目标探讨了该课程的教学改革思路.近年来,笔者尝试将这些改革方法应用于教学实践中,取得了很好的教学效果.在笔者任教的班级中,有多名学生采用C#语言完成了质量较好的毕业设计,目前从事C#软件开发的所有学生都能胜任岗位工作,达到了能力培养的目标. ■

[1]黄淼,高敬礼,单冬红,等. C#程序设计课程教学改革研究[J].计算机教育,2010,(18):21-24.

[2]邓建新. C#课程一体化多层次问题引导式教学方法[J].计算机教育,2014,(11):68-71.

[3]刘井莲,赵卫绩,杨辉,等.以能力培养为导向的程序设计课程教学改革与实践[J].通化师范学院学报(自然科学),2013,34(5):56-57.

[4]孙玉红.案例教学法在“面向对象程序设计”课程中的运用[J].电脑知识与技术,2011,7(7):1703-1704.

[5]冷汹涛,蔡铭辉,庞文颖.比较教学法三要素在高等教育中的实践性探索[J].高教论坛,2013,(8):70-73.

[6]吴淑英.C#程序设计课程项目引领任务驱动式教学设计与实施[J].计算机时代,2012,(7):52-54.

【责任编辑 谢明俊】

Teaching Reform of C# Program Design Course Based on Ability Cultivation

ZHOU Guo-jun, CHENG Yu-qiang, WU Qing-jun
( School of Maths & Information Science, Yulin Normal University, Yulin, Guangxi 537000 )

In view of the common problems in C# program design course teaching, this paper discusses teaching reform of the course based on ability cultivation. The main thoughts of teaching reform include the following points: select and refine teaching contents around the target of ability cultivation; use various teaching methods to carry out theoretical teaching design experimental project based on ability training. In practice, the teaching method has achieved good effect.

ability cultivation; C# language; program design; teaching reform

G642

A

1004-4671(2015)02-0132-04

2014-03-01

广西高等教育教学改革工程项目(项目编号:2014JGA207)

周国军(1975~),男,湖南宁远人,玉林师范学院数学与信息科学学院讲师,硕士。研究方向:数据挖掘。

猜你喜欢

程序设计教学法知识点
一张图知识点
一张图知识点
第四页 知识点 歼轰-7A
批注式阅读教学法探究
基于Visual Studio Code的C语言程序设计实践教学探索
实施“六步教学法”构建高中政治高效课堂
从细节入手,谈PLC程序设计技巧
高中数学实践教学法的创新策略探讨
高职高专院校C语言程序设计教学改革探索
关于G20 的知识点