主要涵盖了UNSW大部分计算机基础课程以及金融类课程。同时也介绍了一些General Education的课程。适合以CS为主修/Finance为辅修的学生做参考。
注:每个学期的讲师以及作业不一定相同,且不同人之间感受不同,内容仅供参考。
计算机类课程
COMP1511 Programming Fundamentals
- 选此门课的时间:2019 Term 3
- 此门课的讲师:Marc Chee
- 此门课的难度:适中
- 此门课的评价:9/10
本门课是UNSW计算机学院的学生接触的第一门编程类课程,也是澳洲大学为数不多的以C语言为基础的入门计算机课。由易到难循循渐进,从C语言入门到array,再到while/for loop,再到pointer。最后也着重讲解了Linked List, Stack, Queue等简单数据结构。此门课每周由4小时Lecture,1小时Tutorial以及2小时Lab构成,时间占用比较多,但内容还是相当有意思的。Marc Chee是一位相当负责任的讲师,说话幽默风趣,课程也十分清晰。课下也会在Youtube直播自己的生活以及游戏喔。总之是一位很有亲和力的老师,上他的课一点也不会觉得闷。Tutorial主要是对课上内容进行巩固,同时也会带大家做做Kahoot。
此门课每周都会有lab作业以及一次weekly test,主要是检验大家上课所学的内容,难度合适。Assignment 1主要利用loop以及array实现一个在Terminal里的画画程序。根据给出的指令,画出不同颜色以及不同方向/长度的线条。Assignment 2主要利用Linked List以及pointer实现一个Pokemon的宠物图鉴,玩家可以对里面的宠物进行查询,进化,以及添加删除等功能。线下期末考难度相对较大,3小时内20道选择和8道编程题,且题目难度是循循渐进的。大部分朋友大概做出5-6道题就已经能够拿到很不错的分数了。这门课要拿High Distinction还是有一定难度的。不过听说疫情后此门课改为了24小时take home考试,难度直线下降。
总的来说,这门课对于计算机学生用来入门是相当足够的。内容充实丰富,讲师风趣幽默,大部分学生还是对此门课给予了很高的评价。不过此门课并不太适用于商学院或文学院等来进行入门编程学习。建议非工程学院/理学院的学生可以去选择ENGG1811,此门课对你们的帮助会比COMP1511大得多。
COMP1521 Computer Systems Fundamentals
- 选此门课的时间:2020 Term 2
- 此门课的讲师:Andrew Taylor
- 此门课的难度:较难
- 此门课的评价:6/10
COMP1521也是CS学生的一门必修课,同时此门课也会有EE/CE的学生一起来上。相比于1511,这门课就显得没有那么有意思了。课程内容相对枯燥,主要是讲当执行高级程序时会发生什么。从整数,浮点数,位运算讲起,中途会涉及Mips语言的介绍,到最后也会讲一些线程,虚拟内存以及Unicode的知识。与1511一样,这门课每周会有4个小时Lecture,1个小时Tutorial和2个小时Lab。Andrew的讲课方式与Marc也大有不同,他的课程虽有些枯燥无味,但他会给出很多份代码文件,且对每一份代码文件都会做出细致解释。
此门课每周也都会有lab作业以及一次weekly test,也是非常容易可以完成的。Assignment 1是将一份C语言代码转换成Mips语言。Assignment 2主要是来用C语言模拟MIPS的允许程序。线下期末考难度超级大,10道题基本上是没有人可以全部完成的。不过这门课要拿High Distinction是比COMP1511简单些的,Andrew最后也很仁慈的做了一些scale up。
这门课最重要的事情是不要抄袭!!任何作业任何考试都不要有抄袭的行为发生。我们那一届将近有100人被查出抄袭行为,无一例外均扣除了相应的分数,且学校的监管部门调查时间十分长,如果是最后一学期上此门课被查出抄袭行为会有延毕的风险。
总的来说,这门课主要涉及计算机硬件方向的基础介绍。内容相对枯燥,但却十分有用,特别是未来想要选Operating Systems/Distributed Systems的同学更是至关重要的。如果不考虑这些课程的同学可以把这门课往后放。
COMP1531 Software Engineering Fundamentals
- 选此门课的时间:2020 Term 1
- 此门课的讲师:Hayden Smith
- 此门课的难度:适中
- 此门课的评价:9/10
COMP1531也是CS学生的一门必修课,此门课主要介绍了软件工程的基础。本门课是一门理论与实操兼并的课程,涉及内容很广,包括软件系统的生命周期(需求获取、分析和规范,设计,建造,验证和确认以及部署),敏捷团队管理,git基本操作,User Stories,User Cases以及运用Python Flask框架来实现后端开发。这门课每周会有4个小时Lecture,1个小时Tutorial和2个小时Lab。Hayden是一位非常棒的老师,在CSE学院人气与Marc Chee不相上下,讲课也是风趣幽默的类型。
此门课每周会有lab作业,但没有了weekly test,整体上来讲还是相对轻松的。本门课的着重点是group assignment,老师会将整个大作业分为三个阶段(iteration)来分别打分,需要小组合作开发出一款论坛交流软件的后端(此软件类似于Slack),实现各种各样的功能,并且需要写测试代码。同时,本门课也会让学生熟悉Git操作以及Gitlab代码仓库,同时也会要求小组完全按照敏捷开发流程进行开发。所以小组组员的靠谱程度是重中之重!!4-5人的小组至少要有两位是相当靠谱的队友。整体来讲代码并不是特别难写,没有特别难的业务逻辑,但毕竟是所有计算机学子第一次接触后端开发,也经常会有些小问题小摩擦。
整体来讲是一门很不错的课程,由于COVID我们那一学期调整为了24小时作业,还是十分轻松的。2020 T3之后此门课调整为了线上考试,内容还是很多的,包括最后要实现一个简易的软件后端,时间还是相当紧张的。
总的来说,这门课建议大家提早来上,有了这门课就算是有了第一份项目经历,在未来找实习的时候也可以有的聊些。
COMP2511 Object-Oriented Design and Programming
- 选此门课的时间:2020 Term 3
- 此门课的讲师:Ashesh Mahidadia
- 此门课的难度:难
- 此门课的评价:4/10
COMP2511我愿称之为CSE学院第二恶心必修课。此门课主要语言为Java,但并不会对Java进行特别多的讲解。此门课是面向对象编程设计的基础,介绍了十余种设计模式,也介绍了一些Design Principle和Code Smell相关内容。侧重点是如何将自己写出来的代码变得简洁并优美。本门课的讲师是念PPT的类型,课程相对较枯燥,也比较容易让人犯困。同时老师的口音也很让人欲罢不能。
安利一个网站,我的2511基本上全靠它。https://refactoring.guru/
此门课每周会有lab作业,并且需要每节课与Tutor进行代码交流。Tutor会当场对你的作业进行打分,并针对你的代码进行提问。
本门课的着重点是group assignment,两人一小组设计并完成一份游戏,每个学期都各有不同。2020 T3要求学生设计并实现一款即时战略游戏,类似于文明,每一位玩家代表一个国家进行造兵训练,派兵打仗,领土争夺等。老师同样会将整个大作业分为三个阶段(Milestone)来分别打分,第一个Milestone需要利用到gitlab上的issue board来填写Epic Stories和User Stories,后两个阶段是对游戏的内容实现。顺带提一句,此门课会运用到Java FX,但并不会在Lecture/Tutorial上教很多,大部分还是需要学生自己去学习。小组组员的靠谱程度是相当重要的,有一人不靠谱都会导致作业无法开展下去。
此外,这门课有一位Matthew Perry传奇人物,作业出的很难并且经常性的邮件找不到人,如果他还是course admin建议可以避一避。想知道他的事迹,去Reddit上搜一圈就知道了。
整体来讲此门课是作业量相当大的,但设计模式的学习还是相当有必要的。课上做的项目也完全可以在你的简历中呈现。期末考试时间很紧张,题目也很难,此门课拿High Distinction也是相对较难的。
COMP2521 Data Structures and Algorithms
- 选此门课的时间:2020 Term 2
- 此门课的讲师:Jas
- 此门课的难度:较难
- 此门课的评价:8/10
此门课也是CSE学院的必修课,也是重中之重。大部分的高阶COMP课程的前置课均包括此节课。此门课主讲数据结构与算法,运用C语言从递归讲起,之后讲解树,图,哈希以及各种排序算法等。同时也教给学生GDB debug方法。此门课是重中之重,内容涉猎较广且深,需要投入更多的时间来消化。Jas大好人,就是语速十分缓慢,经常开1.6倍速听依旧觉得很困。
此门课每周会有lab作业,同时还会有Quiz。并且此门课与COMP2511相似,需要每节课与Tutor进行代码交流。Tutor会当场对你的作业进行打分,并针对你的代码进行提问。
两个Assignment都十分有意义。第一个Assignment是给出text文本,并根据要求做出分析。会运用到所学到的二叉树的知识,总体来说并不是很难。第二个作业为小组作业,要求四人一组编写Fury of Dracula游戏的程序,同时要设计两个AI程序。第一个程序用来控制Dracula使其避免被Hunter在地图上抓到,而第二个程序来控制Hunter来捉捕Dracula。主要涉及本门课所学的有关图的知识。同时所有组的两个AI程序会被放在一起进行比赛,得分按照排名来给。
相比以往,期末考试更像是考你学会了什么,而非考你当场编程的能力。大部分的考题都是解答题,而有一两道相对简单的代码题。总体来讲此门课是很重要的一门课,里面所提到的思想都是后续课程能够用得上的。此门课的难度比较因人而异,分数也有些两极分化。从我的角度来看,如果认真学的话,此门课拿High Distinction不是特别难。
COMP3900 Computer Science Project
- 选此门课的时间:2021 Term 3
- 此门课的讲师:Rachid Hamadi
- 此门课的难度:简单
- 此门课的评价:10/10
此门课主要是项目课,没有太多需要学习得内容。4-5人一小组要进行团队合作,运用一整个学期的时间开发出一个可用的项目。在开学初会大致列出一些可选项目的主题,当然小组成员也可以选择做自己感兴趣的东西。主题比较广,从自然语言处理,推荐系统,机器学习,到AI与金融,各类项目应有尽有。
此门课会有导师每周进行follow up,同时也需要做出三次demo呈现项目进度,两次反思总结。最后需要将整个程序的源代码以及编撰report一并提交。本门课程严格使用github,jira敏捷开发等软件,可以让我们最大程度的感受到真实工作中的场景。
此门课得分也相对容易,只要程序没有太大问题并且demo没有特别大的意外,基本上都能给到85+这个分数的。但整体来说工程量还是相对较大的。队友的选择也十分重要,这门课的drama实在是太多太多。所以队友一定要找自己熟悉的,真正有能力的。同时一定一定要找到一位靠谱的前端队友,如果从wk1开始学习前端来完成这个项目,是很艰难的。
COMP4920 Professional Issues and Ethics in Information Technology
- 选此门课的时间:2022 Term 1
- 此门课的讲师:Wayne Wobcke
- 此门课的难度:较难
- 此门课的评价:2/10
单纯恶心人的文科必修课。主要讲一些道德的哲学理念以及一些IT公司的道德问题。很少见中国学生能拿到75+以上的分数。内容还算是实用。总共有5节Lecture以及10节Seminar组成。Lecture不只是Wayne本人讲解,也会有一些他邀请过来的业界人员参讲。而Seminar前五节是针对一些IT道德问题进行讨论,讨论形式多种多样,决定权在Tutor手里。后五节课主要是每个小组进行case rehearsal和presentation。
本门课的得分点由以下几个部分构成:
- Seminar Participation 主要是要在Seminar上积极发言。但本门课对于外国人来讲可能不需要做太多准备,并且大部分老师以举手速度来决定发言顺序,所以很可能你能想到的观点都会被外国人抢走。
- Lecture Summaries 需要对每节Lecture进行系统的总结。这个部分的恶心之处在于,你不仅仅要提交你的总结,还需要为其他人的总结进行打分。你的成绩是由别人给你打的分数的平均分+你给别人打的分数的准确度相结合。第一部分为其他4位学生的给分平均分。第二部分是你给出的分数与老师给出的分数的接近度,越接近给分越高。举例来说,假如以为同学的总结,老师给出了10分。而给出8分的同学的分数是要大于给出15分的同学的分数的。
- Movie Review 对一部电影进行打分。观看一部有关IT Ethics的电影,两人小组合作完成一份essay。
- Student Seminar 小组演讲。需要4-5人一小组,选择一个IT道德话题,进行深刻的剖析并完成一场40-50分钟的Seminar。需要进行ppt制作/需要与观众进行互动。
- Company Case Study 个人Essay。与Seminar相似,只不过是个人Essay。很难写出彩,基本上分数都在25-30/40。
此门课的分数相对难拿,除非你的英语水平能与本地学生一决高低。内容基本上也都围绕着哲学与IT道德进行讨论,难度倒是不高就是事情非常多。建议大家选好Tutor,对你的打分或许有质的飞跃。(推荐Jingying老师
MATH1081/1131/1141 Discrete Mathematics and Mathematics 1A/1B
- 选此门课的时间:2019 Term 3 / 2020 Term 2
- 此门课的讲师:Frances Kuo / Christopher Tisdell / Jonathan Kress / Daniel Mansfield
- 此门课的难度:适中
- 此门课的评价:10/10
三门数学必修课放在一起讲,主要是这三门课的课程作业/考试大致上都是相似的。这三门课都是CS的必修课。1131/1231大致相当于国内的高数1与高数2,会拆分成Algebra和Calculus俩个部分进行讲解。1131内容相对简单,会讲复数/向量/矩阵/极限/微积分等知识,且大部分内容与高中知识重合。1231会有些新知识但是好好学也不难。1081主要是离散数学,这门课也是MATH3411信息密码学的前置课程。
level 1数学课的老师都混在一起。有可能这个老师这学期教1231,下个学期就教1131。亲测数学系的老师给推荐信要慷慨的多,所以如果想要申请海外研究生/PhD的同学可以跟数学系的这几位老师搞好关系。每位老师都有自己的讲课风格。在这里比较推荐Daniel和Frances两位,上课幽默有趣,且讲课清晰。
整体来讲这三门课难度不是很大,认真学基本上都可以拿到Distinction及以上的分数。只是平时内容很多很杂。除去每周必须要去的lecture/tutorial,这三门课每周还会有Maple TA/Lab Test需要完成。同时还夹杂着一次证明题作业(最好使用latex)。期末考试也可以带计算器,题目整体来说也很常规。