程序设计实践精彩4篇

网友 分享 时间:

【导言】此例“程序设计实践精彩4篇”的范文资料由阿拉题库网友为您分享整理,以供您学习参考之用,希望这篇资料对您有所帮助,喜欢就复制下载支持吧!

程序设计实践【第一篇】

摘要:本文从教学实践出发,分析了当前非计算机专业“C语言程序设计”教学中存在的问题。提出了在课程教学中如何采用案例教学法、基于认知主义的内容设计优化以及以行动导向学习为指导原则来设计和组织课堂和实验教学的改革措施,并应用于教学实践。实践证明改革措施是非常有效的。

关键词:教学改革;教学模式;案例教学;认知主义;行动导向学习

中图分类号:G642 文献标识码:A

1前言

“C语言程序设计”作为全国大部分高校非计算机专业的一门公共基础课,在课程教学中,许多学生都认为该课程涉及的概念比较复杂、规则繁多、使用灵活、容易出错,学习起来普遍感到困难。特别是大多数高校将C语言作为非计算机专业学生进校后首先接触的第一门公共基础课,这种现象尤为明显。为此作者从自身多年教学实践出发,以培养学生用计算机解决问题的思维能力为基本点,对该课程的教学过程进行了大胆的改革尝试。

2传统教学中存在的问题

笔者从事了多年的“C语言程序设计”教学,发现传统教学中教学效果总是不理想,因此对此进行了深入分析,发现在传统的“C语言程序设计”教学中存在以下几个主要问题。

首先,教师将教学目标主要放在了让学生掌握语法规则上,而问题分析和算法思想等程序设计能力和素质的培养不够,导致学生学习积极性不高和缺乏对实际问题进行分析、编程和处理的能力。

其次,传统的教学过程与学生认知过程存在偏差。目前,国内的大多数C语言教材都考虑到知识结构的系统性和全面性,大致按“算法-数据类型-基本结构-数组-函数-指针-文件”的顺序来组织教材。教师按照教材编排的内容和顺序,按部就班地进行教学工作。这种组织方式虽然依逻辑思维方式进行了归类,但难点还是较为集中,跨度大,学生一下子很难接受。由于学生没有编程基础,讲授算法和数据类型时只能讲的多,分析的少,“填鸭”式的将概念灌输给学生,致使学生觉得C语言很难。随后章节的讲授也是先介绍C语言语法规则,然后再针对所学的语法规则讲授例子,例子以语法应用为重点,较少涉及具体的C语言编程应用。这种从理论到实践、理论和实践脱节的教学过程不仅难以激发学生的学习兴趣,导致课程知识很难被学生全面掌握和灵活运用。

最后,传统实验教学效果有待提高。C 语言的传统实验教学以语法为主线,实验课多数是强调语法语句练习,由于语法的单调枯燥容易使学生陷入到冗繁的语法规则之中而逐渐失去学习兴趣。我们应该认识到学习语法不是我们学习程序设计语言的真正目的。程序设计教学的目的是培养学生分析问题和解决问题的能力,是在掌握语法的基础上,通过上机实践,真正地学会使用计算机语言来解决实际问题,培养学生的程序设计思想。

3C语言教学改革的探索

改革教学模式,推行案例教学法等启发式教学方法

针对传统课堂教学中存在的问题,我们决心跳出以语法教学为主线的教学模式,吸收国外计算机课程教学的优点,积极准备推行个案分析,将复杂枯燥的语法知识分解到一个个生动实用的程序实例中。在教学过程中以程序设计为主线进行教学,有意识地淡化计算机语言本身语法规则的介绍,而重点介绍程序设计方法,在分析程序和程序设计中熟悉语法、应用语句,并把软件工程学的思想贯穿于算法分析和程序设计的过程中。例如课程开始先提出温度转换和两个瓶中的油水交换等现实中的问题并以程序来解决,程序中涉及到的整形和字符型等数据类型和赋值和算术等表达式做一讲解,经过多个程序的示例,学生对C程序的基本结构和其中的语法知识有了一个了解,三种基本结构都介绍以后,再将语法知识做一个总结,学生很容易接受。

基于认知主义的内容设计优化

认知主义强调人的认知不是由外界刺激直接给予的,而是由外界刺激和认知主体内部心理过程相互作用的结果(内部心理过程包括态度、需要、兴趣和爱好以及原有的认知结构即过去的知识经验)。学习过程是每个人根据自己的态度、需要和兴趣爱好并利用过去的知识经验对当前的外界刺激(如教学内容)主动做出的有选择的信息加工过程。学生不再是外界刺激的被动“接收器”,而是主动地对外界刺激所提供信息进行选择性加工的主体。认知主义强调教学设计首先要充分考虑学习者的认知特征,并把重点放在教学组织策略上。强调教学内容的组织和传递策略必须充分考虑学生原有的认知结构。

在课堂教学过程中,遵循学生认知过程,对教学内容重新进行归纳,将难点再次分散,以缩小台阶,达到循序渐进。例如,C语言数据类型、运算符、表达式种类繁多,放在一起讲授,学生学习起来难度较大,我们将改变以往教学内容讲授顺序,首先介绍程序结构,使学生对C语言程序结构有个大致了解,然后通过一个简单的求两个数的和的例子介绍常用的常量形式和算术运算符以及相关的表达式,通过求绝对值的例子介绍关系运算等,使学生学习起来没有想象中的那么难。紧接着再教学生编写简单的、实用的C程序设计,然后趁机引入基本输入、输出函数就顺理成章了。这样一来台阶小了,学生的信心也增加许多,学习积极性很快就被提高起来。对于生硬的语言叙述,课堂上改用生动的比喻,进行详尽引导。

程序设计方法的传授是C 语言程序设计课程的另一重点。在教学中,不仅要贯彻自顶向下逐步求精的面向过程的程序设计思想,还要尽可能采用程序框图等程序设计工具,来说明程序设计的过程和算法,来培养学生程序设计的能力和素质。

教学手段改革

传统教学手段中,用粉笔书写板书的时候,教师可能会根据学生的随堂反应,有机而又灵活地掌握分寸,并且可能以恰如其分的比喻,幽默风趣的语言,以姿势助说话等多种形式把对课程的理解表达得淋漓尽致,抓住学生跟随自己一步一步领会教材。但是,程序设计课程中问题分析、算法设计及程序都要在黑板上书写,很难展现题目直接的衔接,并且课程进度受到很大影响。

使用多媒体教室,省去了粉笔在黑板上的书写时间,以计算机技术为核心的现代化教学手段至少比板书教学节省总学时的三分之一,但是现代化的CAI教学在很多情况下只能播放事先辑录好了的讲稿、教案或课件,在一个光线黑暗的教室里,教师无法看到学生的表情。CAI教学不足之处就是容易把板书教学可能实现的双向交流变成单向传递。

基于上述分析,我们在教学过程中充分发挥两种教学手段的优势,采用多媒体与黑板结合的教学方式,对理论知识利用幻灯片给出,例题讲解只要由教师利用黑板对问题进行分析,引导学生写出算法,在语言编译环境下直接进行编程调试,使学生能直观地看到编程的方法与效果,极大地提高了学生的学习兴趣。

以行动导向学习为原则设计和组织实验课程教学活动

所谓行动导向学习就是有目的地、系统地组织学生在实际或模拟的专业情境中,让学生参与设计、实施、检查和评价职业活动的经历来发现、探讨和解决职业活动中的问题,在体验与反思学习行动的过程中,获得完成职业活动所必需的知识与能力。

上机实践是“C语言程序设计”教学中不可缺少的教学环节。充分有效的上机实践不仅能纠正学习中的理解偏差、加深知识要点的理解,还能增强学生的上机实践的积极性和问题处理能力,切实提高编程能力与编程水平。

在进行实验课程教学设计和组织时,我们以行动-学习-行动这条主线来组织教学。具体过程如下:

(1) 编写一些趣味性较高的程序,演示给学生看,通过例子告诉学生我们所需要学习的知识要点;

(2) 在介绍了C语言程序编辑器的使用方法后,带领学生走进实验室,依照例题,进行简单的程序设计,对出程序中的错误,教师现场辅导给予解决;

(3) 授课教师总结实验中的共性问题,课堂上讲解此类问题的解决方法,再讲解所涉及的语法点,这样学生由于一开始已经有了感性认识,就比较容易理解和记住语法规则;

(4) 在理解和记住语法规则的基础上,教师再设计一些简单的题目,让学生走入实验室,经过这样循环往复,对于简单的程序设计,学生很快就可以掌握了;

(5) 随着学习的深入,当接触到较复杂的程序设计时,可以由教师策划一些案例,具体行动由学生自己计划、实施、检查以及修正和评价。对于一个较为复杂的程序,过去教师往往是给学生提示设计思路,这就会局限学生的思维和行动。在教学中我们可以分小组进行讨论,让学生自己拿出程序设计思路和程序设计的算法,画出流程图,然后教师给予指导和点评。

4结论

上述教学内容、教学手段与教学方法的改革,是根据实际教学过程中学生存在的问题提出的,并在“C语言程序设计”课程教学实践中运用。实践证明,这些教学改革效果良好,提高学生的学习热情,让学生从枯燥无味的语言学习中解放出来,既让学生能深刻理解课程的理论知识,又培养学生的创新思维,提高了实验技能,培养了自学能力和创新能力,并锻炼了毅力,从而从被动学习走上主动学习。我们将继续努力探索,使“C语言程序设计”课程教学日趋完善,使C语言课程的教学效果再上一个台阶。

参考文献:

[1] 张锦祥。 高级程序设计语言课程教学改革与实践[J]. 浙江教育学院学报,2007(4):71-76.

[2] 赵山林,高媛。C语言程序设计[M]. 北京:人民邮电出版社,2004.

[3] 王冬。 高职C语言程序设计教学改革探索[J]. 计算机教育,2007(9):94-96.

[4] 万蓉。 基于行动导向《C语言程序设计》的教学实践[J]. 成都航空职业技术学院学报,2008(2):17-22.

The Reform and Practice of C Language Programming

LIU Hong-min, ZHAO Shan-lin

(School of Electronics and Computer Science and Technology,North University of China,Taiyuan 030051,China)

程序设计实践【第二篇】

关键词: 《程序设计》课程 启发式教学 实践探索

《程序设计》课程的教学除了强调理论的完整性外,同时还注重学生分析、设计和编程的能力,而这种能力主要体现在学生是否具有创新性思维。启发式教育就是通过启发知识来启发创新。爱因斯坦认为:“提出一个问题往往比解决一个问题更重要,因为解决问题也许仅是一个数学上或实验上的技能而已。而提出新的问题、新的可能性,从新的角度去看旧的问题,都需要有创造性的想象力,而且标志着科学的真正进步。”

一、教学现状分析

传统的启发式教学是一种“标准答案”式的教学。一般针对问题,教师已经预先设定好了标准答案,然后为了引导学生能靠近答案,设置一系列问题,而且这些问题通常较简单,学生很容易答出来。这样一步接一步地启发,学生逐步接近最终的答案。这样的教学过程,实现了课堂上的互动,教师有问学生有答,课堂气氛活跃,相比较“填鸭式”的教学方法,似乎教师的教学机智得到了充分展现。

但这种引导学生朝一个方向思考的方法,实际只是要求学生进行机械式的模仿,生搬硬套教师所给的例子,并没有对题目进行真正的思考,造成学生解题时完全依赖教师所给的思路,教师有启发学生就会回答,教师没有给提示学生就不会思考,不知从何处下手解决问题。久而久之,学生的思维习惯会完全依赖于教师的提问或提示,只会回答问题而不会解答问题。

如在VB程序设计中,循环部分有一道题目是要求实现如图1的图形。

根据之前所学知识,学生可以很快写出外层循环,for i=1 to 9;对于内层循环,就需要启发学生思考了。笔者曾经这样设计教学过程:

提问:如果只看一行,比如第一行,它是几个“*”组成的?程序应当如何写?

根据之前所学,学生很容易答出:for j=1 to 9。

提问:再依次写出第二行、第三行……的程序,总结规律。

如果学生总结不出规律,教师继续启发,写出i和j的变化过程如下:

i 1 2 3 4 5 6…

j 9 8 7 6 5 4…

这样学生会很快发现规律:i+j=10,从而得出之前设定好的标准答案:for j=1 to 10-i。

整个过程非常简单,学生很快得到了答案,而且思路非常清晰。但是,学生学会的是这种题目的答案,以后碰到相似的题目,学生马上就想到找i和j加加减减的规律,然后将“10-i”这部分内容进行替换即可,完全是一个依葫芦画瓢的过程。

二、介绍及实践

1.启发式教学模式

真正的启发式教学,应该是在教学过程中,以教材为基础,在教师的启发引导下,学生自由发挥表达他们的观点,自己去问题提出疑问,然后深入探究,而且可以通过个人、小组、集体等多种形式的解难释疑活动,用所学知识解决实际问题的教学模式。

这种教学模式要求教师去启发学生思考问题的方法,而不是关注问题的答案;教学目标是让学生学会独立思考、分析问题、解决问题的思维方法,而不是得到结果就算完成任务,授之以“渔”,而不是授之以“鱼”。启发的最终效果是不用启发,通过例题,学生学会思维过程,自己提问自己启发,从而提高解决实际问题的能力。

2.《程序设计》课程启发式教学模式的实践探索

实例的设计

经过多年的教学经验,笔者发现很多学生对于《程序设计》课程总是抱有畏惧心理,觉得其难懂难学。究其原因,一是觉得程序设计语言太抽象,与汉语的语法差别大;二是认为学了没用,除非以后要专门从事程序员工作。所以教师在选择和设计实例时,和实际应用的联系越紧密越好。亚里士多德说过:“思维是从惊奇和疑问开始。”比如在学习时钟控件时,就可以设置很多小游戏程序,如打字速度测试、数学题测试等。又如学习列表框和组合框控件,可以设计如点菜界面之类的题目。这种实例能大大激发学生的学习兴趣,这些常见的东西他们热切渴望自己也能做出来,此时学习就变为一种主动的行为,而不是被动地灌输。

模仿阶段

学习的过程,是量变到质变的过程。必须先有一定量的重复,才能激发出质变的灵感。所以在能灵活应用之前,首先要先学会依葫芦画瓢。就如第一节所讲的例子,帮助学生理解整个分析过程,并且在改变部分参数时也能作出对应的修改。同时启发用到的问题,应当有意造成结果与学生求知心理之间的“不协调”,产生悬念,促使学生在注意力最集中,同时思维又最活跃的状态下学习。

深入启发与引导

对已学过的题目进行反思,对发现的问题进行对应的分析。如第一节所讲的VB实例,得出结论后可继续启发学生,思考是否还有新的解法。本题目只是要求输出指定个数的图案,所以循环的书写上可以更加灵活些,只要实现循环的次数正确就可以,不必拘泥于答案的形式。启发后组织学生热切讨论,鼓励想法多样化。学生会提出自己的方法,简单的改变是将循环倒着写:for j= 10-i to 1 step -1;也有更进一步的改变:for j=i to 9;或是i和j都进行改变:for i=9 to 1 step -1:for j=1 to i;最后将所有的想法互相交流,取长补短,促使学生对循环语句的使用更加熟练,同时思维也更开阔。

最后还要加强作业,多让学生上机亲自实践,看到程序的运行效果,加深印象。

三、结语

启发式教学的形式是积极设问并引导学生自己去思考,对思考方式只是进行点拨和引导,鼓励学生对于问题大胆猜测、想象和联想,而不是简单地问答,培养学生深入思考和独立钻研的能力。这个过程前提准备是需要学生有一定的知识积累,否则无从思考,之后需要练习和巩固,对后面的学习内容进行知识储备。

参考文献:

程序设计实践【第三篇】

为什么学习C++这门程序设计语言呢?学习程序设计是不可能不借助一门程序设计语言的,而C++直接支持现实世界中的软件所使用的那些关键概念和技术。C++是使用最为广泛的程序设计语言之一,其应用领域几乎没有局限。从大洋深处到火星表面,到处都能发现C++程序的身影。C++是由一个开放的国际标准组织全面考量、精心设计的。在任何一种计算机平台上都能找到高质量的和/或免费的C++实现。而且,你用C++所学到的程序设计思想,大多数都可直接用于其他程序设计语言,如C、C#、Fortran以及Jave。最后一个原因,我喜欢C++适合编写优美、高效的代码这一特点。

本书不是初学程序设计的简单入门教材,我写此书的用意也不在此。我为本书设定的目标是――能让你学到基本的实用编程技术的最简单的书籍。这是一个非常雄心勃勃的目标,因为很多现代软件所依赖的技术,不过才出现短短几年时间而已。

我的基本假设是,你希望编写供他人使用的程序,并愿意认真负责地,以较高质量完成这个工作;也就是说,我假定你希望达到专业水准。因此,我为本书选择的主题覆盖了开始学习实用编程技术所需要的内容,而不只是那些容易讲授和容易学习的内容。如果某种技术是你做好基本编程工作所需要的,那么本书就会介绍它,同时展示用以支持这种技术的编程思想和语言工具。并提供相应的练习,期望你通过做这些练习来熟悉这种技术。但如果你只想了解“玩具程序”,那么你能学到的将远比我所提供的少得多。另一方面,我不会用一些实用性很低的内容来浪费你的时间,本书介绍的内容都是你在实践中几乎肯定会用到的。

如果你只是希望直接使用别人编写的程序,而不想了解其内部原理,也不想亲自向代码中加入重要的内容,那么本书不适合你。请考虑是否采用另一本书或另一种程序设计语言会更好些。如果这大概就是你对程序设计的看法,那么请同时考虑一下你从何得来的这种观点,它真的满足你的需求吗。本书面向的是那些确实希望编写和理解复杂计算机程序的人。

考虑到本书的结构和注重实践的特点,它也可以作为程序设计方面的第二本书,适合那些已经了解一点C++的人,和那些会用其他语言编程,现在想学习C++的人。如果你属于其中一类,我不好估计你学习这本书要花费多长时间。但我可以给你的建议是,多做练习。因为你在学习中常见的一个问题是习惯用熟悉的、旧的方式编写程序,而不是在适当的地方采用新技术,多做练习会帮助你克服这个问题。如果你曾经按某种更为传统的方式学习过C++,那么在进行到第7章之前,你会发现一些令你惊奇的和有用的内容。

学习程序设计要靠编程实践。在这一点上,程序设计与其他需要实践学习的技艺是相似的。你不可能仅仅通过读书就学会游泳、演奏乐器或者开车,你必须进行实践。同样,你也不可能不读程序和写程序就学会程序设计。另一方面,程序设计远非只是遵循一些语法规则和阅读手册那么简单。本书的重点不在于C++的语法,而在于理解基础思想、原理和技术,这是一名好程序员所必备的。只有设计良好的代码才有机会成为一个正确、可靠和易维护的系统的一部分。而且,“基础”意味着延续性:当现在的程序设计语言和工具演变甚至被取代后,这些基础知识仍会保持其重要性。

程序设计实践范文【第四篇】

关键词:C++程序设计;课程建设;负反馈教学法;实践环节;特色教材

中图分类号:G64 文献标识码:B

文章编号:1672-5913(2007)12-0018-03

C++不仅是一门程序设计课程,而且是这些专业后续专业课程(如数据结构、操作系统、微机原理、单片机及应用等)的重要基础,更是这些专业开展计算机研究和应用的重要表达工具和开发工具。因此,Visual C++程序设计课程的教学改革与建设具有十分重要的意义。本文下面从教学方法改革、教学内容研究、实践环节建设、特色教材编写等方面介绍我校VC++课程建设的一些做法。

1积极推进教学方法改革,形成颇具特色的负反馈教学法

负反馈教学法的原理是从教学过程中反馈(作业、实验、答疑、单元测验等)的问题入手,通过及时讲评,解决学生学习中存在的问题,以达到预期的教学目标。由于反馈的是教学过程中存在的问题故称此方法为负反馈教学法。负反馈教学法包括以下方面。

用“范例”组织课堂教学,贯彻“发现式”教学思想

范例教学法由教育学家瓦根舍因提出,教师通过范例辅助学生理解、掌握知识和原理,其目的是让学生能够独立地获得判断能力、推理能力、认识能力和继续学习的能力。以往,程序设计课程教学通常以一门具体语言为主线,围绕语法知识展开。而实质上,设计程序是为了解决实际问题,是一种缜密思维方式、创新素质和综合能力的培养。要使学生对程序设计有兴趣,必须亲自感受并体验程序设计的无限魅力。为此,我们改用范例组织课堂教学。在多媒体教学设备和真实编程环境的支持下,课堂教学以程序(范例)为主线。所选范例程序具有典型性、综合性和可扩展性,涉及基本语法、基本算法和基本调试技术。范例程序的讲解首先符合“现象发现问题分析问题解决问题验证”的探索过程,使学生掌握基本语法、算法及应用。其次,通过对范例程序的启发式扩展,揭示程序由小到大、由简单到复杂直到实用的过程,激发学生的探索热情和兴趣,使学生掌握知识间的联系和编程的工程化思想,获得实际编程能力。

采集教学负反馈信息,做好分类、分析和讲评

按负反馈教学法要求,任课教师做好作业和实验报告的抽样批改、单元测验的全样批改,重视实验指导和答疑,从中了解学生的学习情况。在获取足够的负反馈信息后,任课教师及时做好问题的分类、分析和讲评,及时发现和解决学生学习中存在的问题,确保学生对所学知识的真正掌握。

根据大班教学特点,推进强同步教学策略

大班教学成功的关键在于保持师生教与学的同步状态。负反馈教学法的师生同步措施有授课、作业、实验、讲评和测验等。其中,作业与实验报告由于学生存在一定抄袭现象,同步效果欠佳,为弱同步措施。授课、讲评和测验同步效果较好,为强同步措施。为使大班教学取得较好效果,采用强同步措施是必要的。特别地,我们在每个单元安排一次测验,以实现师生的强同步,及时取得真实的负反馈信息。

编写负反馈教学法配套教辅资料,培养学生自学、探索和自我完善能力

配套教辅资料主要有:①学习指导。注重概念理解、知识巩固,设单元测试,便于学生学习和自测自查;②实验指导。共有17个实验,每个实验包含调试技术介绍、程序调试题、程序设计题和选做题,注重培养学生的编程能力和调试能力,激发学生编程兴趣;③典型问题和综合问题编程。共8个专题,便于学生突破难点,融会贯通,体验综合编程的乐趣,培养分析和解决问题的能力;④二级考试模拟试卷;⑤VC++ 程序调试技术,包括使用VC++ IDE编写和调试程序的方法和技巧。

2强化实践教学,注重培养学生的实际编程能力

VC++课程是一门难点多、综合性较强的课程,实验是该课程至关重要的环节,只有通过实验才能检验自己是否真正掌握和运用该语言。通过上机调试程序,会发现很多想不到的问题,通过解决这些问题,可以加深对语言和算法的理解,提高程序调试和实际编程能力。为此,本课程设有课内实验(32学时)和课程设计(两周)实践教学环节。

课内实验注重培养学生基本编程和调试能力

基本编程和调试能力是深入学习本课程并取得实际编程能力的前提。课程实验是至关重要的教学环节,与课堂教学同步进行。我们根据教学内容编写了一套以调试技术、基本语法、基本算法、综合编程为核心内容的同步实验指导,共拟定了17个实验,每个实验通常包括调试题、编程题和选做题,可供不同层次的学生选用。

课程设计注重培养学生综合编程和实际应用能力

课程设计安排在课程结束以后,以综合性程序设计训练为主,选题具有典型性、综合性和示范性,突出难点与实用价值,使学生体会到难点不难,难点在实际编程中非常有用。通过课程设计,学生进一步巩固和掌握基本语法、基本算法和基本调试技术,养成良好程序设计风格(模块化、结构化)和严谨的科学作风,初步形成软件工程化思想,具有一定的程序组织能力。

课程设计的内容涉及基本算法和数据结构。基本算法包括穷举、迭代、递推、递归、排序和查找等。基本数据结构包括数组、结构、指针、动态内存分配、单向链表、对象、文件等。课程设计的实施,对非计算机专业采用小综合方案,计算机专业采用大综合方案。所谓小综合是指程序规模在几十到几百行的小题目,大综合则是程序的规模在数百行以上有一定实用价值的题目。

实践教学认真实施,严格考核,确保效果

在课内实验和课程设计的实施过程中,配备富有经验的指导教师,现场实时进行辅导和答疑,指导学生解决编程中出现的问题。同时对学生严格要求,严格考核,确保实践教学质量。加强实践环节的考核是提高实践教学质量的重要保证。预习和考勤占总成绩的30%,上机检查并回答提问占总成绩的40%,课程实验报告和课程设计报告占总成绩的30%。

3积极开展教学内容研究,不断优化和更新教学内容

根据程序设计课程本身发展快、更新快、综合性强、存在问题多的特点,针对同类教材中存在的一些问题和不足,积极开展教学内容的研究,先后发表 “C++运算符重载教学和编程中易被忽视的问题”、“C++中二维数组与指针关系的深入剖析”、“C++语言引用型变量的实现机制浅析”、“C/C++语言可变参数函数的参数传递机制剖析” 等论文,并及时把这些教研成果和学科最新进展引入教学。

课程内容分为三个知识模块

(1) 结构化程序设计基础:包括C++概述、数据类型、运算符、表达式、简单的输入输出、算法与流程控制语句等。

(2) 模块化程序设计:包括函数、编译预处理、程序的多文件组织、数组、结构体、共用体、枚举类型、指针和引用。

(3) 面向对象程序设计:包括类、对象、构造函数、析构函数、继承、派生、友元、虚函数、静态成员、运算符重载、I/O类库、命名空间、模板和异常处理等。

课程的重点、难点及解决办法

(1) 算法表达、结构化语句:结构化编程的基础。注重讲授算法的结构化表示法,结构化语句,常用基本算法,断点+单步调试技术。

(2) 函数:模块化编程基础。注重讲授程序的模块化组织思想和方法,自顶向下逐步求精的程序设计思想,参数传递,变量作用域,程序的多文件组织。

(3) 数组、结构体、指针:数据的结构化和模块化组织基础。指针是重点和难点,应正确区分指针与地址,强调指针类型的作用,讲清各类指针的含义及作用。特别注重讲授指针在动态生成基本数据结构,解决实际问题方面的综合实例。

(4)类、对象、继承、运算符重载、虚函数:面向对象程序设计基础。运算符重载较易理解,但有些方面易忽视,应提请学生注意。虚函数是重点和难点,应注重讲授虚函数的必要性、重要性、实现机制和综合实例。

4改革考评方式,正确发挥考试的导向作用

根据VC++课程的特点,正确发挥考试的导向作用。改革考评方式,实行考教分离,并使其与江苏省大学生计算机等级(二级)考试方式接轨,采取笔试(50%)+机试(50%)的方式,理论与实践并重。

试卷的试题源自题库和现任教师的征卷,试卷由选题算法和软件系统产生,难度与二级考试相当,提高了考评的科学性。

5总结提炼教学经验和成果,积极开展特色教材建设

教材建设是课程建设的重要方面。几年来,课程组对国内外流行C++教材进行研究、分析和试用,总结、积累和提炼自己的教学经验和成果,从校内讲义开始,逐步开展具有自己特色的教材建设工作。2005年2月,自编教材《Visual C++程序设计习题、实验与编程实践》由华东理工大学出版社出版,同年12月又第二次印刷,得到了社会读者的认可。2005年10月,本课程获江苏省高等学校精品教材立项建设,课程组编著的体现“负反馈”教学特色的教材《C++程序设计实践教程》一书目前已与清华大学出版社签订出版合同,书稿已经交付,将于2007年上半年出版。

6运用现代化教学手段,加强网络教学资源建设

经过多年的教学、研究、建设和总结,本课程已积累了丰富的网上教学资源,经常更新,在教学中发挥重要作用。网上教学资源包括:课程教学大纲、课程设计大纲、教学日历、课程设计任务书、实验指导书、教学课件、习题集、典型问题及参考程序、相关教学论文、英文版课外辅导材料、模拟试卷等。课程组成员开发的“基于WEB的《C语言程序设计》教学系统”2006年11月获得第二届全国高等学校计算机课件评比二等奖。本课程网上教学资源的网址为:。

参考文献:

[1] 刘维富,陈建平,王春明。 浅谈“C++程序设计”课程的建设与实践[C]. 第二届全国计算机课程报告论坛,2006,11.

[2] 刘维富,丁卫平,沈学华。 Visual C++程序设计习题、实验与编程实践[M]. 上海:华东理工大学出版社,2005,2.

[3] 顾晖,刘维富,管致锦。 负反馈教学法的原理与实践[J]. 电气电子教学学报,2004,(4): 102-104.

[4] 邱建林,刘维富,顾晖。 C语言程序设计教学的研究与实践[J]. 电气电子教学学报, 2003,(4):96-98.

[5] 刘维富。 C++运算符重载教学和编程中易被忽视的问题[J]. 南通工学院学报(自然科学版),2003,(3):56-59.

[6] 刘维富。 C++语言引用型变量的实现机制浅析[J]. 南通工学院学报(自然科学版),2002,(1):64-66.

[7] 顾晖。 C/C++语言可变参数函数的参数传递机制剖析[J]. 电脑与信息技术, 2004,(3): 37-38.

[8] 丁卫平,刘维富,沈天晴。 C++中二维数组与指针关系的深入剖析[J]. 南通工学院学报(自然科学版),2004,(3):85-87.

投稿日期:2007-2-24

作者简介:陈建平(1960-),男,江苏南通人,硕士,教授,研究方向为快速算法设计与实现等。

刘维富(1961-),男,江苏南通人,硕士,副教授。研究方向为计算机语言与程序设计等。

通信地址:江苏省南通市啬园路9号南通大学计算机科学与技术学院陈建平邮编226019

E-mail:

电话:0513-85975405,13962955020

48 1712248
");