CM1035 : Algorithms and Data Structures I

ULTSG_Banner

🔖 課前準備事項:

  • 基礎概念: 課程範圍主要為:
    • Abstract Data Structure (抽象性數據結構): Vectors, Queues & Stacks
    • Searching Algorithms (搜尋演算法): Linear Search & Binary Search
    • Sorting Algorithm (排序演算法): Bubble Sort, Insertion Sort, Quicksort and Mergesort
    • Recursion (遞迴)
    • RAM Model (RAM模型)
    • Big-O Notation (大O/漸進符號)
    • Time/Space Complexity (時間/空間 複雜度)
  • 指定課本: (課本隨時有異動,詳情請查詢課上公布):
    • Cormen, T.H., C.E. Leierson, R.L. Rivest and C. Stein Introduction to Algorithms. (3rd edition)
  • 電腦環境需求: PC/Mac/Linux 基本上都是線上閱讀,只要瀏覽器即可。
  • 其他工具準備: 紙、筆等之類可以手做練習。

📓 課程攻略摘要:

  • 期中考 Midterm:
    • 第 12 週左右需要交一個解題式的作業,主要是一個 4x4 的數獨 (Sudoku) 遊戲,要你把指定的功能用 pseudocode 寫出來:
      • 雖然是交 pseudocode ,如果可以,用你熟悉的一個語言 (Python 或 JavaScript) 模擬一遍整個程式的運作,能更確定你的答案。
      • 考題中有一題論述如何加強這隻程式,只能以你所學的去回答了,可以往不一樣的 Data Structure 方式去構思。
      • 有限字數的報告,請確認字數不能太少或太多。
  • 期末考 Final:
    • 第 22 周左右的期末考分別分類為:
      • Part A (10 題選擇題)
      • Part B 三選二論述題
  • 其他考核作業:
    • 線上Coursera課堂小考 Summative Quiz: 💡 某些小考有時間跟次數限制,盡可能自己多做練習,把握有限的次數機會,得取最高分數。

🤩 同學們的建議:

Chris: 如果覺得 Data Structure 這個概念很新的話,建議多參考 Youtube 相關的教學,其次是所有的 Algorithms 要深入了解其運算的過程,比較像是數學帶公式的方式,若一個步驟錯樣樣錯。期末考程度每年有異,只能多練習,多練功了。[03/29/2022]

Cynthia: 課堂中的pseudocode能練習寫成JS就做,或是練習想一個邏輯定把它用pseoducode寫出來,會對期中作業有很大的幫助。期末的部分會需要理解JS Algorithm並找出更好寫法的能力,只能靠平時練習。[2022/10/02]