前言:中文期刊网精心挑选了c程序范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。
c程序范文1
具体介绍:
1、数据类型:C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
2、常量与变量:常量其值不可改变,符号常量名通常用大写。变量是以某标识符为名字,其值可以改变的量。
3、数组:如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,方括内的索引值是从0算起的。
4、指针:指针不仅可以是变量的地址,还可以是数组、数组元素、函数的地址。通过指针作为形式参数可以在函数的调用过程得到一个以上的返回值,不同于return(z)这样的仅能得到一个返回值。
5、字符串:C语言的字符串其实就是以''字符结尾的char型数组,使用字符型并不需要引用库,但是使用字符串就需要C标准库里面的一些用于对字符串进行操作的函数。它们不同于字符数组。
c程序范文2
关键词:Java;JNT;C++;DLL
在现今的软件开发领域中,Java以其跨平台的优势得到大量的应用,其代码可以一次编译多处执行。但这种特性给Java带来了一定的局限性,幸好Java提供了完备的C/C++语言接口,这样我们可以利用C语言的强大功能实现Java难以实现的功能,在一定程序上消除Java的局限性和低效率。
JNI是Java Native Interface的英文缩写,中文翻译为本地调用,自从Java 1.1开始就成为了Java标准的一部分。
C/C++是系统级的编程语言,可以用来开发任何和系统相关的程序和类库, 但是Java本身编写底层的应用比较难实现,使用JNI可以调用现有的本地库,极大地灵活了Java的开发。
C/C++的效率是目前最好的语言,可以使用C/C++来实现一些实时性非常高的部分。 C/C++和Java本身都是非常流行的编程语言,一些大型软件中经常使用语言之间的混合编程。
一、创建DLL文件
使用某一种C/C++开发工具创建Dll文件,实现某一功能,供JAVA调用,例如本文在此使用Visual studio 2005创建一个名为testdll的动态库文件。
二、使用JNI
JNI是Java Native Interface的缩写,中文为JAVA本地调用。它允许Java代码和其他语言写的代码进行交互。
1.JAVA类
在JAVA程序中,首先需要在类中声明所调用的库名称,如下:
static {
System.loadLibrary(“testdll”); //加载动态库,testdll为DLL文件名称
}
还需要对将要调用的方法做本地声明,关键字为native。并且只需要声明,而不需要具体实现。如下:
public native static void set(int i);
public native static int get();
然后编译该JAVA程序文件,生成CLASS,再用JAVAH命令,JNI就会生成C/C++的头文件。
例如程序testdll.java,内容为:
public class testdll { static { System.loadLibrary(“testdll”); } public native static int get(); public native static void set(int i); public static void main(String[] args) { testdll test = new testdll(); test.set(10); System.out.println(test.get()); } }
用javac testdll.java编译它,会生成testdll.class。
再用javah testdll,则会在当前目录下生成testdll.h文件,这个文件需要被C/C++程序调用来生成所需的库文件。
2.C/C++
创建C/C++项目需要增加的头文件有jni.h、jni_md.h这两个文件是JNI中必须的;还有就是增加testdll.h。
对于已生成的.h头文件,C/C++所需要做的,就是把它的各个方法具体的实现。然后编译连接成库文件即可。再把库文件拷贝到JAVA程序的路径下面,就可以用JAVA调用C/C++所实现的功能了。
接上例子。我们先看一下testdll.h文件的内容:
#include #ifndef _Included_testdll #define _Included_testdll #ifdef __cplusplus extern "C" { #endif JNIEXPORT jint JNICALL Java_testdll_get (JNIEnv * jclass); JNIEXPORT void JNICALL Java_testdll_set (JNIEnv * jclass jint); #ifdef __cplusplus } #endif #endif
在具体实现的时候,我们只关心两个函数原型 JNIEXPORT jint JNICALL Java_testdll_get (JNIEnv * jclass);和 JNIEXPORT void JNICALL Java_testdll_set (JNIEnv * jclass jint);这里JNIEXPORT和JNICALL都是JNI的关键字,表示此函数是要被JNI调用的。而jint是以JNI为中介使JAVA的int类型与本地的int沟通的一种类型,我们可以视而不见,就当做int使用。函数的名称是JAVA_再加上java程序的package路径再加函数名组成的。参数中,我们也只需要关心在JAVA程序中存在的参数,至于JNIEnv*和jclass我们一般没有必要去碰它。
下面我们用testdll.cpp文件具体实现这两个函数:#include "testdll.h" int i = 0; JNIEXPORT jint JNICALL Java_testdll_get (JNIEnv * jclass) { return i; } JNIEXPORT void JNICALL Java_testdll_set (JNIEnv * jclass jint j) { i = j+5; }
编译连接成库文件,这里就是testdll.dll。把testdll.dll拷贝到testdll.class的目录下,java testdll运行它,就可以观察到结果了。
三、总结
使用JNI可以在JAVA中调用其它语言编写的代码,在一定程度上消除JAVA的局限性和低效率。
参考文献:
c程序范文3
关键词:C语言程序设计;教学方法;教学手段
中图分类号:TP3-4
C语言是在国际上被广泛应用的计算机程序设计高级语言,受到很多大学的青睐,有不少学校将其作为第一门程序设计教学语言来进行学习。在我校C语言也是各理工科专业的公共基础课。但是,由于高职学生的基础不好,而程序设计课程逻辑性又很强,有不少学生不能很好地理解算法,编写程序也很困难,在教学过程中,出现了亟待解决的问题,对此,笔者结合自己在教学中遇到的问题,提出了相应的应对方法,以激发学生学习兴趣,提高教学质量。
1 教学目标的定位
教学目标作为教学活动中学习者要预期达到的学习效果,对教学活动起着导向、激励、调节、检测和评价的作用,有利于教学目的明确化,应用能力培养的具体化,是教学活动的出发点和归宿。通过对我院C语言程序设计的教学目标的改革,旨在提高学生的实践能力,培养应对信息化发展变化的良好素养。
2 教学内容的更新
2.1 从实际问题出发开展教学。C语言程序设计是一门逻辑性很强的课程,有的同学课堂上老师讲的也能听的懂,课本上的例题也能看明白,可是等到自己动手编程时,却不知道从哪里下手。他们所谓的听的懂看的明白,只是很肤浅的语法知识,而编写的程序或软件则是需要根据相关问题的实际需要结合相关的逻辑分析,编写语句控制程序的流程,如果没有深刻地理解C语言的语句的执行流程,是没办法编写程序解决相关实际问题的。所以笔者经常提醒同学,当拿到相关问题时,首先结合实际,思考解决问题的方法和步骤,然后再结合C语言语法语句编写相关程序。
2.2 注重实践环节教学。C语言是一门实践性很强的课程,光学不练、“纸上谈兵”是学不好C语言的。笔者在进行C语言教学时,讲解了相应的C语言语句语法等理论之后,都会根据相应的理论知识布置1-2个相应的同学们比较感兴趣的问题,让同学通过编程并上机运行调试求得问题的结果,来刺激同学们编写程序调试程序的兴趣,以此来提高同学们编写程序的实际操作能力。另外实验指导书,也是旨在让同学们逐步的由阅读程序、分析程序内容及结果、补充程序、程序改错慢慢过渡到能够独立编写程序,每一个实验所安排的内容都比较多,若仅靠课堂上有限的90分钟来完成所有实验内容几乎是不可能的。所以,我在每次实验之前都要求同学们对相应的实验内容进行提前预习,实验前完成对程序内容分析理解、有需要填充程序的提前结合题目要去及上下程序段意义完成填空、有需要改错的结合实际意义找出程序中的错误并在实验指导书上改正过来、有需要编写程序的提前在课下编写好程序等,在上机实验时,将补充完整的或改写好的或编写好的程序输入C语言编辑器中进行编辑、运行,这样在上机实验时只需要调试程序中的错误,找出错误的原因,然后对程序进行运行查看运行结果,用来检验实际运行结果与分析结果是否一致,这样不仅大大提高了课堂利用率,而且还锻炼了同学们分析问题、解决实际问题的能力。
2.3 注意提高学生调试程序的能力。在C语言程序设计中,调试程序是一件很重要的事。俗话说,“人无完人”,所以即使是比较优秀的程序员在编写程序时也难免会出错,而且还可能是那种最低级的语法错误,但他能快速的发现错误并改正,这是因为他们一般都具备相应的程序调试能力;而对于大多数C语言初学者在面对错误提示时,却无从下手,不知错在哪里,如何改正,这就是差别。笔者在C语言的教学中这样引导同学进行调试:
首先要求同学们按照教材上的程序实例进行原样输入,运行一下程序是否正确。如果能正常运行,再要求同学们在该程序的基础上进行试验性的修改,然后再运行一下程序对照一下看程序运行结果发了什么变化,并引导同学分析结果发生变化的原因,以加深同学们对所学知识点的理解。
有时还会引导同学们将教材中的正确程序改写成错误的程序,并上机运行,让同学注意查看出现的错误提示信息,并记下该信息,然后再将程序改写成正确的,并再次运行。不过要求同学每次只改错一个地方,目的是让同学能准确找出发生该错误的真正原因,避免因为改动过多,搞不清发生错误的真正原因;另外,要求同学们上机调试程序时每个人都带一个小本子和一支笔,当程序出现错误时,记下英文错误提示信息和解决相应错误的方法,用于积累调试程序的经验,避免以后编程时再犯同样的错误。同学们通过这样的反复修改、运行,就能够掌握相应的调试C语言程序的方法,找出C语言程序发生错误的原因及相应的修改方法提高修改错误的能力。
当同学们有了一定的C语言编程基础了之后,要求同学在不看教材的情况下,根据给定的实际问题完成程序编写、上机调试、运行,如果所编写程序不能正常运行,看自己能否找出错误原因并将其改正过来,使其能正确运行。这样经过多次练习,必然能提高学生的编程和调试程序的能力。
2.4 注意学生综合能力的提高。笔者经常鼓励同学可以先编写一些小程序,然后对多个相关小程序进行连接,形成一些稍大一点的程序,提高自己的综合解决实际问题的能力。鼓励同学在上机实践的同时多动脑、多思考,多了解并借鉴别人优秀的解题思路和方法,多看别人优秀的源程序代码,尝试着自己独立实现编程或者模仿着去实现编程,来提高自己的综合能力。
3 教学方法与教学手段的研究
3.1 多种教学方法的综合运用
对于C语言程序设计课程教学来说,相关知识点繁杂,概念多,理论抽象,学生不容易掌握,在授课过程当中,需要根据授课的内容和学生的具体情况,灵活地运用分小组讨论、任务驱动、案例式教学、启发式教学等多种教学方法,并适当的将多种教学方法进行有机结合,同时,也可以借助于多媒体和网络等现代教学手段使这些方法得以有效实施。
例如课堂上,不再采用教师满堂灌的陈旧教学方式,在新课教学时,合理采用任务驱动法:先提出待解决的问题,再引导学生分析问题找出解决问题的相应方法和具体步骤,之后再结合C语言语法给出源代码,并对源代码进行分析,再将新知识点引出,对知识点进行讲解、强调,最后再留给学生一些相应任务,学习小组经过讨论、研究,将任务完成,达到巩固知识点的目的。新的授课方式使同学们更易接受,更为直观形象,而且同学们可以直接参与问题的分析与讨论,同学上课的积极性得到很好的提高,上课质量和课堂效率得到很好的保障。
3.2 采用多媒体教学
现代社会是个多元化的社会,原始的三尺讲台,一面黑板,一支粉笔的教学方式已远远不能满足现在多元化信息社会的需要,现代的课堂教学需要根据学生的理解和接受能力,借助于多媒体课件进行演示、讲解,能更加形象更加直观地对问题进行分析进行讲解,同时对同学们的多个器官进行多方面的刺激引起学生更浓厚的兴趣,并且还减少了板书时间,使课堂效率得到更有效的提高。
3.3 课堂教学与网络教学相结合
在90分钟的课堂教学中,给予我们的时间毕竟是有限的,并且课堂知识点相对来说比较凌乱繁杂,在一堂课中这么繁琐的内容要求学生仅靠课堂90分钟就能熟练掌握是不太现实的。因此,我们可以借助于精品课程网站,将电子课件、教学大纲、经典程序、经典算法、练习题和解答等资料上传至精品课程网站这个平台,供学生复习、巩固和自学,这样就可以使学生利用网络教学这个公共平台查找自己所需要的相关信息,并且还可以使学生养成主动学习的好习惯。
参考文献:
[1]谭浩强.C语言程序设计(第四版)[M].北京:清华大学出版社,2010.
[2]谢延红.C语言程序设计公共课教学模式改革与实践[J].计算机时代,2010,12:45-47.
[3]陈国章.TurboC程序设计技巧与应用实例[M].天津:天津科学技术出版社,1995,5.
c程序范文4
关键词 C语言程序设计;教学理念;教学方法
中图分类号TP39 文献标识码A 文章编号 1674-6708(2010)25-0198-02
C语言程序设计课程是我校理工类各专业必修的计算机程序设计基础课,是一门实践性很强的课程,学习者必须通过大量的编程练习,在实践中掌握语言知识,培养程序设计的基本能力,并逐步理解和掌握程序设计的思想和方法,培养学生编程兴趣和编程能力是我们教师的责任,也是该课程的目标。
现行的教学中存在一些问题:一是按照从基础知识讲起,然后讲解语句语法,最后应用举例;二是教材内容安排不尽合理,语法规则编写过细[1];三是教学理念、教学方法和考核方法比较老套,不适应当今教学的发展。为了让学生学好这门课程,提高动手能力,必须进行教学改革,探索改革的思路和方法。
1 转变教学理念
传统的“盖房子”教学理念,强调必须先打好地基再砌墙,即强调先打好基础,然后再进行实际编程。这种教学理念教师往往先介绍概念和定义,再举例进行讲解,这种教学方法死板而枯燥,由于课程的教学重点往往放在了语言语法知识点上,而语言的语法是相当烦琐而复杂的,这种教学方法缺少应用型、趣味性的案例,使学生一步步地陷入到纷多繁杂而索然乏味的语法学习当中,很难充分调动学生的积极性和启发学生思维。
研究自然界中“树”的生长规律可以发现,“树”并不是先长成发达的根系,再长树干和枝叶,树的根系、树干和枝叶是同步生长的。“树”的生长过程应用到教学上,就是基础语法和编程的教学同步进行,甚至先教编程技能再教理论,在不断地实践中掌握技能,在技能学习中提高基础理论。
2 教材编写思路
从课程的教学目标出发制定教材的编写思路,采用实例引导法、归纳教学法和任务教学法编写教材,在编写内容上抛弃过多的语法细节和非通用的或实际用途很少的语言特性,算法描述力求通俗易懂。理论教材以实例引导法思想为主导,介绍概念、语句格式、语句用法和算法描述。用归纳教学法思想编写多个函数中相同参数的使用问题。实验教材以任务教学法思想,确定每一个实验的任务、内容、要求和思考题。
3 教学方法探索
3.1实例引导法[2]
一切从实际例子出发,引导学生理解程序中的概念和算法,例如:在讲解变量、运算符和表达式时,先通过一个具体实例程序介绍,如:求圆面积和周长,指出程序中临时存放数据的单元和公式中的运算符号,然后再引出变量、运算符和表达式进一步讲解。又如:在讲解指针的概念时,变量的“间接访问”,可以通过“办公桌抽屉”实例讲解:一个办公桌有A,B两个抽屉,每个抽屉有一把钥匙,可以把B抽屉的钥匙放在A抽屉中,若要打开B抽屉,就需要先打开A抽屉,取出B钥匙,再打开B抽屉,取出B抽屉中的物品,引出“间接访问”。这样学生很快就能理解变量、运算符、表达式和指针的概念并掌握它们的用法。
3.2归纳教学法[3]
C语言的定义、概念、语法规则有许多相似的地方,在讲解C语言函数库中函数时,有些函数参数的类型格式符是一样的,在讲解一个函数中类型格式符后,对其它函数的类型格式符可以进行归纳,不讲或简单的提一下即可,例如:printf()和scanf()函数中的类型格式符“%d、%f、%c”等,它们的语法规则是一样的。通过归纳教学,学生只要掌握其中一个,另一个自然就会使用了,免去了重复讲授,提高了教学效率。
3.3任务教学法
C语言程序设计课程必须采用实验教学环节才能把理论算法加以验证。采用任务教学法思想编写实验教材,适度增加实用性和自主性实验任务内容。每章有具体任务实例讲解,可引导学生完成每章设置的实验任务题目。让学生自主选择实验时间,每次实验课前要布置实验任务,学生根据任务,自学和实验任务有关的知识,完成实验任务的编程。这种教学方法能够有效地培养学生的自学能力, 激发学生学习的积极性、主动性和创造性, 锻炼他们利用所学的知识解决实际问题的能力。
3.4网络教学法
依托先进完备的校园网络环境,建立C语言程序设计网络教学平台。可以把课程教学大纲、教案、多媒体课件、教学录像、综合实例库、习题库、学习参考资料、模拟考试系统等教学资源全部上网,通过这个网络教学平台,学生可以浏览、下载学习资料,也可以提交电子作业,在线提问题,老师在线辅导和答疑等,为学生自主学习提供强大的网络支持。
4 师资队伍建设
成立C语言程序设计课程组,建立结构合理的教师梯队。由具有丰富教学经验和科研能力的教授任组长,激励教师努力钻研教学内容和教学方法,拓宽知识结构。同时,针对组内教师的不同特点,课程组制定了切实可行的目标,并定期进行集体备课,相互探讨,号召组内教师积极参与教学研究和科研开发,为提高教学水平打下良好的基础。建立主讲教师之间互相听课和评课制度,定期召开学生座谈会和课程质量分析会,并针对反馈意见提出改进教学的具体措施,从而规范教学的各个环节,为更好地提高教学质量奠定良好的基础。
5 考核评价体系
对课程考核评价体系进行改革,突出过程考核和编程能力考核,促进学生实际动手能力和创新能力的提高。例如:总评成绩=理论课出勤成绩+作业成绩+实验出勤成绩+实验完成成绩+期末考试成绩。期末考试采用《C语言程序设计机考系统》,机考系统为每个考生随机出题,体现了公平考试的原则。改革后的考核评价体系主要体现了考核形式多样化、考核标准合理化以及考核试卷个性化三大特征。
6 结论
鉴于目前C语言程序设计课程教学中存在的一些问题,文章通过改革探索,一切从培养学生编程能力的角度出发,按着新的教学理念对教材编写思路和教学方法进行了探索,提出了教学改革的具体措施。希望对C语言程序设计课程的教学改革有所借鉴。
参考文献
[1]谭浩强.C程序设计[M].3版.北京:清华大学出版社, 2005.
c程序范文5
关键词: 《C语言程序设计》 教学方法 教学手段 实验教学
《C语言程序设计》是程序设计类课程的基础,是计算机专业和相关专业的核心课程,也是全校工科各专业的本、专科教学计划中占有重要地位和起着关键作用的一门课程。在计算机教育方面,C语言是为数不多的与国外保持内容同步的课程之一。因此,它在高校教学中的地位之重要不言而喻。我们的教学目标是让学生掌握程序基本编程思想和实用编程技能,训练学生严密的逻辑思维、严谨踏实的作风、精益求精的精神,通过全面、深入、系统地介绍程序设计方法和程序设计语言,使学生掌握C语言的基本语法、语句、控制结构,以及结构化程序设计的基本思想和方法,使学生认识到算法、良好的程序设计风格与实践在本课程学习中的重要性,培养学生熟练使用C语言编程分析和解决实际问题的能力。但在实际的教学过程中,经常有学生学不好、不愿学的情况。我根据自己多年的C语言教学经验,谈谈在C语言教学过程中的一些问题,希望对读者学习和使用C语言有所帮助。
1.存在的问题
很多学生在开始学习时热情高涨,但随着课程的深入,该课程里面需要记的规则和规则本身的灵活性特别是思维的转变使学生慢慢失去了学习的兴趣。主要原因有以下几点:第一,对知识理解不够透彻,没有深究里面的知识点。课本里面一般只介绍C语言的格式和规则,因为语言学习的一个渐进性,所以结合实例比较少,学生就比较难于掌握。例如if语句的用法:if(表达式)语句;当表达式为真时执行语句,否则执行if语句的后续语句,如果在“(表达式)”后面加一个分号虽然没有语法错误,但程序的逻辑结构发生了改变,很多初学者会犯此类错误。第二,学生的思维方式开始很难转变过来,经常会用数学里面的表达式来理解和表达C语言里面的表达式。如若要描述三个变量a、b、c的大小关系,很多学生就直接这么写了:a>b>c,虽然没有语法错误,但同样出现逻辑错误,实际上在C语言里应该这样描述:a>b&b>c。第三,学生对程序的理解不够。弄不明白程序的运行过程,实际上时对C语言的控制语句理解不够。第四,不会动手写程序。这是很多初学者出现的问题,很多程序能看懂,能理解,但是一叫他独立写一个程序,他就无从下手。这主要是平时动手不够,另外对算法的理解还没有深入。
2.解决方法
2.1教学方法。教学方法多种多样,不可采用单一的方式进行讲授,在教学过程中教师应该灵活地采用多种方法相结合,充分调动学生的积极性,使其从被动学习转变为主动学习具体方法如下。
2.1.1互动教学法。互动教学法的方式有多样,如课堂提问、课堂练习等。例如,在讲完一个知识点后,教师可拿出几分钟时间让学生自由提问,或者可以出一个相关习题让学生随堂练习,这样既不会让学生感到枯燥无味,又能加深学生对该知识点的理解。在课堂上还可让学生直接到黑板上编写程序,编写完毕后让其他同学上来进行点评、讲解,这样可及时发现学生的掌握情况和学生容易犯错的地方,从而对症下药,对学生还没有掌握的知识点再重新温习一遍,这样学生的印象深刻,比直接讲解效果更好。
2.1.2启发教学法。C语言教材中的例题和课后习题比较丰富,给出了一般问题的一般解法,应对其进行归纳、整理和分类,在讲解同一类问题时没有必要逐题讲解,而应该在讲解一、两个典型题目的基础上,拓展学生思路,启发学生归纳出求解这一类问题的基本算法,这样既节省了重复讲题的时间,又留出时间来给学生讨论和思考;或者在讲授新的内容时通过复习前面的知识引入新的内容,例如讲循环结构程序设计时,应首先让学生回忆顺序结构和分支结构的执行原理和过程,进而引出循环结构的思路和过程。
2.1.3类比教学法。如在讲解交换变量a和b的值时,很多学生会直接用a=b;b=a;来处理。这时教师可用交换两个杯子甲和乙里的饮料这样的例子来说明,要交换两个杯子甲和乙里的饮料,则应该要拿第三个杯子丙作为过渡,先将甲杯子里的饮料倒入丙,再将乙杯子的饮料倒入甲,最后将丙杯子里的饮料(亦即最开始甲杯子里的饮料)倒入乙杯子,这样就实现了甲乙两杯子的饮料的互换。同样要交换两变量的值,也应该要一个中间变量,假设为t,则程序段应这样写:t=a;a=b;b=t;如此,学生就很容易理解了。
2.1.4演示教学法。利用黑板或动画的形式生动地描述程序的运行过程,这样对一些比较复杂的结构块或程序段有很好的助理解作用。
2.2教学手段。教学手段也是多样,针对不同的教学内容和不同的学生个体采取不同的教学手段,这样才会有针对性。
2.2.1寓教于乐。兴趣是激发一个人学习的最大动力,所以教师在教学过程中尽可能地采取一切方法来激发学生学习的热情。在C语言课程中,也有很多趣味性的数学问题,如“水仙花数”,“完数”,“斐波那契数列”,“猴子吃桃问题”,“百钱买百鸡”,等等,这些有趣的问题可激发学生编程的兴趣。
2.2.2传统的板书和多媒体课件相结合。在教学过程中,教师一定不能单纯地使用多媒体教学或板书的方式。基于C语言这门课程的特殊性――特别注重动手和程序设计能力,所以在教学过程中,对概念或演示方面可以用多媒体,概念一定要讲详细,宁可少讲一个习题,也不能让学生对概念模糊;涉及程序(特别是学生刚接触到程序或比较复杂的程序)的时候,虽然多媒体课件上有,但讲解的时候最好将其板书出来边写边讲,哪个语句段实现什么功能,能否用其他程序段实现相同功能,等等,这样学生更容易接受这个程序、算法和思想,学习效果更佳。
3.加强实验教学的管理
《C语言程序设计》是一门实践性很强的课程,上机实验是学生消化、理解理论知识,熟悉算法,发现、验证错误,调试程序和提高编程能力的一个重要途径。学习C语言不能纸上谈兵,一定要通过上机来验证程序,而且学生独立上机编辑运行一个程序比单独看书效果强很多。所以教师一定要加强上机实验的管理,让学生重视实验。实验环节主要有以下几点。
3.1理论课结束后即要为学生布置实验课的内容,要有难有易以供不同层次的学生选择,让学生在课后先自己编写好程序或者写出问题的算法以提高实验课的上课效率。
3.2上机过程中督促和指导学生进行实验。上机调试程序的过程中,会出现各种问题,教师应耐心细致地为学生讲解并让其思考原因。另外基于C语言有不同的编译平台,常用的有TC2.0和VC++6.0,有个别程序(主要是数据类型里面的问题)在不同的编译平台上有不同的结果,一定要让学生弄清楚为什么。
3.3仔细批改实验报告。实验课结束后,要求学生写实验报告,上交之后,详细了解每个学生的实验情况,出现的问题,这样就相当于一个反馈了,以后就有针对性了。
C语言是高校计算机教育的一门非常重要的课程,因此C语言教学是一个非常值得探讨的问题。教师应尽一切努力让学生学好这门课程。
参考文献:
[1]谭浩强.C程序设计(第二版)[M].北京:清华大学出版社,1999.
c程序范文6
关键词:C#程序设计;教学改革;教学方法
C#是从C和C++演变而来的一种新的面向对象的编程语言,也是目前主流语言中不多见的在Internet出现后推出的语言,它可以实现跨平台操作,避免了C语言中的指针和多继承,简单易学且功能强大。C#程序设计课程是计算机和软件技术专业的一门基础课程,是后续程序开发、数据库等专业课的前导课程,课程内容重在算法概念、结构以及程序设计的基本方法与技术。课程对理论知识及实践环节的要求都较高,该课程的教学目标是使学生掌握使用C#设计应用程序的基本技能,了解面向对象和结构化程序设计方法,能够在.Net环境下编写、调试和运行实用、规范、可读性好的C#程序。笔者结合教学实践,对教学过程中的一些问题进行探讨,与大家共勉,以求集思广益,共同提高本课程的教学效果。
1教学背景分析
1) 实践性教学环节薄弱,缺乏针对专业要求的训练。
学习C#程序设计课程的最终目的是培养学生的实际动手能力。重在技能培养,理论教学以“必需、够用”为原则,应尽量避免过深过繁的理论探讨。但是现在仍然有很多教师在实际教学中重理论、轻实践,花费大量精力讲解基本概念、基本语法规定、基本命令使用等理论,而对实验课则没有过多要求,一般只布置一些在理论课堂上讲解过的类似习题让学生去验证,没有或很少针对学生实际专业技能的实训。学生实际动手能力不强,技能培养目标难以实现。
2) 学生学习动力不足。
学好一两门计算机语言是学好编程的基础,是从事软件开发及其他一系列工作的必要前提条件。但大多数学生不明白学习程序设计的作用,觉得这些知识枯燥无用,缺乏兴趣和动力。学习仅仅是为了通过期末考试,严重背离了学习的最终目标。
3) 由于学生水平不同导致老师无法做到统筹兼顾。
该门课程的学习对象一般是大一新生,由于地区差异,基础教育程度不同,他们的计算机水平也有所不同。这就给老师提出了一个难题:如何把握讲解的程度?怎样才能做到统筹兼顾?如何让所有学生都产生学习的信心和兴趣?
4) 考核方式单一。
以往的C#语言程序设计主要以笔试考核为主、操作考核为辅,甚至完全没有操作考核。这也往往导致学生没有形成“掌握技能而非紧扣分数”的正确观念。后果就是学生拿到了学分,却没能掌握基本的技能。在后续专业课中,需要重新再进行技能学习。
2改革思路与实施方案
2.1明确目标
在高等教育的新形势下,作为一般的普通高等院校,必须找准自己的位置、合理定位,制定适合自身条件的发展战略规划,培养具有一定理论知识、娴熟动手操作能力和创新意识的技能型应用人才。具体到一门课程,教师首先要理清思路,搞清楚该课程同其他相关课程之间的关系,把握知识间的衔接和融合,如C#程序设计同后续的Windows应用程序开发、、Web Service、SQL Server等课程有密切的联系,教师首先要明白C#程序设计中哪些需要精讲,哪些略讲,重点、难点在哪,通过什么案例可以把相关知识点很好地串接起来,给学生系统的认识。另外,老师在授课的过程中应采取适当的方法和手段让学生对学习的目的有清晰明确的认识,以便达到最佳效果。
2.2教学方法改革[1-2]
教学方法要根据学生的特点、接受程度以及授课内容的特征灵活地进行选择。我们大胆进行教学改革,摒弃了传统教学中以教师为主体,学生被动接受的“满堂灌”教学方式,取而代之以“工学结合”为切入点,灵活使用启发式教学、悬念式教学、任务驱动教学等方法,突出了“理论教学构筑学生知识结构,实践教学构筑学生职业技能结构”的教学原则。
2.2.1启发式教学法
启发式教学法可激发思维,增强学生学习的主动性、积极性和创造性。例如,讲解选择结构的执行过程时,不是直接给出选择结构实现流程,而是先回忆“顺序结构”的概念,分析一个实例如何一步步执行完毕。暂且以输入一个圆的半径,计算圆的周长和面积为例,顺序结构的执行过程是:先输入半径;然后按照公式计算周长和面积;最后将周长和面积的结果打印输出。对这一过程进行分析,可发现问题:如果输入的半径为一负值,怎么办?从细节处引导学生对现实生活中可能出现的各种因素进行分析和思考,引出选择结构的概念,从而获得正确的结论。
2.2.2任务驱动教学法
对每个知识点的讲解采用“任务驱动”的方法,通过“提出问题分析问题解决问题边学边做总结”的过程,体现出互动创新、提倡个性、重在应用、共同协作的教学风格。
在教学过程中要根据课程内容创设情境教学环境,采用符合学生认知水平的教学方法,激发学生的求知欲。例如针对“学生如何建立面向对象程序设计思想”的课程难点,全面采用“项目导向”的教学模式,以完成项目任务为目标,整个教学围绕任务的解决展开,突出知识的应用性,引导学生自主思考创新,培养学生研究性、探究性学习的能力。
考虑到学生的认知水平,我们采用任务驱动法展开对每一堂课的讲解,在每堂课开始首先引入一个典型的小案例,激发学生的求知欲,并由案例引出相应的知识点,引导学生进一步寻求解决问题的办法,从而达到学习知识的目的,培养学生对理论知识的理解与应用能力。
2.2.3重视实验教学
实验教学环节对提高学生的实际动手能力至关重要,教师如何上好实验课也非常关键。一般来说,上课之前学生已经对实验内容作了相关准备,实验课上,教师把上机要掌握的内容列在大屏幕上,尽量多花一些时间让学生上机,而教师在学生上机时起引导作用,帮助学生解决问题,同时要特别提倡学生讨论问题,让学生有足够的机会自己探索、交流。对比较集中的问题,教师再集中讲解。笔者提倡“因材施教”法,通过给学生布置不同难度的实验练习,如基本练习、强化练习、提高练习,针对每章为学生安排不同的实验内容,让学生有一种学以致用的认识,基础好的同学也得到了提升。另外在本课程基本教学内容结束后,让学生完成综合作业,让其将所学连贯起来。另外实验教学也可采用“讨论法”,在调试程序的过程中,让几个学生对不同结果进行分析讨论,但分组时要注意成员的组成,最好事先了解学生水平,避免强弱扎堆的情况。
2.3教学手段改革[3-4]
在课程的教学过程中,我们采用的现代教育技术手段主要有:
1) 精心设计教学课件,激发学生学习兴趣。
营造轻松活泼的课堂气氛,通过图片、动画、实例演示等方式使课程内容变得容易理解,教学方式更为直观生动,教学过程更为紧凑,更能吸引学生的注意力。
2) 教师课堂编程示范,锻炼学生编程能力。
由于程序设计课程的特点,如果将大段程序以课件形式提供给学生,可能会出现学生照抄课件的情况。因此在课堂上,应主要采取现场操作,教师边分析边示范如何实现程序。主要的分析步骤可以提供在课件上,学生在教师分析的同时,可以自己实现程序,通过与教师所写程序的比较,找出不足,提高程序编制能力。
3) 充分利用多媒体教学系统,进行课堂辅助教学。
广播教学:教师理论讲解及总结提高时,通过广播教学方式,可以让学生集中精力。
个别辅导:在学生课堂练习时,教师可通过多媒体教学系统发现学生遇到的问题,进行个别辅导;同时也可将学生的优秀作品进行展示,给予鼓励。
作业收发:通过系统功能可以快速收发学生作业。
4) 利用网络将课堂教学延伸到课外,注重学生课后学习过程监控。
在课堂教学的基础上,借助网络为学生提供教学课件、论坛讨论、技术前沿等拓展学习资料。学生必须在课后阅读相关辅导材料,完成网络课程中提供的对应练习,同时也可将此作为学生最终考核成绩的一部分。
2.4考核方式改革
考核是为了检验学生对知识的掌握程度,也是对教师教学效果的一种有力评价。以往的考核方式比较单一,一般采用“平时表现+作业+期末考试”的形式,对于实际动手能力的考核很少甚至几乎没有,不能很好地检验学生实际的知识技能水平。因此,需要采用一种合理的考核机制,最大程度地检验教学效果。
课程考核应紧紧围绕以能力为中心,通过课堂教学过程考核、实训项目考核、期末理论考核相结合的方式进行。其中课堂教学过程考核强调平时的出勤、课堂纪律、课堂表现、基本作业、练习作业以及提高作业。期末考核分上机和理论两部分内容,主要考查学生对课程知识的综合运用能力。实训注重考核学生的实际编程能力、分析问题与解决问题的能力。因此,应主要对学生的程序开发调试能力、创新能力以及实际项目的完成情况、实训报告完成情况等进行考察。
2.5改进建议[5]
根据职业技术教育的特点,从实际应用出发,笔者认为要提高学生的实践能力和就业竞争力,应从以下3个方面着手:
1) 提高教师自身素质。
软件学院开设的课程不同于计算机学院的传统课程,刚毕业的教师一般没有接触过很新的课程,除非自学过。特别是年轻教师若没有相关的项目开发经验,可能对整个课程的把握程度不够,以致对今后学生工作需要的实践应用知识讲解会受到限制,即不能很好地将解决问题需要的经验知识传授给学生,而只是一味地按照教材内容教授,缺少了针对性和应用性,使学生感到枯燥无用。所以建议教师在教授软件方面课程时首先要备好课,准备一些跟生活中结合比较紧密的、通俗易懂的小例子给学生讲解、演练,激发学生兴趣,让他们把学习变成是一种主动的对知识的渴求,这样教学一心就能达到理想的效果。
2) 经常与学生进行思想交流。
来校就读的目的影响着学生的学习态度,作为老师,所承担的责任不只是教授知识,更重要的还是教育学生一种学习方法,教育他们如何去做人做事。辅导员及相关教师应做好学生思想及学习观方面的工作,软硬兼施、奖惩分明。
3) 学校课程的设置要以学生为中心。
由于学生入校时基础差,刚开始接触计算机就学习程序设计课程,确实有些难为学生。短时间内学好程序设计实属不易,建议相关学校在开设课程时要以学生为中心,保证学生能够在规定的课时内完成相应知识技能的学习,少开设一些与专业技能培养无关或者关系不大的课程,多增加一些技能培养方面的课时,同时提学结合的场地,以便学有所用。
3结语
笔者从专科院校C#程序设计课程的教学目标入手,从教学方法、教学手段、考核方式、教师素质等方面提出了一些改革措施,但教学改革是一个不断进行的过程,我们不仅要在教学过程中更加严格地要求自己,通过多种形式积极开展教学内容及教学方法的研究,还需要在教学过程中进一步加大C#程序设计课程教学改革的力度,不断努力,提高教学质量,真正落实C#程序设计课程在软件技术专业技能型人才培养中的作用。
参考文献:
[1] 熊梦侬. 案例教学法在教学实践中的运用[J]. 广东教育:教研版,2008(6):102-103.
[2] 李永刚,杜选,魏远旺. 面向对象程序设计教学改革与实践[J]. 嘉兴学院学报,2008(5):136-138.
[3] 刘甫迎,刘光会,王蓉,等. C#程序设计教程[M]. 北京:电子工业出版社,2005.