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

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

mis 學習 衡量 shelf http 接受 結合 莫名其妙 感想

(按順序)每周作業鏈接匯總

  • 預備作業1:對大一上學期進行總結,談談你對本專業的認識和期望,你期望的師生關系是什麽樣的,談一下從小到大對你幫助/影響最大的老師和原因。.我們課程要你兩學期實踐10000行代碼,你覺得這個負擔大嗎?
  • 預備作業2:你有什麽技能比大多人(超過班級90%以上)更好,針對這個技能的獲取你有什麽成功的經驗?與老師博客中的學習經驗有什麽共通之處?你對《程序設計與數據結構》的學習有什麽具體目標?如何通過“做中學”實現你的目標?
  • 預備作業3:安裝Linux操作系統,學習Linux命令。感想
  • 第一周作業:在教材中基本明白了計算機系統的運行方式,了解了對於高級語言是使用是掌握好編程的關鍵,掌握了一些Java的基本命令,學會了會編譯、運行、調試簡單的Java程序
  • 第二周作業:學會了一些字符量常量的表示、拼接的知識。轉義序列。了解了變量的知識,並學會了用final定義標識符為常量。了解了幾種基本數據類型。對於擴展和壓縮類型轉換有所了解。稍微熟悉了一些scanner相關知識
  • 第三周作業:學習到了創建string對象的方法和簡化語法以及使用length等方法。了解了import導入Java包中的概念。學會了使用random類以及math類。了解了numberformat類和decimalformat類的使用區別和方法。學會使用枚舉型enum編寫程序。簡單了解了自動裝箱的知識
  • 第四周作業:學習了第四章和第七章,第四章介紹了關於編寫類方面的一些問題,第七章學到了了面向對象軟件的設計方法和相關知識。
  • 第五周作業:學習了條件循環和判斷以及其他條件判斷和循環兩章內容。學習了條件語句中的if語句、if-else語句、switch語句。 學習了循環語句中的while語句、do語句、for語句。
  • 第六周作業:學習了如何聲明和使用數組。
  • 第七周作業:學習繼承是如何實現的,及類之間的關系,了解類的層次結構。
  • 第八周作業:學習了多態,Java實現多態性可以有利用接口和繼承兩種方法。
  • 第九周作業:學習了異常和遞歸這兩章,學習異常以及異常的處理方法和遞歸的實現。
  • 第十周作業:學習了集合相關知識。
  • 第十一周作業:學習《Java和Anroid開發學習指導》,使用Android Studio編寫安卓程序

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

實驗3,因為這篇博客我差不多將每一步的操作步驟以及大家會遇到的最困難的幾個問題寫下去了

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

預備作業1,也許是當時我寫得比較詳細,而大家第一次寫博客,缺少參考才順便翻翻我的博客

(按順序)實驗報告鏈接匯總

  • 實驗一:學習IDEA的安裝和使用。
  • 實驗二:學習使用JUnit,初步掌握單元測試和TDD,理解並掌握面向對象三要素:封裝、繼承、多態,初步掌握UML建模,熟悉S.O.L.I.D原則,了解設計模式
  • 實驗三: 安裝alibaba 插件,以結對的方式完成Java密碼學相關內容的學習,結合重構,git,代碼標準。。
  • 實驗四:學習Android Studio的安裝和使用
  • 實驗五:使用JavaSocket實現客戶端與服務器的連接與交流,並進行一些加密操作。

(按順序)團隊項目報告鏈接匯總

  • 第一周階段總結:中綴轉後綴及對後綴表達式的計算,題目生成及驅動類的編譯,UML圖設計。
  • 第二周階段總結:完成部分關鍵代碼,並對其進行測試。
  • 第三周階段總結:完全完成全部代碼,進行收工。

代碼托管鏈接

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

按兩學期一萬行算,應該是夠了一個學期的量了。但是還是與很多同學相差很大,下學期一定要進步。

  • 加點代碼,改點代碼是理解的最好方式,參考編程的智慧,談談你的心得
    在每周的作業中很多pp項目的代碼都是課本例子上就有的,我們有些時候只需在理解課本的基礎上做些修改和延伸就能寫完
  • 積極主動敲代碼做到沒?教材實踐上有什麽經驗教訓?
    前期覺得課本例子只需理解,學會應用就行,這就讓我有些之前的課本例子沒敲,使我在代碼行數上與其他同學拉開了差距,也不知是好是壞,畢竟已經理解了感覺還是不想再敲一遍吧。經驗教訓就是盡快把實踐搞完會很輕松,如果硬是放最後寫,會連續幾天都在想這個事,而莫名其妙就感覺負擔很重。

    課堂項目實踐

  • 參考藍墨雲班課
  • 課堂實踐鏈接(沒有的可以不列)
  • 實踐1
    生成[-10,10)之間的隨機數PseudoNumber,並輸出PseudoNumber;
    輸出PseudoNumber的二進制、十六進制形式;

  • 實踐2
    編寫一個Book類,其實例數據分別表示書名、作者、出版社以及版權日期。
    定義一個Book構造方法,接收並初始化實例數據;為所有實例數據定義獲取和設置他們的方法
    定義一個toString方法,返回幾行描述該圖書的字符串。
    創建一個Bookshelf驅動類,其main方法實例化並輸出一些Book對象。

  • 實踐3
    編譯並運行PP7.4

  • 實踐4
    使用for循環計算n的階乘,並截圖上傳。
    使用while循環計算n的階乘,並截圖上傳。

  • 實踐5
    命令行參數測試
    從命令行傳入 學號、課程的成績,計算平均成績,並輸出
    輸入 java computeAverage 20172301 98 99 100
    輸出:2017 2301‘ average score is :99
    使用邊長參數列表實現。

  • 實踐6
    已知抽象類Animal,定義Cow類和Sheep類,繼承Animal類,並測試

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

  • 實踐8
    1.從鍵盤可以輸入任意個整數(int);
    2.寫入文件;
    3.從文件讀取所有的整數;
    4.使用插入排序對讀取的整數進行排序,並將排序的結果寫入原文件。
    5.使用try-catch語句處理IO異常,例如文件創建異常

  • 實踐9
    使用遞歸實現;
    輸入一個數n;
    使用遞歸計算F(n)的值;
    寫入文件中。

  • 實踐10
    完成P397頁例題中的節點刪除和插入操作,並測試
    完成插入、刪除功能
    加分項:用Magazine類實現Comparable接口,並對鏈表中的雜誌按照字母順序排序,並輸出。

  • 實踐11
    下載附件中的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"

  • 實踐12
    在Android平臺上開發移動程序,模擬棧的操作:Push、Pop。

  • 實踐13
    開發一個Android應用程序,要求:輸入一個中綴表達式,輸出後綴表達式。

  • 實踐14
    開發一個android應用程序,完成以下功能:
    隨機生成一個中綴表達式,並使用控件顯示。
    將該表達式轉換為後綴表達式,並使用控件顯示。
    計算後綴表達式的值,並使用控件顯示。
    (選做)顯示每一步操作數棧和操作符棧的變化過程。

  • 實踐15
    夥伴1編寫服務器端程序,接收客戶端發送的數據(形式如下:12 15 8 100 25 34 19),將其排序後,發回給客戶端。
    夥伴2編寫客戶端程序,將一串字符串(形式如下:12 15 8 100 25 34 19)發送給服務器端,接收排序後的程序,並顯示。

  • 課堂實踐對提高應用能力有幫助嗎?
    實踐很多是書上沒有的內容,對於提高我們自我學習和應用能力都有幫助
  • 課堂實踐上自己有什麽經驗教訓?
    不懂的時候不僅可以去問老師同學,也可以去上網自己尋找答案
  • 課堂實踐上對老師有什麽教學建議?
    沒有,保持這樣就好

課程收獲與不足

  • 自己的收獲(投入,效率,效果等)
    學習了大量課本之外的知識
  • 自己需要改進的地方
    不足在於沒有進一步做拓展延伸
  • 結對學習是不是真正貫徹了?寫一下你提供的幫助或接受了什麽幫助,並對老師提供參考建議
    建議講操作流程細節的部分

問卷調查

  • 你平均每周投入到本課程有效學習時間有多少?
    二十多個小時,但是很多時候不止這麽多
  • 每周的學習效率有提高嗎?你是怎麽衡量的?
    學習效率就在於一次次練習之後,不會被很多基礎的東西卡住,所謂的熟能生巧就是這個道理。

  • 藍墨雲班課的使用對你的學習有促進嗎?有什麽建議和意見嗎?
    有些知識有用,但是很多視頻都是很長且很舊的,有時候一個周幾十個視頻我是沒什麽信心看完的。
  • 你覺得這門課老師應該繼續做哪一件事情?
    建議多些知識點和操作細節的講解,尤其是在做不涉及書上知識且沒有參考博客的實踐的時候
  • 你覺得這門課老師應該停止做哪一件事情?
    寫博客
  • 你覺得這門課老師應該開始做什麽新的事情?
    在講完基礎知識後可以開始做些復雜的項目

其他任意發揮

  • 給出你的總結中涉及到的鏈接的二維碼
  • 碼去項目鏈接: 二維碼
    技術分享圖片

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