COMPUTER SCIENCE
CS专业选课指南
对于学CS的专业来说
保护好自己的一头秀发
真的很重要啊!
那么今天
给大家带来这些
选课和学习Tips
希望能够成为大家的
防脱洗发水
STAGE 1
Compsci 101
课程名称:Principles of Programming
课程介绍:整门课都是Python的基础语法,不需要任何编程基础。每周一次Lab,根据题目写代码得出指定的output。101是CompSci的基础课 一定要学扎实。
课程难度:简单
CS101这门课在上学期进行了课改,内容上变化不大,主要在考试形式上面的改变,不过好处在于,可以给大家打下良好的基础,为compsci130做好准备。
Compsci101是所有computer science学生的必修课,同时也是其他专业同学的选修热门课程。这门课一共会有5个assignment,2个期中考试,1个final exam 和 lab。其中assignment会通过conderunner3 考核大家,期中test为机考,final为手写试卷,每周一节lab老师会给大家一些题需要大家完成,每次lab总分10分,分为1分的attendance和9分的练习题。
总结:想要pass这门课需要同时pass三个条件
1.两次test 加起来过半
2.Final 过半
3.所有成绩(test,final,lab)加起来过半
是前所未有的Triple pass!
101作为compsci学生的第一门课,我相信也是很多同学第一次接触编程的课。
首先老师的课件是大家最好的学习资料,每节课的课件一定是要认真学习的,里面把每节课的内容说的很详细。
同时一定要配合实际的练习,不管是101还是大家之后compsci的课程,如果是学习编程语言那么第一件事一定是把学习的语言编辑器set up好,101学习的是python,大家可以在自己的canvas上找到下载地址。
接着呢,就是大家的lab,lab时间在后面的同学可以找比自己lab时间靠前的同学share一下lab题这样可以节省lab的时间,因为lab写完题就可以走了,但是对于学习自觉性不高的同学我强烈建议lab的时候,自己认真完成lab练习题,lab的tutor会随时给同学们解答问题。
我们再来说说assignment,assignment主要是通过coderunner来做在接下来的学习生活中coderunner将会是大家最亲密的伙伴。这里给大家一个温馨提示,就是千万不要抄袭别人的代码,在coderunner上面如果代码相似度过高的话是很容易被老师发现的,一定不要有侥幸心理。
Compsci 110
课程名称:Introduction to Computer Systems
课程介绍:这个是2019年的新课,为CompSci 210做准备, 包含了计算机系统, 汇编语言,二进制、十六进制, 通信技术等基础知识。
课程难度:简单
Compsci 111/G
课程名称:An Introduction to Practical Computing
*这门课和CS 110只能选1门
课程介绍:这门课是关于计算机的实用介绍。课程主题包括:网页设计、电脑硬件及操作系统概述、通用应用程序的有效使用、使用网际网路作为沟通媒介、应用程式设计概念及科技的社会影响。
课程难度:简单
这门课的考试偏理论。掌握一些计算的实用操作和软件, 例如Word 文档, TeX排版语言, Python基础语法等。每周一次的Lab代替了Assignment。
CS111 (G)作为 Compsci 专业和其他专业的必修课程与选修课,全面包含了从电脑基础(硬件配置)到编程语言(软件及编程)的系统性学习。
那同学们如何在此科目中,取得高分呢?首先,讲师们发的课件(Slides)一定要好好去消化,里面详细的讲解了步骤。其次,小组课(Tutorial)上要积极思考与实践,尤其是涉及编程方面,不懂就去问老师。最后,每节课前,Learning Objective一定要认真去对待,考试范围不会超出这个,并且某些考题直接来自于此。
Compsci 120
课程名称:Mathematics for Computer Science
*不能在学完CS 225后学这门课
课程介绍:2019年新课,为CompSci 220做准备,计算机方面的数学基础。包含 图标, 树, 概率论,证明方法等。
课程难度:比较简单
Compsci 130
课程名称:Introduction to Software Fundamentals
*要先修完CS 101
课程介绍:这门课主要带大家了解基本的编程技术和程序,如条件、迭代、递归、函数、测试和调试。组织和操作数据的有效方法,包括排序和搜索算法。编写使用和实现常见抽象数据类型(如列表、堆栈、队列、字典和树)的软件。
课程难度:较简单
这门课概念不是很多,难度不大,要多练习如何把更合适的概念运用到代码中,考试基本上都是考知识点的灵活运用。cs130的作业分为两块:每周一次的coderunner帮助练习本周的知识点,还有一个大作业包含了整个学期的大多数知识点,可能需要花几天时间慢慢写。
这门课是cs专业必修课,并且作业比较多,所以需要大家每周都能花一定时间学习这门课,而且这门课考试难度较大,需要在平时多练习,以灵活运用各种代码。
STAGE 2
Compsci 210
课程名称:Computer Organisation
*要提前修完CS 110+CS 105或107或130
课程介绍:这门课主要了解的是计算机系统底层协议,包含二进制, 十六进制, LC3语言,C语言。编程内容较多,主要是为以后想做软件方面的学生打基础。而且这门课经常课改,大家要做好准备。
课程难度:较难
Compsci210 这门课涵盖了计算机中数据和算法的基础表达方式,指令执行模型及基础编程语言。 这门课的syllabus看起来很散很复杂,但是其实核心基本上是围绕着assembly language,C language,memory 和 caching这几个topic 展开的。 这门课的教学模式也是类似,由浅至深的一步一步把syllabus上的每个topic慢慢串联起来。 但这也导致很多时候因为错过一节lecture,或者一个slide 导致后面一节到几节课都跟不上进度。 所以如果想要考得好成绩和很好地掌握课堂内容,最好是每节课的slides能多读几遍和做一些extra reading。只要能够清晰理解每个小节的内容,在讲到课程重要部分的时候就能够轻松理解,assignment和考试当然也就不在话下。
Compsci 220
课程名称:Algorithms and Data Structures
*要先修完CS 120+CS 105或107或130
课程介绍:常见算法讲解, 包含sorting, searching, depth-first search, breadth-first-search等, 并用代码实现这些算法。
课程难度:较难
Compsci 225
课程名称:Discrete Structures in Mathematics and Computer Science
*要先修完CS 120或MATH 120、或150或153 课程介绍:这门课偏数学, 完全没有编程方面的任务,注重逻辑推论和证明,题型一般为证明一个statement。
课程难度:中等
这是一门 (基本) 不涉及到代码的课, 核心是数学证明题 (给一个statement, 你来证明他为什么是对的). 平时所花的时间也比230少很多, 前提是 要有对的学习方式。
这门课涉及到各种Proof方法, Induction和Recursion, Graph, Sets, Relations, Functions 等等. 分数占比: assginemtn 30% Test 15% Exam 55%. Pas这门课需要拿到test+exam部分的35%以上! 虽然225的难度每届都在增加, 但想Pass还是不难的, 重在做题,每周Tutorial的题非常重要, coursebook的例题也很有代表性.。
Compsci 230
课程名称:Object Oriented Software Development
*要先修完CS 105或107或130
课程介绍:超有用的一门课, 但是偏难。230概括了Java的基础语法和一些基本的库。Lab不难 而且一定要认真做, assignment偏复杂, 可能需要花一周到两周来写所有的代码。
课程难度:较难
230是奥大CS非常重要的一门课, 也是比较难的一门, 主要内容是Java的语法和一丢丢的数据结构加算法。分数占比为: assignment 30% test 20% exam 50% 这次的test是上机考试 (首次230采取上机考试), exam则和往届一样的笔试. Pass这门课需要拿到overall的50%和test+exam部分的50%以上.
这门课如果你想要pass,那么请一定要多写代码!课内代码写完 自己想代码出来写! 因为考试的时候 会有很多题是lecture和课件里完全没有提到的. 问问之前230的学生就晓得了, 19年S1 的test2, 超过一半的题都是完全没有涉及到的 超纲的题目. 所以 只看recording和课件是不行的, 一定要亲手写代码, 并且多拓展自己的知识. 听老哥一句话, 多写代码, 不要等test的时候看到考卷再后悔!
这门课虽然操蛋, 但是真的有用, 它涉及到了基本的软件设计, 多线程, server/client等等很多非常实用的知识, 学会了java可以写后端, 可以做软件, 还可以写Android App.
最后最后再强调一下!!! 230一定要多写代码!! 不然考试会崩的…
Compsci 235
课程名称:Software Development Methodologies
*要先修完CS 105或107或130
课程介绍:带大家了解软件开发,包括过程、最佳实践、工具和质量保证方式等方面。
课程难度:较难
Compsci 289
课程名称:Research Seminar in Computer Science
*GPA需要达到5.0,且提前修完要先修完CS 110或120或130
课程介绍:介绍有关计算机科学的研究课题。学生将被要求准备并发表一篇他们选择的主题的研究综述。
S1开设课程
Compsci 215
课程名称:Data Communications and Security
*要提前修完CS 110+PSYSCIS 140+CS 105或107或130
课程介绍:这门课主要是关于计算机系统网络方面, 包含OSI模型, 网络硬件, 密码学, 网络安全等。考试偏理论, 涉及范围广。
课程难度:较简单
STAGE 3
Compsci 313
课程名称:Computer Architecture
*需提前修完CS 210、215,Physics 140
课程介绍:本门课程主要帮助学生深入理解硬件(hardware), 固件(firmware)在计算机系统中的作用,同时带领学生研究硬件,固件和软件(software) 之间的关系。
课程难度:较难
Compsci 315
课程名称:Data Communications Technologies
*需提前修完CS 210、215
课程介绍:这门课主要讲的是数据通信和网络的结构。分层协议模型、数据传输和编码、链路级和局域网协议、广域互联网工作、路由、传输和安全协议等等。
课程难度:较难
Compsci 316
课程名称:Cyber Security
*需提前修完CS 210、215
课程介绍:这门课介绍了软件、系统和网络安全的相关概念。涵盖了一系列主题,包括对隐私的攻击和攻击面,恶意软件的静态和动态分析,硬件安全(可信计算基础,安全引导,认证),网络安全和一些热门的主题,在密码学包括椭圆曲线,区块链和比特币。
课程难度:中等
Compsci 320
课程名称:Applied Algorithmics
*需提前修完CS 220 +COMPSCI 225或MATHS 254或255
课程介绍:学习基础编程设计思维及如何使用算法高效解决问题,对算法有追求的同学可以考虑一下这门课, 相对比较难, 耗脑子。详细解析了多种经典算法及他们的运用方式。
课程难度: 较难
Compsci 335
课程名称:Functional Programming and Distributed Services
*需提前修完CS 230+另外一门CS STAGE 2课程
课程介绍:该课程会用html, css, javascript, F#, C#等语言来制作网站
课程难度:较简单
Compsci 340
课程名称:Operating Systems
*需提前修完CS 210和230 课程介绍:计算机系统, 包含了 虚拟机知识、多线程任务、内存安排等。是CompSci 210的延伸。也涉及到了系统安全, 病毒等方面。
课程难度:较难
Compsci 367
课程名称:Artificial Intelligence
*需提前修完CS 220 +COMPSCI 225或MATHS 254或255
课程介绍:较难
课程难度:人工智能的一些基本概念都会有涉及到,数据的搜索获取、自学等等。
S1开设课程
Compsci 345
课程名称:Human-computer Interaction
*需提前修完CS 230
课程介绍:主要讲的是人机交互, UI, 流程等知识信息。
课程难度:较简单
Compsci 350
课程名称:Mathematical Foundations of Computer Science
*需提前修完CS 220 +COMPSCI 225或MATHS 254或255
课程介绍:计算机数学建模,对复杂的问题提出理想化结果。涉及量子计算和Church‐Turing论点等。
课程难度:较简单
Compsci 351
课程名称:Fundamentals of Database Systems
*需提前修完CS 220 +COMPSCI 225或MATHS 254或255
课程介绍:数据库的学习,在这门课中你会学习数据库的建立及应用,课程分为两部分,第一部分你会学习到怎样设计和管理一个数据库,第二部分则是深入了解数据库(比如,如何维护,怎样处理数据的丢失,数据库的安全之类的问题)。
课程难度:较简单
Compsci 369
课程名称:Computational Biology
*需提前修完CS 220 +COMPSCI 225或MATHS 254或255
课程介绍:涉及算法和开发,科学演算推测并解决问题,应用统计学进行建模等。此科目主要倾向于计算机生物学(Computational Bio) 的应用。
课程难度:较难
Compsci 373
课程名称:Graphics and Image Processing
*需提前修完CS 210和230
课程介绍:计算机图形图像数据分析,包含了计算机领域的3-D建模、重建、图像概念、图像元、光影纹理、平曲面设计分析、光线追踪和捕捉感知颜色类型等。
课程难度:简单