程序设计语言范例6篇

前言:中文期刊网精心挑选了程序设计语言范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。

程序设计语言

程序设计语言范文1

程序设计语言通常分为:机器语言、汇编语言、高级语言三类。

机器语言是最底层的语言,只有“0”和“1”,二进制语言,就像开关一样,0是关,1是通过。一句话,就是写出一串串由“0”和“1”组成的指令序列交由计算机执行,这种语言,就是机器语言。

汇编语言指令是机器指令的符号化,与机器指令存在着直接的对应关系。通常用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“ADD”代表加法,“MOV”代表数据传递等等。

高级语言是面向用户的、基本上独立于计算机种类和结构的语言。高级语言的一个命令可以代替几条、几十条甚至几百条汇编语言的指令。

(来源:文章屋网 )

程序设计语言范文2

关键词:比喻法程序设计教学多媒体课件

随着现代化进程的加快,学校的教育设施也得到了飞速的发展,笔记本电脑和多媒体教室被广泛应用,大多数教师在教学过程中更倾向于利用已经设计好的多媒体课件进行教学,却忽视了在整个教学过程中运用形象生动的比喻法。

所谓比喻法,是常用的一种修辞方法,就是利用两种不同类的事物之间的某些相似的地方,以形象的事物作喻体去描述一个抽象的事物,它能化平淡为生动,化深奥为浅显,化抽象为具体。“精彩的比喻就像童话中的魔棒,碰到哪里,哪里就会发生神奇的变化”。在教学过程中,学生经常会碰到某些课程的理论性强,枯燥、难懂,不容易掌握。如果教师通过比喻教学,把内容和现实中非常接近我们的事情联系起来,可使学生较好的理解某些比较抽象的知识内容,以便他们能进一步掌握并能应用这些知识、原理来分析、解决某些相关的问题。

笔者就以计算机专业必修课《C程序设计语言》课程为例,结合自己的教学心得,谈谈如何用比喻法开展教与学的活动。

在一般高校都把《C程序设计语言》课程设置在大学一年级,主要面向新生,新生本身对大学的适应就需要一个过程,再加上C语言牵涉的概念复杂,规则繁多,目前各高校在C语言程序设计课程教学模式上仍采用传统的教学方法,导致学生刚接触C语言就觉得抽象、深奥,使用起来不得心应手。如算法概念、顺序程序设计、选择程序设计、循环程序设计,指针等知识更考验着学生的思维和耐心。

典型案例1:程序的灵魂――算法

[案例呈现]算法的概念是什么?

[分析]在《C程序设计》教学中,最大的困难正是对一些抽象的理论和概念的理解。算法是为解决某一问题而采取的方法和步骤。在教学中,我做了如下的处理,充分应用比喻的魅力,达到较好的教学效果。

打个比方,厨师制作菜肴,需要有菜谱。菜谱上一般包括使用的配料和用这些配料按规定的步骤加工出不同风味菜肴的操作步骤。没有配料是无法加工成所需菜肴的,面对同一些原料可以加工出不同风味的菜肴。设计一个好的程序,就像是做一道美味的菜肴,既要用到类似于配料的数据结构,又要有类似于做菜步骤的算法。没有数据结构是无法制作程序的,面对同一些数据可以设计出不同的程序。可见,算法从广义上来讲,就是操作步骤,就是为解决一个问题而采取的方法和步骤。当然我们学习计算机,关心的是计算机能解决的算法。

如著名数学家华罗庚“烧水泡茶”的两个算法。

算法一:烧水――水烧开后,洗刷茶具――沏茶。

算法二:烧水――烧水过程中,洗刷茶具――水烧开后沏茶。

大家可以看到这两个算法的区别在什么时间洗刷茶具,因为第二个算法应用了“统筹方法”,节约时间,所以效率更高。可见为了有效地进行解题,不仅要保证算法正确,还要用到科学的方法,考虑算法的质量,选择合适的算法。

算法的概念及特点如果只凭老师反复讲述定义,学生只会听得昏头昏脑,索然无味,教学效果很差。而比喻教学法的应用,可以使抽象的知识变得形象化、趣味化,起到“一语道破天机”的作用。

典型案例2:C程序设计的三种基本结构及各自的语句分析

1.顺序结构

顺序结构是C程序设计中最简单的一种基本结构。它就像人的一生,从出生、长大、上幼儿园、小学、初中、高中、大学、工作、结婚生子,再到“夕阳无限好,只是近黄昏”。顺其自然、顺顺利利度过一生。

2.选择结构

它就像在人的一生中会遇到的好多选择,有人生道路的选择、世界观的选择、事业的选择、爱情的选择,等等,但任何的选择都需要当前实际条件的成立。例如,考大学,假设成绩大于500分就考上了,否则未考上。此结构中必包含一个成绩大于500的判断框,根据给定的条件是否成立而选择执行“考上”或“未考上”。

if(成绩>500) printf(“考上”);else printf(“未考上”);

3.循环结构

循环即周而复始,花开花谢,月圆月缺,循环无尽。人生像生老病死就是一个循环不息的过程。我生病了,医生叮嘱我每天吃药,连续吃7天病就好了。很显然吃药是每天必做的事情,也是必循环的事情,7天后就可以不吃药了(如图所示)。在不少实际问题中有许多具有规律性的重复操作,因此在程序设计中就需要重复执行某些语句。一组被重复执行的语句称为循环体,能否继续重复,决定循环的终止条件。所以循环语句是由循环体及循环的终止条件两部分组成的。循环语句是最能体现计算机解决问题优越性的语句。

While(天数

可见,这种利用一个个发生在身边的实例做比喻,再加上理论讲解相结合的方法,使学生能感性地理解循环。

在《C程序设计语言》课堂教学中,尝试用比喻的方式来剖析计算机教学中的概念,选用恰当的生活事例,用已知来发掘未知,提高教学效果,增强学生学习的兴趣,是一种非常有效的教学方法。但是,运用教学比喻,并不是以粗浅的事例代替科学精准的理论,更不是用随便的玩笑代替细致准确的讲解,而是要求我们紧扣教学目标和要求,把握物理概念的本质和特点。根据具体问题,做到言之有理,言之有物,言之有据。《学论》中说:“君子之教,喻也。”作为教师,在日常教学中,一定要认真钻研教材,准确把握所教学生的思维水平和特点,从日常生活和学生已掌握的知识中找到恰当的比喻,运用比喻的时机和技巧,使课堂妙喻精彩纷呈。

参考文献:

[1]顾建东.生活:程序设计教学的本质回归[J].中国教育信息化.

[2]盛美勤.让比喻这一古老的修辞焕发新的教学生命力[J].中国.

[3]许文芳.类比法在《C语言程序设计》教学中的运用[J].电脑知识与技术.

程序设计语言范文3

关键词:排序;元素;算法

中图分类号:TP316.2 文献标识码:B 文章编号:1002-7661(2013)34-029-02

一、引言

排序就是将线性表中的各元素按关键字从小到大(或从大到小)的顺序重新排列。在本文里,把作为排序依据的关键字称为排序码。排序过程一般都涉及到排序码的比较和元素的移动这两种基本操作。排序算法的执行时间通常用这两种基本操作的执行频度来衡量。在程序设计基础教学中,排序算法不但是一种基本算法而且还是一种常用的算法,是学生必须掌握的内容。从我多年的程序设计教学中发现往往书中的排序算法的文字描述对学生来说很难理解。程序语言的描述更是不知其所指,这对学生来说很大的打击了他们学习的积极性,也使得他们很难真正的掌握排序算法,并在实际应用中发挥作用。本文就这一现象问题将排序算法用VC++设计成动态的排序效果生动形象地演示学生看,有助于学生理解并掌握,增强学生学习排序算法的积极性。

本排序动态演示设计的思想是:以一种排序算法作为范例,动态的演示一组数据在这个算法思想下的变化过程,并在动态演示过程中随时可以调整排序速度以便给学习者有思考的过程,通过动态的演示让学习者清晰的看到算法的思想。这种动态的演示算法的过程可以推广到其他排序算法中去,有了这个动态过程的演示,学生就可以轻松的掌握各种算法的思想,并在程序设计的过程中很好的利用。

二、排序算法

常见的排序算法有快速排序、希尔排序、堆排序、选择排序、起泡排序、折半插入排序、直接插入排序、归并排序,这些排序算法都各有其优缺点。本文将对起泡排序、选择排序这两类进行探讨。

1、起泡排序

起泡排序算法的基本思想是:在元素中依次比较两个相邻元素的排序码,若前者比后者大则交换,若前者比后者小则保持不变。先将第一个排序码与第二个排序码比较,然后是第二个与第三个比较,直到倒数第二个与最后一个排序码。比较一轮结束之后,排序码大的记录均向后移动。然后开始新一轮的比较,知道一轮比较下来,不再有排序码的交换发生为止。整个过程就有点像水中的气泡上升的过程,轻的往上浮,重的向下沉,所以这个算法也叫起泡排序法。算法的步骤如下:

(1)假设要排序的数列为A[1]……A[N],我们把相邻的两个数两两进行比较。即把A[1]和A[2]比较,对比完后把A[2]和A[3]进行比较,……直到A[N-1]和A[N]比较完为止。在相邻的两个数两两进行比较的过程中,如果前面的一个数比后面的一个数大,则把这两邻的两个数交换,也就是说,我们把较小的数放在前面,把较大的数调到后面。即,如果在一次比较中,如果A[1]比A[2]大的情况下,把A[1]和A[2]交换,……以此类推,直到一轮A[N-1]和A[N]比较完。

(2)再次重复(1),直到相邻两数之间不再发生交换为止。

2、简单选择排序

简单选择排序算法的基本思想是:从所有元素中选出排序码最小的元素,将它与A[0]交换位置;然后,在A[1]~A[N]中选出排序码最小的元素,将它与A[1]交换位置;依次做下去,在进行了N-1次选择后排序过程结束。这种排序算法比较的次数与前一种排序算法一样多,但是交换次数要比起泡排序算法少,效率较高。

三、演示方法

1、传统方式的演示方法

目前大专院校教师在对语言程序设计中排序算法的内容进行讲授时一般采用静态数字输出方式,如图1所示。这种方法对于描述排序算法中交换数据的过程不够形象生动。

图1 传统方式的排序演示方法

2、立方柱形的动态演示方法

(1)设计原理

本排序算法动态演示程序是在VC++6.0集成环境下实现,基于对话框类型的MFC应用程序。为了直观清楚地表现起泡排序与选择排序的排序过程,程序设计的主界面如图2所示。

图2 排序算法动态演示程序主界面

程序主界面是一个对话框,包含控制区,演示区和说明区三个部分。

控制区位于主界面的上方,主要由下拉组合框控件,按钮控件,滑动控件以及静态文本框控件组成。下拉组合框控件供选择产生多少个随机数进行动态排序演示,按钮控件用来控制动态排序演示的开始,滑动控件用来控制演示速度,在需要仔细查看演示过程的时候,可以将滑动块移到最左边演示。

演示区位于主界面的中间,由上下两个绘画窗口(静态文本框控件)组成,负责将排序中的数据以立方柱形绘制出来,而不是简单输出我们通常熟悉的1、2、3等数字符号,显得更为直观,比较有动态演示效果。

说明区位于主界面的右边,由上下两个静态文本框控件组成,是对描述排序算法动态演示的简单说明。

(2)主要实现过程

首先创建一个基于对话框类型的MFC应用程序SortingDemo,在主对话框上添加所需要的控件。然后,在对话框CSortingDemoDlg的初始化函数OnInitDialog末尾加入控件的初始化代码。

在CSortingDemoDlg.h中的类SortAlgoWindow里定义m_wndSortAlgo1和m_wndSortAlgo2的2个实例,分别实现对起泡(升序)排序和简单选择(升序)排序的动态演示。

类SortAlgoWindow是从CWnd派生的一个窗口类,重载WM_PAINT消息,OnPaint方法里面实现更新后的数组元素的绘制。

类SortAlgoWindow的UpdateSoringData方法会更新并重绘排序中的数据。

void SortAlgoWindow::OnPaint()

{ CPaintDC dc(this); // device context for painting

// TODO: Add your message handler code here

// Do not call CWnd::OnPaint() for painting messages

// 绘制面板底色

// 根据排序中的数组元素,绘制立方柱

// 用红色绘制发生交换的数据1

// 用蓝色绘制发生交换的数据2 }

按钮控件是用来控制排序动态演示的开始,通过创建2个线程实现起泡(升序)排序和简单选择(升序)排序的排序过程,并将排序过程以立方柱形显示到对应的显示控件中。

void CSortingDemoDlg::OnBnClickedStart()

{ AfxBeginThread(BubbleSortProc, this);

AfxBeginThread(SelectSortProc, this); }

(3)程序运行

图3是程序运行时排序过程中的一个截图,从图中可以看到,在起泡(升序)排序过程中,相邻的红色,蓝色2个元素进行了交换,较大的元素向后移动。而在简单选择(升序)排序过程中,较小的(蓝色)数据被排到了最前面。

图3 排序算法动态演示程序开始

所有元素按照升序方式排序结束后的最终运行界面如图4所示。

图4 排序算法动态演示程序结束

四、结语

我们在进行程序设计中排序算法内容的教学时采用本文中立方柱形方式的动态演示方法讲授,由于它的直观性能够使得让抽象的内容不再难以理解,必然能较好地带动学生学习排序算法的热情,从而产生良好的效果。

参考文献:

[1] 谭浩强.语言程序设计(第一版).华大学出版社,2005.

程序设计语言范文4

中图分类号:G433

文献标识码:A 文章编号:1672-7800(2017)006-0222-04

0 引言

国际通行的双语教育基本要求是:在教育过程中有计划、有系统地使用两种语言作为教学媒体,使学生在整体学识、两种语言能力以及这两种语言所代表的文化学习及成长上,均能达到顺利而自然的发展[1]。在这里,第二种语言是教学手段而不是教学内容或科目[2]。

双语教学的目标具有双重性:①对本科生开设双语教学,可以培养英语口语、阅读英语教材、英语资料和英语文献的能力,为进入研究生学习打下基础;教师可通过双语教学,培养和锻炼阅读和撰写英文paper的能力;②双语教学的目的是帮助教师更好地传输学科知识,学生更容易地接收学科知识。

1 C语言双语教学现状

计算机类课程中,最适合双语教学的课程是计算机语言课程,学生一般最先接触的是C语言,理工类专业课程中讲授最多的也是C语言。

C语言本身就采用英语格式,这是此课程作为双语教程的最大优势[2]。学习C语言语法时不需要进行汉语翻译,只需对其英文本意进行直译,这是这门课程和其它非语言类课程的最大区别,也是其开展双语教学的主要原因。

计算机程序设计的知识源自国外,实施双语教学势在必行。如C语言的圣经《The C Programming Language》,《Thinking in C》,没有英文基础也可接收知识,但根本无法真正领会程序设计思想的精髓。因此,C语言实施双语教学,结合各种程序调试来加强对英文程序内容的理解,才能引导学生理解C语言程序设计的语法、逻辑和算法意义。

C语言开展双语教学已有多年,取得了一些成绩,但多停留在课堂理论知识上,对以下几个问题缺乏深入思考:①双语教学时第二语言的比例是多少?②双语教学中学生的英语水平和计算机水平如何?③虽然理论课采用双语教学,但实验环节如何理解英文的相关提示等信息?④双语教学内容选择是否合理?⑤双语教学如何设计实施?

2 C语言双语教学设计

C语言语法和程序设计思维是学科知识,双语是手段和方法,有效利用英语服务于C语言教学对教学效果影响很大。通过对上述5个问题的深入思考,以笔者学院开设的《C程序设计》双语课程为例,设计并实施了“多维”C语言双语教学模式。

C语言的教学设计应具备以下几个基本条件:①授课教师非常熟悉双语教学内容,能用英语交流程序设计方法;②学生具备一定的英语听说读写能力;③学生具备一定的计算机基础知识。

C语言的双语教学设计原则:①根据学生的英语能力适当调整英语授课比例;②根据学生计算机基础(背景),适当调整英语授课比例;③根据教学内容,精心选择英语教学内容;④根据学习情况适当调整英语授课比例;⑤基本概念、句法结构和语法结构等使用准确的英文表达;⑥基本概念、句法和语法结构的解释和使用说明使用一定比例的汉语进行讲解;⑦设计出的程序要保证在符合C语言语法、句法的条件下,使用一定比例的英语表达;⑧算法可以采用自然英语或伪代码形式表达,帮助学生用自然思维去理解;⑨使用英文表达调试程序,尽量使用英文解释程序调试问题;⑩授课资料、教材、学生作业、实验指导、测试和考试应保证一定比例的英语表达和一定比例的双语表达。

C语言双语教学设计要根据学生实际情况和教学具体内容而定,内容应涵盖C语言教学的多个方面,始终遵循“从C语言教学本身出发”的基本思想。

3 C?Z言“多维”双语教学实施

C语言实施双语教学,主要从“理论基础、控制结构,算法设计、程序调试和程序设计”5个维度展开。

3.1 理论基础

C语言的理论基础知识包括关键字、常量、变量、数据类型、运算符、表达式、预处理指令和C库函数等,这些基础知识要使用准确的英语来讲解。例如:

在这个程序中,出现以下几类基础知识:①int、return是关键字;②printf是C库函数名;③int是数据类型;④#include 是预处理命令;⑤main是主函数名。

其次,分析这几类基础知识:①return、include、main与英语中对应的单词含义几乎一致;②int汉语是整型,是英语单词integer的前3个字母;③printf是输出函数的函数名,其中 “print”在英语中有打印输出的意思,“f”是英语单词function(函数)的第一个字母;④stdio.h是一个头文件名,其中,“std”是英语单词standard的简写,“i”是英语单词input的第一个字母,“o”是英语单词output的第一个字母,“h”是英语单词head的第一个字母,“.h”是文件的后缀名;⑤This is my first C program!是一个字符串,是一句英文准确表达的句子;⑥\\n是一种字符常量,叫转义字符,起“换行”的作用。

首先要记住这些基础知识的含义,然后用双语讲解这些基础知识的作用、用在什么地方、如何使用。值得注意的是,在双语教学中,学生知道汉语解释是为了容易理解,但在后续教学中,应要求学生用准确的英文表达而不是汉语表达。例如:当学生看到、读到或用到“int”时,脑海里浮现的就是“int”,读的也是“int”,用的也是“int”,而不是去翻译它。学生理解和掌握了理论知识,后续理解和掌握声明或定义结构、句法、语法就能水到渠成。

3.2 控制结构

程序设计的三大控制结构利用人们日常生活思维来设计程序,使得计算机能按照人类思维去运行、计算结果。三大结构采用双语教学方式,有利于学生理解和掌握。

需要说明的是,这个教学内容与生活思维完全相似,学生比较容易理解。因此,可以增加双语教学比例,甚至采取全英文的教学模式。

3.3 算法设计

算法是程序设计之前必须考虑的问题,简单说就是让计算机解决问题的方法。算法的描述方法有很多种,笔者经过多年的教学实践发现伪代码很适合初学者。伪代码接近自然语言,便于初学者理解和掌握。在C语言双语教学的算法设计中采用英语伪代码更能消除算法与程序之间的距离感。

例如:设计一个能进行多次计算的四则运算器,直到用户强制结束程序。

(1)算法的自然语言描述:首先,输入计算用的两个操作数和运算符;接着判断运算符是哪一种(+、-、*、/),进行四则运算;然后输出运算结果;重复以上3个过程直到用户输入结束程序的命令。

(2)算法的英文描述:①input the expression as a+b,“a” and “ b” are operation numbers,“+”is operator;②judge the operator then select the right formula;③output the result;④repeat the three steps ahead until user input the character “N”,the program is end。

通过以上对算法的描述,特别是使用伪代码,大大降低了算法的抽象性,能看到程序的雏形。这时学生编写程序会觉得可以动手,增强了自信心。

3.4 程序调试

学习程序设计,除了学习学科知识(knowledge)外,更为重要的是计算思维(Computational Thinking)和编程技能(Computational Skills)训练。《C程序设计》实验课非常重要,汉化的C语言编译系统存在缺陷,学生应使用全英文版的VC++6.0调试程序。调试程序时得到的警告、错误提示和调试方法全部用准确的英文描述。如图1为程序改错题调试界面。

程序调试过程中,要求学生填写表1。

调试程序是对程序结构、逻辑问题、语法问题和算法进行调整和测试,经过阅读、调试和改错训练,学生对全英文的错误和警告提示理解力提高,调试程序也变得容易。

3.5 程序设计

程序设计是一个综合学科知识和编程技能的过程,学生要依靠所获得的知识和技能才能完成此项工作。首先给出程序结构,然后用英文注释说明程序的某个部分应该实现哪些内容,最后再逐渐把程序补充完整。

4 C语言“多维”双语教学效果

C语言“多维”双语教学实施后,在以下方面取得成效:①学生对理论知识掌握比以往牢靠,特别体现在语法和句法的掌握上,鲜有学生在程序设计时出现语法和句法的书写错误;②学生对三大结构的理解和实现比以前清晰;③利用英语伪代码进行算法设计,为学生从算法到程序的过渡建立了直观的桥梁,消除了对算法的恐惧性和对程序的神秘性;④从实验课完成情况看,学生会优先做程序改错题,再做程序填空?}和程序设计题。在程序调试过程中,对很多错误和警告都能马上改正;⑤学生进行程序设计不一定一次成功,但通过多次重复思考和注释的过程,可以做到“设计一点、调试一点、完成一点”,最终逐步实现整个程序。

5 C语言“多维”双语教学总结和展望

程序设计语言范文5

关键词:程序设计语言;程序设计能力;分析要点

Teaching Main Point Analysis of Computer Programming Language Courses

Li Yongliang

(Shandong Transport Vocational College,Weifang261206,China)

Abstract:In computer science and computer non-computer major teaching,almost all schools set up high-level language programming course.Programming language teaching although it is difficult,but very meaningful,it is beneficial to develop creative thinking,help students develop problem-solving through computer awareness and ways.

Keywords:Programming language;Programming skills;Analysis

main points

在教学中与一些应用软件或工具软件相比,编程课程的教学具有较大的灵活性。很多学生的学习能力较差,课后不肯花时间,久而久之,导致听不懂,给计算机编程语言课的教学带来一定的难度。采用何种教学模式进行教学就成为编程

语言教学的一个关键。

一、引言

根据以往的教学经验和通过与学生、同事之间的交流,得知部分学生反映上课时都能听懂讲解,可在涉及到具体的编程及上机操作时,往往会出现没有思路、无从下手或错误百出,不会调试程序等各种情况,究其原因,在教学方面可能存在以下2个问题。

(一)过于注重对语句语法的讲解,缺乏以算法为核心的编程题教学。教师钟情于举一反三地对使用语句、语法的深入教学,而不是有机地结合算法思想进行教学,贴近生活并引起学生兴趣的编程题讲得很少。由于教学不是站在如何应用计算机工具编程解决实际问题或实际项目的角度,就没有把逻辑与编程解题思路放在主体地位,也就没有很好讲解如何分析问题和解决问题。结果导致学生程序设计能力、上机解题能力训练不够,更谈不上引导学生进行课题研究和科研探索。

(二)学生厌倦传统的课堂教学,缺乏师生之间的沟通交流学生对于先讲后编、先听后编这一传统的课堂教学方式有厌倦心理。课堂成了教师的“一言堂”,教与学不能衔接起来。有时教师为了赶进度,讲授法成了唯一的教学方法,师生之间缺乏足够的交流和沟通,学生没有有效、实用的学习辅助途径,也间接影响着学生的学习兴趣和学习效果。

二、程序设计能力认识

程序是软件的本体,程序设计(Programming)是指设计、编制、调试程序的方法和过程。它应排除软件开发中的工程与管理因素,主要指软件开发过程中的技术因素,尤其是计算机技术因素。

根据调查分析,合格程序员必须具有:1.扎实的专业基础知识;2.很强的综合分析和解决问题的能力;3.熟练的编程调试能力;4.创新能力;5.团队合作能力;6.持续的自学能力;7.强烈的好奇心;8.较高的英语水平和软件工程的实践能力等。

应看到,程序设计能力,并非完全等价于程序员所应具备的专业素质,它还包括其他一些内容,如:1.理解问题,根据已知条件,找出求解该问题的数学方法或建立相应的数学模型;2.归纳程序的基本功能;3.设计数据结构和算法;4.用程序设计语言实现算法描述;5.编译与调试;6.测试程序,保证程序正常运行。

综上所述,可以将程序设计能力定义为:依据程序设计思想与观念,应用程序设计语言,采用相应程序开发技术和环境,进行程序设计并达到预计结果的程度。

三、要点分析

基于对程序设计教学思想、程序设计能力的认识,为使学生充分掌握程序设计的思想和方法,有效实现程序设计课程教学目标,我认为程序设计教学还应注意并强调以下几个基本的教学任务和要求。

(一)应着重培养学生的结构化程序设计的基本观念。结构化程序设计的基本思想是采用“自顶向下,逐步求精”的程序设计方法和“单入口单出口”的控制结构,它是程序设计的基本原理之一。贯彻课程始终、通过具体实例潜移默化地培养这一思想,比在软件工程中空洞的说教,更容易被学生理解和接收。

(二)为了使初学者能尽快地掌握计算机知识,进入计算机的应用领域,在课程讲授过程中,要特别注意培养学生的学习兴趣。学习兴趣就是学生在心理上对学习活动产生爱好、追求和向往的倾向,是推动学生积极主动学习的直接动力。学习兴趣直接关系到教学效果的好坏。为提高学生的学习兴趣,笔者归纳出6个办法:1.通过演示程序突出程序语言的实用性;2.通过简单的编程练习突出语言的易学性;3.运用恰当的类比使复杂问题形象化、简单化;4.做到一题多解;5.要善于举一反三;6.通过解决实际问题使学生乐学。

(三)教师在教学过程中引导学生思考和探索教学时发现,学生问不出问题的原因往往在于没有真正学好。实际上,问题是最好的老师,是学生学习的引导者,没有问题便没有深入。在教学过程中,引导学生在问题解决中学习,即提出问题,留给学生时间思考、讨论、解决问题,从而更深入地展开学习。实践证明,这种教学方法充分调动了学生学习的积极性和主动性。

程序设计语言范文6

关键词:C++;程序设计语言;专业应用

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2014)30-0239-02

一、前言

1.C++程序设计语言的发展和优点。计算机程序语言是不断演变的。C++语言是由贝尔实验室Bjarne Stroustrup博士及其同事开发的,他们在C语言的基础上逐步发展C++并将其完善。C语言是一种实用性很强的语言,它具有语言简介、灵活方便、可移植性好等优点。C++语言不仅继承了C语言的这些优点,还克服C语言自身的缺点,在其功能上做了本质性的革新,即面向对象的机制,有助于程序员开发软件的高效性和灵活性。目前C++程序设计语言已在众多领域得到广泛应用,从而成为高校很多专业(尤其是工科专业)的一门重要基础课程。

2.C++程序语言的教学现状。C++程序设计语言在给软件开发带来效率和增加代码灵活性的同时,也增加了学习的难度。Scott Meyers指出C++是一个难学易用的语言,它的难学不仅表现在广博的语法、语法背后的语义、语义背后的深层思维,以及深层思维背后的对象模型;还在于它提供了四种不同而又相辅相成的编程范型:基于过程(procedual-based)、基于对象(object-based)、面向对象(object-oriental)和泛型(generics)[1]。目前,大多数高校的教学方式仍然是以讲授语法概念为主,学生们只是孤立的知道语法,而C++程序设计的能力不足,出现“高分低能”的现象,即使考试成绩很高的学生,对语法很清楚,但是让他们设计简单算法,例如,工科专业处理数据时经常用到的拟合算法,会出现无从下手的局面。这种教学方式导致了学生对程序语言语法十分熟练,而程序设计能力很弱的现状。为了改善这种现状,一些高校提出了项目或任务驱动式或是以案例为主的教学方式,这种教学方式是让学生在一个个典型的编程“项目”的驱动下展开教学活动,让学生通过自主学习和相互合作,完成教师布置的任务,建构真正属于自己的知识与技能[2]。C++是一门实践性很强、极富创造性特点的课程,项目驱动方式,确实能够更好的将教学重点从老师单纯地教语法知识点,到学生主动地参与到编程和学的过程中。但是目前的项目驱动方式仍存有问题,例如,项目的题目学生不感兴趣,学生认为一些项目和他们的关系不大,甚至认为C++的学习对专业应用没有用,从而导致有些组完成的项目不理想。

鉴于此,本文提出将C++程序设计语言的教学与专业应用相结合,让学生充分认识到C++程序设计语言是解决专业问题的一种重要工具。

二、C++程序设计语言与专业知识的关系

C++程序设计语言与专业知识是密切相关的,它为后续相关课程的学习提供了基础,为解决专业问题提供了一种有效的工具,同时专业常识可以辅助学生在C++语言学习中加深对概念的理解。

1.C++程序设计语言为解决专业问题提供了一种工具。C++程序设计语言工具的作用主要表现在它能解决一些专业问题,例如,机械工程专业和自动化专业的单片机设计课程,单片机功能的实现离不开编程,while、for循环语句及不带参数函数十分常用;或是金融专业中投资组合优化,为了得到最优的投资方式,根据数据得到投资组合模型,采用C++编写投资组合模型,从而通过计算机分析出最优的投资方式;或是化学专业中,为了分析两种分子结构的相似度,从而寻找最大公共子图。众所周知,最大公共子图问题是NP完全问题,靠人力分析太慢,可以应用C++编程,让计算机代替求解;或是医学专业中,研究新药的开发,分析新药在小白鼠上的反应得到的数据需要分析,分析过程中设计到拟合算法和精度分析等,用C++编程会大大简化实验员的工作量。尽管C++程序设计语言对于专业的学习十分重要,但是专业课老师反映多数学生对于C++程序设计语言的掌握不牢固,即使当时得分很高的学生,也不能顺利而高效地设计出算法。原因之一是学生学习计算机语言的时候只是专注于语法的学习,而不专注于程序语法背后的语义、以及语义背后的深层思维、深层思维背后的对象模型的学习,而且计算机程序语言的教学脱离了应用,不能让学生真正体会到计算机编程语言是一种工具。

2.专业常识辅助C++程序设计语言中抽象概念的理解。C++程序设计语言中的一些概念是比较抽象的,例如类的概念,学生刚开始学习的时候不能很好地掌握类的概念,也不能明确地区别类和对象,而专业常识可以辅助抽象概念的理解。例如,机械专业中螺母可以看成一个类,这个类有规格、牙距、最大外径、高度等属性。有一个规格是2.5,牙距0.45mm,最大外径6.4mm,高度2mm的六角螺母,这个螺母就对应于对象,从而向学生们解释了类和对象是抽象和具体的关系,同时机械专业的学生也知道了螺母的属性有哪些。

因此,专业知识和C++程序设计语言是相辅相成的,可以将这两者结合起来,从而达到让学生们增加对C++程序设计语言的兴趣,同时也对专业知识有所了解,深刻理解C++程序设计语言对于专业学习是一个重要工具。

三、C++程序语言与专业知识的结合

既然专业知识和C++语言之间相辅相成,在教学活动中应将两者结合,从而使学生对C++学习提高兴趣,同时也了解了专业知识。两者之间的结合点主要表现在教学过程中概念的讲解和项目的选取。

1.概念的讲解。C++的概念相对于C比较多,为了让学生能更好地掌握这些概念,可以结合具体事例,尤其是专业相关的实例。例如:类的继承性是面向对象编程的一个重要性质,在讲解继承性的时候,可以结合专业背景知识来说明继承性的好处;机械专业中,零件的设计过程中设计新零件是基于旧的零件的基础上改进,可以看成新零件继承了旧零件的特征,而添加了一些新特征,从而省去了大量重复的工作,C++的继承性同样具有这种优点。C++的继承性是指在一个基类上定义了一个派生类,派生类继承了基类所有属性和操作,同时增加了其他新的属性和操作,这些新属性和操作是基类不具备的。这样就可将专业常识和类的继承性结合起来,有助于C++概念的理解。

2.与专业背景有关的项目。项目驱动教学方式使得学生主动地参与到编程的学习过程中,但是项目的选取十分重要,如果应用背景学生不了解,使其对于项目的完成形成一定的障碍,因此项目的选取与专业应用相结合有助于学生了解项目的要求,提升对项目的兴趣。目前,很多高校采用拟合算法的实现作为一个典型项目,但是单纯地讲拟合算法,没有专业应用背景,学生觉得很枯燥,可以将拟合算法和专业背景结合起来,比如面向机械专业的学生,可以以逆向工程为例。教师在介绍项目的时候可以简单介绍一下逆向工程的技术背景。逆向工程是一种能根据现有的物理部件通过CAD、CAM、CAE或其他软件构筑3D虚拟模型的方法。逆向工程的过程采用了通过丈量实际物体的尺寸并将其制作成3D模型的方法,真实的对象可以通过如CMMs、激光扫描仪、结构光源转换仪或者X射线断层成像这些3D扫描技术进行尺寸测量。这些测量数据通常被认作是点集,缺乏拓扑信息,并且通常会被制作成更有用的格式,例如多边形网格、NURBS曲线或者CAD模型。由此,学生知道逆向工程的定义、内容和过程,而拟合算法是逆向工程中常用的一种方法。介绍项目时,将逆向工程的实际问题进行简化,比如实现一个旋转面的三维数据点,并重构出这个旋转面,并给出旋转面的母线和旋转轴。面向医学专业学生,可以以实验数据分析为例,例如放射后细胞存活的实验,教师先介绍一些放射治疗的背景、效用和副作用等,并指出细胞存活实验的重要性。介绍细胞存活实验的实验,通过实验得到一组数据,并通过C++程序设计语言,得到放射后细胞存活量的变化曲线图。由上面可知,同样一个算法,在不同的专业中应用是不一样的,如果在说明拟合算法时,向机械专业学生介绍放射后细胞存活的实验,或是向医学专业的学生介绍逆向工程,他们更加难理解项目,项目的完成效果也不佳,因此项目的选取应与专业应用结合。

四、结论

将计算机程序语言的教学与专业相结合,让学生了解自己的专业是什么,计算机程序语言能解决什么样的专业问题。计算机编程语言一般是大一、二的基础课,很多新生都不了解自己的专业究竟做什么,因此,这种结合更有助于学生尽早了解自己的专业,也有助于他们将C++程序设计语言应用于专业的学习和实际问题解决中。

参考文献:

[1]侯捷.改善程序与设计的55个具体的做法[M].北京:电子工业出版社,2007.

[2]陈帼鸾.“项目驱动”教学法在C++教学中的应用[J].科技教育创新,2009,(7).