1. 程式人生 > >20172310《程序設計與數據結構》(上)課程總結

20172310《程序設計與數據結構》(上)課程總結

編程練習 所有 oid 多任務 class 層次 都在 查找 而且

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

博客鏈接

每周作業鏈接匯總

  • 預備作業1:對大一上學期進行總結,談了談對本專業的認識和期望
  • 預備作業2: 寫了自己的優勢,這些優勢給自己帶來好的方面,自己對接下來專業課學習的計
    劃和目標,我又該如何去實現它。
  • 預備作業3:這周接觸了一個新的學習平臺——實驗樓,安裝了virtualbox和Ubuntu,掌握
    Linux命令的學習方法
  • 第一周作業:對計算機的組成和運行過程有了一個更全面的理解,初步了解了Java及其一些基
    礎常識。跟著教程初步配置好了電腦,也下載安裝好了一些必須軟件包,開通了碼雲。
  • 第二周作業:學習了String型,基本數字類型,一些表達式,自己重點總結了一下數據類型轉
    換技術,還學習了交互式程序中Scanner類。
  • 第三周作業:學習了一下對象的創建和Java標準類庫中的一些類。如特殊的靜態類、Random類、
    Math類、格式化輸出信息的方法和枚舉類型包裝器和自動裝箱的概念。
  • 第四周作業:學習了修飾符、訪問器方法、修改器方法和接口類這些基礎的知識。初步學習設計一
    個對自己有價值的,及面向對象的軟件。
  • 第五周作業:主要是學習了條件判斷和循環,此外還有條件運算符。
  • 第六周作業:數組和命令行實參和可變長度參數表。
  • 第七周作業:類的繼承和派生,類的層次結構。
  • 第八周作業:學習了後綁定、利用繼承和接口兩種方式實現多態,還學習了兩種排序方法和兩種搜索方法。
  • 第九周作業:異常處理和finally子句、try-catch語句。
  • 第十周作業:學習了集合,鏈表,線性和非線性數據結構和Java集合類API。
  • 第十一周作業:Java和Android開發學習。

自認為寫得最好一篇博客是?為什麽?

我認為寫的最好的是第六周作業:數組和命令行實參和可變長度參數表。
因為對於第六周的教材學習我自己認為學的比較詳細,所以教材的總結比較全面,而且教材和代碼的問題
都得到了解決。錯題自己都有去認真訂正,所以認為這篇寫的最認真、最令我滿意。不過這篇博客還是沒有成為優秀博客,
和同學的優秀博客還是有差距的,所以吧,我的博客的寫作風格還要繼續完善,爭取下個學期有更好的表現。

作業中閱讀量最高的一篇博客是?談談經驗

第二周作業:學習了String型,基本數字類型,一些表達式,自己重點總結了一下數據類型轉

換技術,還學習了交互式程序中Scanner類。這篇博客的閱讀量是最高的。
在最開始寫的時候大家寫博客都還沒形成自己的風格,所以都會去借鑒大家的博客,雖然我自己覺得這篇博客寫的很沒有邏輯
但這篇博客當初發的可能比較早,所以最多人看。

實驗報告鏈接匯總

  • 實驗一 :安裝jdk和intellj IDEA;學習用IDEA編寫代碼,能通過命令行和IDEA兩種方式實現前
    兩周項目內容;將碼雲上的程序同步到IDEA上
  • 實驗二 面向對象程序設計:初步掌握單元測試和TDD,理解並掌握面向對象三要素:封裝、繼承、
    多態,初步掌握UML建模並熟悉S.O.L.I.D原則
  • 實驗三敏捷開發與XP實踐:(1)代碼規範(2)協同測試(3)重構(4)密碼學應用。
  • 實驗四Android開發:Android Stuidio的安裝測試、Activity測試、UI測試、布局測試、事件處理測試。
  • 實驗五 網絡編程與安全:結對編程,我負責客戶端,隊友負責服務器,
    使用Socket通信,以及Java密碼學算法

團隊項目報告鏈接匯總

  • 第一周:結對編程練習_四則運算_第一周:需求分析,設計思路同時輸出UML類圖,預估項目各個環節完成時間
  • 第二周:結對編程練習_四則運算_第二周:編寫代碼,實現功能
  • 第三周:結對編程練習_四則運算_第三周(這篇博客主要是由隊友王誌偉寫的):最終完善代碼,添加註釋,修改漏洞。

代碼托管鏈接

給出statistic.sh的運行結果,說明本學期的代碼量目標達到沒有?
技術分享圖片

很開心自己這個學期的任務圓滿的完成了,不得不用說代碼需要自己動手去敲,去琢磨。學期的後半階段任務比較重,節奏比較快
所以老師直接將課本上的代碼給了我們,我是直接復制粘貼的,希望下個學期能全都自己完成。最後,看到自己敲了這麽多行代碼,超開心!

加點代碼,改點代碼是理解的最好方式,參考編程的智慧,談談你的心得

編程是一種創造性的工作,是一門藝術。

編程水平的高低不是靠你的代碼量來決定的,復制粘貼得到的只是沒有意義的數字,不是知識的累積。所以說課本上的例題我們可以去復制粘貼,
但是我們要去推敲每一行代碼的意義。
借鑒他人的代碼是免不了的,就像在實驗中,我會去查找一些其他人的代碼,但我們不能單純的做一個搬運工,
我們要去修改代碼,使它更加符合我們自己的要求。能夠自己修改代碼,也證明了自己知道每行代碼的作用,所以說編程是要靠自己的。
而且博客還提到我們的代碼還需要規範化,要簡潔完美,這樣才具有可讀性,這卻是我們現階段很多人都做不到的,我們的思路有時都不夠簡潔
,而且沒有規範代碼的意識,這也是今後要努力的一點。

積極主動敲代碼做到沒?教材實踐上有什麽經驗教訓?

  • 我覺得自己還是做到了的(?)?(ヾ),雖然後面對老師給出的代碼是復制粘貼的,但我還是有自己去理解的。

  • 之前在虛擬機上敲代碼的時候都是機械的動作,對照著教材一個一個慢慢地敲,而且在虛擬機裏不會自己報錯,
    所以有時錯誤就只是一個單詞敲錯了就要找很久,效率極其差。所以代碼一定要看懂後再敲,不要生搬。

課堂項目實踐

  • 實踐一:
    • 生成[-10,10)之間的隨機數PseudoNumber,並輸出PseudoNumber;
    • 輸出PseudoNumber的二進制、十六進制形式;
  • 實踐二:
    • 編寫一個Book類,其實例數據分別表示書名、作者、出版社以及版權日期。
    • 定義一個Book構造方法,接收並初始化實例數據;為所有實例數據定義獲取和設置他們的方法
    • 定義一個toString方法,返回幾行描述該圖書的字符串。
    • 創建一個Bookshelf驅動類,其main方法實例化並輸出一些Book對象。
  • 實踐三:
    • 編譯並運行PP7.4
  • 實踐四:
    • 使用for循環計算n的階乘,並截圖上傳。
    • 使用while循環計算n的階乘,並截圖上傳。
  • 實踐五:
    • 命令行參數測試
    • 從命令行傳入 學號、課程的成績,計算平均成績,並輸出
    • 使用邊長參數列表實現。
  • 實踐六:
    • 已知抽象類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
  • 實踐八:
    • 從鍵盤可以輸入任意個整數(int);
    • 寫入文件;
    • 從文件讀取所有的整數;
    • 使用插入排序對讀取的整數進行排序,並將排序的結果寫入原文件。
    • 使用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應用程序,完成以下功能:
    • 隨機生成一個中綴表達式,並使用控件顯示。
    • 將該表達式轉換為後綴表達式,並使用控件顯示。
    • 計算後綴表達式的值,並使用控件顯示。
    • (選做)顯示每一步操作數棧和操作符棧的變化過程。
  • 實踐十五:
    • 夥伴編寫服務器端程序,接收客戶端發送的數據(形式如下:12 15 8 100 25 34 19),將其排序後,發回給客戶端。
    • 自己編寫客戶端程序,將一串字符串(形式如下:12 15 8 100 25 34 19)發送給服務器端,接收排序後的程序,並顯示。

課堂實踐對提高應用能力有幫助嗎?

有的有的

課堂實踐上自己有什麽經驗教訓?

老師講的例子很重要,後面的實踐都會用到。之前沒有經驗,都沒有用手機拍下來,所以後面都記不住老師是怎麽做的,
後來就每堂課都會拍照,哈哈O(∩_∩)O

課堂實踐上對老師有什麽教學建議?

希望老師一邊講,我們可以一邊有自己理解的時間

課程收獲與不足(不要抄上學期的,否則會扣分)

收獲:

最開始因為什麽都不懂,很多的任務想要完成都要花費很多的時間,而且有時還會遇到
很多自己解決不了的問題,所以在前期的學習階段有一點浮躁的心情,不過俗話說得好失敗是成功之母,我最終還是學到了很多的Java的知識。
這個學期的很多任務都向其他人尋求了幫助,特別是實驗。我覺得找他人幫助確實是一個很有效的方式,因為有時候自己可能陷入一種思維定式,
所以有些事情只靠自己很難取得進展,但是自己還是需要多一些的去獨立思考,看別人幫自己解決問題的時候要去學習他們解決問題的方式,
這些都是這個學期我發現自己的一些收獲和不足。其實在Java學習的這條道路上,我還沒有走得很遠,但我要一直的鼓勵自己,堅持下去,
才能慢慢領會到它的樂趣

自己需要改進的地方:

  • 自己要靜下心來,對於不會的問題不要急躁,要想辦法去解決它;
  • 要自己學會解決問題。要學會當遇到了問題想要找答案時,知道要去找些什麽內容,要有自己解決問題的方式;
  • 要更多地去積極主動的敲代碼,不要局限於課本,還要在課下去充實自己的專業知識。

結對學習是不是真正貫徹了?寫一下你提供的幫助或接受了什麽幫助,並對老師提供參考建議

我認為我是做到結對學習的
在結對學習的過程中,我和隊友有著明確的分工,就像在編寫四則運算的代碼的時候,我們就認真的分好了工。但我們還會相互體諒,
在對方比較忙的時候承擔起更多的工作。而且在結對學習的過程中,隊友給了我很多的幫助,為我解決了很多的難題,為我講解我不懂的地方。
我們這個學期的合作時很愉快的?(?????)?

問卷調查

  • 你平均每周投入到本課程有效學習時間有多少?
    我平均每周都有投入20消息的時間學習Java,主要是自習和周末,不過自己在這方面的能力不強,還要多多努力。

  • 每周的學習效率有提高嗎?你是怎麽衡量的?
    有時效率是有提高的。畢竟剛開始的時候什麽都不會,到後來才算是慢慢上道路。
    比如下周一的課堂測試的得分,博客的寫作速度和內容是否有意義。

  • 藍墨雲班課的使用對你的學習有促進嗎?有什麽建議和意見嗎?
    有。在班課上老師會給我們很多的資源,課堂測試、實踐都在上面完成,很方便。
    覺得有時候給的資源太多了,老師可以給出一些建議看看那些是一定需要去看的,這樣更加節省時間,不然後期看到那麽多的資料都沒有動力去看o( ̄▽ ̄)d

  • 你覺得這門課老師應該繼續做哪一件事情?
    繼續布置課堂實踐,嗯o(一︿一+)o

  • 你覺得這門課老師應該停止做哪一件事情?
    emmm,這個問題,好像沒有什麽需要停止的呢(`?ω?′)

  • 你覺得這門課老師應該開始做什麽新的事情?
    上課的時候不僅要講解還要讓我們跟著去做

其他任意發揮

我的高中同學知道當初我要學的是計算機都紛紛跟我說,你將來就是我們中間電腦玩得最溜的人啦,可我現在內心只有呵呵o( ̄︶ ̄)o 。
電腦不好學,程序猿不好當。不過這一個學期下來,我從一個初級菜鳥變成了中極菜鳥,還是有點收獲的。希望下個學期自己繼續努力,加油!

總結中涉及到的鏈接的二維碼

項目鏈接:

技術分享圖片

預備作業

  • 預備作業1:
    技術分享圖片

  • 預備作業2:
    技術分享圖片

  • 預備作業3:
    技術分享圖片

每周小結:

  • 第一周:
    技術分享圖片

  • 第二周:
    技術分享圖片

  • 第三周:
    技術分享圖片

  • 第四周:
    技術分享圖片

  • 第五周:
    技術分享圖片

  • 第六周:
    技術分享圖片

  • 第七周:
    技術分享圖片

  • 第八周:
    技術分享圖片

  • 第九周:
    技術分享圖片

  • 第十周:
    技術分享圖片

  • 第十一周:
    技術分享圖片

實驗:

  • 實驗一 :
    技術分享圖片

  • 實驗二:
    技術分享圖片

  • 實驗三:
    技術分享圖片

  • 實驗四:
    技術分享圖片

  • 實驗五:
    技術分享圖片

結對小結:

  • 小結1:
    技術分享圖片

  • 小結2:
    技術分享圖片

  • 小結3:
    技術分享圖片

實踐

  • 『Java程序設計』課程 結對編程練習_四則運算_第一周:
    技術分享圖片

  • 『Java程序設計』課程 結對編程練習_四則運算_第二周:
    技術分享圖片

  • 『Java程序設計』課程 結對編程練習_四則運算_第三周:
    技術分享圖片

20172310《程序設計與數據結構》(上)課程總結