时间:2023-03-20 16:19:58
序论:在您撰写c语言论文时,参考他人的优秀作品可以开阔视野,小编为您整理的7篇范文,希望这些建议能够激发您的创作热情,引导您走向新的创作高度。
感谢我已经毕业的师兄徐日东、张凡、周志坚、段云涌和夏志远,他们曾经给了我无私的帮助和鼓励,让我学到很多。感谢汪健和程诗猛两位师兄,他们丰富的工作经验对于本文的硬件设计提供了很大的帮助。感谢同届的张斌、李纯和张登宝,他们是我学习、工作和生活上的伙伴,也是面对困难和挑战时的战友。感谢我的师妹邓祯,师弟冯国平、古明生、周建琼、杨帆、舒林、周宇杰、朱圣健、吴喧辉和张泽,从他们身上,我学到很多东西,和他们在一起的日子是读研期间快乐的时光。
感谢在广东普信公司实习时的同事们,他们在我第一次参加实际项目开发的过程中给了我莫大的帮助和鼓励。特别要感谢我的项目经理李旭和黄润怀,是他们的信任给了我很多锻炼的机会,也一直对他们给予我的生活上的照顾心存感激。和他们一起为广州项目奋战的一年多是我人生中一段难忘的经历。
感谢我的朋友Louis,Dick,Iris,Tracy,Sawyer,Joe,Jason,IceBear,以及更多我无法逐一列出名字的朋友,他们给了我无数的关心和鼓励,也让我的研究生生活充满了温暖和欢乐。我非常珍视和他们的友谊!
感觉计算机学院研028班的我的同学,感谢他们在学习和生活上给予我的帮助。
感谢生我养我的父母,他们给了我无私的爱,我深知他们为我求学所付出的巨大牺牲和努力,而我至今仍无以为报。祝福他们,以及那些给予我关爱的长辈,祝他们幸福、安康!
参考文献:
[1]裘宗燕.C++程序设计语言(特别版).北京机械工业出版社,2002.7.
[2]StandleyB.lippman.C++Primer中文版.人民邮电出版社,20006.3.
[3]谭浩强.C程序设计(第二版).清华大学出版社出版,2005.6.
[4]钱能.C++程序设计教程.清华大学出版社,2005.5.
[5]沈美明.IBMPC汇编语言程序设计.清华大学出版社,1993.9.
[6]钱晓捷.汇编语言程序设计.电子工业出版社,2003.
【参考文献】
[1]翟乃强,隋树林,汇编语言与C语言及VisualC++混合编程[J].青岛科技大学学报,2003,24(B09):136~138.
[2]钱晓捷,汇编语言程序设计(第二版)[M],电子工业出版社,2003.6.
[3]钱春英,浅谈C语言与汇编语言混合编程的一些技术[J].南通航运职业技术学院学报,2005,4(1):50~52,55.
[4]郭晓梅,汇编语言与C语言的混合编程及应用[J].南京农专学报,2002,18(4):49~52,62.
[5]普拉塔.CPrimerPlus(第五版)中文版[M].人民邮电出版社,2005.
[6]斯马尔迪诺.教学技术与媒体[M].高等教育出版社,2008.
[7]教育部考试中心.全国计算机等级考试二级教程——C语言程序设计[M].2010年版.北京:高等教育出版社,2010.
参考文献:
[1]周以真.计算思维[J].中国计算机学会通讯,2007,(3):77-79.
[2]董荣胜.计算思维与计算机导论[J].计算机科学,2009,(36):50-52.
[3]林旺.孙洪涛[J].基于软件应用的计算思维能力培养教学设计.中国电化教育2014,(11):122-127.
当今人类社会对“现代”的解释是:当时正在发生和存在的。我们可见的新的教育技术和新出现的教育技术。现代教育技术是把现代教育理论应用于教育、教学实践的现代教育手段和方法的体系。包括以下几个方面:①教育教学中应用的现代技术手段,即现代教育媒体;②运用现代教育媒体进行教育、教学活动的方法,即媒传教学法;③优化教育、教学过程的系统方法,即教学设计。
2现代教育技术
特征现代教育技术主要依托“现代信息技术手段”,涵盖信息技术的教育技术手段组成的系统称之为现代教育技术。信息技术正是指用一系列过程的各种先进技术的应用,包括微电子技术、多媒体技术、计算机技术、计算机网络技术和远距离通讯技术等方面。把这些技术引入到教育、教学过程中,可以大大提高信息处理的能力,即大大提高教与学的效率。现代教育技术更加强调培养复合型人才的观点。确立教学目标既要考虑是否与社会与时俱进,又要考虑是否重点在培养学生的技能和综合素质。
3C语言程序设计
现代教育理念研究C语言是我院计算机类所有专业的一门必修专业基础课,C语言是帮助学生认识计算机,并是所有后续专业程序课程(Java,C#)的基础,C语言培养学生提高逻辑分析能力,学习在实际工作中解决问题的方法和步骤。传统C语言教学主要是以知识点讲授辅助相应章节的实验。内容的安排知识点比较全面,学生通过学习64个学时的C语言程序设计可以基本掌握程序设计的方法。但是针对高职学生的特点普遍存在研究性学习不太适用的弱点。传统的内容安排不太合理,理论研究型学习略微显得枯燥,长期的学习使学生缺乏兴趣和动力。从高职岗位需求分析,学生适合培养技能型人才。要求强动手能力和先进的技能应用。
4C语言程序设计
现代教学内容研究教学内容的安排主要以培养程序设计思想为教学内容的主线,围绕技能培养的中心,积极培养学生动手能力,化主动解决被动接受的局面。用多样化教学手段设计教学主线贯穿知识点,紧紧围绕着一个主题案例,如学生信息成绩管理程序,细化模块和功能,循序渐进,逐渐延伸、拓展,随着带领学生不断提出新的用户需求并主动设法解决,引出能满足新要求的方法和相关知识点。学生从熟悉到掌握,从掌握到理解,逐步培养自主学习的能力。
5C语言程序设计现代方法研究
5.1教学内容合理知识点以案例驱动强调语法熟悉度和敏感度,大量练习知识点讲练比例在1:5,注重培养学生的分析能力和动手能力
5.2教学方法多样教学方法以“以多媒体教学为主体”+“板书”+“现场演示编程”为主体,穿插案例分析教学,基于问题的教学等,实验为主体内容分层教学等。
5.3教学手段先进常规教学与网络教学相结合,借助于教学网站搭建师生交流和互动的平台。如C语言评测系统,建立题库系统。例如我院目前已经建立了TOP训练营以及C语言评测系统的平台。
6教材及需求的改革
6.1教材特色———针对性、先进性本教材理论知识讲解详细,适合学生自我学习本教材以“工学结合”为理念精选各种典型应用的项讲解和练习,培养学生在学习中适应岗位。
6.2教材运用原则教材中的活动设计以学生为本,以培养学生的职业能力和素质为目标,内容具体,并具可操作性。
6.3教辅使用原则可充分利用网络资源,通过网络在线阅读或者下载相关辅助参考书,题量充分,让学生可以课后练习。
7总结
任何一个好的跨平台软件开发的实现,主要还是对整体设计的把握,跨平台程序设计要求实现与平台无关的代码,在设计和编写的过程中,还要对软件的架构和整体配置的合理性问题作出考虑。思路,我们可以结合自身学习和实践经验在程序设计方面充分利用开源的代码和程序,就可以让跨平台的设计更加地趋于成功。
2C++程序设计语言跨平台开发的策略
我们在编写程序代码的时候,总是要把编辑策略放在首位,针对于不同的OS,在其上创建和编辑文本文件,就要遵循不同的规则。比如行结束符,在Windows操作系统和DOS操作系统中普遍采用回车键,而在Unix中却使用的是换行符号。这种细微的差别就是跨平台软件开发必须考虑的问题。那么当我们要想把其中一个平台上编写的代码放在另一个操作系统上运行,极有可能出现不被正确解释的现象。另外,对于不同的操作平台其tab键的功能也有很大的区别,主要体现在间距上。那么我们在编程的时候要注重这些差别,保证代码的书写和阅读对于不同的操作平台都是一致的,增加程序的可读性,进而也就实现了跨平台的思想。所以在每次开发之前都需要针对开发策略制定相应的规则:统一使用四个空格键来代替tab,也就是\t格式。Windows下的源文件代码需要存储在UNIX的文件格式,或者说是在Windows下的文件编写完成之后,通过DOS2UNIX命令实现文本格式的转换。
3处理器差异的控制
鉴于C++语言自身语言的特点,建立了一个跨平台的抽象代码库,在不同的平台和编译器上进行合理的规划代码。C++语言里普遍使用了抽象,像BOOST和StardardTemplateLibrary。Boost标准类在不断的发展和改进过程中,完全能够帮助跨平台操作中的软件和程序来适应OS系统库的内部接口的不同,可惜这些不足以解决全部问题,主要是因为目前Boost没有包含所有的库函数的类库,又会出现不确定的情况,那么关于C++语言的部分也应该及时的维护和更新。在平台上,利用库封装代码,又在不同的平台下调用已达到统一代码的目的。
4利用wxWidgets开发跨平台软件
wxWidgets是一种跨平台开发的软件包,目前使得在跨平台的图像设计方面使用自身的程序。因为其兼容性相当的好,对于Windows,Linux,Unix等都兼容。而且,wxWidgets的底层是用C++程序设计语言实现的。下面用一个实例将说明wxWidgets的跨平台问题。首先创造一个wxFrame的实例,并制定长宽和屏幕上的位置。然后,新建一个垂直的sizewidget和顶层窗口的子sizer。然后,再创建一个垂直sizerwidget和一个水平子sizer。最后创建wxStatic实例以及为这个敞口应用中添加事件响应。以下将展示一部分核心代码。在设置完这个窗口之后,还需要新建一个类实现一写功能。
5结论
C语言是在B语言的基础上完善形成的。1967年,英国的MartinRichards推出了BCPL语言,且在1970年,美国的KenThompson以BCPL语言为基础推出了B语言。而B语言的功能有限、语言简单,并不能完全满足计算机软件编程需要。在此基础上,许多研究者加强对计算机编程语言的研究,经过多次试验,在B语言的基础上,对其进行完善,最终在1972年美国贝尔实验室D.M推出了C语言。1978年后,大、中、小型计算机对C语言进行移植,将其作为系统设计语言,为系统程序编写提供条件。在各种计算机编程语言中,一切计算机语言的基础是C语言。它是一门高级语言,灵活方便,具有汇编语言、高级语言的特点,简洁紧凑。同时,C语言可移植性强,应用广泛,表达力强、功能丰富,适用于多种操作系统,可进行自由书写,在信息技术发展方面发挥积极作用。
2软件编程技巧
2.1C语言的特有函数在计算机软件编程中,每一个函数都具有一定的功能,而在C语言编程过程中,需要应用一些特有函数。对于函数而言,函数名对函数功能进行反映,因此,在定义函数的过程中,程序员需要定义函数名字、参数名、返回值类型等。同时,由于在编程过程中,C编译系统提供库函数,且该系统首先定义好了这些函数,因此在调用程序时,程序员通过#include指令”,在所有文件中引入相关的头文件,从而便可实现程序调用。例如,在运用程序时,当应用到sqrt函数时,头文件中必须包含#include“string.h”,以此确保程序的正常运行。
2.2指针的灵活运用在软件编程中,指针的使用极为重要,赋值的实现需要指针的控制,从而建立变量关系,且编程的难度与指针运用的大小密切相关。因此,在复杂编程工作的完成中,程序员需要熟练运用指针,明确指针使用的作用,进行编程。指针是特殊类型变量的一种,可帮助程序员解决程序设计中遇到的问题,其具有指针名、值、指针类型3要素。在编程过程中,使用者需要对指针类型、指针名进行合理、科学定义,对其赋值,从而对指针、变量进行区分。同时,在指针调用过程中,利用C语言的特有函数科学、准确定义函数,并按照算法编程的方式,利用流程图表达算法内容。此外,在函数编程过程中,程序员具体设置函数的名字、参数名、返回值类型,设置好指令,且在C语言设置过程中,具体确定文件知识、位运算,确保其满足程序中的具体要求,明确二进制的对象。对于文件中包含的程序文件、数据文件,应将它们之间的步骤设置好,从而为数据查找提供方便。
2.3位运算及算法技巧在计算机高级语言的运算方法中,C语言的重要特点是位运算。位运算的对象是二进制,具有唯一性、独特性,是计算机软件编程、程序运行的基础,其根据相关程序要求的进行符合要求的运算。同时,运算、程序运行过程中,程序文件必不可少,在编程中,程序设计员需要在文件中存储程序,方便数据查找,提高运行效率。此外,在程序设计中,程序的灵魂是算法,算法技巧的掌握对程序设计极为关键。算法可用自然语言、流程图表述,而在用流程图表示算法时,要求程序员对流程图符号进行熟练掌握,并具备牢固的数学知识,提高编程效率。
3计算机软件编程中C语言、汇编语言的结合
3.1汇编语言的嵌入方法随着科学技术的快速发展,计算机软件不断更新,而C语言、汇编语言两种语言的混合编程是计算机软件开发中常使用的方式,以此提高计算机编程、程序开发效率,实现难度较高的编程任务。在具体编程中,在C语言程序中嵌入汇编语言,在寄存器的存储、转换作用下是实现汇编语言的运行。例如,如果在C语言源程序中嵌入一组汇编语句,就需要用大括号扩充嵌入程序,进而添加“asm”,且需要在asm前面放入指令代码,并用分隔符“:”区分正常的C语言、汇编语言。其中,嵌入语言以大括号来表示,通过该形式的编程对编程的过程进行简化。当汇编程序嵌入后,程序员定义程序,根据C语言指出函数,定义函数,并对不同的函数进行区分,根据不同模块的使用特点,对目标文件进行分析,提高编程的可靠性。
3.2链接C语言、汇编语言在C语言、汇编语言程序编写中,需要独立设置编译目标代码,然后实现链接。由于C语言、汇编语言程序能够相互调用,且多个功能模块共同组成一个任务,合适的语言独立编程功能模块。因此,在编程中,程序员应根据每个模块特点,设置编程,形成目标文件,使其成为可执行文件。同时,在C语言编程过程中,汇编程序需要调用函数、定义变量,这样,程序员就需要对寄存器的使用、参数传递、子程序的返回值、变量及函数调用、存储模式等问题进行考虑,特别需要注意参数传递问题。在编程中,根据堆栈汇编程序传递参数,并按照参数传递原则进行程序编程。例如,在Voidaa(char*p,inti)函数中,利用汇编语言编写该函数,在系统调用在小内存模式下进行,写为aa(&q,n)。而在系统运行中,在堆栈中压入n,并为了实现对存储数据的存取,传递参数。此外,由于C语言程序、调用的子程序的编程使用的是同一个堆栈,这样,就会产生pushbppopbp、sp两个执行指令,设置这两个指令,为执行过程的使用提供方便。
3.3C语言、汇编语言混合编程实验分析在混合软件具体编程中,一般情况下,在5个数中比较程序功能,从而对最小数值进行确定。由于汇编的子程序、主程序共同组成了所编程序,运用C语言编写主程序,利用汇编语言编写子程序,而最小数值通过主程序的调用得到确定。在编程中,用min.c*表示主程序,用qiumin.asm表示子程序,C语言、汇编语言结合,软件之间进行交流,从而使程序运行速度得以提高。在程序运行中,需要具体编程程序设计过程中的内存模式、寄存器分配等,确保程序设计语言的相互协同,使外部接口处于正常使用状况,为编程中的外部调用功能的实现提供保障。
4C语言多项式除法的程序设计
4.1设计流程在软件编程中利用C语言,对计算机软件的实用性进行探索。在C语言多项式除法的程序设计中,实验设计的建立依据循环冗余的结构进行,设置循环冗余验码编制软件程序。在此过程中,程序员需先对函数名称进行定义,了解函数,对函数的初始位置进行确定,进而建立数据库。此后,在C语言的基础上,程序员编程、计算函数,并在此过程中,一个冗余余数在系统中自动生成,在remainder文件中存储余数,确定程序的起始文件。最后,根据系统运行的结果,结合软件需求,程序员科学分析计算机软件实验,此时,如果计算结果能够满足软件运行需求,则说明软性运行正常。如果计算结果不能够满足软件运行需求,则需要程序员仔细检查软件编程过程,发现问题,解决问题。在C语言基础上,对软件编程实验流程进行设计,简化编程过程,提高实验结果的准确性。
4.2程序应用很多领域的发展过程都需要运用到C语言多项式除法程序的编程,该编程使软件应用的实际价值得到最大程度的发挥,并拓宽了混合语言在多项式除法的应用范围。在C语言、编程语言混合语言的使用中,程序员应及时定义函数,通过函数名对函数性质进行准确体现,获取准确的余数结果,确保计算机软性系统高效运行。
5结语
关键词FranklinC51编译器汇编语言结构化设计模块中断
--------------------------------------------------------------------------------
在研制单片机应用系统时,汇编语言是一种常用的软件工具。它能直接操作硬件,指令的执行速度快。但其指令系统的固有格式受硬件结构的限制很大,且难于编写与调试,可移植性也差。随着单片机硬件性能的提高,其工作速度越来越快,因此在编写单片机应用系统程序时,更着重于程序本身的编写效率。而FranklinC51交叉编译器是专为80C51系列单片机设计的一种高效的C语言编译器,使用它可以缩短开发周期,降低开发成本,而且开发出的系统易于维护,可靠性高,可移植性好,即使在代码的使用效率上,也完全可以和汇编语言相比,因此目前它已成为开发80C51系列单片机的流行工具。
1C51语言程序设计的基本技巧
C语言是一种高级程序设计语言,它提供了十分完备的规范化流程控制结构。因此采用C51语言设计单片机应用系统程序时,首先要尽可能地采用结构化的程序设计方法,这样可使整个应用系统程序结构清晰,易于调试和维护。对于一个较大的程序,可将整个程序按功能分成若干个模块,不同的模块完成不同的功能。对于不同的功能模块,分别指定相应的入口参数和出口参数,而经常使用的一些程序最好编成函数,这样既不会引起整个程序管理的混乱,还可增强可读性,移植性也好。
在程序设计过程中,要充分利用C51语言的预处理命令。对于一些常用的常数,如TRUE,FALSE,PI以及各种特殊功能寄存器,或程序中一些重要的依据外界条件可变的常量,可采用宏定义"#define"或集中起来放在一个头文件中进行定义,再采用文件包含命令"#include"将其加入到程序中去。这样当需要修改某个参量时,只须修改相应的包含文件或宏定义,而不必对使用它们的每个程序文件都作修改,从而有利于文件的维护和更新。现举例说明如下:
例1对于不同的单片机晶振,程序取不同的延时时间,而且可根据外界条件的变化修改延时时间的长短。对于这样的程序,可利用宏定义和条件编译来实现。程序如下:
#defineflag1
#ifdefflag==1
#definefosc6M
delay=10;
#elifflag==0
#definefosc8M
delay=12;
#else
#definefosc12M
delay=20;
#endif
main()
{
for(I=0;I<delay;I++);
}
这样源程序不作任何修改就可适用于不同时钟频率的单片机系统,并可根据情况的不同取不同的delay值,完成不同的目的。
2C51语言与汇编语言程序的混合编程
C51编译器能对C语言源程序进行高效率的编译,生成高效简洁的代码,在绝大多数场合采用C语言编程即可完成预期的目的。但有时为了编程直观或某些特殊地址的处理,还须采用一定的汇编语言编程。而在另一些场合,出于某种目的,汇编语言也可调用C语言。在这种混合编程中,关键是参数的传递和函数的返回值。它们必须有完整的约定,否则数据的交换就可能出错。下面就以力源公司的10位串行A/D转换器TLC1549为例说明C语言程序与汇编语言程序的调用。
图1TLC1549管脚图
1549的管脚图和时序图分别如图1和图2所示,假定DATAOUT接P1.0,接P1.1,CLOCK接P1.2。
1549的具体特性请查阅有关资料。
例2C语言程序与汇编语言程序的调用,其子程序如下:
PUBLICAD;入口地址
SEG_ADSEGMENTCODE;程序段
RSEGSEG_AD
USING0
AD:MOVR6,#00
MOVR7,#00
SETBP1.1
ACALLDELAY
CLRP1.1
ACALLDELAY
MOVR0,#10
RR0:SETBP1.2
NOP
CLRP1.2
DJNZR0,RR0
ACALLDELAY
MOV30H,R6;A/D转换的高
;两位保存在R6中
ACALLCIR
MOVR6,30H
SETBP1.2
NOP
CLRP1.2
MOV30H,R6
ACALLCIR
MOVR6,30H
MOVR0,#8;A/D转换的低
;8位保存在R7中
RR2:SETBP1.2
NOP
CLRP1.2
MOV30H,R7
ACALLCIR
MOVR7,30H
DJNZR0,RR2
RET
CIR:CLRC
MOVC,P1.0
MOVA,30H
RLCA
MOV30H,A
RET
END
在以上程序中,函数的返回值为一无符号整型数,根据调用规则,返回值的高位必须在R6中,低位在R7中,这样才可保证数据的传递不出错。另外,在调用过程中,必须注意寄存器的入栈。这样在以后用到A/D转换时,在C语言中调用汇编语言子程序AD()即可。
3C51中断处理过程
C51编译器支持在C源程序中直接开发中断过程,因此减轻了使用汇编语言的繁琐工作,提高了开发效率。中断服务函数的完整语法如下:
void函数名(void)[模式]
[再入]interruptn[usingr]
其中n(0~31)代表中断号。C51编译器允许32个中断,具体使用哪个中断由80C51系列的芯片决定。r(0~3)代表第r组寄存器。在调用中断函数时,要求中断过程调用的函数所使用的寄存器组必须与其相同。"再入"用于说明中断处理函数有无"再入"能力。C51编译器及其对C语言的扩充允许编程者对中断所有方面的控制和寄存器组的使用。这种支持能使编程者创建高效的中断服务程序,用户只须在C语言下关心中断和必要的寄存器组切换操作。
例3设单片机的fosc=12MHz,要求用T0的方式1编程,在P1.0脚输出周期为2ms的方波。
用C语言编写的中断服务程序如下:
#include<reg51.h>
sbitP1_0=P1^0;
voidtimer0(void)interrupt1using1{
/*T0中断服务程序入口*/
P1_0=!P1_0;
TH0=-(1000/256);/*计数初值重装*/
TL0=-(1000%256);
}
voidmain(void)
{
TMOD=0x01;/*T0工作在定时器方式1*/
P1_0=0;
TH0=-(1000/256);/*预置计数初值*/
TL0=-(1000%256);
EA=1;/*CPU开中断*/
ET0=1;/*T0开中断*/
TR0=1;/*启动T0*/
do{}while(1);
}
在编写中断服务程序时必须注意不能进行参数传递,不能有返回值。
学习C语言程序设计应当充分注意实验环节。首先老师在上实验课时尽量要求学生多编写程序,多上机调试程序,上机实验的目的决不仅是为了验证所编程序的正确性,其主要目的在于让学生熟练掌握上机操作要领和调试程序技术,积累编程经验。其次上机实验可以加深学生对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授比较枯燥又难以记住,但它们又很重要,通过多次上机就能自然地熟练掌握,通过上机来掌握语法规则是行之有效的一种方法。最后,学生在上机调试通过一个程序后,可以自己改变程序中某些部分,甚至故意设置一些障碍,观察和分析在不同情况下的编译和运行结果。应当说,上机实验的重要性绝不亚于课堂听课,这是巩固和发展课堂知识的十分重要的环节。
2C语言实验课存在的问题
目前在不少高校C语言实验教学活动中,经常会出现以下一些问题:
2.1没有充分调动学生学习的积极性。大部分学生在学习程序设计以前只知道使用计算机娱乐或办公,认为计算机的学习应该很轻松。但是C语言的许多基础知识都是概念性强、理论性强,内容丰富且抽象,具有严密逻辑性的,学习难度比较大。这时有的学生会产生畏难情绪,而老师又没有及时引导,因此许多学生学习兴趣开始降低,不听老师讲授理论课,甚至连实验课也干脆不去。
2.2很多高校的C语言课一般是理论课和实验课分开教学,任课老师只负责理论教学,实验部分则是把学生丢到机房由实验室老师负责辅导,任课老师很少或基本不去机房,学生上机调试程序的自觉性当然很差,就算任课老师布置了作业,也有不少同学在偷偷玩游戏浪费时间,有同学有问题也是由辅导老师负责解答。任课老师和辅导老师沟通不够,学生到底哪里不懂,上机时在干什么这些情况任课老师很少知道,当然也不了解学生现阶段的学习情况,教与学在这里脱节了,任课老师上课就失去了针对性。
2.3学生的作业存在抄袭现象,有的程序错误百出,根本就没上机调试过。对批改过的作业,有相当一部分学生也不认真去分析,交作业仅仅是为了应付老师。对于C语言这样一门实践性很强的课程,仅靠布置作业和书面批改作业的方法来督促学生学习和了解学习情况是很不全面和客观的,很难提高教学质量。
2.4学生每次上机时缺乏明确的量化指标,虽然教师事先也向学生布置应准备的内容,但没有督促和检查,完成完不成无所谓。上机情况与期末总成绩没有直接关系,这常常导致学生上机前不充分准备,上机过程中时间抓得不紧,思想上没压力,故而上机调试程序的能力提高不快。
2.5不少高校目前C语言的编译软件还在用DOS下的TC,现在是WINDOWS横行的年代,如果还是坚持让学生面对纯英文操作界面的TC,运行一系列难以记忆的DOS命令,很多学生看第一眼就被吓倒了,更不用说去仔细分析调试程序时产生的诸多英文提示,而且TC本生也有不支持鼠标操作,输入中文不方便等缺点。3C语言实验课教学改革的原则和方法
基于对以上问题的分析和认识,在上机实践教学中应采取如下改进措施:
3.1为了方便管理任课老师最好兼任实验室辅导老师,或者要和实验室辅导老师保持密切联系、经常沟通,及时了解学生的上机作业情况,适时调整授课进度。加强机房管理,端正学生的上机目的。上机考勤、纪律情况记入期末成绩。
3.2在每次上机时,要求学生在规定时间内独立完成一定数量的练习题。老师(任课老师或实验室辅导老师)根据每人完成练习题的数量、质量与时间,现场打分并做为平时成绩,影响该课程的总成绩。练习题可在上机之前提前告诉学生,方便他们事先做好准备。这样一来即可有效地避免学生互相抄袭作业、不求甚解的弊端。
3.3凡讲过的基本操作方法,要求学生必须事先复习好,上机时一律不予解答。目的是提高学生理论课的听课质量。
3.4取消原来的书面作业,换成学生写实验报告,这样可以帮助他们总结编程经验。实验报告的格式可以参照上机实验指导书,此类书现在书店很多,比如谭浩强编著清华大学出版社出版的《C程序设计》就比较不错。
3.5改进C语言的编译环境,选用WINDOWS下的编译软件,比如WIN—TC,WIN—TC的内核实质上和TC是完全一样的,只不过是操作界面不一样,WIN—TC的优势主要就是纯中文菜单,支持鼠标操作,在WINDOWS下编辑TC代码,充分利用WINDOWS的剪贴版,可以很方便的输入和显示汉字等,这是一个免费软件在网上很容易找到。
3.6笔者结合国内外优秀编程语言的实验教学方法和模式,并经几年来C语言的教学实践,建议在有条件的情况下尽量将理论课和实验课的比例设置成1:1,千万不可为赶教学进度或其它任何理由而压缩实验课时,那样做会得不偿失。
4C语言实验课教学改革的效果
上述方案经笔者若干循环的C语言教学实践后,明显感到改革前后的情况大不相同,取得了较好的教学效果:
4.1课堂听课质量明显提高。因为上机时老师要当场检查程序,根本就不可能去抄袭别人的,就算抄来弄不明白也是白费心机。要想上机时顺利通过,课堂上必须认真听讲,记笔记。因此课堂教学时学生基本上没有迟到和无故缺的,并且课堂上都能专心听讲,记笔记,课间10分钟还问个不停,因为上机时就没有这么多时间详细问老师了。
4.2实验课上机效率明显提高。因为要赶快把程序调通过让老师检查,否则这次作业就没成绩了,上机时大家都在争分夺秒,根本没有人有时间去玩游戏、上网,甚至于有的学生下课后都还要拖堂调试程序。