City College of New York 學生親自體驗雲端實作

City College of New York 並未選擇將有限的資源拿來建立新的基礎架構,而是決定採用 Google Cloud Platform 來協助老師教導開放原始碼技術,例如虛擬化和容器。這項決策讓他們的學生在實際踏入電腦科學領域之前,便能夠先進行重要的實作訓練。

電腦科學 (CS) 科系必須針對職場上使用的最新技術,為學生提供相關教育及訓練課程;就目前而言,學生必須學習的是雲端及其相關技術,例如虛擬化。然而,大部分的大學並沒有足夠資源可以建置新的基礎架構來支援這些技術;此外,技術的演進日新月異,要隨時掌握最新的平台、工具及程式設計語言,簡直是不可能的任務。

City College of New York (紐約市立學院,CCNY) 的教職員想讓學生體驗如何實作虛擬化、容器及其他雲端技術,因為他們目前的課本和課程教材對這些技術的說明都不夠詳盡。CCNY 需要制定一項新策略,以便用平價而實用的方法掌握最新的運算技術發展。

CCNY的電腦科學兼任副教授 Peter Barnett 表示:「許多 CS 學程都相當偏重理論,而且對核心資料結構、演算法和作業系統採用的方法也很傳統。讓學生時時掌握現實趨勢是很重要的;我們必須提供具有前瞻性的教育,才能將學生培養成可全面發展的電腦科學家。」

善用 Google Cloud Platform,打造全方位 CS 教育

Barnett 之所以會加入 Google Cloud Platform (GCP) 教育公益計畫,是經由 Zahn Innovation Center 執行董事 Lindsay Siegel 的轉介。Zahn Innovation Center 是 CCNY 中的育成機構,提供新創公司訓練營、指導、慈善公益服務,以及能快速進行原型設計的設施。

Barnett 首次在課堂中引進 GCP 時,為學生出了一道練習題,要求他們思考如何在雲端平台實作傳統作業系統及應用程式伺服器的功能。他請學生思考:「自己在哪裡?」;是在容器還是虛擬機器中?該如何分辨自己是在特定伺服器上,還是分散式機器叢集裡?

學生可以自己選擇要使用 GCP 還是其他雲端技術供應商。Barnett 說許多選擇使用 GCP 的學生都表示 GCP 的教學課程直覺易懂,因此很容易就能開始匯入資料並建置應用程式,而且如果遇到任何問題,還可以向 GCP 小組和 CCNY 的教授尋求支援,讓專案繼續順利進行。

有些學生選擇使用 Google App Engine 並探索容器的運作方式,也有些學生在諸多教學課程中選擇其中一門,學習如何在 Google Compute Engine 裡建置應用程式。所有學生最後都學會如何使用 Linux 指令探索自己的虛擬機器 (VM) 或容器環境,以及如何使用 SQL 指令探索資料庫後端。

鼓勵學生從工程師的角度思考

Barnett 鼓勵埋首於研究雲端平台的學生試圖理解雲端的運作概念,並記住即使在雲端上,他們使用的仍然是實際的硬體。這些學生做的事情包括閱讀相關文章、觀看教學課程,並實驗在容器內外可以執行哪些操作,還有記下記憶體和 CPU 的用法,並設法瞭解虛擬儲存空間的提供方式以及系統如何取得他們的 IP 位址。

Nissan、James 和 Michael 這三位學生不僅完成了建立範例應用程式這項基本要求,「他們還匯入自己的存放區,建置了自己的應用程式。應用程式的運作相當順利,而且將 Google 服務當做工作環境使用的經驗讓他們都感到很滿意。」Barnett 說道。

瞭解雲端技術的原理及使用方法

如果老師鼓勵學生針對自己發現的問題提問,他們就能發掘出更多與特定主題相關的知識。舉例來說,在某幾次練習時,學生注意到應用程式的回應時間會因其所在位置 (英國或美國) 而異,因此他們必須進一步將實體運算資源的所在位置也納入考慮。另外,有一名學生在 Cloud 專案中實作了 GCP 的 MySQL 資料庫,並對這個資料庫進行探索,藉此瞭解系統檔案的儲存位置。

Barnett 鼓勵班上的學生去學習自己最感興趣的雲端技術。有些學生決定研究如何使用 Kubernetes 管理容器,也有些學生選擇在 MongoDB 中進行負載平衡的實驗;接著,他們彼此分享實作經驗,進一步瞭解各種環境。

「學生未來在實務工作上不會使用硬梆梆的金屬伺服器。雲端不僅是未來的大勢所趨,更是現在就必須掌握的重要技術。」

Peter Barnett, 電腦科學兼任副教授, City College of New York

進行實際可應用於生活中的專案

CCNY 中選修 Barnett 教授「大四專案」總整課程的學生,目前正在運用 GCP 實作正式軟體專案的後端部分;這些專案在科學、社會和創業方面都具有無窮潛力。

他帶領的五個團隊所進行的專案分別是:使用機器學習技術提升手寫字體的光學字元辨識度;協助健身教練、物理治療師及他們的客戶在運動時做出正確的姿勢並加以維持;用內容分析及機器學習技術加強專利搜尋功能;為地鐵車站和其他公共場所繪製內部結構地圖,協助視障人士在這些空間順利行進;透過會根據使用者意見回饋進行變更的 AI,產生半隨機播放的音樂。

這些專案大多是以內容分析和機器學習的形式使用 AI,GCP 則提供了 ML-Engine 和 BigQuery 等強大的 API 來支援這些專案。Google for Education 小組為 Barnett 的每個團隊提供大量的 GCP 使用時間補助金,協助他們進行開發和測試;這些程序目前都還在進行中。

提供親手實作的實際體驗

如要成為成功的電腦科學家,學生不但要學習理論,還必須學會實際運用現今職場實務上所用的工具。GCP 等雲端服務讓 CCNY 不必預先投入大量資金,即可使用最先進的開發人員工具和大規模雲端基礎架構,因此學生可以學習使用多種程式設計語言和雲端平台,包括 Python、Ruby、Sinatra 和 GCP。過去這些工具和程式設計語言對許多學校來說簡直遙不可及,因為他們的資源有限,無法提供這麼多種技術讓學生自由探索;GCP 讓使用者能夠以低廉的成本使用現代運算環境,還可以按照所有學生和科系的需求進行擴充。

Barnett 說:「雲端環境就等同於現代的作業系統;學生未來在實務工作上不會使用硬梆梆的金屬伺服器。雲端不僅是未來的大勢所趨,更是現在就必須掌握的重要技術。」

感謝你提出申請!

讓我們進一步瞭解你的興趣。