前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇程序设计风格范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
关键词:信息学;奥林匹克竞赛;程序设计;习惯
中图分类号:G642 文献标识码:B
1现状与对策
全国青少年信息学奥林匹克联赛(National Olympiad in Informatics in Provinces,简称NOIP)是全国信息学奥林匹克竞赛(NOI)系列活动中的一个重要组成部分,旨在向中学生普及计算机基础知识。从早期只考核学生对程序设计语言的理解、熟悉程度以及编程技巧发展到模型设计、离散数学、动态规划的思想及算法,由单纯的培养学生学习兴趣转变为创造性地运用程序设计知识解决实际问题的能力。然而学生在程序设计习惯方面普遍重视不够,为软件项目开发埋下了巨大隐患。
1.1现实中存在的问题
信息学奥林匹克竞赛上由于教学单位出现急功近利的思想,造成学生不能较好地正确掌握计算机程序设计过程,没有养成良好的程序编程习惯。在现实中,程序设计普遍存在以下一些共性问题:
(1) 不愿意读别人的程序。强调自己程序设计方法的优点,不愿意学习和借鉴他人的设计思路。
(2) 不画流程图。程序流程图本来是程序设计的最简单最直白书面表达,然而没有得到足够的重视与平时养成,学生不乐意用流程图来表达设计思想与过程,实际上往往导致程序逻辑交叉,当程序出错时排除费时费力。
(3) 不写程序功能说明。程序设计过程中普遍存在只写源代码的语句,对程序实现的功能没有描述,别人阅读程序很难,有时编程者自己对程序的处理技术方法也遗忘。
(4) 不写代码的注释。不对程序进行必要的注释,造成阅读困难,程序可读性差。
(5) 忽视出错处理。只完成程序功能的单一实现过程,对程序可能的具体出错处理分析不够。
(6) 忽视程序算法分析。程序算法对程序运行的效率影响是非常大的,程序算法的复杂度直接影响程序的时间和空间。
(7) 忽视程序设计过程中文档资料的积累。普遍认为编程就是写程序和调试过程,忽视文档的书写,其后果导致程序维护困难。
1.2对策
信息学奥林匹克竞赛注重学生终生学习能力的培养,而不停留在唯竞赛而学。在平时的教学中培养学生良好的程序设计习惯,使学生学会准确运用程序设计工具,养成良好的程序设计风格,将达到事半功倍的效果。
(1) 勤于思考、克服困难的习惯。由于学生对知识层次理解的深度有限,思维是发散而新颖,学生所编写的程序必然有别于专业人员,但是要培养其具有专业人员的素养,要养成解决问题的好习惯,从解决方法和基本原理上勤于推敲。
(2) 与人协作的习惯。NOIP考试形式上看是学生个人的行为,而真实的软件工程是多人合作、信息共享的活动,互学互助、取长补短、与人沟通、信息交流的好习惯将使学生受益终身。
(3) 培养全局规划习惯。不论是程序语言的学习例题还是NOIP的考试命题,题目功能典型,学生要善于从短小的程序代码中分析计算机解决问题的方式、途径,将小代码功能扩充完善,利用程序设计工具对问题从全局角度进行分析处理。
(4) 良好的代码编写习惯。包括程序流程图、变量命名、代码标注、功能注释、捕获代码异常、测试样例、文档记录等多个环节。如果在软件开发和程序编写过程中养成良好的习惯,那么程序中存在的漏洞就易于发现,为将来大型软件项目的开发打下良好基础。
(5) 养成善于总结分析、勤于记录文档资料的习惯。建立自己的知识库,不仅有源程序代码,还要有完备的文档资料记录。
2培养正确程序设计习惯的措施
学生在学习过程中主要接触的是以掌握基本算法为主的程序例题和NOIP独立命题题目,而软件开发过程是一系列活动,包括方法、工具和过程三个要素。因此,如何让学生以小见大,培养良好的程序设计习惯才是学习的根本。以第14届NOIP提高组C++初赛题目阅读程序4为例题,说明如何借助程序设计工具,养成良好的程序设计风格,培养良好的程序设计习惯,例题的源程序如下。
#include
#include
using namespace std;
int i,j,len;
char s[50];
int main()
{ cin>>s;
len=strlen(s);
for(i=0;i
{if (s[i]>='A'&&s[i]
for(i=0;i
{if(s[i]
cout
for(j=1;j
{ for(i=0;i
{s[i]=s[i+j];}
}
cout
return 0;
}
2.1准确使用程序工具的习惯
学生在学习程序设计过程中不要过分强调上机调试运行,学会正确运用程序设计工具是根本。程序设计工具不仅能正确将程序分析过程转变为程序实现,而且还能够帮助学生快速分析源程序的语句功能,生成程序设计过程中所需要的文档资料。
2.1.1数据字典
数据字典以字典式顺序组织精确严格地定义了每个数据元素。通过读例题源程序,得到例题的数据变量的数据字典,具体变量描述如表1所示,这有助于理解各变量在程序中的输入、输出、存储和中间计算。
2.1.2N-S图
N-S图是适应结构化程序设计特点,逐步求精模块化程序设计方法的有力工具。阅读例题源程序语句可以快速画出它的N-S图(图1),从而确定例题的程序顺序结构功能,如图2所示。
2.2良好程序书写风格的养成
程序不仅要保证运行正确,也是让别人读的。程序书写设计风格包括4个方面:源程序文档化、数据说明、语句结构和输入输出方法。针对NOIP命题特点,学会从编码原则提高程序的可读性着手。由于例题已具有完好的缩进格式,只需要加入相关的序言性和语句注释。程序部分修改内容如下。
/* 4.cpp 程序功能: */
/*首先,大小写混合字母的字符串变成小写字母;然后以26字母循环形式,逐个字符替换为其位置后的第3个字符;最后,重新赋值指定位置字符。*/
....
int main()
{ cin>>s; //字符串s初始化
len=strlen(s); //求s长度
for(i=0;i
...
//逐字符转换为其后面的第3个字符
for(i=0;i
...
cout
//3次循环将s指定字符s[i]重新赋值s[i+j]
for(j=1;j
...
cout
return 0; //返回
}
2.3程序算法分析的习惯
算法的空间复杂度和时间复杂度是分析一个程序算法的执行效率与存储需求,可以有效避免只强调偏僻技巧而忽略算法复杂性。
int main()
{ cin>>s; //执行次数1
len=strlen(s); //执行次数1
for(i=0;i
...
for(i=0;i
...
for(j=1;j
for((i=0;i
s[i]=s[i+j] //执行次数4*n
cout
}
通过对例题的基本语句执行次数分析,得出程序的时间复杂度为O(n2)。
2.4面向对象程序设计的习惯
目前面向对象的程序设计技术在软件开发中占据主导地位,是指导学生学习软件的发展方向。根据例题程序的功能实现,通过定义一个obj类,含有实现程序功能的4个成员函数,将例题的面向过程编程改写为面向对象的程序设计,使数据和操作具有封装性。改写后的程序源代码如下。
#include
#include
using namespace std;
class obj //定义obj类
{public: //定义公有成员函数
obj( ) {*s=NULL;len=0;} //定义构造函数
void input( ); //输入函数
void change( ); //字符转换函数
void setvalue( ); //字符重赋值函数
//定义输出函数
void print(){cout
private: //定义私有成员变量
char s[50]; //字符串s
int len; //字符串长度len
};
void obj::input( ) //定义输入函数
{cout
cin>>s;
len=strlen(s);
}
void obj::change( ) //定义转换函数
{ for(int i=0;i
{if (s[i]>='A'&&s[i]
for(i=0;i
{if(s[i]
}
void obj::setvalue ( ) //定义字符重赋值函数
{ for(int j=1;j
{ for(int i=0;i
s[i]=s[i+j];}
}
int main( ) //主函数
{ obj x; //obj类的对象x
x.input ( );
x.change ( );
x.setvalue ( );
x.print ( );
return 0;
}
3结语
NOIP重点是培养学生学习计算机的兴趣,使学生对信息技术的一些核心内容有更多的了解,提高创造性地运用程序设计知识解决实际问题的能力,而不是一味学习专业教材。因此,只有开始养成一个良好的程序设计习惯,才能为将来的软件开发打下好基础,而不是追求唯竞赛而学的短期效果。
参考文献:
[1] 马苗,田红鹏. “面向对象程序设计与C++”教学中的问题与思考[J]. 计算机教育,2008(6):81-82.
[2] 杨显霞. 信息学奥林匹克竞赛教学模式初探[J]. 西南农业大学学报:社会科学版,2008(4):169-171.
[3] 林小华. 计算机程序设计风格探讨[J]. 软件导刊,2006(17):33-35.
关键词: C语言;常见错误;程序调试;实例
中图分类号:TP312文献标识码:A文章编号:1009-3044(2009)35-9969-02
Analysis of Common Error Based on C Programming Language
GAO Ya-xia1, ZOU Hai-rong2
(1.Shaanxi Commercial School, Hanzhong 723000, China; 2.Shaanxi Institute Of Technology, Hanzhong 723000, China)
Abstract: In recent years, not only the computer professionals use C language, but also the majority of staff computer applications favorite and use. In the use of C language application development, due to C language has a flexible programming style, grammar constraints are less stringent and program design large degree of freedom and so on. This C language to a number of beginner and causing a number of difficulties, in order to be able to quickly identify and correct errors in the program; this paper, the C language program design issues common mistakes analysis and research. Gives some examples and reference solutions, in order to learn C language program designed users to provide with convenient.
Key words: C Language; common errors; debugging program; example
C语言是在国内外广泛流行、使用的一种计算机高级程序设计语言。它的主要特点是:概念简洁、数据类型丰富、表达能力强,运算符多且使用方便灵活。与其它程序设计语言相比较,具有灵活的编程风格,语法限制不太严格,程序设计自由度大(例如:一个语句可以采用多种方式,分多行撰写;对数组下标越界不做检查;整型、字符型和逻辑型的数据可以通用等)。这就给程序设计人员留下“灵活的余地”,但是由于这个灵活往往给程序调试,尤其对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的实例。看着有错的程序,不知该如何进行修改。通过在C语言的教学与研究过程中,分析了一些关于C语言程序设计时容易犯的错误实例,提供给学习C语言的同学及相关人员参考。
1 C语言常见错误实例与分析
实例1.Printf语句中“控制字符串”部分分写在不同的行。
例如:main()
{ printf(“* * * * *”\n
Very good!\n
* * * * * \n);}
该程序的目的是为了显示这样的结果: * * * * *
Very good!
* * * * *
但程序运行后却出现错误信息:“Unterminated string or character constant in function main”,对上述错误,只要在程序第二行、第三行的最后分别加上“\” 即可得到正确的结果,也就是说printf语句中的“控制字符串”部分分写在不同的行时加“\”连接。
实例2. 忽略了“=”与“==”的区别。
在许多高级语言中,用“=”符号作为关系运算符“等于”。如在BASIC程序中可以写if (m=10) then …,但C语言中,“=”是赋值运算符,“==”是关系运算符。
例如:if (m==10) m=n;
前者是进行比较,m是否和10相等,后者表示如果m和10相等,把n值赋给m。由于习惯问题,初学者往往很容易犯这样的错误。
实例3.定义变量的位置不正确。
例如:#include
main()
{ char ch,filename[10];
scanf(“%s”,filename);
FILE *fp;
fp=fopen(filename,“w”);
ch=getchar();
while(ch!=‘#’)
{ fputc(ch,fp);putchar(ch);ch=getchar();}
fclose(fp);}
程序运行后出现错信息“Improper use of a typedef symbol in function main”,只要把第六行:FILE *fp;放到第四行前,程序通过。原因是:说明部分要放在其他语句之前。
实例4.将字符常量与字符串常量混淆。
char ch;
ch="M";
在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,而字符串常量是一对双引号括起来的字符序列。C规定以‘\0’作字符串结束标志,它是由系统自动加上的,所以字符串“M”实际上包含两个字符:‘M'和‘\0',而把它赋给一个字符变量是不正确的。
实例5.输入变量时忘记加地址运算符“&”。
int a,b;
scanf("%d%d",a,b);
这是不合法的。Scanf函数的作用是:按照a、b在内存的地址将a、b的值存进去。“&a”指a在内存中的地址。“&b”指b在内存中的地址。
实例6.输入数据的方式与要求不符。
1) scanf("%d%d",&x,&y);
输入时,不能用逗号作两个数据间的分隔符,如下面输入不合法:
1,5
输入数据时,在两个数据之间以一个或多个空格间隔,也可用回车键,跳格键tab。
2) scanf("%d,%d",&x,&y);
C规定:如果在“格式控制”字符串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。下面输入是合法的:
1,5
此时不用逗号而用空格或其它字符是不对的。如下面输入不合法:
1 5 1:5
又如:scanf("a=%d,b=%d",&a,&b);输入应如以下形式:
a=1,b=5
实例7.输入字符的要求与格式不一致。
在用“%c”格式输入字符时,“转义字符”和“空格字符”都作为有效字符输入。
scanf("%c%c%c",&c1,&c2,&c3);
例如:输入O K !
则字符“O”送给c1,空格字符“ ”送给c2,字符“K”送给c3,因为%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔。
实例8. 同时定义了形参与函数中的局部变量。
int max(x,y)
int x,y,z;
形参应该在函数体外定义,而局部变量应该在函数体内定义。应改为:
int max(x,y)
int x,y;
{int z;
z=x>y?x:y;
return(z);}
实例9. 误用变量定义数组。
int n;
scanf("%d",&n);
int a[n];
数组名后用方括号括起来的是常量表达式,可以包括常量和符号常量。即C不允许对数组的大小作动态定义。
实例10. 被调用的函数未在主函数中进行声明。
例如:main()
{ int a,b,*p1,*p2;
Scanf(“%d,%d”,&a,&b);
p1=&a;p2=&b;
if(a
printf(“5d,%d\n”,*p1,*p2); }
void swap(int *p1,int *p2)
{ int *p;
P=*p1;*p1=*p2;*p2=p; }
程序运行后出现错误信息:“Type mismatch in redeclaration of ‘swap’”,只要在程序的第二句int a,b;前加一句:void swap();程序运行通过。也就是说:被调用函数的定义出现在主调函数之后(除了函数的值是整型或字符型的),要在main()函数中对被调用函数进行说明,void型函数也不例外。
2 结论
通过上面这些实例的分析,可以看出,由于C语言的开放式编程风格,让C语言初学者,在进行C语言程序设计时往往会出现一些微妙的、不易觉察的错误。C语言作为一门完善的编程语言,具有它的科学性与严谨性。因此,只有在充分掌握和熟练运用C语言的基本概念、语法规范及结构的基础上,才能真正享受到C语言灵活自如的编程风格的魅力,这也是学习一切科学知识的基本方法。
参考文献:
[1] 谭浩强.C程序设计[M].北京:清华大学出版社,2008:37-242.
关键词:C程序设计;教材内容;教学内容;教学方法
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2011)21-5263-03
《C程序设计》是高职高专院校计算机相关专业开设的一门专业基础课,是学习计算机及其他基础课如《数据结构》等课程的先修课。因此,提高这门课程的教学质量对于培养大学生的计算机技能至关重要。但是,对于初学者来说要在短时间内学好这门课程并不容易。在以前的教学实践中,就发现很多学生觉得这门课难懂而厌学,有些甚至失去了学习的信心,有的不知道学为何用而不感兴趣,教学效果一直都不是很理想。所以,如何进行C程序设计教材选择及教学内容改革是我们计算机教师应该研究的课题。
1 程序设计教材和教学中存在的问题
程序设计教材中实例不实,为解释语法而设计;语法堆砌,只见树木不见森林;忽视错误程序的分析与讲解。
2 教材内容的组织
1)教材的特点应该顺应时展,提升实验平台。
2)教材特点要求内容紧密结合实践,实例兼趣味性和实用性。增加游戏类实例如猜数游戏,文曲星猜数游戏,扑克牌游戏等;趣味智力题类实例如国王的许诺,爱因期坦数学题,汉诺塔,骑士游历,八皇后问题等;实际生活问题类实例如:体型判断,身高测试,学生成绩管理,大奖赛现场统分,计算礼炮声响次数,存款预算等。
3)教材特点还强调软件开发过程、算法设计、程序设计方法与编程技巧。注重程序测试与调试技术,错误案例分析和排错,程序的健壮性。每章小结中增加了常见错误的总结。一个程序多种编程方法,注重代码规范。在教材注明常见错误案例分析有变量初始化错误,类型匹配错误,死循环与死语句,越界访存错误,与0比较问题,缓冲区溢出问题,复杂情形的关系判断问题,内存泄漏问题,遗漏边界条件测试,使用野指针的问题,非所有控制分支都有返回值错误,参数非法问题,类型溢出错误,不良代码风格等问题。
3 教学内容的组织
3.1 C程序设计教学中以前存在的问题
集中式的讲述(运算符、数据类型);语句的语法讲的多,注意事项一堆;忽略程序的“设计”过程(思维过程);举例死板、单一、分离;相关知识联系不紧密;过于依赖教材。结果导致学生学了不会编程,不会应用;考完试就忘了;学习兴趣逐渐淡化;学生不明白,却又问不出问题来。
3.2 面向计算机专业的教学方法
在强调基础知识的同时,注意在开发实际应用程序时具有重要作用的知识。如将程序范型、程序测试、代码验证与程序优化等内容引入课程。
关注两部分学生的教学方法:面向大部分学生,对教材上的实例进行详细讲解,使其能够掌握基本的语法、理解教材上的实例,以解决一般类型的问题。另外,从教材习题或参考书中选取有一定难度和代表性的实例进行概要性的讲解,有助于提高学生学会利用基础知识的能力。还有面向一些比较突出的学生,给出一些综合性的实例如学生成绩系统的开发,给他们介绍解题思路,使其能够解决更复杂的问题,带动其他同学,增加编程兴趣。
实际编程演示互动的教授方法:在课堂上实际编程演示,并运行结果。一方面要体现良好的程序设计风格和编程习惯,同时也反映了教师在编程时的思维过程,从注重结果转向注重过程和方法。大量地实践证明,学生对编程演示的过程兴致很高,为了进一步活跃课堂气氛,在编程过程中会有意设置Bug,当程序的运行结果与期望的结果不一致或者出现异常情况的时候,学生的注意力会更集中,此时可让学生分析问题的所在。此外,也可以通过对学生程序样例展示,鼓励学生的学习兴趣。
3.3 非计算机专业的教学方法
教学内容主要讲解数据类型,运算符与表达式,简单的C程序设计,程序的控制结构,函数,数组,指针,结构体和共用体,文件操作。
1)采用案例――任务驱动的教学方法:“程序设计语言”强调的是“设计”,应当从“设计”入手,以程序设计思想与方法为核心,注重程序的编写过程,选择一个恰当的案例非常重要。案例的选择应当由浅入深,要做到精、准、易。精就是突出重点,目的明确;准就是能够反映欲教授内容的本质;易是简单易懂,不能把学生吓着。例如在讲授函数时,给出这样一个案例:“编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:操作数1 运算符op操作数2 来计算表达式的值。指定的运算符为加(+)、减(-)、乘(*)、除(/)”。首先用一个简单的程序来实现:
main()
{float a,b;
char c,answer;
do {
printf("input expression:a+(-,*,/)b \n");
scanf("%f%c%f",&a,&c,&b);
switch(c)
{ case '+': printf("%f\n",a+b);break;
case '-': printf("%f\n",a-b);break;
case '*': printf("%f\n",a*b);break;
case '/':if(b!=0)
printf("%f\n",a/b); break;
default: printf("input error\n");
}
printf(“do you want to continue(Y/y , N/n)? \n”);
scanf(“%*c%c”,answer);
}while(answer==‘Y’||answer==‘y’);
}
然后对这个程序进行修改,给出用带参数的函数实现。
#include
float Calculator(float a,float b,char c);//函数声明
main()
{ float x,y,result;
char op,answer;/*继续否 */
do
{printf("input expression:x+(-,*,/)y \n");
scanf("%f%c%f",&x,&op,&y);
if(op != ‘+’ || op != ‘-’|| op != ‘*’ || op != ‘/’ )
{printf("input error\n");
continue;}
else
{result=Calculator(x,y,op);//函数调用
printf("%f\n",result);
}
printf(“Do you want to continue(y/Y,n/N)?");
scanf(“%*c%c”, &answer );
}while(answer == ‘y’ || answer == ‘Y’);
printf(“over!”);}
float Calculator(float a,folat b,char c) //函数定义
{ float z;
switch(c)
{ case '+': z = a + b; break;
case '-‘ : z = a - b; break;
case '*‘: z = a * b; break;
case '/': z = a / b; break;
} return(z);}
再要求学生对其进行修改,用不带参数的函数去实现该题。通过本案例,使学生理解并掌握了函数的几个重要的概念,实现方法及编程技巧,并使学生真正理解为什么说C语言的程序是由函数构成的。经过反复这样的练习,使得学生不但学到了基础知识,而且提高了综合分析和理解能力。
2)设置错误寻求正确答案的教学方法
在课堂教学中,有意给出一些带有算法错误或语法错误的程序段,使学生产生一些疑问,去思考,为什么这样编程不对?为什么这样的程序得不到正确的运行结果?让学生自己去寻找程序答案,修正这种程序中的语法错误及算法错误。
例如:求100~200间的全部素数,要求每行输出10个素数。
#include
main()
{int m,k,i,n;
for(m=101;m
{if(n%10==0)
printf("\n");k=sqrt(m);
for(i= 1;i
if(m%i==0)
continue;
if(i==m%10)
{ printf("%d ",m); n++;
} } }
在这个程序中存在比较隐蔽的错误,该程序不能正确执行,要求学生通过机上进行调试、分析程序,发现错误及时改正,培养学生的动手能力和解决问题的能力。学生也积累了调试程序的经验。
3)填空式的教学方法
是在讲述程序时,不把程序的内容和盘托出,而是有意识地在内容上制造一定的空白,让学生自己去推测可能的结论。要求学生首先要读懂程序,了解程序实现的功能,再添上适当语句,然后运行程序,直到得到正确的运行结果。从而激起学生的探索欲望,提高学生的学习能力,进一步培养学生的创新思维。
例:下面这个程序的功能是将字符串s中所有的字符c删除。
#include
#define N 80
main()
{ char s[N];int i,j;
printf("Please enter string s:");
gets(s) ;
for (i=j=0;s[i]!=’\0’; 或i
{ if(s[i]!=’c’)
s[j++]=s[i];或j++;s[j]=s[i];
s[j]=’\0’;
puts(s); }}
学生通过几种不同的方法完成了此程序,从而使学生更好地理解字符串处理中几个关键部分的处理过程。
4)预测错误的教学方法
根据实践经验总结出一个程序易出现什么错误,在写程序时要避免这种错误的发生。比如语法错;运行出错(num/0);未检测到的错误如scanf函数在对格式参数%d和%c的处理上有所不同前者会忽略输入的空白和回车,后得不会忽略;逻辑错误等等。
总之,我们是以培养学生创新能力为主的教学方法。抽象概念与具体实例相结合的方法在程序设计课程中,以语法和结构为基础,以程序设计方法为主线、以编程和应用为目标。在讲述编程思想、规范、方法的同时紧密和恰当的实例相结合,形象化的讲述,使学生快速理解抽象的概念,灵活的应用这些思想和方法解决问题的能力。传授知识与创新能力培养紧密结合分析授课对象的特点,从思维方法入手,引导学生多思、多想、多问。分解难点内容,基础内容侧重于深度,应用内容侧重于广度。在讲述基本语法、程序设计基本方法的同时,注重编码风格、编码规范、程序调试、常见错误分析。以典型实例驱动教学,课堂教学与精心设计的课后作业相结合,作业的题型丰富,如复习题、 练习题、思考题、一般性作业、综合性作业,使学生在听中学、学中练、练中思、思中创,全面地从多角度灵活地应用所学过的知识,培养了学生的创新思维。课堂讲述与讨论相结合的教学方式把课堂交给学生,定期组织学生讨论,在程序设计中,针对一个程序的多种编写方法展开讨论,评价程序,使学生认识到优、劣代码的特征,怎样思考才能编写高质量的程序。注重实验教学和课程设计在程序设计语言中以实验为主,实验内容的设计是以巩固和综合运用主要知识点为主线,内容具有趣味性和实用性。实验包括基础验证、设计、综合设计十大类题型。通过实验,激发了学生的浓厚学习兴趣和独立的编程能力。
由于计算机领域的知识更新的速度非常快,旧的教材、教学方式方法、教学内容已不能适应新形势的需求,需要随着技术的进步和社会的发展进行更新,我们要吸收最先进的教学思想,不断地进行教学改革。只有这样,我们的教学才能适应学生的需要,我们培养的学生才能更好地满足社会的需要。
参考文献:
[1] 苏小红.《C语言程序设计》课程建设的创新实践[J].哈尔滨工业大学学报:社科版,2008.
[2] 王宇颖.C语言实验课如何培养学生的创新意识与创新思维[J].中国科教创新,2008.
[3] 王冬.高职C语言程序设计教学改革探索[J].计算机教育,2007(18).
【自我评价范文一】
1.熟悉数据仓库,包括后台ETL,前端OLAP。
2.具有良好的数学理念和统计学基础,熟练掌握计算理论与方法,了解数学模型、数据挖掘算法。
3.具有JAVA语言编程技能,尤其熟悉J2SE/SWING开发。并致力于JAVA IN SAS的研究。
4.熟悉使用Unix/Linux系统,具有IBM AIX小型机一年操作经验,具有SHELL/PERL使用经验。
5.具有数据库操作技能,可以处理复杂逻辑及存储过程等。具有DB2,Oracle,SQL SERVER使用经验,SQLSERVER比较突出。
6.学习能力较强,能快速接受新事物和新技术,勤奋认真、有较强的创新探索精神、良好的团队精神意识。
【自我评价范文二】
1、熟悉软件验证的一般理论和方法,较丰富的功能测试与性能测试经验。
2、良好的独立分析,故障排查和解决问题的能力,并能关注细节。
3、掌握常用测试工具,如Spirent、Silkperformer、Loadrunner,CPPUnit。
4、熟练使用C++、Python、LinuxShell等程序语言。
5、熟练操作Unix/Windows系统和Unix/Windows工具,熟悉Oracle、SQLServer。
6、熟悉网络协议,如TCP/IP,HTTP/HTTPS,FTP,DHCP,DNS,SSH,VNC。
7、熟悉网络的设计搭建,交换机路由器的配置,熟悉Web,FTP,Samba,VPN等服务器的部署。
8、CET-6,具备良好的英语听说读写能力,通过国家网络工程师(中级)认证。
【自我评价范文三】
3年工作经验,对网站设计及flash动画设计有一定的设计理念,良好的美术设计功底和创意设计能力,独特的审美能力,色彩搭配能力强,能独立设计多种风格样式,工作当中不断积累经验,不断提高自身设计能力并逐渐形成自己独到的设计风格,熟练运用Dreamweaver,flash,frwoks,Photoshop,Illustrator,CorelDRAW 等设计软件。自学能力强,挖掘自身的潜力,善于思考,自律性好,有较强的团队协作精神。
【自我评价范文四】
熟练掌握计算机基础知识,并能熟练运用SQL语言、C++、FOXPRO、PowerPoint、office97、FoxBASE等进行计算机软件应用与开发,并具有较好的计算机网络知识与技能。头脑灵活,动手能力强,性格稳重,责任心强,具有较强的团队精神。
【关键词】远程教育资源;评价;评价的应用
在教育过程中评价是非常重要的部分,它包括对教学过程的评价和对学习过程的评价,通过对教学过程的评价可以让施教者了解,教学目标是否实现、教学效果是否显著、教学过程有哪些不足等,而对学习者的评价可以帮助学习者提高自身的很多能力,对实现素质教育起到实质性的作用。应用到远程教育中,就是远程教育资源质量该如何评价?在资源建设中如何应用评价?本文我想就这两个问题进行研讨。
一、如何评价远程教育资源
远程教育的特点是学习者突破了时间、空间的局限,可以自主性、选择性学习,突出了以“学”为主的教育模式,这学习过程中就对远程教育资源的质量提出了极高的质量要求,那么如何评价远程教育资源的质量,我们将从以下几个方面探讨。(本文案例《VB程序设计》课程是中央广播电视大学开放教育专科信息系统开发与维护等专业的统设必修课。)
1.科学性
资源内容科学、准确。无二义性。这无论是对网络教育资源换是面授课资源都是一个最根本的要求,我想对于这一点就不必做进一步的探讨了。
2.教学性
这一指标在评价量规是比较难设计、难评价的,在突出以“学”为主的远程教育模式中,如何体现教学性,我认为应该从以下几方面进行评价:
(1)目标控制实现:教育目标是教学从设计到实施的指引者,在《VB程序设计》课程资源中,教育目标和每节的学习者目标都已经清楚标出,具体在资源中的设计通过了一系列活动实现,如在资源中提供了“思维导图”让学习者清楚本节内容与其他相关内容的联系,使学习者能够在思维导图的帮助建构自己的知识框架。通过视频资源可以让学习者在老师的面授课视频中细致学习本章内容,然后通过重点讲授、常见问题对学习内容进行复习巩固,再通过典型实例、在线测试训练学生的应用能力,从而实现本章设定的目标。
(2)内容符合:课程内容不同,适应的教学资源也不同,即使是同一课程,但对于不同的章节和内容不同,对于教学资源的要求也不一样,如《VB程序设计》课程资源第一章可视化编程理论概述和第三章应用程序接口设计及代码编写,内容不同,第一章侧重于对VB环境、特点的了解,而在第三章要求掌握流程控制语句的用法,它们在资源使用中风格和类型就有一定的差别,前者理论多些,可在讲解内容上加重,而后者涉及到编程初步技巧,利用视频资源表现编程过程和运行结果让学习者能对实例直观把握,教学效果会更佳。
(3)对象适应:通过远程教育学习的学习者,层次不齐是非常典型的特点,那么要适应各类学习者的对象适应要求就非常高。对于不同的学习者,他们的学习特征各不相同,对资源形式的需求也不相同,如本课程的学习对象为大专学生,年龄在18岁以上,这一年龄的学习者思维发展达到抽象逻辑水平,辨证逻辑思维开始发展并逐步提高。应对这样的学习者在资源设计中,考虑他们的学习特点,从资源的内容表现方式体现了思维的严谨性,内容的全面性。
3.技术性
(1)最小代价:在选择远程教育学习模式的学习者中,对于学习时间和方式以及相对获得收获的比例要求是较高的。所以资源的设计者就要通过增大学习者可能获得的收获和减少学习者可能有的困难的方法,取得学习者对其的认可。远程教育资源不仅要包含较多的信息量,而且要深入浅出,通俗易懂,以使学习者能够只用较少时间就获得这些信息。
(2)操作简便:使用操作目的清楚的按钮或提示,方便学习者的选择使用。如对于各类概念的超文本技术应用,在《VB程序设计》课程资源中:“典型实例”、“拓展训练”、“常见问题”、“在线测试”、“问题库”等的设计,学习者一目了然,可以根据自己的需要进行相应的选择。
4.规范性
(1)资源的通用性:对于远程教育资源的使用者,他们的应用环境各不相同,这就要求资源设计者考虑到应用环境的差异,尽量做到让学习者通过远程访问时,所见即所得,不会因使用环境的差异使资源内容呈现差异,尽量做到资源使用的通用性。
(2)资源引用合法:在强调知识产权的今天,网络上资源的转载是否合法是远程教育资源使用的一个重要考核指标,资源的建设者既要给学习者提供可用的高质量资源,又要做到合理合法,不侵害他人的合法权益。
5.艺术性
(1)风格协调一致:远程教育资源通过技术手段可以提供给学习者各式各样的资源类型,如文本、图片、音视频、动画等等。可以色彩缤纷、声情并茂,但设计者要注意资源使用的根本:提供给学习者有用的信息,而不是一个喧闹的环境,不要本末倒置。所有的技术提供的服务目的就是如何能增进学习者的学习兴趣、使重点突出、简洁清晰,所以设计风格要协调一致。
(2)元素布局合理美观:在网络资源使用中,信息量大,如何使学习者方便操作,整体元素的布局很重要,要简洁、明确、重点突出,如《VB程序设计》课程资源的布局,采用了国字型框架布局,上面突出标题,左边呈现“使用帮助”、“课程信息”等辅助学习信息;右边呈现:“视频讲堂”、“实验中心”、“实例库”等学习工具;在中间的显著位置呈现:“课程导学”、“班级论坛”、“课程论坛”这样的结构重点突出,工具使用方便,学习者容易操作。网络资源的类型虽然多样,但总体是刺激视听的资源,在设计中要培养学习者的审美观,要富于美感。