20172328 2018-2019-1《程序設計與數據結構》課程總結(第2學期課程總結與回顧)

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

FROM->>TO: How are you?

    2018年9月9日->>2018年12月16日: Great!

本學期的程序數據和數據結構課程到這裏就告一段落了,接下來就讓咱們一同回顧這學期的點點滴滴。html

(按順序)每週做業連接彙總

  • 第一週做業
    • 軟件質量、數據結構以及算法分析的具體內容,主要依託於所用教材的第一章和第二章。
  • 第二週做業
    • 第三章集合概述——棧和第四章鏈式結構——棧。主要討論了集合以及用於實現集合的基本數據結構,以及集合設計的相關問題和目標。本章內容以棧爲例展現與集合的設計、實現和使用等有關的問題。
  • 第三週做業
    • 學習了第五章:隊列。主要內容包含隊列的處理過程、如何用對例如求解問題、各類隊列的實現等。
  • 第四周做業
    • 列表,主要讓咱們認識列表以及分析各類列表實現。
  • 第五週做業
    • 學習了第九章:排序與查找,主要包括線性查找和二分查找算法和幾種排序算法。咱們在軟件開發過程當中要在某一組查找某個特定的元素或要將某一組元素按特定順序排序,因此要學習排序與查找的多種算法。
  • 第六週做業
    • 給定關鍵字序列,用順序查找、折半查找、散列查找(用線性探查法和鏈地址法)來實現查找。請畫出他們的對應存儲形式(順序查找的順序表和兩種散列查找的散列表),並求出每一種查找的成功平均查找長度。
  • 第七週做業
    • 學習了第11章:二叉查找樹。在本章中,主要探討了二叉查找樹的概念和各類二叉查找樹實現,考察爲二叉查找樹添加和刪除元素的算法以及維護平衡二叉查找樹的算法。
  • 第八週做業
    • 學習了二叉樹的另外一種有序擴展--堆。本章將講解堆的鏈表實現and數組實現,以及往堆中添加元素或從堆中刪除元素的算法;還將介紹對的一些用途,包括基本使用和優先隊列。
  • 第九周做業
    • 學習了無向圖、有向圖、帶權圖、經常使用的圖算法、圖的實現策略。

(按順序)實驗報告連接彙總

  • 實驗一:線性結構實驗報告
    • 簡要內容:線性結構之鏈表及數組。基礎鏈表創建、實現節點插入、刪除、輸出操做、實現鏈表的選擇排序、實現數組插入、刪除、輸出操做、實現數組的選擇排序。
  • 實驗二:樹
    • 簡要內容:實現二叉樹、中序先序序列構造二叉樹、決策樹、表達式樹、二叉查找樹、 紅黑樹分析。
  • 實驗三:查找與排序
    • 簡要內容:對排序和查找添加一些方法,重構代碼,並進行測試。參考http://www.cnblogs.com/maybe2030/p/4715035.html在Searching中補充查找算法並測試、補充實現課上講過的排序方法:希爾排序,堆排序,二叉樹排序等(至少3個)測試實現的算法

藍墨雲做業&改錯博客連接彙總

自認爲寫得最好一篇博客是?爲何?node

回答:
本學期自認爲最好的一篇博客是第七週學習總結,緣由是寫這篇博客的時候很快樂,是真的感受本身在寫學到的東西,不是簡單地完成機械的任務。
git

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

回答:
去找本學期做業裏面閱讀量最高的一篇博客時,排行榜上居然沒有本學期的博客,因此說明這學期確實沒有上學期博客質量高。
編程

  最後找到了實驗:三種查找算法練習。這是兩個學期來第一次由於課堂實驗作錯了而去補的博客,有點戲劇性的成爲了閱讀量最高的博客,究其緣由恐怕是這篇改錯的博客比較認真的總結了所學的知識點,對解題步驟也解釋的比較清晰。
小程序

(按順序)團隊項目報告連接彙總

代碼託管連接

給出statistic.sh的運行結果
數組

減掉上學期的10000行代碼,天然也是夠的。數據結構

說明本學期的代碼量目標達到沒有?

  本學期的代碼量達到了預期。app

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

  回答:時隔一個學期,又來重讀這篇文章,感覺天然又是不一樣。最讓我感觸深的是防止過分工程中的這樣一段話:「不少軟件項目如此複雜。實際上沒作多少事情,卻爲了所謂的「未來」,加入了不少沒必要要的複雜性。眼前的問題還沒解決呢,就被「未來」給拖垮了。人們都不喜歡目光短淺的人,然而在現實的工程中,有時候你就是得看近一點,把手頭的問題先搞定了,再談之後擴展的問題。」學習

  其實,在咱們編程過程當中,總會以爲一些東西很難無從下手,這可能就是咱們對於未來的考慮太多了。先從基礎的,可以實現的部分入手,纔可能更好的去拓展。

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

  回答:這學期的代碼沒有自主的敲,除了每週的做業是本身主動動手敲,教材上的代碼都是直接使用了源碼。

  今年的教材上有一些錯誤,我以爲好多地方的描述不是很清楚,好比說在學圖的時候提到了拓撲排序,可是就是很簡單了兩行字,不易讓同窗們理解。還有在某一週的一些代碼,我和室友們一塊兒研究了好久才明白具體是什麼邏輯。

課堂項目實踐

  • 1.時間複雜度分析,用大O記法寫出下面各題的時間複雜度。
(1)for(i=1;i<=n;i++) 
      for(j=1;j<=i;j++) 
           for(k=1;k<=j;k++)  
(2)void fun(int n) {
   int i=l;
   while(i<=n)
       i=i*10;}
(3)int i, j,sum;
i=0;
j=0;
sum = i+j;
(4)void fun (int n){
   int i=0;
   while(i*i*i<=n)
       i++;}
  • 2.ArrayStack類的實現和測試
    • 具體內容:完成課本中ArrayStack類的實現,特別是完成peek、isEmpty、size和toString方法的實現,並完成四個方法的測試。
  • 3.鏈表插入
    • 具體內容:寫出鏈表中節點插入的操做代碼:
    public static void InsertNode(Student2 Head, Student2 node){}
  • 4.鏈表實踐
    • 具體內容:鏈表練習,要求實現下列功能:
      (1)經過鍵盤輸入一些整數,創建一個鏈表(1分);
      (2)實現節點插入、刪除、輸出操做(2分,3個知識點根據實際狀況酌情扣分);
      (3)使用冒泡排序法或者選擇排序法根據數值大小對鏈表進行排序(2分);
  • 5.第4章代碼檢查
    • 具體內容 :運行PP28,PP28頁的程序,根據我的學號輸入後綴表達式並計算。(例如,學號172301,輸入1 7 + 2 3 0 1 - + *)
  • 6.LinkedStack補全
    • 具體內容:給出size、isEmpty和toString等方法的定義,以完成LinkedStack 類的實現。要求:1.可以運行2.須要測試各個方法 3.把代碼上傳到碼雲,並將關鍵代碼和運行結果截圖加水印(學號)上傳。
  • 7.第5章代碼檢查-凱撒密碼
    • 具體內容:代碼檢查P72-P73,凱撒密碼程序。
      運行代碼並截圖,添加學號水印,上傳到碼雲。
  • 8.楊輝三角(選作題)
    • 具體內容:使用循環隊列輸出楊輝三角
      (1)用數組實現循環隊列(要考慮擴容問題,不然不加分);
      (2)輸出楊輝三角;
      (3)代碼運行結果添加學號水印,並上傳;代碼傳到碼雲,附上碼雲連接。
  • 9.棧隊列測試題
    • 具體內容:分析過程:當出現的是E二、E四、E三、E六、E五、E1的時候,說明棧底元素必定爲E1。彈棧順序應該爲E2出棧、E三、E4進棧而後出棧,E五、E6隨後進棧出棧,最後彈出E1.因此至少棧的容量是三個。
  • 10:第6章代碼檢查
    • 具體內容:運行PP6.8和PP6.11的程序,把結果截圖,加學號水印,上傳到藍墨雲。
  • 11.線性表實踐
    • 具體內容:定義一個商品類Product,須要包括商品名稱、價格等信息,使用鏈式存儲結構實現一個線性表,存儲商店中的商品。支持插入、刪除、選擇排序、查找等功能,並進行簡單測試。
  • 12.ASL測試
    • 具體內容:已知線性表具備元素{5,13,19,21,37,56,64,75,80,88,92},若是使用折半查找法,ASL是多少?
  • 13.三種查找算法練習
    • 具體內容:每種算法2分,包括畫出存儲形式和asl的計算。
  • 14.哈希衝突處理實踐
    • 具體內容:把本身的學號加21,例如學號爲1,把22添加到序列後面,使用鏈地址法,解決衝突。
      編程實現,並測試。
      要求計算asl,輸出衝突次數。
  • 15.希爾排序測試
    • 具體內容:D2等於2時,第2趟排序結果是?
  • 16.樹計算題
    • 具體內容:
      1.有1023個結點的徹底二叉樹,其高度是多少?葉結點數是多少?
      2.高度爲h的徹底二叉樹至少有多少個結點?至多有多少個結點?
  • 17.樹的深度和葉子個數計算
    • 具體內容:計算課本中背部疼痛診斷器中決策樹的葉子節點個數?根據課堂介紹的遞歸樹深度計算算法,計算決策樹的深度。
  • 18.中序和先序計算二叉樹結構
    • 具體內容:若已知中序和先序序列,計算二叉樹結構
  • 19.層次遍歷法實踐
    • 具體內容:使用遞歸實現層次遍歷背部疼痛決策樹,並按照層次順序輸出每一個節點內容。非遞歸的層次遍歷法算法以下:根結點入隊;從隊頭取元素,並執行以下3個動做:
      (1)訪問該結點;
      (2)若是該元素有左孩子,則左孩子入隊;
      (3)若是該元素有右孩子,則右孩子入隊;
      重複執行上述過程,直至隊列爲空。 此時,二叉樹遍歷結束。
      按照上述算法,編程實現層序遍歷,按照層序的方法,遍歷並依次輸出每一個節點內容。
  • 20.堆構造與排序
    • 具體內容:根據關鍵字序列:36,30,18,40,32,45,22,50,構造一顆小頂堆,並排序
  • 21.堆排序測試
    • 具體內容:根據關鍵字序列:36,30,18,40,32,45,22,50,利用數組構造一顆大頂堆,並排序。
  • 22.十字鏈表練習
    • 具體內容:畫出十一鏈表結構。
  • 23.最小生成樹
    • 具體內容:1.畫出Prim算法的最小生成樹的生成過程2.畫出Kruscal算法的最小生成樹的生成過程3.計算最小權值
  • 24.Dijkstra(迪傑斯特拉)算法測試
    • 具體內容:使用Dijkstra(迪傑斯特拉)算法計算單源(V1出發)最短路徑。
  • 25.AOE練習
    • 具體內容:一、求關鍵路徑,v1和ve的值並寫出具體步驟二、畫出圖一可能的拓撲序列三、畫出圖二所示無向圖的鄰接矩陣、鄰接鏈表,並列出深度優先和廣度優先遍歷圖所得的頂點序列。四、寫出圖三的鄰接矩陣,並用prim算法求最小生成樹,畫出產生過程。
  • 26.哈夫曼編碼測試
    • 具體內容:設有字符集:S={a,b,c,d,e,f,g,h,i,j,k,l,m,n.o.p.q,r,s,t,u,v,w,x,y,z}。給定一個包含26個英文字母的文件,統計每一個字符出現的機率,根據計算的機率構造一顆哈夫曼樹。並完成對英文文件的編碼和解碼。

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

  回答:有的,課堂項目實踐可以快速對所學知識進行檢測,具備及時性和反應性。

課堂實踐上本身有什麼經驗教訓?

  回答:我自己是一個有點慢熱的人,這學期隨着課程逐漸深刻,本身不少地方作的還有欠缺,也是補了兩次課堂實踐的博客,還作錯了好幾道題被扣了分。因此,快實踐不只可以鍛鍊同窗們的學習能力,還能鍛鍊像我這種慢熱型同窗的心理承受能力。|*´Å`)ノ

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

  回答:我以爲這學期老師有很認真的備課,你們參與性和積極度也都挺好。教學上的建議暫時沒有,繼續保持這種教學模式至關不錯。

課程收穫與不足

  課程收穫:這學期學到了很多新東西,在數學建模與數學實驗課程、離散數學課程都有用到這門課帶來的知識。並且最後可以應用到實際場景中,就讓我以爲此行不虛了。

  課程不足:課時可能還不夠多,安排也不夠合理。有時每週一節,有時每週三節,並且基本都不在早上一二節課,因此效率可能會有影響。週五上課,週末就可能會放鬆。因此課程內容銜接、複習和繼續學習都有必定間隔。

本身的收穫(投入,效率,效果等)&
本身須要改進的地方

  自我不足:這學期個人學習熱情和動力各方面較上學期都表現的較爲疲懶,課程上不少知識點掌握的不夠牢靠,很容易忘又沒有安排及時的複習,因此這學期對本身的表現不太滿意。

  須要改進:繼續努力,保持熱情,認真對待。

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

  回答:我以爲沒有很好的貫徹,咱們小組幾乎沒有單獨一塊兒組隊學習,討論問題也都放到了課堂牢牢張張的時間。固然主要緣由出在咱們本身身上。

  我以爲能夠真的把這個單獨提出來做爲一個自選項,這樣可能咱們的積極性更高。

問卷調查

1.你平均每週投入到本課程有效學習時間有多少?

  • 回答:大概晚上都會抽出時間來學習吧,具體大概每週25小時左右。

2.每週的學習效率有提升嗎?你是怎麼衡量的?

  • 回答:我以爲沒有明顯反應,有時候狀態比較好,可能那周的學習效率就比較高,反之則不太好。

3.藍墨雲班課的使用對你的學習有促進嗎?有什麼建議和意見嗎?

  • 回答:有促進,我以爲資源和做業佈置都很方便也能在手機上及時查收消息。

4.你以爲這門課老師應該繼續作哪一件事情?

  • 回答:繼續讓咱們多練習、多實踐。雖然很虐,即便很虐,儘管很虐···

6.你以爲這門課老師應該開始作什麼新的事情?

  • 回答:可以給同窗們一些固定時間地點答疑,這樣可以讓比較害羞很差意思主動麻煩老師的同窗可以去答疑。還有也可讓助教答疑。

給出你的總結中涉及到的連接的二維碼

周節做業二維碼

第一週 第二週 第三週 第四周 第五週 第六週 第七週 第八週 第九周

項目app的二維碼:

UNO的博客連接彙總

三個實驗的二維碼:

實驗一 實驗二 實驗三

藍墨雲做業&改錯博客的二維碼:

哈夫曼編碼測試 暑假做業之Enjoy-all 十字鏈表畫法—實踐改錯 實驗:三種查找算法練習
相關文章
相關標籤/搜索