1. 程式人生 > >20172305 2017-2018-2《程序設計與數據結構》課程總結

20172305 2017-2018-2《程序設計與數據結構》課程總結

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類,並測試

  • 實踐七:
    • 使用選擇和插入排序法,寫出第3次排序的結果:3 1 9 3 6 2 10

  • 實踐八:
    • 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《程序設計與數據結構》課程總結