20172304 2018-2019-1 《程序設計與數據結構》課程總結

標題:學號 2018-2019-1《程序設計與數據結構》課程總結
第一週作業第一週主要學習了有關代碼質量的內容以及關於算法的複雜度計算。
第二週作業第二週主要學習了棧的有關知識。
第三週作業第三週主要學習了隊列的有關知識。
第四周作業第四周主要學習了列表的有關知識。
第五週作業第五週主要學習了有關排序和查找的知識。
第六週作業第六週主要學習了有關樹的知識特別是二叉樹的知識。
第七週作業第七週主要學習了有關二叉查找樹的知識。
第八週作業第八週博客主要學習的是有關堆的知識。
第九周作業第九周博客主要學習的是有關圖的知識。

THE TWO QUESTIONS ABOUT THE BLOG

-自認爲寫得最好一篇博客是?爲什麼?
自認爲寫的最好的一篇博客是第九周博客,因爲在這篇博客中我對圖的各個內容都作出了我能力範圍之內的最好的解釋。而且針對每個需要進行展示的內容,我都進行了手工繪圖(當然還是藉助了電腦上的工具,但是圖都是自己畫的。)
作業中閱讀量最高的一篇博客是?談談經驗
我作業中閱讀量最高的一篇博客是第一週作業總結。我認爲我的這篇博客之所以閱讀量最高,是因爲我對教材的知識的總結概括比較精煉,獨到。

實驗報告鏈接彙總

實驗一
-實驗1
鏈表練習,
通過鍵盤輸入一些整數,建立一個鏈表

-實驗2
鏈表練習
實現節點插入、刪除、輸出操作

-實驗3
鏈表練習,
使用冒泡排序法或者選擇排序法根據數值大小對鏈表進行排序
在排序的每一個輪次中, 打印元素的總數,和目前鏈表的所有元素。

-實驗4
數組練習,要求實現下列功能:
通過鍵盤輸入一些整數,建立一個數組
數組插入、刪除、輸出操作

-實驗5
數組練習,要求實現下列功能:
使用冒泡排序法或者選擇排序法根據數值大小對數組進行排序(2分);
如果你學號是單數, 選擇選擇排序, 否則選擇冒泡排序。
在排序的每一個輪次中, 打印元素的總數,和目前數組的所有元素。

實驗二
-實驗1:實現二叉樹
參考教材p212,完成鏈樹LinkedBinaryTree的實現(getRight,contains,toString,preorder,postorder)
用JUnit或自己編寫驅動類對自己實現的LinkedBinaryTree進行測試,提交測試代碼運行截圖,要全屏,包含自己的學號信息
課下把代碼推送到代碼託管平臺
-實驗2:中序先序序列構造二叉樹
基於LinkedBinaryTree,實現基於(中序,先序)序列構造唯一一棵二㕚樹的功能,比如給出中序HDIBEMJNAFCKGL和後序ABDHIEJMNCFGKL,構造出附圖中的樹,用JUnit或自己編寫驅動類對自己實現的功能進行測試,提交測試代碼運行截圖,要全屏,包含自己的學號信息
-實驗3:決策樹
自己設計並實現一顆決策樹,提交測試代碼運行截圖,要全屏,包含自己的學號信息,課下把代碼推送到代碼託管平臺
-實驗4:表達式樹
輸入中綴表達式,使用樹將中綴表達式轉換爲後綴表達式,並輸出後綴表達式和計算結果(如果沒有用樹,則爲0分),提交測試代碼運行截圖,要全屏,包含自己的學號信息,課下把代碼推送到代碼託管平臺
-實驗5:二叉查找樹
完成PP11.3,提交測試代碼運行截圖,要全屏,包含自己的學號信息,課下把代碼推送到代碼託管平臺
-實驗6 : 紅黑樹分析
參考本博客:點擊進入對Java中的紅黑樹(TreeMap,HashMap)進行源碼分析,並在實驗報告中體現分析結果。.
實驗三
查找與排序-1
定義一個Searching和Sorting類,並在類中實現linearSearch,SelectionSort方法,完成測試。
實驗三-查找與排序-2
重構你的代碼
把Sorting.java Searching.java放入 cn.edu.besti.cs1723,把測試代碼放test包中重新編譯.
實驗三-查找與排序-3
參考http://www.cnblogs.com/maybe2030/p/4715035.html 在Searching中補充查找算法並測試.
實驗三-查找與排序-4
補充實現課上講過的排序方法:希爾排序,堆排序,二叉樹排序等(至少3個)
測試實現的算法(正常,異常,邊界)
實驗三-查找與排序-5
編寫Android程序對各種查找與排序算法進行測試

團隊項目報告鏈接彙總

團隊項目鏈接

代碼託管鏈接

statistic.sh的運行結果

根據idea的腳本顯示本學期我的代碼量是足夠的了。

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

編程的智慧我看過了一遍,不過從頭再次讀起又會有不一樣的感受,其實我們都知道,所謂編程就是利用已經建設好的編程語言語言的邏輯去實現我們想要的功能,具體來解釋的話。編程其實跟寫文章類似。就是用每個人都認識的字符去寫出屬於自己的文章。然而編程又與寫文章不同,因爲寫文章你可以使用一些修辭手法比喻誇張,甚至有時爲了所謂的文學效果,所寫出的文章的邏輯用常理難以解釋。這是編程所需要忌諱的。編程最能容忍錯誤的地方也就是命名和註釋這兩個地方了。其他地方甚至不能容忍一丁點的錯誤。其實每個編程的人呢都有過類似的經歷,就是盯着一個項目很長時間,命名自己的邏輯和語法都感覺無可挑剔,但是idea卻總是無情的給你顯示出一個又一個紅色字體,讓你心煩,讓你不安。所以我們在寫代碼時就要額外主義一些問題,那就是一些編程的智慧。能夠用兩行代碼實現的功能就不要用10行代碼去實現。還有需要封裝的地方一定要使用大括號。我們平時也可以積累一些常用的算法的代碼。儲存起來,然後在需要使用的時候直接調用就可以了。
積極主動敲代碼做到沒?教材實踐上有什麼經驗教訓?
積極主動敲代碼基本上是做到了。因爲如果不通過自己的實踐的話有時很難真正理解一段代碼的作用的。教材實踐時有時會發現教材上有時也會出現錯誤。不知是版本不匹配,或是作者疏忽了,亦或是譯者的失誤,反正給我們帶來了很多疑惑,所以我認爲盡信書不如無書。有時要對教材的不正確的內容提出提出質疑。不要迷信權威。

課堂項目實踐

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

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

上課一定要認真聽講

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

老師做的很好了。

課程收穫與不足

學習了線板學期的數據結構之後,我覺得自己對java的各個基礎的數據結構的理解更加深刻了。而且運用起來也更加嫺熟,同時我也見識到了自己所學的知識只是那漫漫代碼中的滄海一粟,想要真正的不斷提升自己,那麼我還要不斷地去學習借鑑他人的代碼。不斷地去時間,去嘗試。去學習。
自己的收穫
自己學會了很多有用的數據結構。
自己需要改進的地方
還是需要對自己嚴格要求
結對學習是不是真正貫徹了?寫一下你提供的幫助或接受了什麼幫助,並對老師提供參考建議
結對學習嚴格貫徹了我並沒有有提供什麼幫助因爲大家的自主性還是很強的。沒有對老師的建議。

問卷調查

  • 你平均每週投入到本課程有效學習時間有多少?
    20~30個小時
  • 每週的學習效率有提高嗎?你是怎麼衡量的?
    一般。與其他同學進行比較。
  • 藍墨雲班課的使用對你的學習有促進嗎?有什麼建議和意見嗎?
    有促進。沒有建議。
  • 你覺得這門課老師應該繼續做哪一件事情?
    繼續教這門課。
  • 你覺得這門課老師應該停止做哪一件事情?
    熬夜。

博客中涉及的鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章