[心得] 伯明翰MSc. Computer Science Conversion

作者: jmss50894 (加味逍遙散)   2017-12-22 23:40:03
背景:CMU, Chinese Medicine(乙組)
我的留學過程有點曲折,我大概是大四開始準備留學,首先我要感謝眼科林醫師和
風管系蔡老師。大六醫院見習大概是我人生最黑暗的時候,當時要醫院工作同時準備托福
(我認為就英國的學校而言,考雅思比考托福有利,雅思的入學標準較容易達成),至少我
知道我的工作是有意義的,據說中國醫是少數醫院見習確實需要工作的醫院,後來大七發
生了事讓我成為反中義士又是另一段故事了。
我原本的打算是大六通過雅思,大七申請。但是後來晚了半年才考上中醫國考,而雅思的
效力只有2年,申請上的學校也不能再延期,需要在2015的時候重新申請(用新的雅思成績
),出國的時間整個延後。
我的英文並不好,即使到了第二學期後半,聽懂上課內容還是有困難,可以一句一句聽懂
,但是理解力跟不上說話的速度,再來是用英文記憶上課的內容不容易。
我考過雅思6.5,但是後來考上中醫國考的時間延遲了,因為雅思的時間效力問題,後來
是用另一次雅思成績6分申請上的。我是當過中醫師才出國的,我認為先工作對於知道要
學習什麼有幫助,但是這樣無法評估是不是不工作直接出國比較好。
Offer, 2015:
Accept: University of Birmingham, MSc in Computer Science(conversion)
Heriot-Watt University, Computing MSc
(Offer, 2013:
University of Birmingham, MSc in Computer Science(Conditional Offer)
University of Dundee, MSc Computing(Conditional Offer)
Goldsmiths,University of London, MSc in Computing
University of Nottingham, Information Technology Masters(Conditional Offer)
Newcastle University, MSc Computing Science(Conditional Offer, deposit of £
1500)
Heriot-Watt University, Information Technology (Software Systems), MSc
Diploma(Conditional Offer)
)
(有寫Conditional Offer的是附上畢業證書就好)
Reject, 2015:
University of Manchester, MSc in Computer Science
(Reject, 2013:
University of Liverpool, Computer Science MSc
University of Manchester, Information Systems: Organisations and Management
MSc
University of Bath, Msc Software Systems
Lancaster University, MSc Computer Science
)
和Bristol比,本系中國學生有十多位,然後是近200人的大班,多數學生是外國籍(非英
國籍)。可搭配 #1PJo9t8o 一起服用
首先介紹伯明翰生存的基本知識
Canvas:學校的電腦系統,上課講義、檔案(程式碼)、錄音檔、上課影片會放在這裡。交
作業也是使用本系統,個人頁面會顯示近期作業,或是由各科目進入每一項作業。科目:
資料庫曾使用本系統考試。另外還有一些英文資源與就職資訊。
這裡講一下3學期制:第1學期:9/19~12/14,第2學期:1/14~3月,3~4月:期末報告,5月有
1個月的溫書假,5月底~6月初:期末考(考試範圍是整年的科目),6月初~9月14:
MSc. project論文寫作
Software Workshop
最重的一門課,使用程式語言是JAVA。第3周起有助教時間,每2~3周有1道作業,每周要
進電腦教室實驗課。物件導向程式語言的特性,在於一個項目中可包含許多變數,比如說
建立一個類別叫銀行帳戶,其中可包括客戶姓名、電話、存款等數值。因為JAVA需要編譯
後執行,在講解完程式碼後,講師也會示範如何輸入電腦指令建立可執行的JAVA檔。第二
學期需要運用更多數學與邏輯,如樹狀圖排序與樹狀圖翻轉,遞迴,JAVA的網路應用。本
科目與資料結構需要用到一點對數。集合與繼承必考,若是有2個集合,<汽車>與<車輛>
,其中<汽車>可執行<車輛>的部分方法,則<汽車>是否繼承<車輛>?為什麼?答案為否,因
為<汽車>是比<車輛>還小的集合,且<汽車>中不可放入<腳踏車>,若<汽車>中放入了<腳
踏車>則破壞了<汽車>這個集合。
作業:每周會安排助教在電腦教室回答關於作業的問題,但是只回答一般性的觀念問題,
助教不會指導如何debug。
助教時間:小組討論當周教學內容的複習與預習,學校是希望由學生自主討論,但是本組
的進行方式是由助教主導,助教會一直針對程式碼提問。
期末小組報告:第二學期結束後要製作一個期限一個月左右的報告,內容是製作聊天室(
網路應用)與家族樹。
Software Workshop實驗課:在Linux上使用Eclipse實際撰寫程式,講師會按照講義的步
驟逐步講解撰寫程式碼的實例,部分程式碼可以從網路上複製,講師會持續講解直到所有
人實作到相同的進度。
Fundamentals of Software Engineering
本科目是必選課,至少須選一個學期,也就是下列2個選項2擇1:
(1)第一學期選Software Engineering
或(2)第一學期與第二學期皆選Software Engineering
Software Engineering是學習軟體開發流程與軟體生命週期,從了解使用者對軟體的需求
,從設計與實作階段,到debug與返回設計階段重複開發的流程。以及軟體的各元件對輸
入與輸出的反應,從使用者輸入指令到軟體回饋動作,各元件的統合與軟體如何完成工作
。本科目較不涉及寫程式。
各種不同的開發流程有各自的優缺點,如已知且已使用多年的軟體開發可使用water fall
模式,以節省時間。而常用的開發流程是Rational Unified Process。
期末報告:設計一個廣告系統,使用者包括商家、顧客與第三方驗證付款機構,商家可在
本系統發表各種活動,而顧客可使用搜尋、評價、留言等功能。
Human-Computer Interaction 人機介面設計
課程開始講師會介紹生活中的各種設計,像是路標、告示牌,以及其設計上的缺失或是引
起使用者的混淆。本課程的目標是設計出機械或電腦上,美觀與可利用性高的操作介面。
良好的人機介面特性包括可直觀使用容易理解,不需加註說明亦能理解的介面,針對各種
潛在使用者(老年人、殘障等)皆適合的設計,容易返回前一個階段的操作,同屬性的功能
外觀設計需有一致性,操作錯誤時能夠容易修正。期末報告長度約30頁,需包含3位
persona,也就是訪問3位潛在使用者,並分析使用者對系統的各種需求,並撰寫使用者
的操作劇本scenario,像訂車票的功能需要考慮時間、路線,或是操作ATM可能發生的
錯誤。
Introduction to Computer Science
課程先從一般的進位開始,電腦的記憶體管理,讀取資料的程序,程式碼各單元的意義與
電腦的運算步驟。bytecode是一串程式碼中,逐步分析電腦對各物件的理解,以及進行四
則運算時所存取的步驟,各運算元的存取位址。其中作業包括撰寫一篇文章:電腦在你的
領域帶來的衝擊,以及bytecode的撰寫。各科在期末考前有一堂課的總複習(應考要點)
,必須要對假想電腦的存取步驟等及bytecode很熟悉才能作答期末考。
資料結構
講師會一邊寫在A4紙上並一邊教學,同時把A4紙的內容投影出來。本科目會介紹各式處理
資料的方式與其時間成本,像是數列排序,二元樹數列排序。及一個虛擬地圖,在地圖上
前往各個點間需耗費不同成本,如何在最少的成本內通過所有的點。本科目會使用指數與
對數。
Operating Systems and Networks
電腦的基礎架構,作業系統如何使用各元件內的資源,為何寫程式要使用
API(Application Programming Interface),記憶體管理:其中的paging會考,是一種如
何在原有的記憶體位址中,而可對應至更多儲存記憶體位址的方法。Kernel的功能,網際
網路,無線網路的IP分配,密碼學。作業:繼續完成一個聊天室的功能,會提供部分功能
的程式碼(使用JAVA)。由於本科目值得考的地方不多,可以熟讀上課強調的地方。
Fundamentals Databases
講師是義大利人,講的英語很不容易聽懂,有實作課。資料庫是處理各種表單間的關係,
而達到儲存最少的資訊達到最大的效果與效率最高(可只更新表單中的一個值而不用手動
更新很多次具有相同意義的值) 。運用集合論中的交集或聯集等方式傳回表單間的值,2
個表單間,其中1行的值是另一個表單的索引,常見問題像是船員與船,請找出船編號為
103的船員,另外的問題像是請列出在2003年具有成績為10名內車手的車隊。使用程式碼
提取資料庫中資訊是考試內容,學期後半會學到使用各種數學符號來表示表單間的關係,
會用到很多少用的希臘符號,容易不知道他在唸甚麼。實作課:運用存在學校內的表單,
表單中是各教師與教室或開課的關係,實際傳回問題,像是請找出所有叫做Bill的講師在
2010年所開的課程。期末考是筆試,期中考原本的規劃是上機考,但是由於沒有足夠大的
教室,所以變成學生自行上網(Canvas)考試,這時就是考驗個人誠信的時候了,不過我是
沒有見到別人的誠信如何。
以下附上資料庫符號對照表
Ψ : sai
ρ : ro
∀ : for every (本行開始是意義)
∃ : exists
σ : operate
: not
https://i.imgur.com/TBlgxWj.jpg
AI
前期的上課內容是與課本相同,一開始是AI應用問題的簡介,然後是地圖問題,各種不同
的搜尋方式有不同的時間複雜度與空間複雜度。會教機率與條件機率,高中的機率足夠應
付,但是他把條件機率教得很複雜。還有一個模擬角色扮演的遊戲,地圖上有寶物與怪獸
(類似即死的陷阱),如何找出獲得寶物與避開怪獸的最佳路徑。有作業與考試,作業包括
設計一個旅遊助手或足球遊戲AI,回答設計理念即可,不須程式碼。
選修課: 統計學,
Machine learning, Neural Computation, 密碼學(這一行的科目我並沒有選,參考就好)
統計學
共有2堂課堂教學與2堂實作課(電腦教室)。研究使用各種電腦工具是否對人的工作或知識
等有正向的影響,像是機器人是否能教兒童下棋(是否優於人類教師) ,使用臉書對情緒
的影響。單側t檢定或雙側t檢定等方式計算實驗是否具有顯著差異,中央極限定理
(Central Limit Theorem)必考,會推導部分統計公式,講師是希望學生能夠完全掌握從
實驗設計開始到選擇公式等,但是經常無法辦到,所以考試時是用引導情境的方式,考試
有計算題,R語言也是考試內容。實作課:一開始先講解今日學習範圍等,接著大部分的時
間由學生自行操作,使用R軟體按照講義的步驟計算各種統計值或作圖,可隨時向助教提
問。我是因為講師講得的英文口音最容易聽懂才選這門課的,自己也學過生物統計,但是
選這門課的成果似乎沒想像中好。
Machine learning
所有使用電腦都涉及由使用者輸入資料,由電腦計算後再由使用者取得資料的過程。在此
以Supervised learning為例(在AI還會提到此觀念)。會用到條件機率,以疾病和診斷工
具(檢查是否呈現陽性)為例,教了真陽性與偽陽性等的計算,由過往的觀測資料建立假說
,當新的資料輸入時,以此假說來分析預測。
本課程會用到向量。
Neural Computation
將電腦以類似神經元的方式連結,來提升運算的效率或使用不同的演算法,具有較強的克
服運算錯誤的能力。Neural Computation是Machine learning的一種(在AI課程會稍微介
紹此觀念),運算的單元叫做Artificial Neurons。應用:協助兒童發展,模擬人腦工作
,語言或字體辨識,金融,氣候。
密碼學
和其他科目比,需要使用更高度的數學觀念(依Operating system的內容,是使用指數等
計算來算出對應的key,根據電腦的運算試誤速度然後加上非常長的時間也無法破解的密
碼,這樣的複雜度被認為是良好的密碼)。
MSc project, 論文
首先由Canvas進入學校網頁,可看到各導師的專長與研究內容,可與各導師討論研究方向
,之後選擇導師的志願序,學校會依此志願序安排導師。1周須與導師1次meeting,學期
中會有第二導師評估當前進度與指導要點。重點是導師不會教你東西,每周導師會告訴你
有什麼需要改進,以及下周需要呈現什麼東西,我的狀況是開始會有一段學習期,之後就
要開始寫程式碼,最後是成果發表與程式展示。另外須將程式碼上傳至學校的版本控制系
統,課程的要求是每次更動程式碼都須上傳(我是沒有做得如此頻繁)。
就職
第一學期校內會有金融商管或資訊類的就業博覽會,詳細時間會公布在網路上,電資系上
也有自己的資訊類就業博覽會,像是IBM,英國微軟等公司,就是要對該公司有很深的了
解才去問,不然容易看不到東西,職缺常分成internship和正職。學校有自己的求職網,
可以依領域設定自己感興趣的產業,或是設定有感興趣的職缺時讓系統發信給自己。進入
該公司的職缺網站後,常需要設定求職的帳號(或是就業網的帳號),有的公司還會進行線
上測驗,回答一些工作的情境題,像是工作遇到問題要找同事還是找主管,或遇到潛在客
戶時的反應等,可能有標準答案,只是我沒想到。
生活篇 銳力撰寫中

Links booklink

Contact Us: admin [ a t ] ucptt.com