软件工程环境下的C程序设计课程教学

| 浏览次数:

摘要:程序设计能力是计算机类专业的基本能力,也是检验计算机类毕业生是否合格的标准。针对目前计算机专业中各门课程教学相对独立、缺乏课程间有机衔接的现状,本文提出一种软件工程环境下的C程序设计课程教学模式,即通过C语言来讲述程序设计,并将程序编写与软件工程原理的阐述有机地贯穿在一起,以期增强学生的专业学习兴趣,提高学生整体的程序设计能力和社会竞争力。

关键词:C程序设计;软件工程;混合式教学;双语教学

计算机和数学被看成是各个学科最重要的工具,同样,编程和算法也成为一种基本的技能。程序语言是程序员间、程序员与机器间交互的媒介。随着程序越来越复杂,程序必须遵循某种准则开发才能更好地被他人、其他程序或机器更好地理解,才能更好地演化为符合某种特定目标的软件[1]。

目前我国的计算机专业课程体系都是按照CC2001的框架制定的。CC2001是IEEE/CS和ACM为了规范和促进大学计算机学科教育所制定的教学体系。CC2001的指导思想是计算机学科的课程应由4个专业方向部分,即计算机科学、计算机工程、软件工程与信息技术交织组成。作为计算机科学的第一门课程——CS101程序设计基础,其要求是介绍过程式程序设计的基本概念,内容包括数据类型、控制结构、函数、队列、文件、运行机制、测试和调试;并对计算机科学作为一门学科进行了概述[2]。

C程序设计作为我院计算机专业的第一门专业基础课程,其扮演角色的重要性不言而喻。它是后续众多专业课程的基础。但目前专业教学中存在这样的问题,各阶段课程教学相对独立,缺乏课程间的有机衔接,程序类课程教学中重视语法结构和案例,很少能从程序设计的基本方法和思想进行引导,学生只能照样画瓢,缺少抽象思维、逻辑思维能力,难以编程解决实际问题。我们希望在学生掌握程序设计过程中激发起学生的软件工程兴趣。

针对这个问题,本文提出了一种两点并行的流程教学模式——软件工程环境下的C程序设计教学模式,即通过C语言来讲述程序设计,并将程序编写与软件工程原理的阐述有机地贯穿在一起,期望起到事半功倍的效果。

1C语言透视图

C语言是一种复杂而专业的计算机语言。如果将语言放在一个透视图中,学生由此能理解它的设计,这样,C就不是一种难懂的语言了。我们在实际课堂教学中,打破原先程序设计课程顺利讲授的方式,将课程内容按软件工程体系结构的要求逻辑重新组合。让学生通过透视全局的方式快速进入独立程序设计状态。

课堂教学以程序设计为中心组织内容,采用“案例引导,问题驱动”的描述方式。案例基本上来源于生活工作中的实际问题,较大程度地激发学生的学习兴趣。另外,在前两章内容中先简要介绍程序设计的基本思想以及利用计算机求解问题的过程,然后从实例出发,介绍顺序、分支和循环3种控制结构以及函数的使用。从第3章开始,再分主题逐步深入讲解程序设计的思想和方法,以及相应的语言知识。改变以前从一开始就进入C语言的语法学习,学生觉得枯燥乏味和教学低效的问题。让学生形成“算法比程序更重要,思想方法比知识更重要”的贯穿整个专业学习过程的思维宗旨。

2 “混合式教学”触发器

混合式学习(blended learning,BL)是传统面对面的课堂学习方式和数字化学习两种方式的有机整合,其本质是强调教师的主导作用和学生的主体地位。它与传统学习相比优势在于:不仅局限于对书本知识的简单记忆,更多的是对知识的深度理解和扩展,以及多方面能力的提升;既要发挥教师引导、启发、监控教学过程的主导作用,又要充分体现学生作学习过程主体的主动性、积极性与创造性[3]。

教师的教学灵感就像是触发器,在教学过程中要合理有针对性的释放,尽可能大地挖掘学生的学习欲望和潜力。我们在课堂教学的具体实施过程中应用混合式学习的理念,精心设计各部分课堂教学的课程导入、活动组织、学习支持、教学评价4个教学环节。如图1所示。

这里以C语言函数这一知识点的第一堂课内容为例,描述整个课堂教学过程,教学目标如图2所示。

所采用的主要教学手段,有以下5个部分。

1) 课程导入:利用前期课程中的实验案例引入新课概念。举例引入“斐波那契数列之前是用循环实现的,现在采用函数该如何实现?”

2) 角色扮演:通过角色扮演的游戏方式,让学生体会程序设计思路。同时感性地理解函数基本概念和函数构成的三要素。

3) 纸面模型:用“纸面模型”法的实物演示形式将抽象思维具体化。模拟函数参与程序后的整个流程。同时引入软件工程中的三个相关知识点:结构图,函数的复合以及自顶向下的开发的讲解。

4) 团队合作:分组完成一个随堂项目“在给定的函数中挑选合适的完成——学生成绩统计程序”的微型案例。强化记忆。

5) 互评机制:学生互相评价。教师总评与总结

同时,在课堂教学中多媒体教学与黑板教学并用,课件与程序运行环境并用。部分例子,有时也不一定是一个完整的例子,只是相关知识点的几行代码,在课堂上边讲边编边运行,让学生边听边“消化”,并寻找时机进行提问,实现教学互动。引导学生针对问题构思框架,进入设计的细节,使用特定的描述方法,如流程图。最后使用计算机语言体现设计思想。

3软件工程环境的映衬

在每一章节的结尾部分,我们都安排软件工程原理的讨论。在这里讨论的目的当然不是代替独立的软件工程课程,是想将基本的软件工程原理引入早期的学习中,学生能更好地为以后正式参与项目开发做好准备,同时起到一个承上启下的衔接作用。更重要的是,一开始就将逻辑简单清晰、易读易懂作为程序编写的一个重要标准,学生就不需要在以后被强迫忘却坏习惯并重新学习。他们能在以后的课程中更好地理解软件的涵义,了解软件开发的过程。

尽管软件工程内容重点讲解出现于每一章节的末尾,但最好在每章一开始就先介绍,然后再在每章结束时对课程讲授中所展示的软件工程原理进行小结。因此,我们掌握的一个原则就是,在软件工程环境的映衬下,发挥C语言讲解的主导作用。

还是以函数这一章节为例,知识点的讲授顺序如下图3所示[1]。

4实践出真知

“Do it”才能够“Understand it”。C程序设计课是实践性极强的一门课程。只有通过在机器上编写代码,体现出把实际问题转换为计算机处理过程,理解计算机的“思维”方式,才能够激发学生的学习积极性和学习热情,同时通过编程产生一种“实现”的成就感。

我们在课程中引入综合性设计类实验的内容,设计6个左右的主题实训作业,其中安排3个有完整系统功能需求的任务,要求学生综合应用所学的知识,分析、设计、编码和测试完成自己的设计并撰写一份符合模板要求的报告文档。

1) 分层次设计主题作业。

在实际教学中,我们发现学生编程能力有较大差异。因此,6个主题实训作业按难度设置成3组(难度高、中和低,设置不同的考核得分),难度低的提供的参考资料(分析、算法和部分程序段)较多,这样使得层次低的同学也能完成作业。

2) 培养团队合作精神。

对于难度最高的主题作业,鼓励学生每2~3人组成项目小组,小组成员共同选择题目,商讨编程方法和具体分工模块。单人独立完成的项目,可培养学生对一个小型的功能相对完整的软件项目的理解能力和分析能力。而多人小组完成的项目,可培养学生的项目管理能力和团队协作精神。

5双语补给

英语是计算机的“母语”。在实际教学过程中我们发现,没有一定的英语基础已成为学生深入学习程序开发的“绊脚石”。首先,它反映在专业课程中,如果不重视这部分基础补给的话,接下来就会给一系列专业课程带来不良影响,其中就有软件工程。换句话说,如果能在程序设计学习过程中让学生形成比较好的英语氛围,这将对学生的整个专业学习起到相当积极的作用。但学生的英语基础参差不齐,就每个学生个体来说,各项英语素质也是高低不等,可能词汇量不少,但听说理解能力较差。因此,我们认为给学生进行双语补给,不等同于英语专业课程的要求。在这里,英语是一个配角的角色,不可缺,但也需要我们教师有的放矢的引导。

课程常规教学中,引入双语。在初期的代码讲解过程中,要有一定比例的时间锁定在双语讲解上,例如关键术语的讲解,代码编译错误的具体解释等。这些往往也是后续课程必须用到的专业词汇。

课后布置一定量原版书籍的翻译作业。让学生在指定的原版书籍中,每周任选一页进行翻译,定期教师检查评估。指定原版书籍为经典书籍Programming in C(中译名为C语言程序设计)和Software Engineering (中译名为软件工程)。通过这样的翻译练习,有助于学生原汁原味地理解知识点,有时这样的原味理解更直接更深刻。

鼓励学生阅读一些专业外文期刊的最新学术论文,以跟踪国际相关研究动态,开拓学生视野。

以上三点是对全体学生的要求和具体实施方案,对于专业上比较高的自我要求的学生以及到了高年级后还可以引导他们做如下的拓展:

1) 结合已有知识与见识,广泛阅读国外论文。

2) 通过开发类的外文文档学习专业英语。

3) 深入国外专业论坛进行交流学习。

4) 经常光顾国外大学、研究机构的相关专业网站。

5) 研究阅读国外开源软件的开发类、方法类等文档。

6) 网上听、看国外专业学术讲座与报告。

7) 国外开放课程在线。

6结语

C语言程序设计课程是计算机专业一门非常重要的基础课程,对学生的信息化素质培养至关重要,因此,应对本课程进行教学改革意义重大。通过在该课程教学中融入软件工程的思想,把老师积累的工程经验传递给学生,能够开阔学生的思维和眼界,动手实践能力也能得到了成倍的培养。将这两门课程的核心部分有效结合与衔接,这样的改革值得深入研究和进一步推广。

参考文献:

[1] Behrouz A Forouzan,Richard F Gilberg. Computer Science: A Structured Programming Approach Using C[M]. 3rd ed. Singapore:Cengage Learning,2007:90-138.

[2] 何钦铭,颜晖,陆汉权,等. C语言程序设计[M]. 北京:高等教育出版社,2008:1-10.

[3] 冯晓霞,陆汉权,方红光,等. 面向通识课程的程序设计基础课的教学实践[C]//浙江省高校计算机教学研究会.计算机教学研究与实践:2008学术年会论文集.杭州:浙江大学出版社,2008:93-98.

A Teaching Mode of C Programming Language in Software Engineering Environment

FU Chuan, SHEN Xin, JIANG Weiwei

(Information Technology College, Zhejiang Chinese Medical University, Hangzhou 310053, China)

Abstract: Programming capability is the most basic ability required for computer majors and a standard for qualified computer graduates. In current teaching system, relative independence of course teaching has brought about lack of effective link-up among courses. Aiming at the problem, the paper proposes a teaching mode of the C Programming Language in the software engineering environment—programming is taught through the use of the C language and the combination with the teaching of principles of software engineering. It is hoped to enhance students’ interest in learning their major, improve their overall programming capability and social competitiveness.

Key words: C programming language; Software Engineering; blended teaching; bilingual teaching

(编辑:郭小明)

推荐访问: 软件工程 程序设计 课程教学 环境

【软件工程环境下的C程序设计课程教学】相关推荐

工作总结最新推荐

NEW
  • XX委高度重视党校的建设和发展,出台《创建全省一流州市党校(行政学院)实施方案》及系列人才培养政策,为党校人才队伍建设提供了有力的政策支撑。州委党校在省委党校的悉心指导下、州委的正确领导下,深入贯彻落

  • 为推动“不忘初心、牢记使命”主题教育常态化,树牢“清新简约、务本责实、实干兴洛”作风导向,打造忠诚干净担当、敢于善于斗争的执纪执法铁军,经县纪委常委会会议研究,决定在全县纪检监察系统开展“转变作风工作

  • 为进一步发展壮大农村集体经济,增强村级发展活力,按照中共XXX市委抓党建促乡村振兴工作领导小组《关于印发全面抓党建促乡村振兴四个工作计划的通知》要求,工作队与村“两委”结合本村实际,共同研究谋划xx村

  • 今年来,我区围绕“产城融合美丽XX”总体目标,按照“城在林中,水在城中,山水相连,林水相依”以及“城乡一体、景城一体、园城一体”的建设思路,强力推进城市基础设施建设、棚户区改造、房地产开发和城市风貌塑

  • 同志们:新冠疫情发生至今已有近三年时间。三年来,在广大干群的共同努力下,我们坚决打好疫情防控阻击战,集团公司范围内未发生一起确诊病例,疫情防控工作取得了阶段性胜利。当前国际疫情仍在扩散蔓延,国内疫情多

  • 我是毕业于XX大学的定向选调生,当初怀着奉献家乡、服务人民的初心回到XX,在市委的关心关爱下,获得了这个与青年为友的宝贵历练机会。一年感悟如下。一要对党忠诚,做政治坚定的擎旗手。习近平总书记指出,优秀

  • 同志们:今天召开这个会议,主要任务是深入学习贯彻习近平总书记重要指示批示精神,以及李克强总理批示要求,认真落实全国安全生产电视电话会议和全省、全市安全生产电视电话会议精神,研究我县安全生产和安全隐患大

  • 2022年市委政研室机关党的建设工作的总体要求是:坚持以XXX新时代中国特色社会主义思想为指导,全面贯彻党的XX届X中X会和省、市第十二次党代会精神,自觉运用党的百年奋斗历史经验,弘扬伟大建党精神,深

  • 同志们:今天,我们在这里召开市直机关基层党建示范点工作会议,一方面是对各示范点单位进行表彰授牌,另一方面是想通过这种会议交流的方式,给大家提供一个相互学习、取长补短的平台和机会。市直工委历来把创建基层

  • 新冠疫情暴发以来,学校党委坚决贯彻习近平总书记关于疫情防控工作的指示要求和党中央的决策部署,严格执行×××部、×××厅关于疫情防控的系列要求,认真落实驻地防疫部门的工作举措,继承发扬优良传统,以最高标