20172305 2017-2018-2《程序設計與數據結構》課程總結
阿新 • • 發佈:2018-06-20
for語句 最長 知識 第九周 類的設計 can push 原因 number
20172305 2017-2018-2《程序設計與數據結構》課程總結
每周作業鏈接匯總
- 第一周作業:計算機系統概述和JAVA語言的介紹
- 第二周作業:基本數據類型、計算表達式的用法和Scanner類
- 第三周作業:預定義類的使用及其對象的創建方法(String類、Random類、Math類、NumberFormat類、DecimalFormat類)
- 第四周作業:類和方法的編寫、靜態類成員、接口及枚舉型類的設計
- 第五周作業:條件判斷與循環:switch語句、do語句、for語句、while語句、if語句
- 第六周作業:數組、命令行參數、可變長度參數表及多維數組
- 第七周作業:類的派生以及繼承的原則
- 第八周作業:綁定的概念及綁定與多態性的關系、多態性的實現
- 第九周作業:異常的層次和處理輸入/輸出異常的方法
- 第十周作業:集合的概念及其基本數據結構
- 第十一周作業:Java和Android開發學習
- 寫得最好一篇博客
- 第七周作業
- 原因:寫的最詳細的代碼問題,特別是PP9.3並附帶了UML類圖以及代碼結果。
- 閱讀量最高的一篇博客
- 第四周作業
- 原因:可能上交比較早的原因造成的,此外第四周編寫的代碼完成的進度相對較快,可能其他同學的代碼沒思路來翻翻我的博客吧。
報告鏈接匯總
- 實驗
- 實驗一 實驗名稱:學習Java開發環境的熟悉(Linux + Eclipse)和Intellj IDEA 簡易教程
- 實驗二 實驗名稱:面向對象的程序設計
- 實驗三 實驗名稱:敏捷開發與XP實踐
- 實驗四 實驗名稱:Android程序設計
- 實驗五 實驗名稱:網絡編程與安全
- 團隊項目
- 四則運算第一周
- 四則運算第二周
- 四則運算第三周(方藝雯主寫)
代碼托管鏈接
- 給出statistic.sh的運行結果,說明本學期的代碼量目標達到沒有?
- 達到本學期的代碼量,並超額完成。
- 加點代碼,改點代碼是理解的最好方式,參考編程的智慧,談談你的心得
- 對於編程,可以把它看作手指的勞作,也可以看作腦力勞作。針對第一種知識完全的碼農,學完一點用也沒有。腦力勞作就是在前代碼的同時加上自己的理解的過程,可以在給出的代碼基礎上創造更多有趣的代碼。在最開始的時候,剛學會用命令行敲代碼,就用println和print打出一個心形,我想這就是舉一反三吧。改點代碼可以加入自己的理解和創新、可以拓寬自己的腦洞、可以從中找到樂趣。
- 積極主動敲代碼做到沒?教材實踐上有什麽經驗教訓?
- 非常認真的敲代碼了!!過生日的晚上還敲到將近一點多...教材實踐每一次感覺都很累,自我感覺接受能力不是很強,需要消化時間,所以不太適合這種教材實踐。不過,這種強迫式的壓力也在源源不斷的轉化為動力,催動我們不斷學習。
課堂項目實踐
- 實踐一:
- 生成[-10,10)之間的隨機數PseudoNumber,並輸出PseudoNumber;
- 輸出PseudoNumber的二進制、十六進制形式;
- 實踐二:
- 編寫一個Book類,其實例數據分別表示書名、作者、出版社以及版權日期。
- 定義一個Book構造方法,接收並初始化實例數據;為所有實例數據定義獲取和設置他們的方法
- 定義一個toString方法,返回幾行描述該圖書的字符串。
- 創建一個Bookshelf驅動類,其main方法實例化並輸出一些Book對象。
- 實踐三:
- 編譯並運行PP7.4
- 實踐四:
- 使用for循環計算n的階乘,並截圖上傳。
- 使用while循環計算n的階乘,並截圖上傳。
- 實踐五:
- 命令行參數測試
- 從命令行傳入 學號、課程的成績,計算平均成績,並輸出
- 輸入 java computeAverage 20172301 98 99 100
- 輸出:2017 2301‘ average score is :99
- 使用邊長參數列表實現。
- 實踐六:
- 已知抽象類Animal
public class Animal { private String name; private int id; public Animal(String name, int id) { this.name = name; this.id = id; } public abstract void eat(); public abstract void sleep(); public abstract void introduction() ; }
- 定義Cow類和Sheep類,繼承Animal類,並測試
- 已知抽象類Animal
- 實踐七:
- 使用選擇和插入排序法,寫出第3次排序的結果:
3 1 9 3 6 2 10
- 使用選擇和插入排序法,寫出第3次排序的結果:
- 實踐八:
- 1.從鍵盤可以輸入任意個整數(int);
- 2.寫入文件;
- 3.從文件讀取所有的整數;
- 4.使用插入排序對讀取的整數進行排序,並將排序的結果寫入原文件。
- 5.使用try-catch語句處理IO異常,例如文件創建異常
- 實踐九:
- 使用遞歸實現;
- 輸入一個數n;
- 使用遞歸計算F(n)的值;
- 寫入文件中。
- 實踐十:
完成P397頁例題中的節點刪除和插入操作,並測試(滿分3分,插入刪除各1分,測試1分)。
public void insert(int index, Magazine newMagazine){}//在index的位置插入新節點newMagazine public void delete(Magazine delNode){}//刪除節點delNode
- 完成插入、刪除功能
加分項:用Magazine類實現Comparable接口,並對鏈表中的雜誌按照字母順序排序,並輸出。
- 實踐十一:
- 下載附件中的world.sql.zip, 參考http://www.cnblogs.com/rocedu/p/6371315.html#SECDB,導入world.sql
- 編寫程序,查詢世界上超過“你學號前邊七位並把最後一位加到最高位,最高位為0時置1”(比如學號20165201,超過3016520;學號20165208,超過1016520)的所有城市列表,運行並截圖上傳(Java代碼截圖、運行結果)。
SQL語句:SELECT * FROM city WHERE city.Population>5000000
- 編寫程序,查詢哪個國家的平均壽命最長,哪個國家的平均壽命最短,並截圖上傳(Java代碼截圖、運行結果)。
SQL語句:SELECT * FROM country WHERE country.LifeExpectancy=(SELECT MAX(country.LifeExpectancy)FROM country)
SQL語句:SELECT * FROM country WHERE country.LifeExpectancy=(SELECT MIN(country.LifeExpectancy)FROM country)
- 編寫程序,查詢世界上的所有中東國家的總人口
SQL語句:SELECT SUM(Population) FROM country WHERE country.Region="Middle East"
- 實踐十二:
- 在Android平臺上開發移動程序,模擬棧的操作:Push、Pop。
- 實踐十三:
- 開發一個Android應用程序,要求:輸入一個中綴表達式,輸出後綴表達式。
- 實踐十四:
- 開發一個android應用程序,完成以下功能:
- 隨機生成一個中綴表達式,並使用控件顯示。
- 將該表達式轉換為後綴表達式,並使用控件顯示。
- 計算後綴表達式的值,並使用控件顯示。
- (選做)顯示每一步操作數棧和操作符棧的變化過程。
- 實踐十五:
- 夥伴1編寫服務器端程序,接收客戶端發送的數據(形式如下:12 15 8 100 25 34 19),將其排序後,發回給客戶端。
- 夥伴2編寫客戶端程序,將一串字符串(形式如下:12 15 8 100 25 34 19)發送給服務器端,接收排序後的程序,並顯示。
- 課堂實踐對提高應用能力有幫助嗎?
- 感覺很生硬的消化新學的知識,知識量很多,通過課堂實踐有一定的幫助。
- 課堂實踐上自己有什麽經驗教訓?
- 可以和同學之間相互探討探討,有些實踐可以用不同的方法解決,有些實踐大致方法都一樣。看看別人的代碼可以拓寬自己的思路,提高編程能力。
- 課堂實踐上對老師有什麽教學建議?
- 希望老師可以降低課堂實踐的難度,畢竟時間緊,知識消化的還不透徹,可以循序漸進,逐漸增加難度。在學期中間增加的編程項目的就很不錯。
課程收獲與不足
- 自己的收獲(投入,效率,效果等)
- 感覺自己對這門科目投入很多,付出很多,幾乎每周周末都是八點多起床敲代碼或是寫博客,而且每晚的自習也是都熬到十點多才離開的。雖然時間不能說明一切,但是從一定程度上也反映出我對這門學科的投入。至於效率,有時候很高,有時候也很低,面對很難很難的代碼效率就呈現開口向下的拋物線,在開始的時候效率很高,如果遇到瓶頸難以突破停滯不前的時候就要走下坡路了。效果,我想自己得到小黃衫就能在一定程度上證明自己在《程序設計與數據結構》這門課上的效果了。
- 自己需要改進的地方
- 自己面對問題不會解決的時候,盡量要自己解決。而且要拓寬自己的思路,學會上網找答案。
- 結對學習是不是真正貫徹了?寫一下你提供的幫助或接受了什麽幫助,並對老師提供參考建議
- 算是真正貫徹了,王禹涵和方藝雯兩位結對夥伴很給力,相互交流問題、探討問題、一起學習很有動力。
問卷調查
- 你平均每周投入到本課程有效學習時間有多少?
- 幾乎是每個晚自習和周末的大部分時間
- 每周的學習效率有提高嗎?你是怎麽衡量的?
- 時高時低,就是完成這周基礎作業的截止時間,完成進度快,我想效率自然就高吧。
- 藍墨雲班課的使用對你的學習有促進嗎?有什麽建議和意見嗎?
- 有一定的促進作用,但是有些周視頻量太大,完全沒時間看。
- 你覺得這門課老師應該繼續做哪一件事情?
- 博客(可以回顧自己一周的學習內容)和課堂實踐(強制性促進自己消化新知識)
- 你覺得這門課老師應該停止做哪一件事情?
- 實驗,或是改善實驗內容。實驗的過程會遇到了一堆的問題,而且時間相對較短完成實驗就很趕。
- 你覺得這門課老師應該開始做什麽新的事情?
- 多講講書本知識(學生需要一個過程去適應),應該在講完課之後,再完成相對代碼。(剛開始的幾周,就是先敲代碼再進行講解)
二維碼
總結中涉及到的鏈接的二維碼
- 預備作業
- 寒假作業一:
- 寒假作業二:
- 寒假作業三:
- 寒假作業一:
學習博客
- 第一周作業:
- 第二周作業:
- 第三周作業:
- 第四周作業:
- 第五周作業:
- 第六周作業:
- 第七周作業:
- 第八周作業:
- 第九周作業:
- 第十周作業:
- 第十一周作業:
- 第一周作業:
- 實驗博客
- 實驗一:
- 實驗二:
- 實驗三:
- 實驗四:
- 實驗五:
- 實驗一:
- 項目博客
- 博客一:
- 博客二:
- 博客三:
- 博客一:
- 其他博客
- 小黃衫博客
- 課堂測試報告
- 小黃衫博客
20172305 2017-2018-2《程序設計與數據結構》課程總結