最近幾年大火的專業(yè)恐怕非CS莫屬了。
入學(xué)的分?jǐn)?shù)從前幾年的不高的分?jǐn)?shù),漲到了幾乎要滿分才可以進(jìn)。
剛上完CS1010(曾經(jīng)的入門課),覺得自己簡(jiǎn)直是天才。再繼續(xù)上數(shù)據(jù)結(jié)構(gòu),覺得自己智商堪憂。剩下的時(shí)候,不是在error/warning的煎熬、懷疑人生,就是在debug完覺得全世界如此美好的開心中度過(guò)了!
程序員的快樂(lè)就是這么簡(jiǎn)單!
no warning no error
入學(xué)條件
很明顯。清一色的AAAA(假設(shè)GP C和PW C)。能進(jìn)來(lái)的都已經(jīng)很厲害咯。
而bell curve會(huì)繼續(xù)在大學(xué)存在...只有top x%的人會(huì)拿A,也會(huì)有bottom x%拿不太好的成績(jī)。所以壓力真的很大。
推薦想讀這個(gè)專業(yè)的學(xué)弟學(xué)妹們假期就開始學(xué)(不過(guò)話說(shuō)回來(lái),最后一個(gè)假期好好放松叭..糾結(jié)如我)
畢竟有很多人是初中高中就開始參加比賽了。如果開學(xué)前不自己抓緊的話,小心會(huì)被虐。
準(zhǔn)備讀之前。問(wèn)下自己是真的喜歡碼代碼/ 用這個(gè)工具創(chuàng)造價(jià)值嘛?還是為了目前比較高的薪資?
不然被虐的時(shí)候,真的會(huì)懷疑人生的。
項(xiàng)目設(shè)置
除了正常的學(xué)業(yè)之外,還有一次6個(gè)月的實(shí)習(xí)要求。
另外,國(guó)大還提供了特有的NOC(NUS Oversease College)的機(jī)會(huì)。
簡(jiǎn)單來(lái)說(shuō),就是全職去一家創(chuàng)業(yè)公司實(shí)習(xí) + 上課。包括程序員心里的圣地硅谷哦!
就業(yè)前景
目前來(lái)說(shuō)行業(yè)里蠻缺人。薪資也是水漲船高。
CS的就業(yè)率達(dá)到了93%。不能算高。但也不低。
如果系里按1000人來(lái)算的話,大概有930人找到的全職工作。
月薪來(lái)看,中位數(shù)在5000新幣,平均數(shù)為5571新幣。作為初入職場(chǎng)的畢業(yè)生來(lái)說(shuō),真的很高很高了。
但這是目前的薪資水平,現(xiàn)在畢業(yè)的這一屆,當(dāng)時(shí)一屆才300/400人,那時(shí)候SMU也還沒有CS專業(yè)。而未來(lái)的SOC畢業(yè)生講達(dá)到1000人。
而且職場(chǎng)中還在各種傳言青春飯,35歲就被辭退了。不過(guò)這種事吧,看你怎么看了。畢竟90后至今還沒有活過(guò)30歲的。是吧。
另外如果以后想走engineer路線,不搞科研的話,是可以拿一些“水課”的。多做實(shí)習(xí)是王道。但如果真的想走科研,就找教授多做點(diǎn)科研,寫paper參加會(huì)議叭!
課程設(shè)置
和其他專業(yè)一樣,畢業(yè)需要160個(gè)學(xué)分左右。每門課4學(xué)分左右。所以畢業(yè)一共需要40門課。
這40門課是這么劃分的。
32學(xué)分(8門課):純選修課?梢詮娜我鈱W(xué)院選課。
20學(xué)分(5門課):大學(xué)公共課。就是培養(yǎng)情操的。
108學(xué)分(27門課):專業(yè)課。
大一專業(yè)必修課
CS1101S Programming Methodology
入門課,曾經(jīng)CS專業(yè)學(xué)生是用C/Java起步的。現(xiàn)在國(guó)大改為了用JavaScript。如果把這個(gè)比喻為學(xué)習(xí)英語(yǔ),就是學(xué)一學(xué)基礎(chǔ)的語(yǔ)法,大概知道怎么寫。
其他可以替代這個(gè)入門課還包括CS1010(用Java入門)/CS1010E(用C入門)/CS1010S(用python入門)
CS1231S Discrete Structures
比較偏向數(shù)學(xué)的一門課,各種邏輯/證明/數(shù)學(xué)模型(線性/樹/圖)集合什么的。對(duì)以后的CS3230有幫助。
其他可以替代這個(gè)入門課的還有CS1231和MA1100(數(shù)學(xué)計(jì)算機(jī)雙學(xué)位的會(huì)拿這個(gè)).
CS2030S Programming Methodology II
CS1101S的后續(xù)課,用Java講。主要講基礎(chǔ)的OOP(面向?qū)ο蟮木幊蹋┖虵uncional Programming(函數(shù)式編程)。同樣用英語(yǔ)的類比,這個(gè)大概就是知道了如何寫高級(jí)的英語(yǔ)寫法。
CS2030可以替代這門課。
CS2040S Data Structures and Algorithms
數(shù)據(jù)結(jié)構(gòu)和算法。用Java來(lái)講的。這個(gè)講計(jì)算機(jī)最基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu):鏈表、堆、棧、哈希表、樹、圖。如何用最快(最省時(shí)間)或者最省空間(內(nèi)存)的方法來(lái)解決一些實(shí)際問(wèn)題。
CS2040/CS2040C(用C++)可以替代這門課。
CS2100 Computer Organisation
據(jù)立思辰留學(xué)介紹,這個(gè)是計(jì)算機(jī)專業(yè)學(xué)生最底層的一門課(再往下就是電子電器工程學(xué)生接觸的了,就是硬件了)。會(huì)接觸到C語(yǔ)言以及如何二進(jìn)制如何轉(zhuǎn)化等等。還會(huì)接觸一個(gè)assembly語(yǔ)言。
大二專業(yè)必修課
CS2103T Software Engineering
軟件入門課。學(xué)一些軟件開發(fā)的工具,比如git、如何做軟件OOP的設(shè)計(jì)、怎么做測(cè)試、如何畫UML圖。會(huì)有一個(gè)小項(xiàng)目,然后互相找bug。一群人互相找bug的現(xiàn)場(chǎng)歷歷在目啊。太可怕了!
CS2105 Intro to Computer Networks
網(wǎng)絡(luò)入門課。講講互聯(lián)網(wǎng)、網(wǎng)絡(luò)的幾層結(jié)構(gòu)、DNS/socket/協(xié)議等等。
CS2106 Introduction to Operating Systems
操作系統(tǒng)課。嗯。并不是讓你設(shè)計(jì)Windows的。講了講最最基礎(chǔ)的一些概念。比如系統(tǒng)的結(jié)構(gòu)、現(xiàn)成、內(nèi)存管理、并發(fā)、文件系統(tǒng)。
CS3230 Design and Analysis of Algorithms
可以算是CS2040和CS1231的延伸。把算法的內(nèi)容更上一層樓。
大三大四專業(yè)課
這時(shí)候就要選擇自己的方向(focus area)了。
國(guó)大分了一下10個(gè)方向:
1.Algorithms & Theory
算法
2.Artificial Intelligence
人工智能
3.Computer Graphics and Games
圖像和游戲
4.Computer Security
安全
5.Database Systems
數(shù)據(jù)系統(tǒng)
6.Multimedia Information Retrieval
多媒體信息檢索
7.Networking and Distributed Systems
網(wǎng)絡(luò)
8.Parallel Computing
并行計(jì)算
9.Programming Languages
程序語(yǔ)言設(shè)計(jì)
10.Software Engineering
軟件工程