前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇程序設計風格范文,相信會為您的寫作帶來幫助,發(fā)現(xiàn)更多的寫作思路和靈感。
關鍵詞:信息學;奧林匹克競賽;程序設計;習慣
中圖分類號:G642 文獻標識碼:B
1現(xiàn)狀與對策
全國青少年信息學奧林匹克聯(lián)賽(National Olympiad in Informatics in Provinces,簡稱NOIP)是全國信息學奧林匹克競賽(NOI)系列活動中的一個重要組成部分,旨在向中學生普及計算機基礎知識。從早期只考核學生對程序設計語言的理解、熟悉程度以及編程技巧發(fā)展到模型設計、離散數(shù)學、動態(tài)規(guī)劃的思想及算法,由單純的培養(yǎng)學生學習興趣轉變?yōu)閯?chuàng)造性地運用程序設計知識解決實際問題的能力。然而學生在程序設計習慣方面普遍重視不夠,為軟件項目開發(fā)埋下了巨大隱患。
1.1現(xiàn)實中存在的問題
信息學奧林匹克競賽上由于教學單位出現(xiàn)急功近利的思想,造成學生不能較好地正確掌握計算機程序設計過程,沒有養(yǎng)成良好的程序編程習慣。在現(xiàn)實中,程序設計普遍存在以下一些共性問題:
(1) 不愿意讀別人的程序。強調自己程序設計方法的優(yōu)點,不愿意學習和借鑒他人的設計思路。
(2) 不畫流程圖。程序流程圖本來是程序設計的最簡單最直白書面表達,然而沒有得到足夠的重視與平時養(yǎng)成,學生不樂意用流程圖來表達設計思想與過程,實際上往往導致程序邏輯交叉,當程序出錯時排除費時費力。
(3) 不寫程序功能說明。程序設計過程中普遍存在只寫源代碼的語句,對程序實現(xiàn)的功能沒有描述,別人閱讀程序很難,有時編程者自己對程序的處理技術方法也遺忘。
(4) 不寫代碼的注釋。不對程序進行必要的注釋,造成閱讀困難,程序可讀性差。
(5) 忽視出錯處理。只完成程序功能的單一實現(xiàn)過程,對程序可能的具體出錯處理分析不夠。
(6) 忽視程序算法分析。程序算法對程序運行的效率影響是非常大的,程序算法的復雜度直接影響程序的時間和空間。
(7) 忽視程序設計過程中文檔資料的積累。普遍認為編程就是寫程序和調試過程,忽視文檔的書寫,其后果導致程序維護困難。
1.2對策
信息學奧林匹克競賽注重學生終生學習能力的培養(yǎng),而不停留在唯競賽而學。在平時的教學中培養(yǎng)學生良好的程序設計習慣,使學生學會準確運用程序設計工具,養(yǎng)成良好的程序設計風格,將達到事半功倍的效果。
(1) 勤于思考、克服困難的習慣。由于學生對知識層次理解的深度有限,思維是發(fā)散而新穎,學生所編寫的程序必然有別于專業(yè)人員,但是要培養(yǎng)其具有專業(yè)人員的素養(yǎng),要養(yǎng)成解決問題的好習慣,從解決方法和基本原理上勤于推敲。
(2) 與人協(xié)作的習慣。NOIP考試形式上看是學生個人的行為,而真實的軟件工程是多人合作、信息共享的活動,互學互助、取長補短、與人溝通、信息交流的好習慣將使學生受益終身。
(3) 培養(yǎng)全局規(guī)劃習慣。不論是程序語言的學習例題還是NOIP的考試命題,題目功能典型,學生要善于從短小的程序代碼中分析計算機解決問題的方式、途徑,將小代碼功能擴充完善,利用程序設計工具對問題從全局角度進行分析處理。
(4) 良好的代碼編寫習慣。包括程序流程圖、變量命名、代碼標注、功能注釋、捕獲代碼異常、測試樣例、文檔記錄等多個環(huán)節(jié)。如果在軟件開發(fā)和程序編寫過程中養(yǎng)成良好的習慣,那么程序中存在的漏洞就易于發(fā)現(xiàn),為將來大型軟件項目的開發(fā)打下良好基礎。
(5) 養(yǎng)成善于總結分析、勤于記錄文檔資料的習慣。建立自己的知識庫,不僅有源程序代碼,還要有完備的文檔資料記錄。
2培養(yǎng)正確程序設計習慣的措施
學生在學習過程中主要接觸的是以掌握基本算法為主的程序例題和NOIP獨立命題題目,而軟件開發(fā)過程是一系列活動,包括方法、工具和過程三個要素。因此,如何讓學生以小見大,培養(yǎng)良好的程序設計習慣才是學習的根本。以第14屆NOIP提高組C++初賽題目閱讀程序4為例題,說明如何借助程序設計工具,養(yǎng)成良好的程序設計風格,培養(yǎng)良好的程序設計習慣,例題的源程序如下。
#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準確使用程序工具的習慣
學生在學習程序設計過程中不要過分強調上機調試運行,學會正確運用程序設計工具是根本。程序設計工具不僅能正確將程序分析過程轉變?yōu)槌绦驅崿F(xiàn),而且還能夠幫助學生快速分析源程序的語句功能,生成程序設計過程中所需要的文檔資料。
2.1.1數(shù)據(jù)字典
數(shù)據(jù)字典以字典式順序組織精確嚴格地定義了每個數(shù)據(jù)元素。通過讀例題源程序,得到例題的數(shù)據(jù)變量的數(shù)據(jù)字典,具體變量描述如表1所示,這有助于理解各變量在程序中的輸入、輸出、存儲和中間計算。
2.1.2N-S圖
N-S圖是適應結構化程序設計特點,逐步求精模塊化程序設計方法的有力工具。閱讀例題源程序語句可以快速畫出它的N-S圖(圖1),從而確定例題的程序順序結構功能,如圖2所示。
2.2良好程序書寫風格的養(yǎng)成
程序不僅要保證運行正確,也是讓別人讀的。程序書寫設計風格包括4個方面:源程序文檔化、數(shù)據(jù)說明、語句結構和輸入輸出方法。針對NOIP命題特點,學會從編碼原則提高程序的可讀性著手。由于例題已具有完好的縮進格式,只需要加入相關的序言性和語句注釋。程序部分修改內容如下。
/* 4.cpp 程序功能: */
/*首先,大小寫混合字母的字符串變成小寫字母;然后以26字母循環(huán)形式,逐個字符替換為其位置后的第3個字符;最后,重新賦值指定位置字符。*/
....
int main()
{ cin>>s; //字符串s初始化
len=strlen(s); //求s長度
for(i=0;i
...
//逐字符轉換為其后面的第3個字符
for(i=0;i
...
cout
//3次循環(huán)將s指定字符s[i]重新賦值s[i+j]
for(j=1;j
...
cout
return 0; //返回
}
2.3程序算法分析的習慣
算法的空間復雜度和時間復雜度是分析一個程序算法的執(zhí)行效率與存儲需求,可以有效避免只強調偏僻技巧而忽略算法復雜性。
int main()
{ cin>>s; //執(zhí)行次數(shù)1
len=strlen(s); //執(zhí)行次數(shù)1
for(i=0;i
...
for(i=0;i
...
for(j=1;j
for((i=0;i
s[i]=s[i+j] //執(zhí)行次數(shù)4*n
cout
}
通過對例題的基本語句執(zhí)行次數(shù)分析,得出程序的時間復雜度為O(n2)。
2.4面向對象程序設計的習慣
目前面向對象的程序設計技術在軟件開發(fā)中占據(jù)主導地位,是指導學生學習軟件的發(fā)展方向。根據(jù)例題程序的功能實現(xiàn),通過定義一個obj類,含有實現(xiàn)程序功能的4個成員函數(shù),將例題的面向過程編程改寫為面向對象的程序設計,使數(shù)據(jù)和操作具有封裝性。改寫后的程序源代碼如下。
#include
#include
using namespace std;
class obj //定義obj類
{public: //定義公有成員函數(shù)
obj( ) {*s=NULL;len=0;} //定義構造函數(shù)
void input( ); //輸入函數(shù)
void change( ); //字符轉換函數(shù)
void setvalue( ); //字符重賦值函數(shù)
//定義輸出函數(shù)
void print(){cout
private: //定義私有成員變量
char s[50]; //字符串s
int len; //字符串長度len
};
void obj::input( ) //定義輸入函數(shù)
{cout
cin>>s;
len=strlen(s);
}
void obj::change( ) //定義轉換函數(shù)
{ for(int i=0;i
{if (s[i]>='A'&&s[i]
for(i=0;i
{if(s[i]
}
void obj::setvalue ( ) //定義字符重賦值函數(shù)
{ for(int j=1;j
{ for(int i=0;i
s[i]=s[i+j];}
}
int main( ) //主函數(shù)
{ obj x; //obj類的對象x
x.input ( );
x.change ( );
x.setvalue ( );
x.print ( );
return 0;
}
3結語
NOIP重點是培養(yǎng)學生學習計算機的興趣,使學生對信息技術的一些核心內容有更多的了解,提高創(chuàng)造性地運用程序設計知識解決實際問題的能力,而不是一味學習專業(yè)教材。因此,只有開始養(yǎng)成一個良好的程序設計習慣,才能為將來的軟件開發(fā)打下好基礎,而不是追求唯競賽而學的短期效果。
參考文獻:
[1] 馬苗,田紅鵬. “面向對象程序設計與C++”教學中的問題與思考[J]. 計算機教育,2008(6):81-82.
[2] 楊顯霞. 信息學奧林匹克競賽教學模式初探[J]. 西南農業(yè)大學學報:社會科學版,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語言是在國內外廣泛流行、使用的一種計算機高級程序設計語言。它的主要特點是:概念簡潔、數(shù)據(jù)類型豐富、表達能力強,運算符多且使用方便靈活。與其它程序設計語言相比較,具有靈活的編程風格,語法限制不太嚴格,程序設計自由度大(例如:一個語句可以采用多種方式,分多行撰寫;對數(shù)組下標越界不做檢查;整型、字符型和邏輯型的數(shù)據(jù)可以通用等)。這就給程序設計人員留下“靈活的余地”,但是由于這個靈活往往給程序調試,尤其對初學C語言的人來說,經常會出一些連自己都不知道錯在哪里的實例。看著有錯的程序,不知該如何進行修改。通過在C語言的教學與研究過程中,分析了一些關于C語言程序設計時容易犯的錯誤實例,提供給學習C語言的同學及相關人員參考。
1 C語言常見錯誤實例與分析
實例1.Printf語句中“控制字符串”部分分寫在不同的行。
例如:main()
{ printf(“* * * * *”\n
Very good!\n
* * * * * \n);}
該程序的目的是為了顯示這樣的結果: * * * * *
Very good!
* * * * *
但程序運行后卻出現(xiàn)錯誤信息:“Unterminated string or character constant in function main”,對上述錯誤,只要在程序第二行、第三行的最后分別加上“\” 即可得到正確的結果,也就是說printf語句中的“控制字符串”部分分寫在不同的行時加“\”連接。
實例2. 忽略了“=”與“==”的區(qū)別。
在許多高級語言中,用“=”符號作為關系運算符“等于”。如在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);}
程序運行后出現(xiàn)錯信息“Improper use of a typedef symbol in function main”,只要把第六行:FILE *fp;放到第四行前,程序通過。原因是:說明部分要放在其他語句之前。
實例4.將字符常量與字符串常量混淆。
char ch;
ch="M";
在這里就混淆了字符常量與字符串常量,字符常量是由一對單引號括起來的單個字符,而字符串常量是一對雙引號括起來的字符序列。C規(guī)定以‘\0’作字符串結束標志,它是由系統(tǒng)自動加上的,所以字符串“M”實際上包含兩個字符:‘M'和‘\0',而把它賦給一個字符變量是不正確的。
實例5.輸入變量時忘記加地址運算符“&”。
int a,b;
scanf("%d%d",a,b);
這是不合法的。Scanf函數(shù)的作用是:按照a、b在內存的地址將a、b的值存進去?!?a”指a在內存中的地址?!?b”指b在內存中的地址。
實例6.輸入數(shù)據(jù)的方式與要求不符。
1) scanf("%d%d",&x,&y);
輸入時,不能用逗號作兩個數(shù)據(jù)間的分隔符,如下面輸入不合法:
1,5
輸入數(shù)據(jù)時,在兩個數(shù)據(jù)之間以一個或多個空格間隔,也可用回車鍵,跳格鍵tab。
2) scanf("%d,%d",&x,&y);
C規(guī)定:如果在“格式控制”字符串中除了格式說明以外還有其它字符,則在輸入數(shù)據(jù)時應輸入與這些字符相同的字符。下面輸入是合法的:
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. 同時定義了形參與函數(shù)中的局部變量。
int max(x,y)
int x,y,z;
形參應該在函數(shù)體外定義,而局部變量應該在函數(shù)體內定義。應改為:
int max(x,y)
int x,y;
{int z;
z=x>y?x:y;
return(z);}
實例9. 誤用變量定義數(shù)組。
int n;
scanf("%d",&n);
int a[n];
數(shù)組名后用方括號括起來的是常量表達式,可以包括常量和符號常量。即C不允許對數(shù)組的大小作動態(tài)定義。
實例10. 被調用的函數(shù)未在主函數(shù)中進行聲明。
例如: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; }
程序運行后出現(xiàn)錯誤信息:“Type mismatch in redeclaration of ‘swap’”,只要在程序的第二句int a,b;前加一句:void swap();程序運行通過。也就是說:被調用函數(shù)的定義出現(xiàn)在主調函數(shù)之后(除了函數(shù)的值是整型或字符型的),要在main()函數(shù)中對被調用函數(shù)進行說明,void型函數(shù)也不例外。
2 結論
通過上面這些實例的分析,可以看出,由于C語言的開放式編程風格,讓C語言初學者,在進行C語言程序設計時往往會出現(xiàn)一些微妙的、不易覺察的錯誤。C語言作為一門完善的編程語言,具有它的科學性與嚴謹性。因此,只有在充分掌握和熟練運用C語言的基本概念、語法規(guī)范及結構的基礎上,才能真正享受到C語言靈活自如的編程風格的魅力,這也是學習一切科學知識的基本方法。
參考文獻:
[1] 譚浩強.C程序設計[M].北京:清華大學出版社,2008:37-242.
關鍵詞:C程序設計;教材內容;教學內容;教學方法
中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2011)21-5263-03
《C程序設計》是高職高專院校計算機相關專業(yè)開設的一門專業(yè)基礎課,是學習計算機及其他基礎課如《數(shù)據(jù)結構》等課程的先修課。因此,提高這門課程的教學質量對于培養(yǎng)大學生的計算機技能至關重要。但是,對于初學者來說要在短時間內學好這門課程并不容易。在以前的教學實踐中,就發(fā)現(xiàn)很多學生覺得這門課難懂而厭學,有些甚至失去了學習的信心,有的不知道學為何用而不感興趣,教學效果一直都不是很理想。所以,如何進行C程序設計教材選擇及教學內容改革是我們計算機教師應該研究的課題。
1 程序設計教材和教學中存在的問題
程序設計教材中實例不實,為解釋語法而設計;語法堆砌,只見樹木不見森林;忽視錯誤程序的分析與講解。
2 教材內容的組織
1)教材的特點應該順應時展,提升實驗平臺。
2)教材特點要求內容緊密結合實踐,實例兼趣味性和實用性。增加游戲類實例如猜數(shù)游戲,文曲星猜數(shù)游戲,撲克牌游戲等;趣味智力題類實例如國王的許諾,愛因期坦數(shù)學題,漢諾塔,騎士游歷,八皇后問題等;實際生活問題類實例如:體型判斷,身高測試,學生成績管理,大獎賽現(xiàn)場統(tǒng)分,計算禮炮聲響次數(shù),存款預算等。
3)教材特點還強調軟件開發(fā)過程、算法設計、程序設計方法與編程技巧。注重程序測試與調試技術,錯誤案例分析和排錯,程序的健壯性。每章小結中增加了常見錯誤的總結。一個程序多種編程方法,注重代碼規(guī)范。在教材注明常見錯誤案例分析有變量初始化錯誤,類型匹配錯誤,死循環(huán)與死語句,越界訪存錯誤,與0比較問題,緩沖區(qū)溢出問題,復雜情形的關系判斷問題,內存泄漏問題,遺漏邊界條件測試,使用野指針的問題,非所有控制分支都有返回值錯誤,參數(shù)非法問題,類型溢出錯誤,不良代碼風格等問題。
3 教學內容的組織
3.1 C程序設計教學中以前存在的問題
集中式的講述(運算符、數(shù)據(jù)類型);語句的語法講的多,注意事項一堆;忽略程序的“設計”過程(思維過程);舉例死板、單一、分離;相關知識聯(lián)系不緊密;過于依賴教材。結果導致學生學了不會編程,不會應用;考完試就忘了;學習興趣逐漸淡化;學生不明白,卻又問不出問題來。
3.2 面向計算機專業(yè)的教學方法
在強調基礎知識的同時,注意在開發(fā)實際應用程序時具有重要作用的知識。如將程序范型、程序測試、代碼驗證與程序優(yōu)化等內容引入課程。
關注兩部分學生的教學方法:面向大部分學生,對教材上的實例進行詳細講解,使其能夠掌握基本的語法、理解教材上的實例,以解決一般類型的問題。另外,從教材習題或參考書中選取有一定難度和代表性的實例進行概要性的講解,有助于提高學生學會利用基礎知識的能力。還有面向一些比較突出的學生,給出一些綜合性的實例如學生成績系統(tǒng)的開發(fā),給他們介紹解題思路,使其能夠解決更復雜的問題,帶動其他同學,增加編程興趣。
實際編程演示互動的教授方法:在課堂上實際編程演示,并運行結果。一方面要體現(xiàn)良好的程序設計風格和編程習慣,同時也反映了教師在編程時的思維過程,從注重結果轉向注重過程和方法。大量地實踐證明,學生對編程演示的過程興致很高,為了進一步活躍課堂氣氛,在編程過程中會有意設置Bug,當程序的運行結果與期望的結果不一致或者出現(xiàn)異常情況的時候,學生的注意力會更集中,此時可讓學生分析問題的所在。此外,也可以通過對學生程序樣例展示,鼓勵學生的學習興趣。
3.3 非計算機專業(yè)的教學方法
教學內容主要講解數(shù)據(jù)類型,運算符與表達式,簡單的C程序設計,程序的控制結構,函數(shù),數(shù)組,指針,結構體和共用體,文件操作。
1)采用案例――任務驅動的教學方法:“程序設計語言”強調的是“設計”,應當從“設計”入手,以程序設計思想與方法為核心,注重程序的編寫過程,選擇一個恰當?shù)陌咐浅V匾?。案例的選擇應當由淺入深,要做到精、準、易。精就是突出重點,目的明確;準就是能夠反映欲教授內容的本質;易是簡單易懂,不能把學生嚇著。例如在講授函數(shù)時,給出這樣一個案例:“編程設計一個簡單的計算器程序,要求根據(jù)用戶從鍵盤輸入的表達式:操作數(shù)1 運算符op操作數(shù)2 來計算表達式的值。指定的運算符為加(+)、減(-)、乘(*)、除(/)”。首先用一個簡單的程序來實現(xiàn):
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’);
}
然后對這個程序進行修改,給出用帶參數(shù)的函數(shù)實現(xiàn)。
#include
float Calculator(float a,float b,char c);//函數(shù)聲明
main()
{ float x,y,result;
char op,answer;/*繼續(xù)否 */
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);//函數(shù)調用
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) //函數(shù)定義
{ 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);}
再要求學生對其進行修改,用不帶參數(shù)的函數(shù)去實現(xiàn)該題。通過本案例,使學生理解并掌握了函數(shù)的幾個重要的概念,實現(xiàn)方法及編程技巧,并使學生真正理解為什么說C語言的程序是由函數(shù)構成的。經過反復這樣的練習,使得學生不但學到了基礎知識,而且提高了綜合分析和理解能力。
2)設置錯誤尋求正確答案的教學方法
在課堂教學中,有意給出一些帶有算法錯誤或語法錯誤的程序段,使學生產生一些疑問,去思考,為什么這樣編程不對?為什么這樣的程序得不到正確的運行結果?讓學生自己去尋找程序答案,修正這種程序中的語法錯誤及算法錯誤。
例如:求100~200間的全部素數(shù),要求每行輸出10個素數(shù)。
#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++;
} } }
在這個程序中存在比較隱蔽的錯誤,該程序不能正確執(zhí)行,要求學生通過機上進行調試、分析程序,發(fā)現(xiàn)錯誤及時改正,培養(yǎng)學生的動手能力和解決問題的能力。學生也積累了調試程序的經驗。
3)填空式的教學方法
是在講述程序時,不把程序的內容和盤托出,而是有意識地在內容上制造一定的空白,讓學生自己去推測可能的結論。要求學生首先要讀懂程序,了解程序實現(xiàn)的功能,再添上適當語句,然后運行程序,直到得到正確的運行結果。從而激起學生的探索欲望,提高學生的學習能力,進一步培養(yǎng)學生的創(chuàng)新思維。
例:下面這個程序的功能是將字符串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)預測錯誤的教學方法
根據(jù)實踐經驗總結出一個程序易出現(xiàn)什么錯誤,在寫程序時要避免這種錯誤的發(fā)生。比如語法錯;運行出錯(num/0);未檢測到的錯誤如scanf函數(shù)在對格式參數(shù)%d和%c的處理上有所不同前者會忽略輸入的空白和回車,后得不會忽略;邏輯錯誤等等。
總之,我們是以培養(yǎng)學生創(chuàng)新能力為主的教學方法。抽象概念與具體實例相結合的方法在程序設計課程中,以語法和結構為基礎,以程序設計方法為主線、以編程和應用為目標。在講述編程思想、規(guī)范、方法的同時緊密和恰當?shù)膶嵗嘟Y合,形象化的講述,使學生快速理解抽象的概念,靈活的應用這些思想和方法解決問題的能力。傳授知識與創(chuàng)新能力培養(yǎng)緊密結合分析授課對象的特點,從思維方法入手,引導學生多思、多想、多問。分解難點內容,基礎內容側重于深度,應用內容側重于廣度。在講述基本語法、程序設計基本方法的同時,注重編碼風格、編碼規(guī)范、程序調試、常見錯誤分析。以典型實例驅動教學,課堂教學與精心設計的課后作業(yè)相結合,作業(yè)的題型豐富,如復習題、 練習題、思考題、一般性作業(yè)、綜合性作業(yè),使學生在聽中學、學中練、練中思、思中創(chuàng),全面地從多角度靈活地應用所學過的知識,培養(yǎng)了學生的創(chuàng)新思維。課堂講述與討論相結合的教學方式把課堂交給學生,定期組織學生討論,在程序設計中,針對一個程序的多種編寫方法展開討論,評價程序,使學生認識到優(yōu)、劣代碼的特征,怎樣思考才能編寫高質量的程序。注重實驗教學和課程設計在程序設計語言中以實驗為主,實驗內容的設計是以鞏固和綜合運用主要知識點為主線,內容具有趣味性和實用性。實驗包括基礎驗證、設計、綜合設計十大類題型。通過實驗,激發(fā)了學生的濃厚學習興趣和獨立的編程能力。
由于計算機領域的知識更新的速度非常快,舊的教材、教學方式方法、教學內容已不能適應新形勢的需求,需要隨著技術的進步和社會的發(fā)展進行更新,我們要吸收最先進的教學思想,不斷地進行教學改革。只有這樣,我們的教學才能適應學生的需要,我們培養(yǎng)的學生才能更好地滿足社會的需要。
參考文獻:
[1] 蘇小紅.《C語言程序設計》課程建設的創(chuàng)新實踐[J].哈爾濱工業(yè)大學學報:社科版,2008.
[2] 王宇穎.C語言實驗課如何培養(yǎng)學生的創(chuàng)新意識與創(chuàng)新思維[J].中國科教創(chuàng)新,2008.
[3] 王冬.高職C語言程序設計教學改革探索[J].計算機教育,2007(18).
【自我評價范文一】
1.熟悉數(shù)據(jù)倉庫,包括后臺ETL,前端OLAP。
2.具有良好的數(shù)學理念和統(tǒng)計學基礎,熟練掌握計算理論與方法,了解數(shù)學模型、數(shù)據(jù)挖掘算法。
3.具有JAVA語言編程技能,尤其熟悉J2SE/SWING開發(fā)。并致力于JAVA IN SAS的研究。
4.熟悉使用Unix/Linux系統(tǒng),具有IBM AIX小型機一年操作經驗,具有SHELL/PERL使用經驗。
5.具有數(shù)據(jù)庫操作技能,可以處理復雜邏輯及存儲過程等。具有DB2,Oracle,SQL SERVER使用經驗,SQLSERVER比較突出。
6.學習能力較強,能快速接受新事物和新技術,勤奮認真、有較強的創(chuàng)新探索精神、良好的團隊精神意識。
【自我評價范文二】
1、熟悉軟件驗證的一般理論和方法,較豐富的功能測試與性能測試經驗。
2、良好的獨立分析,故障排查和解決問題的能力,并能關注細節(jié)。
3、掌握常用測試工具,如Spirent、Silkperformer、Loadrunner,CPPUnit。
4、熟練使用C++、Python、LinuxShell等程序語言。
5、熟練操作Unix/Windows系統(tǒng)和Unix/Windows工具,熟悉Oracle、SQLServer。
6、熟悉網絡協(xié)議,如TCP/IP,HTTP/HTTPS,FTP,DHCP,DNS,SSH,VNC。
7、熟悉網絡的設計搭建,交換機路由器的配置,熟悉Web,FTP,Samba,VPN等服務器的部署。
8、CET-6,具備良好的英語聽說讀寫能力,通過國家網絡工程師(中級)認證。
【自我評價范文三】
3年工作經驗,對網站設計及flash動畫設計有一定的設計理念,良好的美術設計功底和創(chuàng)意設計能力,獨特的審美能力,色彩搭配能力強,能獨立設計多種風格樣式,工作當中不斷積累經驗,不斷提高自身設計能力并逐漸形成自己獨到的設計風格,熟練運用Dreamweaver,flash,frwoks,Photoshop,Illustrator,CorelDRAW 等設計軟件。自學能力強,挖掘自身的潛力,善于思考,自律性好,有較強的團隊協(xié)作精神。
【自我評價范文四】
熟練掌握計算機基礎知識,并能熟練運用SQL語言、C++、FOXPRO、PowerPoint、office97、FoxBASE等進行計算機軟件應用與開發(fā),并具有較好的計算機網絡知識與技能。頭腦靈活,動手能力強,性格穩(wěn)重,責任心強,具有較強的團隊精神。
【關鍵詞】遠程教育資源;評價;評價的應用
在教育過程中評價是非常重要的部分,它包括對教學過程的評價和對學習過程的評價,通過對教學過程的評價可以讓施教者了解,教學目標是否實現(xiàn)、教學效果是否顯著、教學過程有哪些不足等,而對學習者的評價可以幫助學習者提高自身的很多能力,對實現(xiàn)素質教育起到實質性的作用。應用到遠程教育中,就是遠程教育資源質量該如何評價?在資源建設中如何應用評價?本文我想就這兩個問題進行研討。
一、如何評價遠程教育資源
遠程教育的特點是學習者突破了時間、空間的局限,可以自主性、選擇性學習,突出了以“學”為主的教育模式,這學習過程中就對遠程教育資源的質量提出了極高的質量要求,那么如何評價遠程教育資源的質量,我們將從以下幾個方面探討。(本文案例《VB程序設計》課程是中央廣播電視大學開放教育??菩畔⑾到y(tǒng)開發(fā)與維護等專業(yè)的統(tǒng)設必修課。)
1.科學性
資源內容科學、準確。無二義性。這無論是對網絡教育資源換是面授課資源都是一個最根本的要求,我想對于這一點就不必做進一步的探討了。
2.教學性
這一指標在評價量規(guī)是比較難設計、難評價的,在突出以“學”為主的遠程教育模式中,如何體現(xiàn)教學性,我認為應該從以下幾方面進行評價:
(1)目標控制實現(xiàn):教育目標是教學從設計到實施的指引者,在《VB程序設計》課程資源中,教育目標和每節(jié)的學習者目標都已經清楚標出,具體在資源中的設計通過了一系列活動實現(xiàn),如在資源中提供了“思維導圖”讓學習者清楚本節(jié)內容與其他相關內容的聯(lián)系,使學習者能夠在思維導圖的幫助建構自己的知識框架。通過視頻資源可以讓學習者在老師的面授課視頻中細致學習本章內容,然后通過重點講授、常見問題對學習內容進行復習鞏固,再通過典型實例、在線測試訓練學生的應用能力,從而實現(xiàn)本章設定的目標。
(2)內容符合:課程內容不同,適應的教學資源也不同,即使是同一課程,但對于不同的章節(jié)和內容不同,對于教學資源的要求也不一樣,如《VB程序設計》課程資源第一章可視化編程理論概述和第三章應用程序接口設計及代碼編寫,內容不同,第一章側重于對VB環(huán)境、特點的了解,而在第三章要求掌握流程控制語句的用法,它們在資源使用中風格和類型就有一定的差別,前者理論多些,可在講解內容上加重,而后者涉及到編程初步技巧,利用視頻資源表現(xiàn)編程過程和運行結果讓學習者能對實例直觀把握,教學效果會更佳。
(3)對象適應:通過遠程教育學習的學習者,層次不齊是非常典型的特點,那么要適應各類學習者的對象適應要求就非常高。對于不同的學習者,他們的學習特征各不相同,對資源形式的需求也不相同,如本課程的學習對象為大專學生,年齡在18歲以上,這一年齡的學習者思維發(fā)展達到抽象邏輯水平,辨證邏輯思維開始發(fā)展并逐步提高。應對這樣的學習者在資源設計中,考慮他們的學習特點,從資源的內容表現(xiàn)方式體現(xiàn)了思維的嚴謹性,內容的全面性。
3.技術性
(1)最小代價:在選擇遠程教育學習模式的學習者中,對于學習時間和方式以及相對獲得收獲的比例要求是較高的。所以資源的設計者就要通過增大學習者可能獲得的收獲和減少學習者可能有的困難的方法,取得學習者對其的認可。遠程教育資源不僅要包含較多的信息量,而且要深入淺出,通俗易懂,以使學習者能夠只用較少時間就獲得這些信息。
(2)操作簡便:使用操作目的清楚的按鈕或提示,方便學習者的選擇使用。如對于各類概念的超文本技術應用,在《VB程序設計》課程資源中:“典型實例”、“拓展訓練”、“常見問題”、“在線測試”、“問題庫”等的設計,學習者一目了然,可以根據(jù)自己的需要進行相應的選擇。
4.規(guī)范性
(1)資源的通用性:對于遠程教育資源的使用者,他們的應用環(huán)境各不相同,這就要求資源設計者考慮到應用環(huán)境的差異,盡量做到讓學習者通過遠程訪問時,所見即所得,不會因使用環(huán)境的差異使資源內容呈現(xiàn)差異,盡量做到資源使用的通用性。
(2)資源引用合法:在強調知識產權的今天,網絡上資源的轉載是否合法是遠程教育資源使用的一個重要考核指標,資源的建設者既要給學習者提供可用的高質量資源,又要做到合理合法,不侵害他人的合法權益。
5.藝術性
(1)風格協(xié)調一致:遠程教育資源通過技術手段可以提供給學習者各式各樣的資源類型,如文本、圖片、音視頻、動畫等等。可以色彩繽紛、聲情并茂,但設計者要注意資源使用的根本:提供給學習者有用的信息,而不是一個喧鬧的環(huán)境,不要本末倒置。所有的技術提供的服務目的就是如何能增進學習者的學習興趣、使重點突出、簡潔清晰,所以設計風格要協(xié)調一致。
(2)元素布局合理美觀:在網絡資源使用中,信息量大,如何使學習者方便操作,整體元素的布局很重要,要簡潔、明確、重點突出,如《VB程序設計》課程資源的布局,采用了國字型框架布局,上面突出標題,左邊呈現(xiàn)“使用幫助”、“課程信息”等輔助學習信息;右邊呈現(xiàn):“視頻講堂”、“實驗中心”、“實例庫”等學習工具;在中間的顯著位置呈現(xiàn):“課程導學”、“班級論壇”、“課程論壇”這樣的結構重點突出,工具使用方便,學習者容易操作。網絡資源的類型雖然多樣,但總體是刺激視聽的資源,在設計中要培養(yǎng)學習者的審美觀,要富于美感。