一.你有什么技能比大多人(超過90%以上)更好?
由於小時候體弱多病,並沒有培養什么愛好(最喜歡的還是去讀書);后來長大了,學習任務又緊張,也就沒什么愛好,所以我並沒有什么技能比大部分人都好。只能說自己掌握的東西的水平處於中上罷了。不過最割舍不下的就是閱讀了。我想這可能也是我為數不多的幾個長處吧。
二.針對這個技能的獲取你有什么成功的經驗?與老師博客中的學習經驗有什么共通之處?
既然我並沒有什么技能,那我就談談學習方面我的一點淺見吧。
(一)堅持
婁老師文章中有這樣一句話“做的好的永不停止,做不好的永遠不開始”,我覺得這句話很有道理,也很適合我們。什么事情不怕你不做,就怕你半途而廢,學習更是這樣。當你剛開始抱着熱情去學習的時候,你會十分努力;可當你不斷遇到困難的時候,你的熱情和動力就會不斷消減,這個時候就是能看出一個人是否能成功了,你只有堅持下去,你才會走向希望。正如樓老師《減肥》這篇文章中說道的一樣“每天走一萬步不難,難的是天天走一萬步”。學習更是如此,學一點不難,難的是日日學習。所以我覺得堅持是學習中不可或缺的一部分。
(二)循序漸進
在學習同樣重要的一方面就是要根據自身能力,循序漸進地去學習,不要妄想速成。我國近現代著名的數學家華羅庚老先生就曾經犯過這樣的錯誤,當時華羅庚教授在研究高等數學問題時,並沒有去系統地學習初等數學有關方面的知識,導致最后做出的是“夾生飯”,后來華老認識到這個問題,從頭學起,才得以解決。這就告誡我們要循序漸進,認真打牢基礎,這樣才能為以后的學習奠定堅實的基礎。
(三)記錄與總結
學習從來就不是一個短的過程,它貫穿與我們整個人生當中,而人的記憶是受時間影響的,所以想要學好,就必須及時記錄,並加以總結。記錄這件事情不只是在課堂上,而是在我們生活學習中每一個時刻,及時記錄對自己有啟發,有幫助的東西,畢竟“好記性不如爛筆頭”。而與此同時,總結也顯得非常重要,我們記錄下來的東西必然是沒有那么有條理性的,這就需要我們課后或者空閑的時候及時整理總結,這樣不僅是對自己所學的一次整理,更是一種復習與升華。
三.有關C語言學習的調查
(一)你是怎么學習C語言的?
1.上課認真聽講並及時提問
老師上課時認真聽講,遇到問題大膽提出並及時記錄永遠是學習的不二法門。
2.下課及時復習整理
課下及時整理筆記,老師解題思路,自己的感想,幫助自己理解課程,同時也為自己以后復習提供方便。
3.積極主動思考
在學習這件事上,任何別的幫助與引導都比不上自己的思考,只有通過自己思考得來的才是最珍貴的。
(二)目前為止估算自己寫過多少行C代碼?理解的情況如何?
在上一篇博客中我就提到了,大概是不低於6000行(雖然可能大部分都很簡單),但正是通過這些簡單的代碼的練習,我才能有基礎去繼續學習,去思考。大一下的學習時光中,我會及時練習並加以思考,及時找出自己的不足,同時向他人提問。而這其中讓我覺得最重要的就是無論所學的東西有多么簡單,都需要自己去練習,不然一些細小的問題,你很難注意到,而這就為以后的學習思考埋下了隱患,所以多實踐多思考多提問,是我覺得最重要的。
(三)學過了C語言,你分的清數組指針,指針數組;函數指針,指針函數這些概念嗎?
時間有點遠了,所以只能大致記得其定義:
1.數組指針就是指數組首地址的指針。
2.指針數組是指若數組中元素全是指針類型數據,則這個數組叫指針數組。
3.函數指針是指向函數的指針。
4.指針函數是形如*p的函數。
(四)你明白文件和流的區別和聯系嗎?如何區分文本文件和二進制文件?如何編程操作這兩種文件?
當時老師上課關於這個方面沒有詳細講解,所以理解的不是很透徹。所以我查閱了相關資料
1.文件是指計算機管理數據的基本單位,同時也是應用程序保存和讀取數據的一個重要場所。
2.流是字節序列的抽象概念。
3.文本文件是指ASCII文件。
4.二進制文件是按二進制的編碼方式來存放文件的文件。
據資料上說,可以利用庫中的函數來進行使用這兩種文件。
(五)你知道什么叫面向過程程序設計嗎?它解決問題的方法是什么?
在我看來這就是指設計程序的過程中要提前規划好設計思路,畫好流程圖,做到准備充分,心中有底。我覺得設計程序是,首先得知道算法,這是最基礎也是最重要的一個環節;與此同時,將程序模塊化就會方便我們進行思考與編譯。
(六)什么是模塊?你寫過多個源文件的程序嗎?
模塊指的是具有基礎功能的組件。由於這方面老師沒有講解,我也沒有找到相關資料,所以我並未書寫過多個源文件的程序。
(七)你知道什么是“高內聚,低耦合”嗎?這個原則如何應用到高質量程序設計中?
這個知識點我不太清晰,所以查閱了資料。
“高內聚,低耦合”的官方解釋是:耦合性也稱塊間聯系。指軟件系統結構中各模塊間相互聯系緊密程度的一種度量。模塊之間聯系越緊密,其耦合性就越強,模塊的獨立性則越差。模塊間耦合高低取決於模塊間接口的復雜性、調用的方式及傳遞的信息。內聚性又稱塊內聯系。指模塊的功能強度的度量,即一個模塊內部各個元素彼此結合的緊密程度的度量。若一個模塊內各元素(語名之間、程序段之間)聯系的越緊密,則它的內聚性就越高。所謂高內聚是指一個軟件模塊是由相關性很強的代碼組成,只負責一項任務,也就是常說的單一責任原則。耦合指一個軟件結構內不同模塊之間互連程度的度量。對於低耦合即一個完整的系統,模塊與模塊之間,盡可能的使其獨立存在。也就是說,讓每個模塊,盡可能的獨立完成某個特定的子功能。模塊與模塊之間的接口,盡量的少而簡單。
所以我個人覺得應該就是在設計程序時,模塊各自的功能最好盡可能相互獨立。
(八)你如何把數組A的內容復制到數組B中?如何查找整數數組A中有沒有數字5?如何對整數數組A進行排序(從小到大,從大到小)?
只寫了關鍵步驟:
1.數組復制:
一維數組:
int a[100],b[100],i,j,n;
printf("input n:");
scanf("%d",&n);
printf("input a:");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(j=0;j<n;j++)
{
b[j]=a[j];
}
二維數組:
int a[100][100],b[100][100],i,j,n,m;
printf("input n,m:");
scanf("%d%d",&n,&m);
printf("input a:");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i]);
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
b[i][j]=a[i][j];
}
}
2.如何查找整數數組A中有沒有數字5:
int a[100],i;
printf("input a:");
for(i=0;i<=99;i++);
{
scanf("%d",&a[i]);
}
for(i=0;i<=99;i++)
{
if(a[i]==5)
{
printf("此數組中有5");
}
}
3.如何對整數數組A進行排序(從小到大,從大到小)
(1)從大到小:
int a[100],i,j,k,n,t;
printf("input n:");
scanf("%d",&n);
printf("input a:");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(k=0;k<n-1;k++)
{
for(j=k+1;j<n;j++)
{
if(a[j]>a[k])
{
t=a[j];
a[j]=a[k];
a[k]=t;
}
}
}
(2)從小到大:
int a[100],i,j,k,n,t;
printf("input n:");
scanf("%d",&n);
printf("input a:");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(k=0;k<n-1;k++)
{
for(j=k+1;j<n;j++)
{
if(a[j]<a[k])
{
t=a[j];
a[j]=a[k];
a[k]=t;
}
}
}
(九)寫一個程序,統計自己C語言共寫了多少行代碼。
這方面我並不熟悉,而且老師上課也並未詳細講解,此時恐怕力不從心。但我會在以后努力補上這一短板。
(十)你知道什么是斷點嗎?給出自己調試程序的例子。
斷點是指我們可以在程序中的某一個地方設置一個斷點,在調試的時候,程序到該處時就會停下來。我自己在這學期信息安全數學基礎的“中國剩余定理”、“勒讓德符號”、“生成元的求解”中都調試過相應的程序。
四.參考怎樣快速閱讀一本書,快速閱讀一遍教材,每章提出一個問題
1.學習Java怎樣開始?
2.Java的數據類型與C語言的異同和學習方式?(inreger ,scanner,score,boolean的表示和輸入輸出方式)
3.Java的語句表達與C語言的異同和學習方式?(match,random的學習與使用應該注意哪些)
4.類與對象的異同點有哪些?(成員變量,類的定義,命名方式,public與class的掌握與使用,什么是自定義類?)
5.子類與繼承該怎樣理解與運用?(構造方法的特點)
6.接口與實現中學習的重點有哪些?(接口不同形式的學習重點)
7.內部類與異常類的異同和該如何理解學習?
8.常用實用類該如何熟練運用?
9.組件與事件處理該如何入手?(異常的處理方式,error與expection的異同點)
10.輸入與輸出流該如何理解學習?(字符與域字節流)
11.數據庫該怎樣掌握其方法?
12.Java多線程機制的理解與掌握?(包的應用方法)
13Java網絡編程該如何學習和運用?
14.圖形,圖像和音頻在Java學習中的作用?
15.泛型與集合該如何理解學習掌握?
五.Java學習目標
我的水平並不是很高,所以我並不准備給自己定多高的標准:
1.獨立思考老師提出的問題並盡量自主解決。
2.及時提出自己的問題。
3.能夠獨立編寫Java中一些代碼。
但我會盡最大的努力,結合“做中學”的學習方法,將實踐與思考結合,按時按質按量完成老師的要求。對於培養程序設計能力,我覺得可以多看看專業書籍,積累專業知識;獨立思考,培養專業程序設計思維;及時提問,向高手學習經驗與教訓。
