自2018年初,IT&CS被合併成一個學位,Advanced Computing,也正因為如此,這些專業的課程也都因此發生了很多改變。大部分課程還都有著COMP, DATA, INFO, ISYS或SOFT的前綴,但後綴以及課程內容都發生了較大的改變。
作為雪梨最大的學術交流平臺,這篇文章小編會詳細為大家分析雪梨大學下半年(Semester 2)與IT&CS大二學子們會涉及到的基本課程。課程解析包括其教學內容,老師怎麼樣,考試技巧,整體難易程度,以及學長學姐們的學習心聲。
2020年步入第二學期的大二IT&CS童鞋們
必讀必收藏!
COMP2022: Models of Computation
DATA2002: Data Analytics: Learning from Data
ISYS2120: Data & Information Management
SOFT2412: Agile Software Development Practices
對於上述涵蓋科目,
所解析內容包括以下幾點:
1. 小編前言
2. 課程簡介
3. 老師介紹
4. Assessment內容 & 得分技巧
5. 難度分析
6. 學長/學姐建議
本文章約8000字
因內容較多篇幅較長
建議需要的同學們收藏併合理安排閱讀
如果同學們在看完後還有疑惑
或者需要了解其他專業和課程
可以掃描下方二維碼加小助手微信
拉您進入各學科大群一起討論的鴨!
註:每學期課程存在變動,僅供參考
*原創版權,請勿轉載/抄襲
這門課是好好學就可以拿到不錯分數的一門課. 考試難度友好, 平時作業有趣. 對代碼功底有一定的要求。
這門課分為三個比較獨立的模塊:
1. Lambda Calculus
2. 形式語言與自動機
3. 基礎邏輯(Logic)
第一部分:
Lambda Calculus介紹一種函數式編程的概念,但是更偏向數學一些。
第二部分:
Formal Language會介紹各種狀態機,同樣會非常數學。這一部分是課程中最重要也最難的部分,每一章會介紹一種不同的狀態機,細節和技巧極多,需要多練Tutorial。考試非常考驗手速和套路,所以需要熟悉熟悉再熟悉知識點。
第三部分:
Logic,相對最簡單的一部分,如果有同學選修過PHIL1012則會更加簡單。有一個可以兩人一組完成的證明作業,幾乎人人可以拿到80%以上的分數。
Joseph Godbehere 是一位專長數學,算法方面的的老師,人稱J God。他非常友好,幾乎有求必應,上課語言清晰,資料豐富,幾乎所有學生都喜歡他。他本人也是tutor,有機會可以積極去他的課蹭課。他也是2年級的COMP2022/2922的Coordinator。
Tutorial Quiz (9%)
10-15分鐘內完成,10選8,共佔9分。每一周會考上一周的知識點,一般是兩三道小題,不會是純文字的概念題。
Assignment (31%)
一共三個Assignment,對應三個Topic。在前兩個作業中,理論報告的正確性佔60-80%左右,編程實現佔20%-30%左右。第三個作業則是證明題,幾乎都可以拿到80%左右的分數。
第一部分:Lambda Calculus的這個Topic的Assignment佔總分的百分之十。這個比較考驗你是否會用遞歸的思想來編程和設計數據結構,所以對Recursion感到苦手的同學需要稍微加強一些練習。如果平時有勤練數據結構與算法題的同學則會覺得簡單。
第二部分:Formal Language有一個比重佔16分的Assignment。2018年的作業內容是關於「上下文無關文法」(context-free grammar。幾乎所有程式語言都是通過上下文無關文法來定義的),是一個相對有挑戰性也很有趣的作業,需要有一定的編程能力,report也需要表達清晰。
第三部分:Logic,相對最簡單的一部分,有一個可以兩人一組完成的證明作業,只佔總分的5分。只要證明完成就可以拿到4分,所以幾乎人人可以拿到80%以上的分數,而剩下的最後一分則在於證明長度——只有整門課證明最短的人才能拿滿這一分。據小編所知,最堅韌不拔的同學連著寫了兩個星期,每天兩小時,試圖讓證明更短。小編建議大家練習到位了就可以,不必強求死磕這一分榮譽分。
Final exam (60%)
Final的總難度不大. 2018年是改革後第一年, 所以題型的穩定性不可知。Lambda Calculus佔了第一道大題, Formal Language的每一個sub-topic也會有一道大題, 而Logic有2道大題.,一道題佔卷面分比10-20%不等. 每道大題都由很多個2-3分的小題構成, 遇到不會的可以跳過一些, 由基礎到難慢慢build up。Final最難的題也是比tutorial裡的同類型題簡單的. 但是題量很大, 所以需要熟練的思路和手速, 切忌僅僅考前臨時抱佛腳。
這門課Pass到Credit完全不難,這是J God一貫的風格。而想要拿Distinction,需要跟緊練習,不懂得要及時搞懂。想要拿HD,建議把Tutorial至少做三遍(Final前至少刷一遍)保障手速。
如果做到這樣「三刷Tutorial」,基本就是HD或者至少80+的Distinction:
1. 基於時間限制和眾多tutor嘮嗑的習慣,基本上課堂內完成tutorial可能性不大,所以課上儘量保證搞清楚上一次的Tutorial不懂的地方,這一周的tutorial可以在周末慢慢做。
2. 一周抽半天時間,慢慢做tutorial,這也為下一周的quiz作充分的準備。
3. Final之前抽2-3天時間把Tutorial快速過一遍,保障看到題型的手速。考試可以帶一張Cheatsheet,但是作用也有限。
在小編看來,這是一門非常注重平時積累的,不是考試之前可以狂學學會的一門課,類似數學課給你的感覺。如果認認真真細水長流,一定可以獲得你想要的分數。
DATA2002是一門類似於數學課的數據類課程,對於大一剛剛經歷過折磨的同學們來說,這門課有一定的難度,對於理解和運用都有一定要求,也對將來的數據的學習進行了承上啟下的作用,學好這門課對大三的學習和以後的工作都有很大幫助。
DATA2002將會是大二的DATA同學們可能目前為止遇見過的R內容最為豐富的一門課,其中課程內包括大量的統計學知識甚至是在課程末尾將會接觸到一些人工智慧相關的知識。DATA2002相對於之前的課程而言更關注真正的,或者說是更加深入的數據統計知識的應用,也會讓同學們真實的感覺到自己所學知識可能會在真實生活中所應用到的場景。
需要注意的是,準備讀這門課的同學將無法和STAT2012以及STAT2912同時就讀,所以請有選課傾向的同學注意一下。
Garth Tarr是一名非常年輕的數學系老師,DATA2002在本質上也是隸屬於數學系的一門課程,所以授課團隊的一部分老師都會是來自於數學系的。老師和授課團隊在Edstem上的回覆速度一般來說都非常及時,並且在授課內容上同學們也能夠非常清楚的感覺到老師的條理性以及課程組織是特別好的。總體來說Garth Tarr的課程體驗能夠說是相當不錯的。
Module Report (15%):
這門課中的前九個星期被老師切割為了三個大的Module,而學生在每個Module結束後都會被要求完成一份價值百分之五的Module Report。第一個Module Report將會要求大家單獨獨立完成,而後面的兩個Report將會由大家和自己的隊友一起完成。大家需要注意的是,儘管老師聲明了是團隊作業,但是如果要是想要自己獨立完成的話也是沒有任何問題的。組隊的隊友大家可以自由進行,所以大家可以提前找好靠譜的隊友,避免在學期進行當中被動匹配到不熟又很坑的隊友。每個Report有五頁的頁數限制,大家一定注意並不是寫的越多越好,超出字數太多的Report將會嚴重影響老師的閱卷體驗,並且有可能因此造成低分。
Online quiz (15%):
這門課程將會有三次,每次各價值百分之五的Online Quiz貫穿整個學期。如果內容上沒有太多變化的話,Online Quiz的內容將會包括相當一部分的R知識,一般來說內容上的深度並沒有特別過分,其實同學們更多的可以看作是老師通過三次的Online Quiz來強制大家進行對應內容的複習。時間方面,每次Online Quiz的時長為一小時,同時題型也將會多以多選題為主。考試期間如果需要的話,大家是可以使用自己機器上的R工具的,所以大家不需要對於這個Quiz部分過於焦慮。
Group Project (20%):
課程當中除了Final之外佔比最大的部分就是需要大型小組合力完成的Group Project。之所以將它稱之為大型小組,是因為四到五人的小組規模在各個課程的範圍內看來可以說是非常大的規模了。與此同時,組員的分配將會是完全隨機的,所以大家也需要注意自己在組內如果出現不愉快的情況下及時聯繫Lecturer進行調組,以免影響自己的最終成績。
小組作業的內容包括八分鐘的Presentation以及兩頁的內容整理。整體來說,如果大家對於Module 4的內容有比較好的掌握的話,把Group Project拿到一個好的分數並不是一個特別困難的事情,更多需要注意的可能是要更多的協調大家進行多次的Presentation練習,以防止出現嚴重超時或是卡殼到無法繼續的尷尬情況。
Final Exam (50%):
授課團隊在接收到往年的反饋後將Final的佔比由60%調整為了50%,這也意味著相對來說大家在備考Final期間的壓力將會對應的減小。考試內容方面,由於課程是免費提供了一份DataCamp的會員的,所以大家如果能夠反覆複習課程內老師提供的內容+DataCamp+自己通過谷歌得到的解釋,基本上都能夠得到一個不錯的分數。由於近些年來統計類的課程逐漸越來越火爆,網絡上的資料也越來越豐富,所以一般來說大家只要是在上這門課程的期間及時通過各個渠道解決自己的疑問,通過這種方式來避免Final期間積壓過多的問題的話,應該可以拿到一個令自己滿意的分數。由於授課團隊的效率相對較高,所以大家要利用好這點多多及時解決自己的疑問。
理論難度之所以給出一個相對較高的分數是因為本身統計類型的科目在內容上往往都會比較深入難懂,並且如果不是結合著足夠清晰明確的例子的話其實想要完全弄懂某些知識點是相當不容易的。就像之前所說的一樣,由於這些年以來統計類科目的火爆,我非常推薦大家在上這門課的同時積極的在網上搜索對同一個知識點的不同解釋,這樣大家就可以在同一個知識點上得到得到一個更加深入,更加淺顯易懂的解釋。
作業方面難度其實相對來說並不是特別大,三顆星的分數主要分配給了Module Report所需要耗費的巨大時間成本,以及Group Project期間等待大家各自保質保量(非常不容易)完成內容所需要投入的精力。
考試難度和理論難度的給分標準類似,由於知識本身具有相對應的難度,所以我們也可以理解為Final考的東西並不簡單。當然,由於授課團隊整體的積極性較高,回復問題速度較快,大家如果能夠多多的在學期當中解答自己的疑問的話,應該是能夠最小化自己的知識盲區進入考場的。
從大二開始相信大家已經慢慢感受到了課程內容以及難度和之前的區別。大一的課程大家可以更多的理解是作為完全不適合對應科目同學的篩選,以及對專業相關知識進行的掃盲和科普。到了大二,我們會更多的學習一些具有專業性質的,在未來的工作當中我們有可能會應用到的知識,而DATA2002可以說在這方面做的非常不錯,課程當中嵌入了非常多的實實在在的統計學內容。當然,課程由於知識點本身的原因還是具有一定難度,但是相信大家通過及時的發問以及谷歌自學(有的課程谷歌也搜不到想要的答案),都能夠取得自己想要的成績。
關於Database,我們一般會用SQL語言獲取或者寫入信息。但是對於SQL語言,它的責任只是去返回用戶想要的信息,卻沒有描述如何從database獲取這一類信息的具體步驟。因此,程式設計師必須設計database的管理系統,從而使得SQL能返回正確的信息。ISYS2120就是一門關於database設計的一門課程,其中包含了從conceptual,logical和physical三個層次設計資料庫,資料庫正規化減少混亂的存儲信息以及資料庫限制條件維持合理的數據處理。
ISYS2120的課程內容主要分為三個部分:
SQL語法&數據模型:
首先會對於SQL語言進行學習,面對一個完整的database,如何使用SQL語言獲得想要的信息。數據模型的內容則是比較側重於抽象概念,比如:不同的SQL schema之間的關係,每一個table中primary key和foreign key的聯繫,relational algebra的概念和目的以及如何從SQL語言轉化成它等等。相較於SQL語言完全就是編程,數據模型的專有名詞則是非常多,概念也是比較複雜難懂。
Data Normalisation:
每個database的設計格式可以是不同的,當然也有不同種類的設計標準限制,這樣才能合理存儲大量的信息。每一種標準各有利弊,data normalisation則是將資料庫的設計結構轉化成另一種限制條件更加嚴苛的結構,從而防止數據的重複和衝突。
資料庫的應用&數據處理:
在了解了那麼多database設計的抽象概念後,使用python中的SQLite library可以將這些概念具體實現,做出具體的database管理系統。在實際使用database時,各種各樣的數據處理情況都有可能發生,因此對於一個database,我們也應該設計一些限制條件用來規範每一次的數據處理(也就是讀寫過程)。這一類的限制條件主要圍繞著名的ACID屬性(Atomic,Consistent,Isolated & Durable)。這一塊內容也是這門課中最難理解的知識點。
ISYS2120的Lecturer是Dr Matloob Khushi,上課的時候有一點點印度口音但是問題不大完全可以聽得懂。Matloob也是學校裡研究Data Science經驗最豐富的老師之一。另外,小編個人感覺這門課的tutor團隊倒是非常負責,ed上的問題都會回答,而且上課也非常有趣。
Weekly Quiz(9%):
每周的Tutorial課上會在canvas上做選擇題的quiz,以考察上一周lecture上的概念為主。難度適中,需要在課前好好複習一下lecture的內容。
SQL challenge(1%):
這個一分很好拿,在學習SQL語法的時候會使用到Grok Learning這個網上平臺,只要每周上去做完SQL的題就可以拿到這一分,而且這些題都是練習題,沒有次數限制。
SQL Quiz(10%):
在第11周的tutorial上,會有一個小時的時間完成在Grok Learning上的SQL quiz,題型和平時的練習題一樣(而且你還可以在考試中看你之前做過的SQL題哦)。難度上稍微比平時的題簡單一點,去年的SQL quiz難度就比較簡單,很多同學都提前交卷。
Assignment(30%):
總共有3個assignment,每一個佔比10%。第一個assignment是關於Database Schema Design,根據給予的data model圖,用SQL create table的語法寫出SQL tables以及schema中各自的限制條件。第二個則是Database Conceptual Design,根據SQL tables畫出data model,可以說是和第一個正好相反。最後一個是Database Programming,利用python中的SQLite library編程出具體的後端資料庫並且有一個presentation展示。最後成果就是一個正常的網站格式,可以根據不同交互得到對應的信息。
這門課每一個assignment都是4人小組作業,並且會要求每個人和不同的同學搭檔,也就是每做一個assignment就要換一批隊友(不知道這個奇怪的要求在今年有沒有更改)。這增加了遇到隊友坑的概率,當然也增加了遇到大腿的可能性。不過好在每個assignment都會給你2到3周的時間準備,時間還是比較充裕的,建議儘早多和新的隊友熟悉,溝通,分工合作的過程中要多留意每個隊員的進度。
Final Exam(50%):
最後就是final exam了。總體上來說這門課的final exam還是難度適中的。總共有6道大題(可能今年因為線上教學會有所修改),每一題都是針對一塊知識點的考察。
總體上ISYS2120這門課設計得還是不錯的,知識點豐富但是比較容易理解,難度上稍稍有點小難但也不是特別令人頭痛。
ISYS2120整體上花費的時間並不算多,但是建議大家每周還是要花一點時間在鞏固知識點上。尤其是每周要花時間去做Grok Learning上的SQL練習題,對知識點理解非常有用。假期裡有時間的話也可以提前學習一下SQL語言以及SQLite如何實現。另外,由於每做一個assignment就要換一批隊友,提前熟悉隊友並且合理分配工作也是非常重要的。
在IT相關專業大二的課程當中,SOFT2412算得上是非常友好的一門課程了。這門課程的理論較多,而其中又包含了很多比較普遍的一些知識點,因此學下來難度並不大。當然,衝刺HD需要付出的精力還是比較大的,課程中也存在部分比較難掌握的記憶點。與其他許多IT相關的科目不同,SOFT2412主要側重於分析IT項目的規劃、學習普遍的項目流程從而方便學生提前適應職場生活,而對於技術上面的講解並不豐富。
這門課程與INFO1111比較類似,都是偏向於讓學生理解如何執行項目會更有效率、如何與組員做到有效溝通、如何充分利用相關工具加快開發進度等內容,對編程能力以及學生對計算機系統的理解力要求不高。這門課程的主要難點在於記憶量較大,因此儘管所學內容難度不大,依然需要每一兩周就進行一下知識點的鞏固,這樣在期末的時候會節省很多複習時間。
這門課程的lecturer名叫Basem Suleiman,對於這門課程來說,lecture的主要內容就是按照slides介紹相關詞彙的定義並進行舉例,沒有太多需要進行live demo的內容。由於課程大部分知識點都是理論,因此lecturer平鋪直敘的講述可能會讓學生失去興趣。但其實就算聽不下去lecturer講課,也可以通過課後閱讀lecture slides補上相關知識。這門課程的主要內容在於teamwork的方式,以及Agile軟體開發的流程。由於對coding能力要求不高,這門課程學校的許多tutor本身可能也不擅長coding,其中包含一些幾乎沒有編程經驗的tester。但不必擔心,這門課程可能會搞不懂的東西基本還是可以向他們請教的,這些內容主要包括關於git、Jenkins等輔助工具或框架的使用,以及通過Agile methodology進行project時產生的問題。
Weekly Quiz(10%):
每周tutorial上進行,需要在限定時間內閉卷完成,通常為canvas quiz形式進行。與其他理論性質較強的課一樣,這門課程的weekly quiz也繼承了「難度不大但很難拿高分」的設定。由於知識點雜亂、選項極容易混淆,且問題中通常充斥著大量多選題,因此在進行quiz之前儘量對上一周學過的理論知識進行複習。有些時候問題會考得比較角度清奇,所以即使是看起來不大起眼的知識點也要大致記憶下來。總體來說,weekly quiz與final有一定重合度,但重合度並不高。
Project 1 (15%):
這個assignment主要考察的是對軟體開發一些基本輔助工具的應用。該assignment為小組形式進行,是一個簡單的coding task,要求小組根據給出的specification完成指定功能,例如實現一個vending machine。該assignment要求使用的語言為Java,INFO1113為這門課程的前置課,assignment本身對coding能力的要求不高(需要實現的功能非常簡單,可以在1小時內完成),但重點在於小組對git和github功能的應用(例如給每個成員分配角色和權限,讓不同成員在不同分支開發不同功能,然後通過pull request合併等等),對Unit testing框架的運用。最後需要完成一個report,裡面講述小組開發的流程,需要著重講述對Agile開發相關輔助工具的運用。
Project 2 (25%):
與Project 1的形式一致,需要以小組為單位根據給出的specification完成程序並實現相應功能,而後完成一篇記錄開發流程和小組合作模式的report。這個assignment比project 1難度高一些,coding部分可能會要求加入GUI,但總體上差距並不大。Project 2考核的主要內容在project 1對輔助工具的運用的基礎上又增加了Scrum methodology的運用。在report中,需要體現出小組的角色和任務分配,每周進行的scrum events(會議、總結等),以及程序開發的過程,包括實現的功能和進行的測試,以及獲得的test report。
Final Exam(50%):
1-12周lecture和tutorial範圍的考核,與project的程序部分內容沒有關聯,但需要了解report裡面關於Agile開發相關工具以及scrum methodology的應用。考試內容全部都是理論較強的知識點,由於課程大多數知識點難度不大,final會出現一些奇奇怪怪的題目,大量考核的內容是許多學生不會注意的範圍。因此,學生需要對每周的知識點都有較深的了解,其中包括一些「看起來應該不會出現在final試卷上」的知識點,比如git不常見指令的用法,前幾周介紹的框架的功能和用途,Week 10的開源軟體IP類型等。對於前期的知識點,建議每2——3周進行一次鞏固複習,尤其對於比較偏的難點進行總結。而後期會有大量需要記憶的內容,因此建議每周抽出一點時間來背誦,以免final前一兩周突擊複習的任務量過大。
SOFT2412前期與中期所涉及的內容大多較為淺顯易懂,對於只想pass的朋友們來說,整體難度大概在2/5左右。但midterm之後、尤其是臨近期末時期需要記憶的知識點極多,且許多知識點由於形式相似、又沒有什麼便於記憶的方法(很多關於名字的定義基本只能靠死記硬背),極其容易混淆。因此對於想衝刺高分的同學來說理論難度還是有些高的。課程的大作業本身分為2部分,coding base和report base,coding部分對於大多數熟悉了Java的學生來說較為簡單,report也只是在coding的基礎上進行描述,並圍繞agile tools和scrum methodology擴展講解。考試的難點在於final不讓帶cheat sheet,所有內容單純靠記,而後期需要記憶的內容又比較複雜,因此略微拉高了整體難度。總之,課程本身在前期還是比較輕鬆的,但由於「背誦並默寫lecture」的內容較多,還是建議想要衝刺HD的同學們提前做好背課文的準備。
SOFT2412為將來想要從事IT行業(尤其是軟體開發)的未來程序猿們介紹了一些小規模團隊常用的方法,並著重講述了Agile中的Scrum methodology。這門課程主要學習在小組中分工、溝通、合作的重要性,開發相關的輔助工具,各種methodology所適合的project和團隊類型,軟體開發需要注意的相關事項和規定等等。對於未來從事相關行業的學生來說,這門課程講述的內容還是比較重要的,可以幫助你在剛入職時少走一些彎路並儘快適應在團隊合作狀態下進行agile開發。儘管想要pass這門課的難度很低,甚至很多往屆學生會將這門課戲稱為「水課「,但衝刺高分想要拉高WAM的朋友們還是要著重關注一下後期需要記憶的知識點。
好啦!關於大二第二學期IT&CS的同學們會接觸到的每門課的分析小編就暫時跟大家分享到這裡,希望能為所有看過的同學們提供幫助,同學們對於上面有疑問可以掃碼小助手私信進各科學科群獲取更多學習諮詢喲!