APP下载

“C程序设计”课程教学内容的模块化设计

2009-05-11

计算机教育 2009年8期
关键词:模块化设计C语言程序设计

戴 红

文章编号:1672-5913(2009)08-0064-05

摘要:笔者借鉴程序设计中的模块化思想,将“C程序设计”课程内容进行模块化改造。本文首先介绍教学内容的模块化设计思想,然后说明每个模块内部的设计方法,最后通过阐述模块之间的联系,描述如何将各个模块组装成为整个课程内容。

关键词:模块化设计;C语言;程序设计;教学内容

中图分类号:G642

文献标识码:B

1引言

“C程序设计”课程作为几乎所有的计算机专业及许多非计算机专业学生的程序设计类必修课,在整个计算机课程体系中占有重要地位。然而因其具有知识点多、知识点之间的逻辑关系复杂的特点,又是许多学生感觉学习困难的课程。本文将程序设计中模块化思想应用在C语言教学内容的组织上,改变传统的内容编排模式,将整个课程内容分解为多个模块,每个模块内容紧凑、功能单一,模块间联系主线鲜明、逻辑性强。每个模块内部设计都以该模块所涉及内容能解决的实际问题为切入点,将要求学生掌握的内容以及这些内容能够完成的任务给出明确的说明,将学生整个课程的学习目标分解为各个模块的学习目标,使学生能够明确模块用途,学习目的性加强,提高教学的有效性。

2教学内容模块化设计

模块及模块化的概念随处可见,如建筑工程中的砖瓦构件,机器上的零部件,程序设计语言中的子程序、过程、函数、类,都可以称之为模块。模块化的概念已被广泛应用于软件(Parnas,1972)、产品设计(Henderson & Clark,1995;Baldwin & Clark,2000;Ulrich,1995)、生产(Starr,1965)和组织形式(Sanchez,1995;Sanchez & Mahoney,1996;Langlois & Robertson,1992;Schillin & Steensma,2001)等多个领域和方面,它是指通过每个可以独立设计的、能够发挥整体作用的、更小的子系统(模块)来构筑复杂产品或业务的过程。衡量一个系统是否为一个模块化系统的主要依据是看该系统是否具有“模块性”,即清晰而简明的层次结构。其中的模块是否具有很强的独立性,都有自己不可替代的功能,而且相互依存相互作用。具体到程序设计中的模块独立性,一般采用两种准则度量:耦合性和内聚性。耦合性是指模块之间相互连接的紧密程度;内聚性是指模块内部各元素结合的紧密程度;独立性强的模块应具有高内聚性和低耦合性。

图1 传统的内容组织形式与模块化的内容组织形式对照图

综合上述思想,对教学内容进行剖析分类,并根据程序设计语言的四个基本成分(数据成分、运算成分、控制成分和传输成分),将内容按照其在程序设计中的作用、传统组织形式与模块化组织形式对照分解成七个功能模块。图1为传统的教学内容组织形式和进行模块化改造后的组织形式的对照图。根据程序设计的模块化思想,模块具有功能内聚性为最强的内聚性,所以成分划分的模块,内部功能单一,基本可独立设计,如“数据模块”,主要介绍C中各种数据的表示和存储,可涉及一些简单算术运算和输入输出函数,在未介绍运算和输入输出模块前,完全可以对这些内容进行简单说明,而不影响学生对本模块内容的学习。同时这样划分使每个模块内容具有弹性,便于根据学生基础和学习能力及学时情况等增减内容。

程序设计中所谓的模块一般具有三个基本属性:功能(该模块实现什么功能),逻辑(描述模块内部怎么做),状态(该模块使用时的环境和条件)。我们首先来描述各模块的内容和功能,如表1所示。

程序设计中模块的第二个属性为“描述模块内部怎么做”,下面介绍每个模块的内部设计思路。

3模块内部设计

3.1模块一入门

本模块是整个课程内容的引子和主线,其中起关键作用的是贯穿整个课程的7个实例。本模块归纳出C语言能够解决的典型问题,通过7个典型实例来说明,使学生对C有全局了解和把握;同时也为其余各模块提供“原型”,其他模块以这7个实例为起点,延展教学内容和实例。

模块一的主要内容包括预备知识(程序设计语言和算法的相关概念);C语言概述(产生背景,特点);并通过第一个C程序“Hello,World!”,了解C程序的基本结构及开发C程序的环境Turbo C和C程序从编辑到运行的全过程。当然,本模块的重点放在“C语言都能做些什么”,总结出四个方面:输入/输出信息,数值计算,非数值计算,处理磁盘文件,如表2所示。

3.2其他模块的内部设计

首先提出问题,然后通过问答问题展开内容,最后总结。如表3给出了部分模块的内部设计思路。

图2到图8为模块一中的七个典型实例的演示图。

4模块装配

模块化过程包括分解复杂系统为各个模块和将各个模块装配成为原来复杂系统两个过程。首先考虑模块的装配方法,上面提到,模块一是整个课程的基础和核心,其余所有模块的内容都是在模块一中的7个实例的基础上延伸,其他模块中的实例可在这7个实例基础上加工、衍变、丰富而成。其他模块与模块一中7实例的关系如图9所示。再考虑模块的装配顺序,这时要考虑该模块使用时的环境和条件(程序设计中模块的第三个属性)。使用C语言进行程序设计时,程序内部结构一般为:输入和表示数据、处理、输出结果。按照这个结构,学生在程序设计时,需要“简单地输入和表示数据”,则装配模块二;需要进行“处理”,则装配模块三、模块四、模块五;需要“复杂数据表示和处理”,则装配模块六;需要“复杂输入和输出结果”时,装配模块七。

按照这个思路,所有模块以7实例为装配线,按模块二到模块七的顺序组装成为一个完整的课程系统。

图9 各模块与7个实例之间的关系

5总结

利用模块化思想设计组织C程序设计课程的教学内容,将复杂、难学的内容分解为七个内容单一的模块,所有模块既功能相对独立,又都围绕同一核心主线(7实例)延展内容、衍生实例;再根据程序的结构和设计流程,按需装配各模块,从而为学生构造整个知识体系,有效降低了学生学习难度,加强了学习内容的逻辑性和衔接性,对提高课程教学质量有实质性帮助。

参考文献:

[1] 谭浩强.C程序设计[M].北京:清华大学出版社,2001.

[2] 郑人杰,殷人昆,陶永雷.实用软件工程(第二版)[M].北京:清华大学出版社,2001.

[3] 南丽丽.阶梯式教学法在C语言教学中的应用[J].计算机教育,2008,(7).

[4] 杨枝煌.模块化分解与中国金融现代化改革[J].当代经济科学,2005,(4).

猜你喜欢

模块化设计C语言程序设计
基于OBE的Java程序设计个性化教学研究
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
医学专业“Python程序设计”课程教学改革总结与思考
“C语言程序设计”课程混合教学探索
基于C语言的计算机软件编程技术探究
中职C语言单片机课堂教学中的趣味性探讨
计算机原理中C语言的应用价值
汽车装配工艺模块化设计研究
LED车内氛围灯设计