c语言程序设计范文

时间:2023-04-03 18:40:58

导语:如何才能写好一篇c语言程序设计,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。

c语言程序设计

篇1

关键词:考试系统;多媒体技术;数据源;连接数据库

中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)03-10854-03

1 课题研究的意义和目的

1.1研究意义

现在,多媒体技术日趋成熟,多媒体系统以其能输出精彩的图形和图像、美妙的声音、动感的画面赢得了用户和社会各界广泛的关注和应用。如果把按传统考试方式同现代化的多媒体技术相结合,并且用多媒体著作工具及其它多媒体技术,编制一套符合高校考试需求的系统及其配套的多媒体教学软件,利用多媒体技术生动、直观、形象展示信息的特点,辅助教师授课和学生进行考试,尤其对部分有限制性的实验环节,可利用活动视频技术进行展示,这将会解决一系列目前存在的问题。总之,该课题是在计算机辅助教学及考试上进行的一次积极有意义的尝试,为其他实践性较强的课程进行多媒体辅助教学开辟一条新的路子,具有一定的理论和现实意义。

1.2目的

传统的考试手段主要依靠有纸试卷,几乎没有可重用性。本课题将实现:用计算机辅助考试系统,把多媒体生动、直观的显示出来,使学生不再将考试视为一种枯燥无味的东西,提高了考试效果,使学生在一种愉悦的心情中进行考试,把枯燥的重复变为充满乐趣、具有启发性的考试过程,使学生能比较全面的学习知识,掌握技能,达到素质教育的要求。

2 系统流程图设计

2.1初始化流程设计

在使用Authorware创建任何多媒体项目的时候,都应该先设置当前项目文件的窗口大小,将其设置为“800×600”,然后选择“演示居中屏幕”,同时取消对“显示标题栏”和“显示菜单栏”复选框的选择。

2.2主界面的设计

本界面采用了Photoshop7.0图形图像处理软件来绘制。为了避免界面的单调和呆板,用蒙版和滤镜技术加以美化。该界面把Photoshop中的图层技术、图层蒙版技术、文字效果及滤镜等功能完美的结合了起来。并且在底部设置了一个Flas,增加视觉效果。

2.3背景音乐的交互控制

该多媒体教学以MIDI作为背景音乐,背景音乐的交互控制包括背景音乐的随机选曲播放、停止等功能,另外当该教学程序处于活动状态时,能够随时调整背景音乐和讲解声音的大小及比例,让使用者在一种轻松悦耳的环境中考试(调出WINDOWS的音量控制实现),还能够暂停背景音乐,当再次进入活动状态时则能重新播放背景音乐。

为了充分考虑用户计算机的不同配置情况,首先利用BUDAPI.U32的BASOUNDCARD函数判断用户机器是否已经安装了声卡,如果已经安装则执行背景音乐播放,否则不允许播放任何背景音乐操作.程序如下:

IF BASOUNDCARD() THEN

MIDI:=1

TEST(MIDI,MIDILOOP (FILELOCATION^”MUSIC\\MUSIC-”^RANDOM(1,5,1)^”.MID”),STOPMIDI())

END IF

软件中的背景音乐交互控制是通过交互响应来实现的。在程序执行过程中,用户始终可以通过按钮控制背景音乐的播放与暂停。在计算图标“播放音乐”后添加一交互图标并命名为“音乐控制”,并在交互图标右边添加三个计算分支。设置“STOP/PLAY”分支为按钮响应交互,其功能是实现对背景音乐的控制。由于在整个程序执行过程中它都是有效的,因此须设置其为永久按钮,即选择“PERPETUAL”属性选项,同时设置“ACTIVE IF”条件为:BASOUNDCARD(),即检测到用户没有安装声卡的情况下该按钮及响应分支无效。

2.4内容的导航设计

该多媒体教学涉及内容繁多,不仅包括文本、图片、声音和动画,而且还有其它多媒体工具与Authorware 配合,同时,还把视频文件导入,以增加实用性。为使用户操作简单方便,设计了合理的教学内容导航。主文件与各章节之间的导航设计根据结构规划中的该章节内容的栏目划分,在流程设计中为这些栏目设计了导航,如图1为主程序内容导航的设计流程图。

这样的流程设计使整个主程序结构清晰,可读性强。由于该文件结构是主-分结构,即主文件调用各章节模块文件的方式,因此在主文件的章节内容中实际存放的是一个起链接桥梁作用的调用脚本,而具体的考试试题题型内容则放在各章节的模块文件内。

2.5各模块的内容流程设计

图中的考试模式、练习模式、教学模式及退出系统这四部分主要程序流程图如下图2、图3、图4、图5所示。

第五部分的原理演示则是通过热区交互以及调入用VC6.0制作的演示内容的库文件,抽象的工作原理形象化,具体化。在打包的过程中采用了分步打包,首先对每部分进行打包。通过主文件调用其它各部分,这样避免了主文件过大,影响运行速度。

3 以完成单选题为例来看具体实现过程

从单选题的数据库题库中随机抽取相应题数的问题;每一题只能选择一个答案;用户可以按次序做答,可跳过不答,在回答过程中,可以随时返回已做过的题目进行修改;交卷后会给出完成情况可以查看每题的回答情况.最后回到选题主界面,并把学生所做的答案成绩保存到数据库中。

当用户在主界面中,选择了“考试模式”后,系统就会进入到登录界面系统会提示输入用户名和密码,当输入后,点击“确定”后,系统将会进入到题型选择界面。在提示框中输入用户名和密码,我们点击“确定”后,就会进入到正式的单选题型界面中,选择“单选题”单击。

C语言程序设计考试系统的选择题从数据库中取出选择题,在一个界面上显示。利用三个热区域交互按钮“上一题”“下一题,”“完成”,按钮和四个热区域设置计算图标用来记录学生所选择的答案。在学生选择“完成”后,弹出学生做题的情况界面,然后回到选题主界面,并把学生所做的答案成绩保存到数据库中。

3.1“未命名”用来擦除以前的图像

(1) 打开“未命名”的属性,进入“未命名”的属性窗口。

(2)在“属性窗口”中单击擦除标签在设置过渡效果进行设置。

(3)单击“确定”按钮

3.2 设置“单选界面”插入一个图像

(1)双击“单选界面”图标进入显示图标窗口

(2)单击绘图工具箱 图标进行绘制一个和窗口矩形一样大的矩形

(3)设置矩形的颜色为“绿色”

(4)单击显示图标窗口的关闭按钮,关闭保存对“单选界面”的设置。

3.3 设置交互“进入”

(1)在交互图标的右边拖放一个群组“单选”。

(2)设置单选的热区为“按钮”。

(3)单击确定后,双击“选择”。

3.3.1“未命名”用来擦除上次运行的图形

3.3.2 在“打开数据库”的输入如下源程序:

hint0:="您的数据库没有连接上......"

--显示连接数据库的信息

title:="数据库连接...."

ODBChandle:=ODBCOpen(WindowHandle,"","database","","")

--得到数据源

getrecord:="select count(sequence) from erigister"

--得到记录的个数

record:=ODBCExecute(ODBChandle,getrecord)

if ODBChandle=0 then--测试连接数据库是否连接成功

MessageBox(WindowHandle,hint0,title,17)

end if

ODBCClose(ODBChandle)

ODBChandle:=ODBCOpen(WindowHandle,"","database","","")

if ODBChandle=0 then

MessageBox(WindowHandle,hint0,title,17)

end if

sqlstring1:="select ssdb from erigister where sequence="^record^"" -从表中选择单选库表题

ssdatabase:=ODBCExecute(ODBChandle,sqlstring1)

getrecord:="select count(sequence) from "^ssdatabase^""

record:=ODBCExecute(ODBChandle,getrecord)

--ssdb数据库的记录个数,以便产生随机数

sssum:=0

number1:=1

sui:=[]

sui[1]:=Random(1,record,1)

--下面程序用来产生一个随机数不能出现相同的题目

i:=2

repeat while i

flag:=0

repeat while flag=0

sui[i]:=Random(1,record,1)

flag1:=0

repeat with p:=1 to i-1

if sui[i]=sui[p] then flag1:=1

end repeat

if flag1=0 then flag:=1

end repeat

i:=i+1

end repeat

3.3.3 在“做选择的背景”显示图标中设计单选题的界面如上图5.4

3.3.4 在“数据库的操作”中输入如下代码:在这里,我们就要实现对数据库的随机读取和跟踪答案的长短来选择界面

x:=0

ran:=sui[number1]

result:=""

record1:=Number(record)

record:=record1--得到记录的个数

sqlstring1:="select topic from "^ssdatabase^" where sequence="^ran^""分别得到选择题各项

sqlstring2:="select a from "^ssdatabase^" where sequence="^ran^""

sqlstring3:="select b from "^ssdatabase^" where sequence="^ran^""

sqlstring4:="select c from "^ssdatabase^" where sequence="^ran^""

sqlstring5:="select d from "^ssdatabase^" where sequence="^ran^""

sqlstring6:="select result from "^ssdatabase^" where sequence="^ran^""

get1:=ODBCExecute(ODBChandle,sqlstring1)

--get1得到选择题目内容

get2:=ODBCExecute(ODBChandle,sqlstring2)

--get2得到选择项A内容

get3:=ODBCExecute(ODBChandle,sqlstring3)

--get3得到选择项B内容

get4:=ODBCExecute(ODBChandle,sqlstring4)

--get4得到选择项C内容

get5:=ODBCExecute(ODBChandle,sqlstring5)

--get5得到选择项D内容

get6:=ODBCExecute(ODBChandle,sqlstring6)

--get6得到选择题的答案

inputa:=1 --用来设置热区域的激活条件

3.3.5空“操作”用来设置跳转标志

3.3.6在交互图标右边拖入四个热区域

在计算图标中从左到右的四个计算图标中输入: result:="A" result:="b" result:="c" result:="d"在交互属性中设置激活条件为inputa=1: ,鼠标指针设置为标准鼠标指针,其它的为默认设置.其中result变量用来记录用户所选的答案.

3.3.7拖一个交互图标“未命名”在它的右边拖两个计算图标为“上一题”和“下一题”,再拖一个群组“完成”放在“下一题”右边 ,设置热区为按钮。在“上一题”的激活条件中输入number1>1,鼠标指针设置为:标准的鼠标指针。在“下一题”的激活条件中输入:number1

4 结束语

根据对教师上课时课堂练习的分析,开发出该考试系统,主要是能够方便课堂练习,同时还可用于期中期末测试,该系统主要是针对《C语言程序设计》课程来设计的。对该系统做简单修改,即可用于其它课程。

参考文献:

[1]王嘉宁,朱隽.Photoshop7.0中文版新概念百例[M].中国水利水电出版社,2004,4.

[2]龚祥国.主编.Photoshop图像处理实用教程[M].科学出版社,2002,2.

[3]王龙,金海.主编.Flash MX实战入门新概念[M].中国水利水电出版社,2005,5.

[4]李恒.Authorware 6.0多媒体实例大制作》[M] 冶金工业出版社,2002,4.

[5]袁海东.Authorware 7.0教程[M].电子工业出版社,2004,9.

篇2

【关键词】C语言程序设计;教学内容;教学手段;教学方法;教学改革

C语言是一种广泛使用的程序设计语言,它具有高级语言的特性与直接操纵计算机硬件的能力。因而,在当前许多高校中,C语言被列为程序设计课程的首选语言,成为了计算机专业的必修课程,也越来越多地被非计算机专业所采用[3]。然而在《C语言程序设计》课程的教学中,由于C语言概念比较复杂,规则繁多,同时在实践中又具有灵活多变运用,所以教师对于课程教学难易度的把握有困难,学生对于课程的学习与实践亦感到迷惑,甚至产生一些畏难心理[2]。作为实践性很强的C语言程序设计课程,它的学习有自身特点:光听只看是不够的,还必须加以练习,通过大量的编程训练,反复夯实语言的概念基础,并在实践中培养程序设计的基本能力,逐步理解和掌握程序设计的思维与方法。所以,C语言程序设计课程的教学重点是培养学生的实践编程能力,以程序设计为中心来组织课程内容。在笔者多年的教学实践中,针对《C语言程序设计》课程的难点与特点,在教学内容、教学手段、教学方法等方面做出了一些改革与尝试,收到了较好的教学效果。

1、教学内容的改革[1][3]

1.1课堂教学内容的改革

目前关于C语言的教材很多,内容主要包括数据类型、表达式、分支、循环、函数、数组、指针、结构体、文件的概念和应用以及指针和各种构造类型的混合运用、基本算法等。很多教材侧重于语言本身的理论体系介绍,而对于编程方面的介绍却相对较少,这样的安排虽然突出了知识结构的认识,但是也弱化了学生的程序设计能力和语言应用能力,而这些能力对于学生学好这门课程又恰恰是至关重要的。笔者在教学中,尝试以程序设计为向导,辅以编程应用,将案例和问题引入课堂,使学生尽快建立起程序设计的思想和方法,然后在这些框架上穿插讲解相关的语言知识。在前几次课中,简单介绍相关的背景知识和利用编程求解问题的过程,然后引入实例,在对问题的解决过程中介绍顺序、分支和循环3种控制结构以及函数的使用,使学生对C语言有一个大概的了解。然后深入讲解程序设计的思想和方法,并演示应用C语言解决问题。通过实例程序的引入来介绍语言知识,在每节课中介绍一些程序设计的方法、技巧以及编程中的常见错误,并设置练习题,鼓励学生多思考、多练习,提高综合能力,每章课程结束后, 设置综合性的习题,包括本章的综合以及从第一章到本章的综合,主要是程序设计题。学生要想学会并应用C语言进行程序设计,除了对程序设计语言了解外,更重要的是在实践中领会并掌握程序设计的基本思想和方法,要求学生从开始学习C语言起就试着编写程序,先模仿例题中的程序,然后尝试加以改写,循序渐进,最后能独立地编写程序来解决比较复杂的问题。

1.2实验教学内容的改革

C语言的教学特别需要重视实践环节,包括编程和上机实验。针对不同水平的学生,笔者在教学班中抓两头,学得好的学生鼓励给大程序,难一点的实验,学得一般的学生做基础性的题目。在保留基础性实验的同时,增加一些实用性强的、难度略大的实验,并组织学生讨论得出算法流程,然后上机编程调试。

按照实验指导书上的内容,每个实验内容以编程题为主,学生可以先模仿课堂案例操作,然后再做实验题,通过“模仿-改写-编写”三步曲的上机实践过程,在循序渐进的引导中逐步熟悉编程环境,理解和掌握程序设计的思想、方法和技巧,以及程序调试方法[4]。

实验题分为必做题和选做题,在实验过程中针对学生有问题的程序统一讲解,然后再选一个有错误的程序让学生自己找错误(开始一个月内的时间,让学生学会找到语法错误)。这样学生能力会提高很快,在后期发现逻辑错误,也会自己先找出,然后再求助老师。实验题量一次课(2节课)至少留6-8题实验。

2、教学手段的改革

运用多媒体技术辅助教学,是当前课堂上很流行的一种教学手段,因为这种方式包含的信息量大、丰富,学生学习起来感觉生动,提高了学习的兴趣,同时也能够优化教学过程。但是多媒体辅助教学的弊端也越来越被了解,比如不恰当的使用会分散学生注意力,甚至影响学生对主要问题的理解。所以将多媒体教学引入C语言程序设计课程教学过程中,必须要考虑到两者的特点与优势,取长补短,将传统教学与多媒体教学进行有机的结合。比如:对于C语言的概念性知识点如数据类型、变量类型、运算符、程序结构等,可以采用多媒体教学,通过课件的制作,既满足了课堂上演示的需要,也简化了传统教学大量板书的缺点。而对于程序的编写或案例的分析,就需要发挥传统教学的优势,更灵活的进行板书讲解、课堂讨论,使问题在师生之间的良性互动中得以解决。因此,教学中将各种手段如PPT、板书、现场编程并运行等多种手段有机结合,使得课堂教学达到最优化,如果条件允许尽量现场编程(或事先准备好的程序),学生可以学习教师的思路考虑问题,收到更好的效果,同时也能加快教学进度。

另外,利用网络资源的便利性,将大纲、电子教案、课件、练习题等放在网络上,方便学生随时查用学习,同时通过飞信、QQ、Email等网络交流手段与学生进行答疑、讨论等互动交流,从而扩展了课堂教学的空间。

赏识学生,注重学习兴趣的培养。在教学过程中,教师应运用多种信息技术适时的辅导,创设丰富的情境,发挥最佳效应,运用多种教学手段激发学生主动学习获取知识的热情。

篇3

关键词:教学创新;教学法;教学设计;教学过程

我校是隶属于“中国一航沈阳黎明航发(集团)公司”下的一所高职院校,目前社会发展对高职毕业生要求越来越高,为了跟上时代的步伐,为我国经济建设培养高素质的应用型人才。通过《C语言程序设计》课程教学中的教学创新努力提高教学质量。

一、教学创新的观念

(一)创新全面教学观

创新全面教学观。一是即要注重教书,又要注重育人,二是在教学中研究各门课程之间的联系,研究同一课程不同章节之间的联系,研究同一章节不同知识点之间的联系。《C语言程序设计》课程具有语言的特点,学习语言要先会字、词、句然后构成段落写出文章。C语言也具有C语言的字、词、句构成功能编写程序。各章是对C语言的字、词、句的详细讲解,前一章为后面章节打基础,后一章应用前面章节的知识。全面教学观培养出来的学生,理论系统,实践能力强,学的知识较实用,且具有应变能力。

(二)创新内动教学观

创新内动教学观。从高职教学的对象看,学生都是经过普高毕业或职高毕业高考后录取的,这些学生具有一定的文化基础知识,学习也有一定的自觉性。内动教学观要求教师在施教时,要从分析研究学生心理活动入手,采用适合于学生心理特点和适应能力的教学模式和教学方法,充分调动学生的学习积极性和创造性。《C语言程序设计》课程是一门能开发计算机软件的语言,实践性较强,要有一定的英文基础,一定的逻辑思维的能力。青年人好学心胜,只要教师由浅入深,循循善进,一定能提高学生的学习兴趣。

(三)教师创新意识观

创新师资是高职教学创新的基本条件,教师的强烈创新意识,是教学创新必要保证,创新师资要具有对教学进行改革创新的欲望。才能进行创新教学。创新师资要具有勇敢的创新精神,不仅意识到教学需要创新,而且积极投身于教学创新活动,在这一活动中,他们勇于排困克难,开拓进取,不达目的,誓不罢休。创新师资具有全面的创新能力,这些教师不仅具有扎实的理论基础和专业知识,以及很强的实践动手能力,而且还具有很强的发现问题和解决问题的能力。他们往往是教学创新的探索者和先行者。

二、教学创新中应用的教学方法及内容

在教学创新中应用了三步教学法:课堂教学―机房教学―实验教学。以课堂教学内容为主线,机房授课讲解实例归纳总结,机房实验加深学生对主题的理解和学生的动手能力。每步骤教学的具体内容如下:

(一)课堂教学

课堂教学:讲理论知识点,按照教学大纲提炼出要讲授内容的主线,通过分析主要实例规纳总结知识点,用问题引出法要求学生独立思考,提高学生的逻辑思维能力、理解问题的能力及解决问题的能力。

(二)机房教学

机房教学:通过课件讲授,减少写板书的时间。进入C语言编辑环境,通过演示实例,直观、形象地看知识点的应用过程,每条语句功能的实现,加深对课堂教学内容的理解。讨论讲授知识点的应用范围,提出问题进行互动。根据不同的层次的学生提出的多个问题,让学生根据老师提出的问题,不同的层次让学生做不同理解性的、逻辑性的编程练习。提高学生的实际应用能力,学生可根据自己能力练习。

(三)实验教学

实验教学:实验内容分为二部分:分析程序和独立编程。要求学生实验课前一定要预习,对于分析程序部分,学生写出分析程序的功能、程序执行过程中各变量值的变化,程序的运行结果。对于独立编程部分,学生根据问题要求给出解决问题的方法做编程练习。

三、教学创新中教学过程的设计

(一)讲授教学设计

无论是在教室讲课,还是机房讲课,每次上课开始,先讲本次课重点主线,抓学生的注意力,对重点内容一次讲授,多次强调,多次练习,给出学生一些思考时间、练习时间、理解时间。对于难点内容的分析讲解,根据学生理解情况和时间安排决定深度。对于非重点内容,为了使所传授的知识有个完整性,扩大学生的知识面,要抓住基本概念讲,高职教育按照专业学习的要求,以必须和够用为度,以实际应用为重点。

机房授课先讲授知识点的应用,每次还要提出一个问题及要求,让同学们上机实践,时间要灵活掌握。有时课堂教学讲的重点内容,同学难理解的,也应在机房授课时抽出一定的时间演示讲解。

(二)实验教学设计

实验教学重点验证学生的分析能力、逻辑思维能力和实际应用能力。对难理解的实验内容通过演示相似例子讲解,通过演示和练习,力求学生掌握实验的主要内容,实验教学过程重点抓辅导到位和检查监督到位。提高学生的实际动手能力。

(三)辅助教学设计

认真制做生动活泼、重点突出的教学课件,对学生作业详细批改,重点总结,统一解答与各别辅导相结合,要求学生一定要各章的知识点。

四、教学创新课堂教学过程举例

(一)讲授教学重点主线

课堂讲授教学重点主线,例如:讲C语言程序设计的第五章:函数。先讲授本次课的主线:函数的定义,函数的调用、函数的声明。这三点为本次课主线,展开讲函数的定义格式并做具体说明;函数声明的作用及位置,通常什么情况下可以省略函数声明;函数的调用的三种形式,通过分析例题,分析主函数中调用子函数采用的调用方式、及传递的参数。讲函数的具体应用过程等内容。

(二)根据主线提出问题

给出问题:定义一个比较二个数大小的函数,解决输入多个数据,完成输出最大值的问题。用什么样的调用方式实现从输入的三个数或四个数中找出其中的最大值并输出?要求学生自己去定义一个函数,自己决定采用什么方式去调用函数,实现程序功能。

(三)学生对问题的求解及验证

根据不同层次的学生,给出不同的问题,提出不同的要求,让学生们自己选择解决问题的方法,练习编写程序。对于理解能力强的学生,完成从输入的四个数中找出其中的最大值并输出。差一点的完成从输入的三个数中找出其中的最大值并输出。再差一些学生的完成从输入的二个数中找出其中的最大值并输出。并要求上机实现。学生一定要掌握函数的定义,函数的调用的正确形式及使用。

五、总结

高职学院的教学创新不但要有创新观念,必须具有创新师资。创新师资是高职教学创新的必要条件,没有创新师资,高职教学创新将是一句空话。教学活动是由教师来完成的,教学创新理所当然地要由教师来进行的。因此,作为高等职业技术学院的教师,我深深的体会到要进行教学创新,必须从我们每个教师做起,教师要有强烈的创新意识,勇敢的创新精神,全面的创新能力,还要积极实践,才能全面实现高职院校的教学创新。才能尽快培养出具备一定专业基础理论和专业知识,具有较强的实践技能,面向生产、管理和服务的高技能应用型人才。

参考文献:

篇4

关键词:C语言程序设计;以应用为本位;启发式教学

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2013)10-2412-03

C语言功能丰富,应用面广,当下,很多高校依然把C语言作为非计算机专业学生的一门通识平台课开设。然而,在C语言课程的开设过程中,教师和学生不同程度地存在着缺位和误区,教与学的效果不尽如人意。在C语言的教学过程中,不少任课教师因循守旧,教学目标不清,教学方法单一,教学观念陈旧,使C语言的课堂蜕化为单纯的语法规则的灌输,使C语言的学习变为简单的语法知识的学习,学生普遍反映难学厌学。C语言程序设计课程一般面向的都是大学一年级的新生,他们刚刚结束高中生活步入大学校园,对一切充满了新鲜感和不适应感,学习观念、学习目的和学习方法有待转变和调整,学习的主体意识和自觉性有待增强和提高。针对这些问题和现象,笔者在自己的教学过程中进行一些了探索和实践,取得了一定的效果。

1 教师自觉转变教学观念,提高自身素质

纵观C语言程序设计课程的教学,现在最典型影响面最大的教学模式就是由教师和学生构成一个教学体,教师在讲台上自我表演,学生充当看客或听众【1】。所谓知识也好、信息也好,都是一个从教师到学生的单向流动。在这种以教师为主导、以教材为核心、以课堂为中心的教学模式下,教学蜕化成为一种单纯的知识传授,学生学习的积极性和主动性的调动,学生创新能力和创新思维的培养,都无从谈起。面对这样的现状和背景,教师教学观念的转变和自身素质的提高显得尤为重要。本着对学生负责,对学校负责的态度,教师应在自身责任感的驱使下,主动了解先进的教育思想和教学理念,像教学互动性、学生主体性和知识建构性等等;认真思考大学教育的功能,比如授人以鱼还是授人以渔;结合教学实际,转变教学观念,改变传统的教与学的地位,由过去的“以教师为中心”转变为“教师主导,以学生为主体”,营造民主的教学氛围;改变课堂老师单向灌输、学生被动听讲的授课模式,引入多元化的教学方法,比如启发式,探究式,引导学生独立思考,鼓励学生主动参与学习。

2 引导学生转变学习观念,培养学生学习的主体意识

C语言程序设计课程的开设面对的多数是大学一年级的新生,而对于刚入校的大学生来说,受中学养成的学习习惯的影响,学习的自主意识淡薄,学习还习惯性地全部寄托在老师身上,对老师的依附心理严重。同时,面对大学里比中学多得多的自由学习时间不知如何有效地管理和支配,对新的学习环境和新的学习生活有不同程度的不适应和困惑。面对这样一个处在比较特殊阶段的学生群体,承担C语言程序设计课程的任课教师要有针对性对学生进行引导和管理。首先,任课教师从一开始就让学生明确一个观点,即C语言是学生自己学会的,而不是老师教会的。俗话说,“师傅领进门,修行在个人”,尽管教师的教在教学活动中起着主导作用,但更重要的是学生的学,学习的主体是学生本人,只有学生充分发挥自己学习的自觉性和主动性,教师的教学思想才能得到很好地贯彻,教学效果才能得到很大的提高,整个学习活动也才会成功。其次,强化学生的责任意识。对绝大多数学生来说,如果单从年龄判断,步入大学校园也往往意味着步入成年人的行列。而成年人也就意味着要对自己负完全责任了。教师在教学过程中要不断强化学生对这一点变化的认知,让他们知道要对自己负责,对自己的学习负责,而不应再完全依赖教师或家长的监督。最后,教师的指导和管理。学习观念的转变,新的学习习惯的养成,不是一蹴而就的事情,需要在实际的学习活动中逐步完成。课前的预习、课堂的参与、课后的作业、实验的完成、期末的考试等是C语言教学活动不可或缺的环节,每一个环节里需要学生完成的任务,任课教师从一开始都给出一个明确的要求并严格按照要求去管理,将大大有益于转变学生的学习观念,培养学生学习的主体意识。

3 激发学生的学习兴趣,调动学生学习的积极性

在C语言程序设计课程的教学过程中,往往有学生反映C语言比较抽象,课堂教学又枯燥无味,很容易丧失学习的兴趣和热情。如何激发学生学习C语言的兴趣并始终保有这种兴趣,也常常是教授C语言课程的老师很头疼且又不能回避的问题。“兴趣是最好的老师”,每位教师都深知学生的学习兴趣对教学活动成功的重要性,但C语言程序设计课程侧重思维训练的特点又决定了在这方面留给任课教师的空间是有限的。笔者在自己的教学实践中做了一些尝试。

1)演示典型的完整的C语言应用,培养学生的学习兴趣

学生在学习C语言程序设计课程之初,对该门课程的学习目的和学习目标多数是模糊的,对C语言的认识也多半是空白,任课教师适当的引导很容易引起学生学习的兴趣和探究的欲望,因此该门课程的开篇很重要。笔者摒弃了以往通过文字抽象地介绍C语言的产生、C语言的特点和C语言的应用的做法,直接从演示典型的完整的C语言的应用开始。演示的程序有难有易,涉及的范围涵盖实际生活中的应用、有趣的数学问题、图形动画、游戏等。笔者一度选择了图书管理系统、文本编辑器、学生成绩管理系统、兔子产子问题、百钱百鸡问题、图形时钟、扑克牌的自动发牌、猜数游戏、五子棋游戏等应用,引起了学生浓厚的学习兴趣。

2)营造轻松的学习氛围,创造愉快的学习体验,强化学生的学习兴趣

要引起学生对C语言一时的兴趣不是一件难事,但要让学生在整个C语言程序设计课程的教学过程中始终抱有这样的学习兴趣就不是一件易事了。哪位任课教师做到了这一点,他的教学活动无疑就是成功的。C语言比较抽象,课堂教学容易枯燥无味,是一个不争的事实。为此,在实际的教学活动中,选择难易适中贴近生活的问题,比如利息的计算、持有的股票价值的计算、学生成绩的管理、募捐活动的模拟等;涉及C语言的语法特性时,尽量使用生活化的直白的语言,少用专业术语;课堂教学的开展过程中鼓励学生积极参与,对学生提出的任何有意义的问题都及时地给予肯定;面对问题,对学生做出的任何有价值的回答都及时地给予表扬,都有助于营造轻松的学习氛围,有助于让学生体验到成功的欢乐,有一种成就感,有助于强化学生学习的学习兴趣和热情。

4 践行以应用为本位的教学思路,有选择性地采用以知识为本位的教学思路

C语言程序设计课堂教学的组织有两种思路两种模式。一种是以知识为本位的教学思路下形成的“建筑模式” 【2】,课堂教学以讲授语法为主,先是提出语法概念,然后解释该语法概念,最后举例说明其应用,强调先系统学习理论打下宽厚的理论基础,然后再进行应用,讲究的是理论的系统性与严密性。另一种是以应用能力为本位的教学思路下形成的“生物模式”,课堂教学以程序设计为中心,以编程为目的,从应用的角度切入,先是提出问题,然后引导学生分析解决问题,最后着重介绍涉及的C语言的语法特性,强调结合应用学习必要的理论知识,随着应用的展开,编程难度的逐步提高,算法和语法的学习同步趋向深入,有利于学生能力的培养。

C语言系人工设定的具有确定内涵的概念和知识体系[3],同时C语言程序设计又是一门实践性很强的学科。为此,在C语言程序设计课堂教学的组织上,笔者始终践行以应用为本位的教学思路,同时根据课程内容的特点有选择性采用以知识为本位的教学思路,比如C语言中的基本数据类型、运算符和表达式、文件等基本概念和语法知识,在教学中只需把规定的内容阐述清楚,使学生理解并接受,同时又不破坏这些理论知识的系统性,就适宜采用以知识为本位的教学思路。

5 根据课程内容特征,选择灵活多样的教学方法

教学方法是在教学过程中,教师为了实现教学目的、完成教学任务而采取的教与学相互作用的活动方式的总称。C语言程序设计课程的教学目的是使学生掌握用C语言进行程序设计的基本思想和方法,并具有灵活应用这些思想和方法分析解决实际问题的能力。实现这一教学目的要完成的教学任务包括C语言基本语法的介绍,结构化、模块化程序设计思想和方法的引入,基本程序设计训练以及程序调试方法的演示等。面对这些多样的教学目标和任务,灵活多样的教学方法的选择和恰当应用成为必须。笔者在自己的教学实践中,结合课程内容的特点,有选择性地应用了如下的教学方法。

1)启发式教学,引导学生思考,在应用中学习。

在C语言程序设计的课堂教学中,根据课程内容的特点,精心设计任务或场景,引导学生发现问题、思考问题,使学生在启发诱导下获取知识,解决学习中的疑难问题。比如,在引入数组时,笔者设计了这样一个任务,即编写一个C语言成绩管理程序,要求能够统计出学生C语言成绩的平均分、最高分、最低分以及各个分数段的人数(为了说明问题的方便,假设当前要处理的有10个学生的成绩)。第一步,引导学生描述出10个学生的成绩。根据之前的学习经验,学生很容易想到用10个float类型的简单变量表示,比如score1,score2,、、、,score10。第二步,为节省时间,直接给出用这10个相互独立的简单变量实现的程序,引导学生观察。在学生感叹程序复杂之余,带领学生读程序,引导学生发现,当前的程序无论是成绩的录入、求学生成绩的最高分、最低分,还是统计各个分数段的人数,对每位学生成绩的处理方法都是一样的,存在大量的相似的操作。同时提出问题,这些相似的操作能不能用循环结构描述和实现,让学生思考。诱导学生分析发现,要想用循环结构描述这些相似的操作,学生成绩的描述必须有一个统一的表示方法。适时地给出score[i]这一表示方法,指出让i从0到9变化表示10个学生的成绩,和学生一块用该表示形式改写之前程序的关键部分。让学生比较改写前后的两个程序,很容易得出结论,用score[i]描述批量数据,方便和循环结合起来使用,数据的处理更为有效。最后指出score[i]这一描述形式就是数组,接下来介绍数组的定义完善改写后的程序。

和学生一块模拟执行该程序,由之前的知识积累学生知道,形参m、n和实参a、b对应的是不同的存储单元,m、n和temp是自动变量,从变量的作用域和生存周期的角度,容易得出一个让学生意外的结论,该swap函数中形参m、n值的交换影响不到实参a、b。在学生诧异之余,启发学生思考,诱导学生尝试给出不同的解决方法。往往有学生提出定义a、b为全局变量,诚然这不失为一种解决方法,在鼓励学生的同时,再次诱导学生发现问题的关键并在此基础上找解决方法。和学生一块梳理思路,发现swap函数中形参m、n值的交换传递不到实参a、b,一方面是因为彼此对应的是不同的存储单元,另一方面是由于变量的作用域和生存周期的问题。学生提出的定义a、b为全局变量的解决方法显然是从后者考虑的,现在有意识地诱导学生只从前者考虑,让学生大胆假设在什么样的前提下形参m、n值的交换即是实参a、b值的交换。毋庸置疑,只有当形参m、n和实参a、b对应的是相同的内存单元时。在学生给出了这一假设之后,启发学生思考该假设能不能成立以及如何成立。和学生一块分析,要使形参m、n和实参a、b对应的是相同的内存单元,表面上看它们不能是相同的类型,但实现又要求形参m、n操作的对象是实参a、b,显然形参m、n操作的对象和实参a、b应该是相同类型,同时形参m、n指向的是和实参a、b相同的内存单元,学生相对容易想到形参m、n应该是指向实参a、b的指针变量,问题由此迎刃而解。最后结合该任务的完成引导学生总结,在主调函数和被调函数之间双向传递数据变化,全局变量和指针变量都是不错的解决方法。

2)注重当堂实践,现场编程互动,在学习中应用。

C语言程序设计是一门实践性很强的课程,在践行以应用为本位的教学思路的过程中,笔者不仅重视实验课这一实践环节,更是把实践延伸到课堂教学中。在带领学生对特别设计的问题做了充分的分析之后,引导学生当堂实践,或者师生现场编程互动,不仅可以调动学生学习的积极性,更能培养学生解决实际问题的能力。

参考文献:

[1] 李克东.教育技术学研究方法[M].北京:北京师范大学出版社,2003:132-137.

篇5

1.1理论教学

对于大多数课程而言,从宏观上将课程知识点及其关联讲授给学生非常必要,这便于学生更加系统深刻地理解所学内容。作为教材讲解C语言程序设计的知识点结构。知识点之间的关联可以层层细化,教师首先从宏观上给学生介绍C语言程序的整体组成结构。教师对涉及的知识点进行归类,共包含预处理命令、数据类型、运算符、语句和函数等5部分,从宏观上梳理C语言与程序设计课程的知识点是非常必要和重要的,这样可以避免学生“只见树木,不见森林”,最后只学到一堆零散的知识点,只有从宏观上把握各个知识点在知识体系中的位置和作用,才能学得深、记得牢。对于程序语言课程,如果仅仅介绍语法的运用,学生往往对知识点理解不深刻。我们在教学实践中的体会是:在讲解C语言语法的基础上,适当地剖析编程语言在计算机中的运行机制,会让学生的理解更加透彻。因此,我们的课堂教学方法分为如下两部分。

1)课件讲解。课件讲解包括两部分,即知识点要点总结和知识点运行机制剖析。知识点要点总结就是告诉学生该知识点如何使用;而知识点运行机制剖析则告诉学生该程序在计算机内存中的执行过程。由于绝大部分高校在开设C语言程序设计之前都会开设计算机文化基础等课程,因此学生有足够的计算机基础知识来理解C语言程序的运行机制。

2)实例演示。作为一门编程语言,C语言需要在实践中理解和掌握,因此,课堂教学中,在具体的编程环境(如VC++6.0)下演示十分必要。通过在具体的软件环境下编程,告诉学生应该做什么和不应该做什么,并总结该知识点的注意事项。相比传统的脱离编程环境,只在PPT或黑板上进行板书的教学模式,该方法的教学效果要好得多。在课堂教学中,具体的教学步骤如下:①使用PPT或者板书列出该知识点的注意要点;②在编程环境(如VC++6.0)下演示该知识点的用法,给出正确的和错误的使用方法,并进行对比;③通过幻灯片动画或Flas等形式演示程序在计算机内存中的执行过程,让学生更加深刻地理解程序的运行机制。

3)教学难点与重点——“复合知识点”。从C语言的教学内容来讲,数组、函数和指针是教学的重点章节,这些章节之间相互关联的部分又是重点中的难点,如数组和函数结合,数组名做函数参数,数组和指针结合,指向数组的指针变量,函数和指针结合,指向函数的指针变量等。在教学过程中要反复强调各个知识点的注意事项,如果基本知识点能够理解透彻,上述难点内容也就迎刃而解了。

1.2上机实践教学

在实践教学中,教师可以通过实际教学案例循序渐进地强化学生对C语言知识点的理解。上机实践的教学内容通常分为两部分:基本知识点练习和综合训练。首先通过基本知识点的练习,让学生掌握该知识点的使用,即巩固课堂所学内容;然后通过一个综合性的大作业,训练学生综合应用C语言知识点的能力,例如,通过编写“学生课程成绩统计系统”考查学生对数组、结构体、指针、函数、文件等知识的综合掌握情况。对于初学编程语言的学生,往往没有养成良好的编程习惯,出错的可能性较大,而出错之后进行调试又将耗费较长的时间,这势必对学生的学习热情产生负面影响。因此,一开始就给学生制定科学的编程步骤和规范,使学生养成良好的编程习惯,将大大减少程序出错的可能。下面是按照上述五步编写的一个完整的C语言程序,用来比较两个整数的大小。按照上述五步进行编程,经过一段时间的训练之后,学生出现语法错误的可能性大大降低,此时学生更多的精力将集中在程序算法的设计和实现上。

1.3考试形式

对于C语言程序设计的考核方式,我们采用知识点考核和编程实践相结合的方式。知识点考核偏重于C语言基本语法,用于检验学生对知识点的掌握是否全面,此项考核约占总成绩的40%;编程实践考核用于检验学生的实际动手能力,学生将在规定的时间内根据题目在机器上编程,此项考核约占总成绩的60%。为了实现知识点的考核,我们将考试与计算机二级C语言上机考试紧密结合,采用题库平台进行上机考试,学生直接在机器上答题并提交,知识点考核多采取客观题,如填空题、程序修改题以及读程序题等,编程题在实战编程中考核。C语言程序设计课程的重要特点就是实践性强,学习该课程的目的就是为了编写程序。因此从考试的角度讲,进行编程实践是最合适的方式,通过上机编程来考核学生的学习情况也是最公正和客观的方式。

2C语言程序设计教学实践结果分析

中国矿业大学(北京)每年都有40多个班级同时开设C语言程序设计课程,因此该课程教学质量的高低将直接影响全校理工科学生对C语言的理解和掌握。中国矿业大学(北京)C语言程序设计教学团队经过长期的探索总结出一套行之有效的C语言教学方法,我们将上述方法在学校越崎实验班中进行了试点。如图2所示,采用上述教学法的越崎实验班的C语言程序设计课程考试成绩要明显好于其他班级,其中90分以上的学生占10.7%,80分以上的学生占总人数的53.6%。另外,学生的学习积极性比采用上述方法前得到明显提高,很多学生都对计算机编程产生了浓厚兴趣,实践证明我们提出的上述方法是行之有效的。

3结语

篇6

关键词:C语言;程序设计;教学方法

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

1引言

随着大学的扩招,越来越多的普通学生进入大学学习,大学也从精英教育向普通教育过渡。不论理科还是文科,C语言程序设计成为很多大学生学习计算机知识的入门课程之一。这使我们这些长期从事程序设计教学的人员,遭遇到了前所未有的挑战。

如何挑选教材,如何安排教学内容,如何选择适当的案例等等是我们必须要面对的问题。本文就这些问题作一些探讨。

2以往的教学经验

多年来,我一直在教学第一线教授C语言程序设计,在以往的教学中,我要求自己做到以下几点:

第一,讲课内容要符合初学者的认知规律,从简单到复杂,循序渐进。

第二,通过实例讲解相关的概念,重点在培养学生的程序设计能力。

第三,算法要尽量简单,有利于学生的理解。

第四,授课涉及的内容,要讲解透彻、详尽。

谭浩强老师的《C程序设计》是我在教学中长期选用的教材,因为它能够很好地满足自己的教学思想和要求。

该教材的编写顺序和内容,非常符合初学者的认知规律,难点分散,内容的安排较合理,每一章都讲解了新的概念,但又注意到不引入太多的新概念;为了避免从概念到概念,从理论到理论,教材中使用了大量通俗易懂的实例,并使用很多有意义的图表来分析和讲解概念,方便同学们对概念的理解;该书的内容重点突出,对C语言中最基本和常用的部分进行了详细的分析和讲解,为学生以后更深层次的学习打下了牢固的基础。

学生们普遍反映《C程序设计》是一本非常好的教材,不但帮助他们掌握了程序设计的理念,还能真正动手编写一些实用程序。只不过,我以前的学生,大部分是录取分数超过一本的,《C程序设计》的难度和深度对他们很适合。最近几年,由于扩招和学校合并等原因,学生的水平越发参差不齐,给教学工作带来了不少难度,也使自己更多地思考和尝试搞好程序设计教学的方法。

3选择适当的教材

有关C语言程序设计的教材,真可谓是百花齐放,百鸟争鸣了,笔者并不认为这是一件坏事情,恰恰相反,如果每个作者经过自己多年的教学和科研,都对程序设计课程的教学方法有自己独特的想法,同行们可以互相交流,取人之长补己之短,何乐而不为呢?但不论如何,由于教材比较多(也确实有些教材水平不高),给教师们选择教材带来了难度。为此,谭浩强老师总结了自己多年的教学和写作经验,根据读者的不同需求将C语言教材分为三种版本,以适应不同的学生。

第一本就是发行了1000多万册的新世纪计算机基础教育丛书之《C程序设计》,已经发行第三版了,该教材全面细致、深入浅出地介绍了使用C语言进行程序设计的方法,语言生动案例丰富,不仅讲解了C语言的语法,还通过大量的例题讲解了构造程序和设计算法的基本要领;第二本是普通高等教育“十一五”国家级规划教材,“中国高等院校计算机基础教育课程体系规划教材”之《C程序设计教程》,这本书以《C程序设计》为基础,科学地减少了部分内容,更加突出了教学重点,采用了既通俗又精练的写法;第三本也是普通高等教育“十一五”国家级规划教材,高等院校计算机应用技术规划教材应用型教材系列之《C语言程序设计(第二版)》,与前两本相比,内容更加精练。三本书均采用了“提出问题―解决问题―归纳分析”的写作思想,在讲解程序时,包括了提出问题、解题思路、编写程序、运行结果、程序说明和深入思考等几部分内容。

笔者在教学工作中接触了很多学生,有号称“小清华”的本科学生,有普通本科学生,还有夜大的学生,实践证明,将学生准确分类,选择适合他们的教学内容和教材是非常重要的。上述第一本教材适合学生基础好、学时较多(一般应超过56学时)、对程序设计的应用要求比较高的专业的学生,例如软件工程、信息安全等专业;而第二本教材适合学生基础一般、学时中等(一般为48学时)、对程序设计的应用要求不太高的专业,例如通信工程、计算机审计等专业;第三本教材适合学生基础一般、学时较少(32学时左右)、对程序设计的应用要求很低的专业,例如管理科学等,对这些专业,只要求学生能看得懂程序,了解计算机是怎么解决问题的就达到教学目标了。

而对于一些重点院校,尤其是学生的自学能力非常强的学校,如果教师自己的水平也足够高,有很深的程序设计功底,不妨选择吴文虎老师的《程序设计基础》,这也是一本非常好的教材。

4灵活安排教学内容

教材不是讲稿,任课教师需要根据各自专业的特点,对教学内容做适当的取舍,不需要面面俱到。尽管谭浩强老师的三种教材已经根据学生的不同层次,将教学内容做了重新取舍,但是教师的工作就是要因材施教,而不能照本宣科。

例如,对于位运算的内容,信息安全专业的学生必须掌握,该专业需要了解计算机低层的运算,才能理解密码学具体的实现方法以及网络安全的实现细节,而对于软件工程专业,位运算可以少讲,甚至不讲。

又例如,尽管谭老师的《C程序设计》中写的最好的内容是它对指针的解释和描述,想当年,我自己就是在阅读了很多书都不得要领的情况下,通过学习《C程序设计》才理解什么是指针的。谭老师将C语言中的精髓―“指针”的概念描述十分清楚、透彻,尤其是对指针使用时一些细节问题的描述,使我非常受益。但是,并不是所有的专业都需要将这部分内容的全部作为教授的内容,有些专业可以作适当的调整,例如那些偏文科的专业:会计学、审计学等。对于这些专业,只要通过简单的案例将指针的概念交代清楚就行了,毕竟这是C语言的精髓。

再比如,不论任何专业,递归的概念对于大多数低年级学生来说是很难掌握的,注意,这里说的是掌握,那么,我们只要求他们能看得懂递归程序就可以了。也就是说,要明白递归是自己调用自己,而不是让他们学会编写解决类似迷宫、八皇后或者是背包问题的程序,这些内容可以放到高年级学习数据结构课程的时候学习。

5精选与学生专业相关的案例

谭老师教材中的案例都是经过精心挑选的,有很多有趣的问题,例如国王的小麦、猴子吃桃、汉诺塔等等,这些对于学生们学习程序设计都是很好的例子。但是一本教材的容量毕竟是有限的,作为教师,应该花一些时间,挑选更多的案例,帮助学生们举一反三。程序设计思想的形成可以通过阅读大量的程序,并经过自己的思考和提练,最后达到掌握思想的目的。

挑选什么样的程序作为案例,就是教师需要考虑的问题。我认为,除了教材上一些基本的案例,教师需要选择与专业背景有关的案例。

例如,针对信息安全专业可以选择凯撒密码的实现方法、HILL密码的实现方法、异或运算实现加解密、简单的暴力破解口令、大整数的算术运算、素数的产生和使用、简单身份验证系统的实现,等等。这些案例既可以作为教学的例子,也可以作为实践环节的实现内容。

使用与专业相关的案例进行教学和实践,不但可以极大地激发学生的学习兴趣,还使他们学到了运用所学知识解决问题的方法及动手能力。

6结束语

C语言程序设计的教学不仅仅是教一门语言,也是教程序设计方法,教材的选择,课程内容的安排,乃至案例的选择不但要符合教学的要求,更要适合学生的特点,还要兼顾不同的专业要求。

参考文献:

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

篇7

关键词:教学模式;任务驱动;c语言程序设计;教学实践

0 引言

《C语言程序设计》作为计算机程序设计的基础,是理工类本科学生的一门必修课,尤其是C语言对计算机硬件具有很好的编程能力,使其在工科教学中的生命力越来越强。我们学院在C语言的教学上基本上还是采取传统的教学模式:按照C语言教材自身的内容上课、上机,采取笔试形式考试。这样的教学模式使得学生过分注重C的语法、语句等规则,而忽视了对编程思路的培养,学生独立分析问题和解决问题的能力没有很大的提高,给学生参加全国等级考试以至后续课程的学习留下了隐患。下面就作者在C语言教学过程中的经验谈谈想法。

1 传统教学模式

传统教学模式是以教师作为课堂的中心,以广大学生为讲授对象,以课本作为讲授的主线。虽然现在教学环境大都采用多媒体大屏幕,操作方便,易于控制教学内容和节奏,能在规定课时内呈现较多信息量;但是学生往往处于被动学习状态,教学内容难以适应学生的个体差异,所有学生被迫按照老师的讲授速度进行学习,不利于培养思维能力与创造能力。

上机实践课上通常老师会事先布置几道编程题,但是学生上机目标不是很明确,问的问题多数是属于同一类问题。老师不停地在机房各处一一解答,既浪费时间,也没取到很好的效果。学生在机房没有紧迫感,甚至有些学生觉得无事可做,就会打游戏等。这种上机方式不利于培养学生的动手能力和自我解决问题的能力。

学生学不好C语言主要是因为C语言教学的重点不是放在如何解决问题上,而是把大部分的时间放在讲解语法规则和语句格式上,其后果就是学生一拿到任务后首先琢磨如何定义变量,用什么语句,而不是对问题进行合理的分析,考虑最佳算法,这样当然觉得很难而且也设计不出好的程序。学生参加全国等级考试的通过率很低也就不足为怪了。

2 “任务驱动式”教学模式

采用“任务驱动式”的教学方法,知识及技能的传授以完成典型“任务”为主,有利于提高学生利用计算机进行自主学习与解决问题的能力。

2.1 教学内容的改革

我们把通过全国计算机二级考试作为学习c语言的目标,针对等级考试大纲来确定教学计划以及教学内容。为此,我们从第一堂课起就强调并要求学生通过全国二级考试,既让学生明确短期学习目标,又放眼长远的努力方向,以激发学生进行自主学习的主动性。我们将教学内容分离为几个相对独立的模块,即结构模块、数组模块、指针模块、函数模块和文件模块。模块的内容要循序渐进,把握好由易到难,由简单到复杂的教学过程,否则容易使学生一开始就产生一种畏惧情绪,失去学习兴趣。然后,力求概念准确,分散难点。各模块的教学目标要十分明确,教学量适中,让学生很容易把握住教学要点,理解和掌握教学内容。

2.2 设计好实验任务

实验任务的设计包括任务的提出与分解、最终达到的目标、解决问题的方法等。目的性要强,任务要明确,这样才能很好地缓解计算机基础课程实验教学中学生无事可做,玩游戏、上网聊天等现象。要培养学生限时编程的良好习惯,要求学生在规定的时间内编写和调试好给定的程序。通过这些基本功的训练,学生在具备了扎实的计算机程序设计能力后,就较容易通过全国计算机二级考试。

在程序设计语言教学中,算法是程序设计的灵魂,学生编写不出程序的首要原因是设计不出―个合适的算法。因此,在教学中应对常用的算法结合典型实例进行详细地讲解,强调算法的步骤,让学生对算法有比较深刻地了解,并鼓励学生从不同角度去思考问题,对于同一个问题的解决用多种方法来实现。这样有助于拓展学生的思维,增加学生对学习C语言的兴趣。

例如:计算n!

我们可以采用递归法:

2.3 学习成绩评价方式的改革

采用“笔试+上机考试”的评价方法可以提前让学生体验全国等级考试的过程。同时,两种形式考试都通过才算这门课程通过,也能促使学生在学习c语言的基本知识之外加强编程实践,让学生学到c语言的语法规则的同时也掌握了程序设计的方法。

篇8

由于时间的关系,我们的这次实习课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。

上机实验是学习程序设计语言必不可少的实习环节,特别是c语言灵活、简洁,更需要通过编程的实习来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:

1.熟悉程序开发环境、学习计算机系统的操作方法

一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓 环境 就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。

2.学习上机调试程序

完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。

通过这次为数不多的几天计算机实习学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,着对我们将来到社会工作将会有莫大的帮助。同时它让我知道,只要你努力,任何东西都不会太难。

3.加深对课堂讲授内容的理解

课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实习中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实习所致。C语言程序设计实习心得体会(3篇)C语言程序设计实习心得体会(3篇)。

篇9

关键词:《C语言程序设计》;教学改革;案例教学;师生互动;多媒体

中图分类号:G642文献标识码:A文章编号:1009-3044(2009)25-7182-02

Practicing on Teaching of "C Programming"

QIAO Zheng-hong

(Sci. & Tech., Institute of Science, PLA University, Nanjing 211101, China)

Abstract: C Programming is a basic course in public, it is also a practical course with highly experimental demand. Old measure of teaching in C do not adapt the student' s need, the measure of reforming teaching is introducted, such as Case Study, Teacher-student interaction, Rational use of multimedia, which gets rather good response.

Key words: C Programming; reform of teaching; case study; Teacher-student interaction; multimedia

1 引言

我校为非计算机专业的学生设置了两门计算机公共基础课程:一是“大学计算机基础”,二是“计算机程序设计基础”,要求所有学生必须选修。其中“计算机程序设计基础”课程选用目前流行的C语言作为教学语言。

C语言是我校学生学习程序设计的入门语言,学生分析问题、解决问题的能力和程序设计思想的形成都与C语言有着密切的联系。C语言既具有高级语言的优点,又具有低级语言的许多特点,既可以用来编写系统软件,又可以用来编写应用软件。C语言语法限制不严格,程序设计自由度大,在使用时会出现一些“副作用”,再加上现行在教学过程中存在的一些弊端,所以在学习中学生普遍反映“难学”、“不懂”、“没兴趣”,这也是在C语言教学中普遍遇到的问题。

2 现行教学过程中存在的问题

2.1 以书本为中心,忽视学生能力的培养

以书本为中心的教学模式,采用从概念到概念的注入式教学,偏重于C语言语法知识的详细讲解,而对程序设计思想、程序设计方法和程序设计风格的介绍很少,对编程能力的培养不足,导致学生学不深、学不透、学不精,不会编写和调试程序,不会测试程序的正确性,编写的程序可读性很差,遇到稍微复杂的程序就读不懂,更不用说运用学到的概念去解决实际问题了。

2.2 以教师为主体,忽视学生的能动作用

以教师为主体的教学方法中,由于片面强调和突出教师的主导作用,忽视和压抑了学生的能动作用;片面地强调知识的传授和灌输,忽视了学生创新能力的培养;注重“知识型”人才,忽略了“智能型”人才的培养。在教学的过程中,教师只注重讲解概念、语法和程序,不注意调动学生的学习热情,学生被动接受灌输的知识,学习热情低,即使掌握了这些内容,也不能灵活运用,达不到举一反三的目的。

2.3 多媒体教学过分强调表现形式,忽略了内容本身

在现代化的教学过程中,利用投影仪、计算机、网络等现代设备开展多媒体辅助教学,具有较好的教学效果。但是在课件制作上过分强调表现形式,忽略了内容本身,往往造成喧宾夺主,达不到预期的效果;另外在课堂上,教师过分依赖课件演示,忽视与学生沟通,影响学生参与教学活动的积极性。

针对以上存在的不足,我们在对C 语言教学过程中,开展了一系列的教学改革,在教学中采用案例教学法,强化师生互动,积极培养学生学习兴趣,并合理使用现代教育手段,取得了良好的教学效果。

3 教学改革方法

3.1 采用实例教学,突出能力培养

为了改变以书本为中的注入式教学方式,我们探索采用了实例教学法,以程序设计的需要带动语言知识的学习,在每个知识点上以引例开头,激发学生的好奇心和求知欲,从而促进学生成为教学主体,引导学生进行自主学习、合作学习、研究性学习,增强学生的综合应用能力,从而提高了教学质量,取得了良好的效果。

在实际教学实施过程中,我们采用了项目递进驱动教学法,改变满堂灌的做法,将学生的眼手脑全部调动起来。精心设计实例,给学生一个比较实际的切入点,通过教师的演示使学生感觉能够入手,然后再将此实例不断修改、扩充,引导学生参与到程序的编写过程中,并将学生设计的程序展示,让学生来评判优劣、吸收优点、修改错误,引导学生进行程序优化。比如在进行if语句的教学时,针对符号函数的求解,我们给出多种可能实现的程序段,让学生分析哪些程序段能够完成计算,哪些不能完成计算,对不能完成计算的程序段如何进行修正等。通过这些程序的分析,使他们加深了对if语句的理解,掌握了if与else的配对关系,并灵活运用去解决其他问题。

3.2 强化师生互动,激发学习学习热情,发挥学生主观能动性

在C语言教学中,我们大力强化师生互动,充分发挥学生的主观能动性,注重培养学生独立学习、独立思考、勇于创新的能力。师生互动教学我们采用了“问答式”、“讨论式”等多种形式。每一种方式都有其特点和特定的适用范围,在实际教学中我们根据具体情况加以灵活运用。

“问答式”就是教师事先设计好问题,启发学生思考,引导学生在问题解决中构造算法进而掌握相关的概念、语法、功能及应用。例如:要求学生编程实现输入三角形的三条边a,b,c,计算以这三个数为边长的三角形面积。我们可以适当进行提示提问:①输入的三条边能否构成三角形?②已知三边长,三角形面积该如何求呢?这就要结合中学时的数学知识,对于问题①用数学语言来描述为:两边之和大于第三边。那么用程序语言该如何描述呢,应该采用哪一种程序结构?顺序、选择还是循环?程序结构知道了,下一步就是根据数学公式计算面积。这样,逐步对学生进行提示和引导,可以使学生的思维一直处于活跃状态。

“讨论式”就是教师预先设定讨论题目和要求,由学生分组讨论的一种互动教学方式。它适用于课程中的重点难点问题。如在链表的教学中,我们就如何利用链表实现栈、队列,用链表实现与用数组实现各有什么优劣等问题时就采用“讨论式”教学方法。课前教师将问题提出来,让学生自己去思考。学生自由组合形成若干各小组,每个小组应有一位秘书,负责全程记录讨论过程,最后每个小组要出一份讨论报告,然后由每个小组推选一位学生上台讲解本组的实现方案,其他组的同学可自由提问,最后由教师对方案的可行性、是否有创新、须改进之处一一进行分析讲评。这种方式有利于培养学生的思维能力和协作能力,激发学生学习热情。

3.3 合理使用多媒体,提高教学效率

在教学中结合形象直观的事例或图形讲解概念,可以充分发挥学生的形象思维能力,不但易于理解和掌握,而且印象深刻,能有效地提高学习效率。因此在C语言教学中我们可利用多媒体代替传统的板书,将文本、图像、声音、动画结合起来,使抽象的内容变得形象生动,学生通过多种感官来获取知识,形成相关的概念。但是滥用多媒体教学,不但达不到预期的教学效果,反而会分散学生的注意力,削弱教师在教学过程中的主导作用,甚至影响学生的学习积极性。在C语言多媒体教学实践中,我们着重解决好以下问题。

3.3.1 课件内容与形式的关系

在制作C语言课件时,我们要根据课程的教学内容的性质和特点选择恰当的技术手段和表现形式,充分利用了各种媒体信息为教学内容服务。在课件制作上,不需要花时间、花精力对课件进行包装,刻意追求特技效应。在课堂教学中,过多的画面切换,容易造成学生在学习过程中应接不暇,对所学内容生吞活剥,能力的培养无从谈起。实践证明,附加信息和无关信息过多,虽然从心里上加深刺激了学生的感知能力,但却显得主次部分,容易分散学生的注意力。因此我们要求课件制作要务实,不必特别美观,也不必有很高的技术含量,涵盖的知识点也不必很多,只要能使抽象、难懂的内容变得直观、易懂,有利于学生更好地接受所学的知识就够了。

3.3.2 注意发挥教师的主导作用

虽然教学课件事先已经做好,但不是说在课堂上教师只充当“解说员”、“演示员”就可以了,这样可能会出现学生看了很多,听了很多,却不知道要学什么,什么是重点难点,而事与愿违。其实,多媒体辅助教学作为一种现代化的教学手段,是用来提高课堂教学效率、突破重难点、解决一些传统板书教学不容易理解的问题。作为教师应把握住自己在教学中的主导地位和作用,通过教学过程的设计和灵活多变的操作,使多媒体发挥最佳教学功能。

4 结束语

采用这些教学方法,有提出问题、解决问题、扩展问题、再解决问题、对解决问题方法的评价、优化等几个环节,实际上是一个螺旋式滚动向前的过程,在这个螺旋式不断向前的过程中,能够非常自然地调动学生参与的积极性,而且通过问题的扩展,通过一个问题的多种解决方法,使学生在课堂上真正地成为“主体”,教师扮演“主导”角色。当然,在改进和探索教学方法的同时,我们还要充分利用机房、网络和课外环境,启发和调动学生的学习积极性,培养和提高学生的自学能力。

参考文献:

[1] 中国高等院校计算机基础教育改革课题研究组.中国高等院校计算机基础教育课程体系2006[M]. 北京:清华大学出版社,2006.

篇10

关键词:C语言程序;调试技术;探究与分析

近些年来,笔者在研究C语言程序设计过程中,发现许多人对于自身编辑的C语言程序运行中出现的错误的处理方法存在许多问题,无法有效判断程序错误的原因以及其对应的调试方法,文章主要从两方面分析C语言程序设计调试技术。

一、运行错误的判断与调试

一般情况下,C语言程序运行错误被分为两种:逻辑错误与程序设计错误,前者是指编译时没有错误提示,可以运行,但实际的运行结果与程序预期结果之间有偏差;后者是指程序设计中存在的问题,在编译与连接程序时也没有被发现,程序设计错误的主要表现为:计算机突然死机、自行热启动或输出信息混乱等[1]。

文章主要介绍两种常见的运行错误调试方法:

①程序算法设计不合理

有一种逻辑错误主要是由于C语言程序设计时的算法不合理而引起的,例如对边界及特殊情况未作预先处理,例如下述循环:

While(count)

x

count=count-1;

y

该循环的设计构思是进行count次循环,但是在该循环中,while旁边的判断条件恒为真,程序就会进入“死循环”,这显然是由于算法设计错误而导致的,但是编译器对于该类错误的敏感度较低,只有程序运行出现异常的时候才可能被发现[3]。再举一个例子:根据海伦公式计算三角面积的时候,首先需要对给出的三条边长是否符合“三角形任何两边的和大于第三边”的定理,若不符合这一定理则运算结果毫无意义;而程序员在设计一般实系数一元二次方程的程序时,必须设定处理复数情况的程序,避免出现运行错误[4]。若采用手算的方法是不需要先考虑到这方面,可以在出现问题后再根据实际情况提出解决措施。但是C语言程序是为计算机设计的,计算机不具备人脑自行应变的能力,因此,在程序设计的过程中必须事先将可能发生的一切问题都考虑到,特别是客户委托程序员设计的或是作为商品出售的软件更要注意这一问题。

②程序输入时的打字错误

还有一种常见的逻辑错误是在C语言程序输入过程中,由于程序员不小心打错字导致的,例如将判断条件中的“>=”输为“>”,将相等判断“==”输为“=”等。存在此类错误的程序在运行过程中出现的错误表现具有多样化,且很难将该错误出现的原因与打字错误联系起来[5]。

数据输入中存在的字符错误或字符的格式错误等都会影响程序的运行结果,尤其是在数据量大,且数据输入采用人工输入的工作中,极其容易发生这种错误。笔者以多年工作经验建议当数据输入量较大时,采用文件记录的方式,再通过读写文件来进行数据输入,这样就能够通过编辑数据文件来检测数据中存在的错误,并且在重新计算或调试过程中就不需要反复输入[6]。这种方法非常适用于科学或工程计算应用程序中的数据计算。

还有一种方式就是采用自行编写的、比较完善的数据校验输入模块来取代C语言中的scanf()函数来输入数据。这种方法多用于数据处理、事务管理等复杂的应用程序开发,常常需要将数据输入与用户界面等模块相结合,对编程技能有较高的要求。

二、C语言程序设计基本调试方法

文章主要针对C语言程序设计基本调试方法的四种方法进行介绍。

1.标准数据校验

在程序编译、连接完毕之后,下一阶段就是运行调试。运行调试阶段首先需要使用若干组已知结果的标准数据对程序进行检验。在此过程中标准数据的选取对检验结果具有重要影响,因此,标准数据的选择需要选取具有代表性且比较简洁的数据,主要是为了简化对检验结果正确性分析的不足[7]。此外,对重要的临界数据也需要进行检验。

2.程序跟踪

对于复杂的大型程序而言,上述检验一次性通过是不可能完成的。一般情况下,程序存在各种各样的问题(程序存在问题是一个普遍现象,一个错误也没有的程序在实际中较少),因此,需要对程序进行严谨的跟踪调试。

程序跟踪是调试工作中的一种方法。程序跟踪的方法是通过让程序一句一句的执行,通过观察程序执行过程中的数据以及程序的流程变化来分析其中存在的错误。例如在Turbo C中,可以采用两种程序跟踪的方法,一种是通过利用集成环境中分步执行、断点设置以及变量内容显示等功能观察程序的合理性;还有一种方法是传统方法,其主要通过在程序中直接设置断点、打印重要变量来观察程序有无错误存在。

3.边界检查

在数据检查过程中,要重视边界可能存在的特殊情况,例如以下循环:

While(count

x

y

需要检查设计数据count等于0、负数、999及1000等情况。若程序中存在if-else或switch等语言组成的分支时,也需要设计相应的判断数据,且对分支中的路径进行检测。

4.简化循环次数

在调试程序的过程中,可以通过简化程序来实现提升调试速度的目的,例如减少循环次数、减小数组规模、屏蔽部分次要程序段等方法。但是在简化程序的过程中,要注意不能太过简化,否则无法代表程序真实的运行状况。举个例子来说,对于一个求解N元一次方程组的程序来说,仅通过将N设置为2的检测是远远不够的,不能确定该程序是否在数值较大的方程组中也能得出正确的数据。若在N=5或6的情况下程序计算正确,则可以确保程序出错的可能性较小。

结束语

计算机技术的不断发展促使现代人们工作、学习以及生活方式发生巨大改变,且随着计算机软件功能的不断强大,使得计算机软件广泛应用于各个领域中。但是在C语言程序应用过程中,程序错误的出现威胁着程序软件的正常运行。因此,提高程序安全性成为程序员有待解决的问题。文章主要针对C语言程序设计调试技术展开分析,首先介绍了C语言运行错误的判断与调试,分析了2种常见逻辑错误判断与调试方法,然后针对4种C语言程序设计基本调试方法进行阐述,旨在提高C语言程序设计调试技术水平。

参考文献

[1]张秀美,赵旭霞.程序调试技术在C语言函数教学中的应用[J].教育教学论坛,2014,22(11):85-86.

[2]崔光佐,程旭,佟冬等.面向处理器的系统级模拟、仿真及调试技术 ――基于软硬件协同设计的新方法[J].计算机研究与发展,2011,38(3):361-367.

[3]李从宇,王宝光.嵌入式DSP系统C语言硬件编程技术[J].测控技术,2013,26(4):68-70.

[4]姚放吾,金鑫.基于Monitor的C语言源代码调试器的设计与实现[J].计算机技术与发展,2014,21(6):55-58.

[5]吴兴华.基于C语言软件开发的效率、移植及调试[J].数字技术与应用,2013,14(12):172-172.