格拉斯哥大學 軟體開發碩士(MSc in Software Development, University of Glasgow) 2023 fall 第一學期課程心得分享

Ophelia.C
16 min readJan 20, 2024

--

因為網路上介紹我們系課程的資訊有點少,所以上完第一學期想跟大家分享一下詳細課程內容,另外一個MSc in Information Techonology的課程第一學期也是同樣的,可以參考,在猶豫兩個系要選哪個的可以直接看轉系規定的部分。

學程架構
課前準備
落地英國後行程
第一學期課表(全部都是必修課)
COMPSCI4039 Programming (IT) 2023–24
COMPSCI5076 Database Theory and Analytics (IT+)
COMPSCI4043 Systems and Networks (IT) 2023–24
COMPSCI5077 Enterprise Cyber Security M - 2023–24
COMPSCI5059 Software Engineering M - 2023–24
▼ 轉系規定
▼ 選修課時機點
▼ 考試時程
▼ 課外活動
▼ 周遭環境

▼學程架構

▼ 課前準備

建議可以先去W3School預習Java跟PostgresSQL語法(這是學校email建議的),除此之外就是看你來念這個programme的目標
1. 在英國求職 : 準備求職CV、寫side project、刷leetcode。
2. 想拿distinction畢業、打好學術基礎:可以上CS50、CS 61B這種打基礎的課程,或是搭配待會提到的課程架構挑不熟的地方預習。
要準備什麼電腦?
基本上,mac跟windows都可以,只有system and network這堂課run assembly language 的軟體是只能在windows上執行,mac 需要用虛擬機或是去學校lab用lab的電腦,學校圖書館也可以借筆電,最多可借4小時,但我沒借過不確定借出來是什麼牌子的。

▼ 落地英國後行程

我是在2023/9/2(配合住宿可入住日期)抵達Glasgow, 前三天都是不停採買各種生活用品,第一週基本上都在熟悉環境、辦理BRP、學生證、註冊GP、牙醫、銀行開戶等雜事。

Week 0– Fresher Week(Welcome Week) 9/11–18

雖然官方課程開始時間是記載從9/11開始,但我們系是從9/18才正式上課(有聽說其他學院是9/11當週就有課,因學院而異(不同學年日期也會不一樣)。

到9/18之前都有很多迎新活動,例如校園巡禮、迎新舞會(特別推薦蘇格蘭舞cèilidh的舞會,來蘇格蘭應該要體驗一下! 學校經常有辦類似活動,不需要舞蹈底子即可參加)、迎新野餐活動、社團試聽課可以參加,我當時有參加滑雪社、騎馬社、帆船社、啦啦隊等等的體驗活動,幾乎都是免費的,或是可以用較便宜的價格試聽,可以到學校SRC官網 (類似學生會組織)上查有什麼活動,這週應該會是整個學期玩得最瘋的一週,學校健身房也會免費開放一週,之後參加運動類社團都是要繳健身房會費的,學校社團也通常是要另外再收會費,這些都不包含在學費裡面。

9/14有一堂課程介紹,講解如何選課(但其實系上已經幫忙選好課了,主要是再次檢查是否選到足夠畢業學分以及是否有想更換lab課程時間)

上課時間、地點常常會變動,可能同一堂課不同週換時間或地點,上課前需要在UofG Life的app查詢確認,也有教室建築地圖指引。

▼ 第一學期課表(全部都是必修課)

COMPSCI4039 Programming (IT) 2023–24

課程安排:

一週一堂2 hr Lecture 一堂 2hr example Lecture 一堂 2hr lab
lab有三個不同時段可以自由選擇時段參加,會點名,有助教可以問問題,但不知為何這堂課的助教替換率有點高,常常每週都是不同人,助教也很容易不知道我們在幹嘛(提問需要重新跟他解釋一遍我們的作業要求)或在旁邊滑手機,某部分的助教感覺不太認真或是不太想回答問題,應該都是PhD學生擔任,但素質有點參差不齊。

課程內容: Java 基礎

教授:
一個蘇格蘭男教授跟一個美國女教授輪流上課,我比較喜歡美國女教授,除了發音比較習慣,也感覺比較認真備課,蘇格蘭男教授上課常常解題解到一半卡住,或是小考考卷出錯,但人很友善,問他問題也很樂意回答,只是不知道為何常常不在狀況內。

環境配置:學校推薦使用Eclipse,但其實沒有硬性規定,所以我後來還是用IntelliJ,可以自由選擇自己習慣的。Java JDK版本只要不是太舊也不影響課堂練習跟作業。

Week1整周都是Programming這堂課,上Java 很基本的variable type跟加減乘除之類的,對有基礎的人來說有點太簡單,可能會感覺很無聊,後面才會慢慢加深。
第一週結束以後有個很簡單的多選題quiz佔學期10%

第二週開始會是正常schedule。

Week 1 — Intensive Week
Introduction & Hello World
Variables, methods, and scope
Comments, conditionals, and input
Loops and String formatting
Week 2 Objects Part 1
Week 3 — More on Java Classes and Objects
Week 4 — Arrays
Week 5 — File IO and Exceptions
Week 6 — Revision Lecture
Week 7 — Writing GUI Applications using Java Swing
Week 8 — Interfaces, Generics, and ArrayList
Week 9 — Swing Continued
Week 10 — Algorithms, Complexity and Recursion
Week 11 — Key Concepts Revision

評分方式:

● four assessments for this course

○Moodle Quiz at the end of Week 1 10%
考第一週教的內容 多選題線上測驗
○Assessed exercise: released Week 3, Submit in Week 8 25%
一個Battleship小遊戲,約由8個class組成,練習熟悉OOP特性、基本的語法
○Moodle quiz in Week 10 15%
範圍是整個學期教的內容,也是很簡單的多選題線上測驗,指定時間完成可以在家做
○Exam in December 50%
到lab現場考,簡答申論題,寫code居多

我覺得這科是最簡單的一科,考試也只佔50%。

COMPSCI5076 Database Theory and Analytics (IT+)

課程安排:

課程內容: 資料庫正規化理論、SQL語法、NoSQL 理論
一週一堂2 hr Lecture + 一堂 1hr lab(我自己無法在時間內寫完所以通常回家得額外花時間再補寫)lab有三個不同時段可以自由選擇時段參加,會點名,有助教可以問問題,這堂課助教比較熱心,有備課。
教授: 一個希臘男老師口音很難懂,不太回復email,上課時有教學熱忱,不過可能因為身兼系主任很忙。
解法: 自己上YT找相關tutorial看、問lab助教

環境配置:
PostgresSQL, 可以連學校遠端電腦,或是載到local端或是用Docker

Part A: Relational Database Design (4 weeks)

  • Lecture 1: Contextual Database & Conceptual Modelling
  • Lecture 2: Relational Modelling
  • Lecture 3: Functional Dependency (1NF; 2NF)
  • Lecture 4: Normalization Theory (3NF; BCNF)

Part B: SQL (3 weeks)

  • Lecture 5: Basic SQL (Part I)
  • Lecture 6: Basic SQL (Part II)
  • Lecture 7: Advanced SQL Analytics (Part III)

Part C: Optimization & Advanced Topics (3 weeks)

  • Lecture 8: Relational Algebra
  • Lecture 9: Heuristic Query Optimization
  • Lecture 10: Big Data Systems (NoSQL) & Analytics

評分方式:

Individual Assessed Coursework: 20% 
SQL 語法作業,給兩個dataset按照題目要求寫Query再畫成圖,做ppt寫insight分析。

Exam: 80%

COMPSCI4043 Systems and Networks (IT) 2023–24

課程安排:

課程內容:組合語言(Sigma16)、作業系統、網路

一週一堂2 hr Lecture (但老師以tutorial方式進行,以回答問題為主,Lecture錄成影片自己回家看,有問題再去課堂問問題),沒有lab

教授: 一個蘇格蘭熱心男老師,回答問題很仔細有耐心,會講到你聽懂為止,回email也很快,可以寄信問他問題,或是跟他約meeting時間,每次上課都很鼓勵大家問他問題的可愛老師,超喜歡他。

環境配置:
需要安裝一個可以run Sigma16(一個教學用的Assembly language)的軟體,只能run在windows上

Section 1 : Introduction
Section 2 : Binary Codes
Section 3: Basic Computer Architecture
Section 4: Instructions
Section 5: Assembly Language Programming
Section 6: Control Structures
Section 7: Arrays
Section 8: More on Sigma 16
Section 9: Operating Systems
Section 10: Memory and the OS
Section 11: Computer Networks

評分方式:
Assessed Coursework (20%): one exercise (programming) handed out in November:
用assembly language寫一個簡單小程式,大概就是一個包含array跟for loop的function,先依照題目要求,翻譯成high level language以後,再自己翻成Sigma16
Examination (80%) in December. 簡答申論題, lab現場考試

COMPSCI5077 Enterprise Cyber Security M — 2023–24

課程安排:

課程內容:很廣,從雲端架構、雲端服務、商業分析模型、風險評估、法律GDPR等等都涵蓋。
一週一堂3 hr Lecture ,沒有lab
教授: 一個蘇格蘭男老師,大部分人不喜歡他,因為講話很繞,沒有重點。給分也不甜,技術含量很低。我不是很喜歡這堂課,因為我感覺很浪費時間又學不太到東西。應該可以說是一堂若非必修大家都想退掉的課。(但還是有少數人喜歡,因為不用寫程式)

環境配置: 不需要安裝任何軟體不用寫程式,只要有word可以打報告就行。(學校有免費的office 365)

評分方式:
每週上課前一天要看完一篇paper完成小考
有一個小組報告,是分析一家公司的資安顧慮(concern)跟風險評估(risk assessment)還有擬訂對策(policy)

COMPSCI5059 Software Engineering M — 2023–24

課程安排:

課程內容:主要教Agile概念還有工具
第一學期後半才加入的線上課程,一週一堂2 hr Lecture 以Zoom進行, 第一學期沒有lab,課堂中會有小互動遊戲。

教授: 一個土耳其女老師,上課蠻有耐心回答問題的,回email也很迅速。

環境配置: 不需要安裝任何軟體不用寫程式,只要有word可以打報告就行。(學校有免費的office 365)

評分方式 :

Assessed Exercise 1 (AE1): 10% (第一學期只有這個報告)
報告內容是給一個校園軟體開發需求,給定一段敘述,各組從中分析需求寫出user stories、使用Trello模擬軟體開發流程、計算所需開發時間等,不用寫code實現

Assessed Exercise 2 (AE2): 20% (第二學期才做)
Exam: 70%(第二學期才考)

▼ 轉系規定

格拉有兩個給非本科轉專業的科系( conversions from non-CS disciplines )MSc IT and MSc SD以及兩個給CS背景的人申請的MSc DS和MSc CS,在符合條件下可以轉系。

IT+ Programmes (MSc IT and MSc SD)互轉:

MSc IT and MSc SD,第一學期都是一起修課的,在第一學期結束前可以(before Week 17)透過系主任轉系,MSc IT轉MSc SD無明文條件,但MSc IT轉MSc SD需要參考programming課程表現,因為第二學期SD有兩堂必修

COMPSCI5002 Advanced Programming
COMPSCI5004 Algorithms and Data Structures

但這兩堂MSc IT學生也都可以修,所以我感覺這兩個系課程上沒什麼太大的區別,可能單純是學校想多招學生所以多開一個系(?

如果在猶豫這兩個系要選哪個的,可以考慮你想不想修上面這兩堂,如果確定不想的話可以選MSc IT,因為選了MSc SD 這兩堂課就是必修,其他再選兩堂選修,IT選課比較自由(有四門選修課),我之前是因為確定會選這兩堂課,就選了SD,主要區別在於第二學期的選修課,第一學期的課程都是共通的會起上課,除了課程以外就是看你覺得哪個系名比較好聽(?)而已吧XD。

IT+ 轉CS+ Programmes

需要在第二週結束前寫Email給 MSc DS Programme Director或 MSc CS Programme Director
條件: Strong CS background is required

CS課程可以選的課比IT+兩個科系廣,但學校建議如果想走ML要選DS不要選CS,不過我沒有Strong CS background也沒有考慮轉過去這兩個科系。

▼ 選修課時機點

  1. 第一學期前選課,會收到一個表單,填好送出系上會自動幫忙安排。建議是此時選好,因為有些比較熱門的課會需要排waiting list(但後來應該都有釋出名額)
  2. 第二學期前選課,到第二學期第二週都還可以加退選。

▼ 考試時程

第一學期期末考:December 2023

第一學期考題都是簡答題形式,有寫Code也有小申論題
考試方式是open book 可以帶自己的筆記、書、字典,但不能帶計算機,也可以打開moodle中的課堂講義,有一個wiki介面讓你放電子筆記,但要提早熟悉筆記方式,限制只能用html格式上傳,而且作答時間幾乎是寫不完的,所以沒什麼時間看,只能當作記憶輔助。

第二學期期末考:April/May 2024
補考時程 Resits in August 2024 (band D1 or lower overall)

以下是補考規定:

▼ 課外活動

推薦 : hackathon、技術型的workshop,可以放上CV或是了解新的技術,順便認識同學。

參加完社團博覽會以後,訂閱有興趣的社團的IG或discord等social media帳號,就可以得知相關資訊。
我比較常參加的是GDG GlasgowGlasgow University Tech Society的活動

不太推薦:career fair、networking event
一開始很熱衷參加太多了,適度就好,因為實質幫助不大,除非你是很擅長聊天的人可以要到內推或是直接拿到面試機會,否則我會覺得回家刷題+海投比較實際。
因為儘管有加到connection但我覺得通常會場都很擠,也沒太多時間深入聊天,當然有心可以回家再follow up,但我覺得獲得的資訊跟上網海投差異不大,他們也只是給你QR code要你回家apply,除非真的有你很心儀想深入了解的公司再去看看。或甚至直接在Linkedin上約Coffee chat可能效益會比較高(但我還沒嘗試過)。

如果真的想參加 eventbrite可以找到很多,學校career center也會大概1學期辦2–3場。

其他娛樂性質的社團後來就沒時間參加了,有餘裕的人可以自行參考SRC網站。

▼ 周遭環境

購物或交通可能不如倫敦方便,但我覺得是麻雀雖小五臟俱全了,市中心跟網購基本上可以滿足生活所需。只是可能不太適合很愛逛街的人。
但很適合喜歡自然的人,附近有很多簡易健行步道、公園(Pollok park可以看高地牛)、搭火車1 小時就能到濱海小鎮Greenock , Irvine, Troon, Helensburg之類的,還有很美的Loch Lomond,晴天出門曬太陽很舒壓(雖然晴天不多XD)。

最後以一張漂亮的Loch Lomond誘惑大家~~希望這篇文章能幫助到對這個學程有興趣的人。

--

--