迭代法在C#程序设计课程中的应用

时间:2022-07-30 04:12:28

迭代法在C#程序设计课程中的应用

摘 要:C#程序设计课程是计算机专业的一门重要的专业基础课,在教学中面向对象的程序设计思想的讲授一直是一个难点,但使用传统教学无法解决其抽象和本质及联系的学习和理解。为此在其课程上,通过迭代法的项目教学进行知识的逐步深入讲授,来探讨一种学生从抽象概念理解向实践动手能力运用和提升的方法。

关键词:C#程序设计;迭代;项目驱动

中图分类号:TP393.092

C#程序设计课程是计算机专业的一门重要的专业基础课,课程要求学生能够熟练运用面向对象程序设计的各类方法,实现开发实际运用的各种应用程序。但是在面向对象概念和思想的学习,对于学生是一个十分抽象的知识学习,很多学校在该问题的课堂讲授中,也采用了大量的例子来灌输该部分的学习,但是大部分效果都不理想。为此,能否采用软件开发中经常使用迭代式开发[1]作为课堂教学改革的方法,将一个大案例分解若干个功能,按照知识的学习进度,不断使用新知识来迭代设计每个功能,从而使学生能在实际项目实践动手能力上进行融会贯通。

1 迭代法教学方法概述

在数学上为了求解方程不断重复某一过程,利用不同结果作为初值的方法叫迭代。当今的计算机软件开发中引用了该方法,将一个任务分为若干个功能,采用多次重复开发,每次增加功能模块开发。在由简到繁的迭代过程中,实现系统的各个功能的实现。

在程序设计教学中,可以采用软件开发[2]中的这种迭代开发方法,以任务驱动进行组织教学,将任务分解为相关联的独立功能,由浅到深、由易到难地进行知识点的贯穿和螺旋上升的教学,最终实现教学的知识目标[3]和教学任务。在这种迭代项目的学习中,学生不仅能够不断地巩固程序设计的基础知识,同时也能够设计出功能完整的系统,学生的积极性和实际动手能力能够得到很好地提升,并有助于实现课堂到企业的无缝对接。

2 迭代法在教学中的运用

2.1 迭代教学的设计

通过分析现有C#程序设计课程内容,我们细化了实验教学的方式和内容。整个实验教学过程中,我们采用两个原则作为实验教学主线。

(1)教学内容迭代贯穿始终。将关联的知识系统化,把实验任务及内容采用迭代的方式依次分解之各个实验中,使学生能够从浅入深、从易到难地完成。我们全程采用计算器和学生信息管理系统两个不同角度的案例进行知识的分解和迭代,把系统功能分阶段在各次实验中迭代完成,把其具体实现的功能也采用新的知识迭代实现。

(2)任务驱动方式教学。每次项目的分解,均采用任务驱动式教学,明确任务需求,并讲解任务实现所需关键知识。学生按照规范的软件开发过程进行实现,并提交任务清单及实现代码。任课教师会将学生优秀作品在下一次的讲授中进行展示和点评。

2.2 迭代教学实施

依据C#程序设计课程的教学目标,本文以学生最难理解的面向对象的类封装及继承的教学为例,选取“计算器”作为迭代式项目教学法的程序设计项目,来说明该课程教学中迭代教学法的具体实施过程。

计算器软件实现模拟Windows计算器功能,系统功能分解为算术运算、公式计算、科学计算、进制计算四大功能任务,四个功能均可采用迭代式教学法进行教学。为了实现类的封装、类的继承教学目标,下面就以算术运算的实现解释迭代式教学过程。

(1)第一次迭代。该环节教学围绕着掌握基本的C#语言基本结构,熟练运用各种运算符、表达式以及常用流程控制语句使用,注重培养学生分析问题、解决问题的能力。因此,第一次迭代的教学内容为使用C#语言的基本控制语句设计简单计算器的算术运算功能,能够现输入两个数和运算符号得出结果。涉及知识点主要包括输入输出语句的使用,if选择结构的使用及f语句嵌套使用的程序设计基础。

(2)第二次迭代。该环节教学围绕着学习C#语言的控制结构的应用技巧,学习运用程序结构的调整来提升程序的执行效率,并让学生养成程序的行业命名规则和程序代码的编写规范。为此,第二次迭代具体的教学主要采用功能上增加和调整、代码上进行编码规范修改。

功能上进行了修改和新增内容主要为:将原使用if时,出现每个条件都要做判断的多次无用执行过程进行修改,改为switch判断分支;新增异常处理try―catch语句,解决数据输入有效性判断处理,比如增加用户输入的是字符符号而不是数字、用户输入除数为0等情况。代码的编写规范内容主要为:规范变量名、代码缩进、注释的使用及其它命名规范的使用。

(3)第三次迭代。该环节教学围绕着掌握基本的C#语言基本结构,熟练运用各种运算符、表达式以及常用流程控制语句使用,注重培养学生分析问题、解决问题的能力,养成良好的编程规范。为了解决代码耦合度过高,重复率高的问题,实现可复用、可扩展的程序设计思想,需要将业务逻辑与界面逻辑分开。涉及知识点主要为:类的建立,类的封装及使用等。从而将运算过程单独提取出来,从而实现易复用。

(4)第四次迭代。使用类的继承知识,把加减乘除等运算分离,修改其中一个不影响另外的几个,增加运算算法也不影响其它代码。首先定义一个运算类,它有两个Number属性,主要用于计算器的前后数;然后有一个虚方法GetResult(),用于得到结果;然后把加减乘除都写成了运算类的子类,继承它后,重写了GetResult()方法。这样如果要修改任何一个算法,都不需要提供其它算法的代码了。整个程序将类的继承、类的虚方法的使用、方法的重写等知识点的灵活融合起来。

(5)第五次迭代。在本次迭代过程中,使用简单工厂的设计模式来重新整合程序,用一个单独的类来做这个创造实例的过程,从而解决让计算器精确实例化各种对象的问题。这样,不管是控制台程序、Windows程序、Web程序,PDA或手机程序,都可以用统一代码来实现计算器的功能。实现了面向对象的可复用及可维护的特性。

3 结束语

C#程序设计引入迭代式教学方法后,内容紧紧围绕着项目的迭代案例开发逐步展开,每一个迭代不仅使学生复习以前掌握的知识点,而且使学生在不断开发新功能过程中激发了其求知欲和创新意识。学生的程序设计能力均得到了大幅提高,不仅基础技能扎实,而且掌握了理论和实践相辅相成的学习方法和技巧。

教学实践证明,迭代式项目教学能够有效激发学生的学习兴趣,调动学生的学习积极性,潜移默化地滋养了学生的编程逻辑思维,有效提高学生学习效果。使学生的学习、技术和设计方法循序渐进、环环相扣,形成了一条合理的认知链。同时对后继课程包括整个专业课程的学习都产生了非常重要的影响。

参考文献:

[1]王艳娟,崔敏,宋建敏.案例式教学在 动态网页设计中的应用[J].科技创新导报,2009(14).

[2]曾爱民,蒋丽波,于顺达.采用项目教学法培养学生职业能力的研究与实践[J].职业技术,2009(09):37.

[3]蒋庆斌,徐国庆.基于工作任务的职业教育项目课程研究[J].职业技术教育,2005(22):46-50.

[4]王艳娟,崔敏,宋建敏.案例式教学在动态网页设计中的应用[J].科技创新导报,2009(14).

作者简介:高志宇(1979-),男,河南社旗人,讲师,硕士研究生,主要研究方向:计算机应用、嵌入式开发;

作者单位:河南中医学院 信息技术学院,郑州 450046

上一篇:网络操作系统的选择分析 下一篇:浅议民航空管系统中计算机设备的应用与维护措...