Weekly Learning Note
-
筆記:有「課堂筆記」跟「課外補充」兩部份
- 課堂筆記:標題與課堂標題相同
- 課外補充:部分還在努力
-
作業:檔案放置在交作業的當週,在下面content都有連結
-
小圖:左下角的圖案是「返回當頁目錄」的快捷鍵
e.g.🎈
travishen/datastructure-python
- week_02 Linked List
- week_03 Stack & Queue
- week_04 Insertion Sort
- week_06 Heap Sort
- week_07 Merge Sort
- week_08 Binary Tree
- week_09 Binary Search Tree
- week_10 Red Black Tree
- week_11 Hash Table
- week_12 Breadth-First Search
- week_13 Depth-First Search
- week_14 Minimum Spanning Tree
- week_15 Shortest Path
- week_16 Overview
- Feedback
- Object
- Array VS. List VS. Linked list
- Python list vs. array
- List
- Stack & Queue
- Try Min stack By linked list.py
- Try Min stack By list.py
- Try Min stack
- Test Min stack.py
- Test Min stack
- Try Implement queue using stacks By linked list.py
- Try Implement queue using stacks By list.py
- Try Implement queue using stacks
- Test Implement queue using stacks.py
- Test Implement queue using stacks
- Try Implement stack using queues
- Test Set mismatch
- Sorting algorithms
- Time complexity
- return VS. break VS. continue
- not
- Ipynb change
- Class notes
- Insertion Sort
- Quick Sort
- Divide and Conquer
- Sorting algorithm stability
- range vs. np.arange
- Division differences
- Priority Queue
- Heap Sort
- Test Univalued binary tree.py
- Test Univalued Binary Tree
- Try Univalued binary tree.py
- Try Univalued Binary Tree
- Including image or picture in jupyter notebook
- Recursion
- Class notes
- Merge Sort
- Design merge sort.py
- Design merge sort
- Try Sort an Array
- Class notes
- Binary Tree
- Full binary tree & Complete binary tree
- Try Binary Tree Level Order Traversal
- Test Design binary tree
- Try Design binary tree
- UnboundLocalError
- is vs. ==
- NoneType
- Depth-First Search
- Traversal in Binary Tree
- Binary Search Tree
- Class notes
- Practice of Binary Search Tree
- Try Print Binary Tree
- Coding
- Hash Table Ⅰ
- Hash Table Ⅱ
- BlockChain
- BitCoin Hashing
- Test Desigh HashSet
- Try Desigh HashSet
- Try Design HashMap
- if_name_ == _main_
- defaultdict
- Class notes
- Depth-First Search
- BFS vs. DFS
- Adjustment of Design DFS
- Try Minimum Depth of Binary Tree
- split
- Iterators
- Python: range is not an iterator!
- Generator
- python –
- List Comprehension
- sort vs. sorted
- key vs. value
- Greedy Algorithm
- Disjoint Sets
- Minimum Spanning Tree
- Adjustment of Design Kruskal.py
- Adjustment of Design Kruskal
- Jupyter notebook_The process of learning Kruskal & Dijkstra
- Notes
- Error
- Code
- Demo
- Other student works
一學期的課程結束了,這學期因為資料結構與演算法這堂課過得很充實
記得第一堂課的時候,原本就耳聞從台大來了一位很硬的老師,為這學期要好好認真已經做了心理準備,但在課堂上還是有點被震驚到,原因是因為老師很直接地告訴我們一些「事實」,讓我意識到自己的能力有多麼的不足。
其實這也是當時的我一直很擔心的,我目前已經大四又非本科生,即將畢業的我,雖然雙主了巨資,但總覺得在這方面的能力並沒以什麼明顯的進步
在第一次老師讓我們看Linked list的程式碼的時候,真的覺得壓力很大,回去看了很久都看不懂,後來去問助教,經過助教不厭其煩地解釋之後,突然有種豁然開朗的感覺,原來程式碼沒有想像的那麼難
後來幾次上課,雖然還是會覺得壓力有點大,但是慢慢按照老師的進度走,課堂上沒聽懂的就回去看影片,看影片不理解的就上網去查,發現其實老師每次進度給的量都是很適當的,一個禮拜踏實的去學習剛剛好
直到第一次作業又是另一個挑戰,在這之前我只有去理解老師每次講的演算法,看懂老師是如何用程式碼表達此演算法而已,要我自己「創造原始的程式碼」真的是一大挑戰,所以一開始我也和大部分同學一樣,在網路上找程式碼看懂之後,再按照網路上的程式碼重打一次。
沒想到助教開始抓抄襲(雖然抄襲別人的程式碼並不是我的本意,但我畢竟那麼做了),當時我想「死定了,要我自己打怎麼可能打得出來,後面作業要怎麼辦?!」,不過後來我很感謝助教做了這件事,直到做了才知道真的沒有那麼難,而且靠自己將想法轉成程式碼後,對那個演算法的理解跟印象真的不是去看別人的程式碼能夠體悟到的,就算在打作業的時候遇到困難,自己掙扎一下還是有辦法解決(有次我發現在打作業會遇到的問題,其實老師在上課的時候都有特別講到,只是當時我不知道問題的癥結點是什麼,所以沒有理解到老師的意思)
後來幾次作業真的有愈打愈順的感覺,最難的一次我覺得是BST,難度突然提升了好多,又正好碰到期中考,整個非常刺激
不過在BST之後,後面幾次作業又變得很簡單(雖然老師有說後面的作業難度會愈來愈高,但我個人認真覺得還好,不知道是BST的洗禮太厲害,還是老師想要體恤一下我們好不容易建立起來的信心XD)
最後想要感謝一下老師跟助教,後來有機會和老師聊到才知道,一開始上課會感覺到很有壓力,是因為老師在課堂上會故意用比較刺激性的言語來刺激我們,讓我們意識到我們處在舒適圈中不會發現但是真實存在的問題,謝謝老師的用心良苦。
經過這學期的課程,雖然要學習的事情還有好多,但我真的有感覺到自己在進步,更重要的是我更加知道「該如何靠自己去學習」這件事
感謝帶著我們前進的老師🤗,也辛苦經歷一百多人疲勞轟炸的助教😂