阿德萊德大學Master of Computing and Innovation個人選課簡介與學習心得
背景
筆者學士為生物相關科系,畢業後於台灣中型生物科技公司擔任研發專員,主要工作為實驗檢測及研發,期間有接觸並自學一些Excel巨集、數據清洗與生資相關的技能(R與Python新手),工作一年後申請上阿德雷德與昆士蘭大學的IT碩士學位(算是專門為轉職而開設的Coursework學程),考慮生活成本及工作機會,故選擇阿大的2年MCI課程,任職於IT諮詢顧問業。
選課建議
課程的評價及詳細討論可以在阿大Discord論壇搜尋到,大方向建議選課時先加入看看。對於此學程來說,75%以上為coding而剩下的為商業相關的課程(有點像資管),大部分(體感上約80%)的同學無程式背景,故第一學期為基礎必修課,難度不高,可以趁機了解一下自己是不是真的適合coding及自學(後面3個學期的必修及選修會用到之前沒學過的程式語言並會與學士生共同上課),第二及三學期為CS核心概念及專項(數據、AIML、資安等),最後一學期為專案專題(模擬業界敏捷開發一項應用程式)。

選課簡介與個人心得
COMP SCI 7202 - Foundations of Computer Science
- 必修:6學分
- 難度:低
- 實用度:中~高
簡介:課程內容會涵蓋基本的程式設計概念,如數據類型、迭代、功能分解、物件導向、類別的使用和繼承、簡單的搜尋和排序演算法、環境配置和工具、測試、設計樣式等。
心得:每週上課時講解並實作一項Java主題(聽聞前陣子改為python),基本上算是手把手教寫程式,每週都有程式作業加上兩堂助教課帶著練習,有定期coding小測驗,期末為上機考,整體而言只要按照課程進度學習,成績都會不錯。個人認為這堂課有個目的:篩選出能繼續讀下去的學生,因為這門算是整個學程最簡單的一堂coding課,如果無法適應,蠻多同學在第二學期轉專業或是學校;並且也用來確認學生有相應的自學能力,因為作業蠻常超出上課範圍的(當時還沒chatgpt/copilot),因此學會使用工具(google/stack overflow)找解法貴為重要。實用性上雖然沒有教框架、資料結構及演算法,但基礎概念對於本新手來說挺有用的,後續也發現閱讀如『The Pragmatic Programmer 20週年紀念版』或是其他技術部落格的樂趣。
ELEC ENG 7057 - Engineering Communication & Critical Thinking
- 必修:3學分
- 難度:低
- 實用度:低
簡介:課程內容為對專案進行可行性分析並撰寫文檔。
心得:全工程及IT的必修課,可以算是語言班,要求用英語溝通並撰寫專案分析(偏重工程類而非IT),評分標準就是按要求寫作及報告。實用性極低,目前用不到其內容。
PROJMGNT 5021 - Project Management Fundamentals
- 必修:3學分
- 難度:低~中
- 實用度:低~中
簡介:課程內容為專案管理的基本原理和策略。主要依據專案管理知識體係指南(PMBOK - 美國的 PMI)應用於項目上,涵蓋主題為專案範圍、時間、資源和品質管理、風險、採購、整合、利害關係人和溝通等。
心得:為商科類4選2的課程之一,主要是寫專案管理的報告。對於純developer來說實用性比較低(除非目標是PM或要考PMP會比較有用,實務上還是證照及溝通為主)。
COMP SCI 7081 - Computer Systems
- 必修:3學分
- 難度:中~難
- 實用度:中
簡介:課程內容偏向硬體學習,主要為電腦底層的介紹,涵蓋主題包括基本硬體的介紹、編譯器、組合語言、數位邏輯、內存、處理器、虛擬機和作業系統等。
心得:每週上課時循序漸進的介紹電腦底層的架構並搭配小測驗及作業(coding作業蠻花時間的),印象中還有上機考試,只要跟著進度學習這些系統運營的核心原理即可過關。實用性上在開發中運用機會不多,但了解這些重要的計算機概論對於日後學習有所幫助。
COMP SCI 7201 - Algorithm & Data Structure Analysis
- 必修:3學分
- 難度:中~難
- 實用度:高
簡介:課程內容為數據結構的介紹及應用,涵蓋主題包括程式開發技巧、複雜性分析、遞歸、列表、堆疊、佇列、集合、樹、雜湊表、圖和圖遍歷等概念。
心得:上課時會介紹演算法的基本概念並有3項演算法coding作業,個人認為對轉職者而言此門課需要花許多時間理解,並持續練習處理各種不同類型的資料結構。實用性上在面試中很高,尤其是大的科技公司常常考資料結構及演算法的coding(中小型印象中比較喜歡take home assignment如前/全端要求面試者刻出頁面或是用框架寫出一個小網站等),推薦反覆熟悉概念(能夠流暢表達)以及刷題。
COMP SCI 7064 - Operating Systems
- 必修:3學分
- 難度:中~難
- 實用度:中~高
簡介:課程內容為作業系統的介紹及應用,涵蓋主題包括資源管理、虛擬機、相斥、信號量、經典問題、僵局、流程調度、輸入和輸出、硬體和軟體控制、記憶體管理、多程序、虛擬記憶體 、分頁和符號分段、檔案系統、操作、性能、保護機制/域、存取列表和最小特權原則等概念。
心得:當時這門課就是按照教科書章節過一次,2個大作業(印象中一個是構建排隊系統)及期末筆試(60%),如果沒有另外查資料的話對於底層kernel到各種功能實現都會霧煞煞,建議針對各上課出現的理論花時間理解。實用性上目前沒有接觸到底層或是作業系統,因此比較偏概念上了解此知識而非實際運用。
COMP SCI 7039 - Computer Networks & Applications
- 必修:3學分
- 難度:中
- 實用度:中~高
簡介:課程內容為網路協定和數位通訊的介紹,涵蓋主題包括OSI模型、客戶端/伺服器、HTTP-web、SMTP-mail、UDP、TCP、路由、IPv4、IPv6、錯誤偵測/修正、存取控制、乙太網、ATM/MPLS、安全性和網絡管理等概念。
心得:上課時會介紹OSI模型的七個層及協議,內容非常多且期末考點複雜(幸虧有學長傳承的歷屆考古題),需要花時間熟讀各種網路傳輸的模式。實用性上目前沒有接觸到太多網路相關的業務,但其教授的基礎知識及延伸如WebSocket、IP及Wireshark等蠻有用的(發現IT support崗位對networking要求比較高)。
COMP SCI 7015 - Software Engineering & Project
- 必修:3學分
- 難度:低~中
- 實用度:低~中
簡介:課程內容以7-8人小組為單位開發項目,涵蓋主題包括軟體生命週期、需求分析/規範、環境配置、版本控制、整合測試和專案管理等概念。
心得:這門課立意為模擬職場上專案開發流程,但評分的重點有約一半為文件的書寫與總結,著重點在於溝通與協作,印象中本組的題目為類似復刻一個物流網站,雖然有完整的前後端及數據庫,但實際作業量約4~5個人即可完成,個人在此項目學習比較多的是前端框架應用、版控(git應用的重要性)及部署。實用性上反而是了解agile稍微有用,實務上多是scrum敏捷開發(Daily Standup Meeting已成為上班日鬧鐘lol)。
ENTREP 7022 - Creativity and Innovation
- 必修:3學分
- 難度:低
- 實用度:低
簡介:課程內容為創新和創造力的理論及概念。
心得:為商科類4選2的課程之一,主要評分標準是個人及團體寫作與報告。實用性極低,對於創新有興趣的讀者請閱讀本專欄的文章:創新的用途理論。
ENTREP 7036 - Digital Entrepreneurship
- 選修:3學分
- 難度:低
- 實用度:低
簡介:課程內容為數位創業的策略,涵蓋主題包括數位創業的歷史、數位創新的機會、互聯網如何影響創業競爭、如何透過網路獲取資源和建立業務。
心得:為商科類選修,主要評分標準是個人及團體寫作與報告。實用性極低(除非是想要了解用low/no code平台來推廣業務),對於創業有興趣的讀者請閱讀本專欄的文章:惡血:矽谷獨角獸的醫療騙局。
COMP SCI 7306 - Mining Big Data
- 選修:3學分
- 難度:中
- 實用度:中
簡介:課程內容為數據探勘相關的技術與演算法,涵蓋主題包括MapReduce、PageRank、推薦系統和clustering應用等演算法。
心得:這門課算是資料探勘相關課程的入門,印象中作業是要理解MapReduce設計想法並實踐如PageRank或Frequent Item等演算法,coding方面有些難度但為團隊作業。實用性普通(目前看Data方面的崗位還是要求python居多),Hadoop的運用及學習對於工作上有所幫助。
COMP SCI 7314 - Introduction to Statistical Machine Learning
- 選修:3學分
- 難度:中
- 實用度:中
簡介:課程內容為統計機器學習的入門,涵蓋主題包括統計機器學習中的基本原理如支援向量機、神經網路和深度學習、流行技術和演算法及其應用範例。
心得:這門課與AI皆為近幾年很夯的話題,作業是要從頭到尾實踐基礎的ML算法,故coding方面有些難度,期末筆試測驗題目多且為申論題,很有機會在規定時間內寫不完。實用性普通(回頭看選修可以學數據庫COMP SCI 7094 - Distributed Databases & Data Mining比較實用),對於了解基本原理蠻不錯的,但工作上多使用已開發好的套件。
COMP SCI 7098 - Master of Computing & Innovation Project
- 必修:9學分
- 難度:中
- 實用度:中
簡介:課程內容為軟體專案的開發和管理。涵蓋主題包括專案管理、軟體開發、測試和項目展示。
心得:這門課極度依賴自學,因為被分配到的隨機項目(不太清楚能否跟助教先溝通選擇特定項目)很有可能是從來沒學過的類別,當時是IOS app開發(羨慕別組為全端開發),從無到有以SwiftUI寫出一款應用程序(4人組但主力開發只有兩人...可以預先跟認識的朋友組一隊),評分內容為口頭報告、寫文件及最終演示(分數佔比沒有報告高),進度皆為小組自由與教授/助教安排時間討論,時間管理尤其重要。實用性普通,目前工作上沒有寫到手機app且每個sprint都會分配ticket並有refinement,因此課堂上的開發流程還是跟職場上多少有點出入,不過項目可改編用作作品集來源,時間安排如果在最後一學期的話也可以有較多時間準備求職履歷及面試。
總結與心得
整體而言在阿大的兩年間算是ok的學習體驗,遇到志同道合的朋友及熱心的同學,雖然蠻多課程偏學術而非實用,但基礎課程如資料結構、演算法及項目開發算是學到些技能,且這裡誘惑沒有大城市那麼多(阿村相對雪墨無聊),適合靜下心沈澱自學,最終也幸運的以GPA6畢業。雖然澳洲公司比較注重實際經驗而非成績(大公司grad program可能還是會篩選?!),但新鮮人實在難獲得本地公司的實習機會,想說只能儘量拉高分數來證明學習能力及自律性來說服面試官,也運氣很好的畢業半年左右入職目前公司。
如有任何想法歡迎留言討論交流。
Reference: https://www.adelaide.edu.au/course-outlines/