ICT 每周速報(Week 41, 2021)

Willis WAN, Chun Yu | 2021-10-16

🖊 本周重點

  • 石墨烯硬碟:同樣 Size 十倍容量
  • 算法視覺化:一個幫你學算法嘅網站
  • 淺談數據開採

🗞 News 1: 石墨烯硬碟:同樣 Size 十倍容量

研究員示範以石墨烯(Graphene)作為硬碟嘅磁盤(Platter)物料。以往嘅磁盤使用碳為基礎嘅物料(Carbon-based Overcoat)製造,但係呢啲物料並唔耐熱,而且有一定嘅厚度,限制咗可以放係同一隻硬碟入面嘅磁盤數量。

石墨烯解決咗耐熱同厚度嘅問題,令到硬碟嘅密度提升,從而使硬碟嘅容量增加 4 至 10 倍。

ICT 重點

講親輔助貯存設備(Secondary Storage Devices),主要都係問快閃記億體(Flash Memory)、硬碟(Hard Disk;HDD)或者固態硬碟(Solid State Drive;SSD)呢三點。尤其係近三年都考得幾多 HDD 同 SSD 之間嘅 Comparison。

既然 SSD 嘅數據傳送速度比 HDD 高咁多,點解 HDD 無被淘汰,仲有咁多桌上電腦使用?主要原因係價錢到:用同樣嘅價錢,買到嘅 HDD 嘅容量比 SSD 大好多。依家嘅 HDD 主要靠住容量嘅優勢,依然保有桌上電腦嘅一席之位。但係如果 SSD 係容量方面有任何突破,SSD 就隨時可以係 Secondary Storage 入面坐大。

但係今次 Propose 嘅石墨烯硬碟,令到 HDD 係容量方面增加 10 倍。如果真係可以推出市面作商用或民用嘅話,睇嚟 SSD 都好難追得上。甚至石墨烯硬碟有機會取代到磁帶(Magnetic Tape)成為備份嘅主要媒介。

相關課題

  • 必修部分第 13 課:關於輔助貯存

新聞來源/詳細閱讀

🔖 News 2: 算法視覺化:一個幫你學算法嘅網站

Not a news itself, but 我搵到一個幫選修單元 D 同學仔去學一啲算法嘅網站!(目測 8 成學生會直接飛咗呢 Part 佢 ☹)

同學仔可以去 https://algorithm-visualizer.org 睇,左手邊有一排嘅 Algorithm 俾同學仔揀,然後係右上角有個 Play 嘅制,㩒落去就會睇到啲靚靚嘅 Algorithm 自己 Run 架啦!

ICT 重點

想特別同 Elective D 嘅同學仔講下你哋要識邊啲 Algorithm:

  • 線性檢索 Linear Search (暫時個網站未有對應嘅 visualisation,但係我估唔駛啦?逐個搵姐) 同學可以係左下角㩒 Scratch Paper > New,然後將下面嘅 code copy 去右手邊嘅輸入欄:
// import visualization libraries {
const { Tracer, Array1DTracer, ChartTracer, LogTracer, Randomize, Layout, VerticalLayout } = require('algorithm-visualizer');
// }

// define tracer variables {
const chart = new ChartTracer();
const tracer = new Array1DTracer();
const logger = new LogTracer();
Layout.setRoot(new VerticalLayout([chart, tracer, logger]));
const D = Randomize.Array1D({ N: 15, value: () => Randomize.Integer({ min: 0, max: 50 }), sorted: false });
tracer.set(D);
tracer.chart(chart);
Tracer.delay();
// }

function LinearSearch(array, element) {
  
  for (let i = 0; i < array.length; i++) {
      // visualise {
      tracer.select(i);
      Tracer.delay();
      tracer.patch(i);
      logger.println(`Searching at index: ${i}`);
      Tracer.delay();
      tracer.depatch(i);
      tracer.deselect(i);
      // }
      
      if (array[i] == element) {
        // logger {
        logger.println(`${element} is found at position ${i}!`);
        tracer.select(i);
        // }
        return i;
      }
  }

  // logger {
  logger.println(`${element} is not found!`);
  // }
  return -1;
}

const element = D[Randomize.Integer({ min: 0, max: D.length - 1 })];

// logger {
logger.println(`Using linear search to find ${element}`);
// }
LinearSearch(D, element);
  • 對分檢索 Binary Search (同學可以揀 Branch and Bound > Binary Search)
  • 冒泡排序 Bubble Sort (同學可以揀 Brute Force > Bubble Sort)
  • 插入排序 Insertion Sort (同學可以揀 Brute Force > Insertion Sort)
  • 合併排序 Merge Sort(同學可以揀 Divide and Conquer > Merge Sort)
  • 快速排序 Quick Sort (同學可以揀 Divide and Conquer > Quick Sort)

相關課題

  • 選修單元 D 第 13-14 課:關於檢索/排序算法

新聞來源/詳細閱讀

📱 News 3: 淺談數據開採

係之前嘅文章,Willis 講過下大數據 Big Data 呢個 Term。大數據至所以受企業擁戴,係因為企業可以透過啲數據去學習用戶嘅習慣,從而作出商業決定。從數據入面提取知識,呢項工作稱為「數據開採 Data Mining」,亦都稱為「知識發現 Knowledge Discovery」。負責進行 Data Mining 嘅數據科學家(Data Scientist)被《哈佛商業評論》喻為「21 世紀最性感嘅工作」。

今日,Willis 搵到篇文章,同同學仔一齊睇下 Data Mining 呢項工作實際係做啲咩。

ICT 重點

The Only Constant is Change.

一間公司或者企業必須時刻了解商業環境有乜嘢改變,先至唔會比競爭對手淘汰。 數據開採嘅一個重要目的,就係要幫助公司了解佢自己嘅環境(包括客戶同同行)有乜嘢趨勢,從而作出商業決定。數據開採就係透過數據清洗(Data Cleansing)、建構統計模型、模型評估等方法,提取數據中嘅知識。

通常,如果一間公司想進行數據開採嘅 Project 嘅話,佢哋會進行 6 個步驟:

  1. 商業理解 Business Understanding:呢個階段主要係確定項目嘅範圍、目的同要求。
  2. 數據理解 Data Understanding:理解下啲數據代表緊啲乜。例如可能係買咗邊件貨?買咗幾多件?每件幾多錢?乜嘢貨幣單位?
  3. 數據準備 Data Preparation:通常係最耐嘅部分,負責揀需要嘅 Dataset、做數據清洗(因為收集翻嚟嘅 Data 未必靚靚仔仔齊齊正正)、將啲數據進行轉換(為方便模型去學)
  4. 模型製作 Modeling:按照項目嘅要求選擇一個模型。
  5. 模型評估 Evaluation:將數據擺落個模型之後,睇下個模型嘅 Performance 好唔好。如果唔好嘅話,就會翻去 3 或者 4 再做過。
  6. 投放 Deployment:將 Performance 好嘅模型攞出去用。

相關課題

  • 選修單元 A 第 12 課:關於數據開採及其應用

新聞來源/詳細閱讀

問題回顧

  1. 點解桌上電腦依然使用 HDD,而不全部改用 SSD?
  2. 選修單元 D 嘅同學要識邊 6 個檢索/排序算法?
  3. 數據開採有乜嘢價值?

鐘意篇文嘅話,麻煩係下面個 IG Post 上面俾個 Like ❤️ 感謝感謝

更多內容