七月将至,又是一年一度的选课季来临~utfaq特别推出【CSC课程专用选课攻略】给各位CS专业/对编程有兴趣的小伙伴们~这其中有客观的介绍,也有主观的吐槽,小编在这里特别提醒大家他人的意见只是参考,要结合自身情况理性思考,才能选到真正合适自己的课程哦。

另外,如果大家有意愿和更多人分享自己的上课心得,欢迎联系我们投稿!随时等你们哦~~

我们还汇总了一部分课程的syllabus,past tests,assignments等资料,上传在网盘里分享给大家,更多课程资料福利请戳http://pan.baidu.com/s/1eQrTfjW (提取码2tu6)

tips:戳下方[目录],不用翻找,一键链接到想看的课程~

CSC108-Introduction to Computer Programming

作者:Joyce Zhou,Computer Science+Actuarial Science

学术背景:9年级来到加拿大上,中学的四年是在温哥华度过的,英文对付上课无压力。初中学过pascal语言,但是因为上课的时候老玩4399所以除了搞清楚if和else的关系以外并没有学会任何东西。没有接触过任何算法方面的东西,在计算机方面基本上是纯新手。

连必修课都算不上的大一基础课,没有任何pre-requisite,面向完全没有编程基础的小伙伴们,任何想学习计算机相关知识但是奈何没有基础的小伙伴们都会来学的课。

  • 所有考试,作业比重:(也许每年会有小范围波动)
    • 每周会在网上有练习题,只要好好做都能拿到分,这些练习题加起来一共占14%左右。
    • 三个assignment一共占21%。
    • 半期考试占14%。
    • 期末考试占50%
    • 还有最后1%是完成问卷调查白送的~
  • 课程内容:这门课是python编程入门,主要讲了一些python的简单编程。
  • 感受:个人感觉是很简单的一门课,每个星期好好看online lecture,把网上的题做了,不去lecture感觉也没什么……
  • 上课构架:就是把online lecture里面的内容再重复一遍而已。如果对online lecture有不明白的地方的话,可以当面去问教授。
  • Assignment:三个assignment,都是写一些短小的function。只要理解了课上学的内容就完全没有问题。
  • 考试:主要考察的是学生对code的理解以及写code的能力。有一些题会给出一段code让学生分析它的作用/BUG/运行结果。还有一些题就是让学生手写程序……(没错,手写!)
  • 总结:难度并不高的一门课,只要逻辑思维还算过的去的话,好好学一定能够拿到理想的分数的。
  • 据说这节课有一个online session,那个session没有任何lecture,但是比其他session每个星期多一些练习题。可是笔者认为,如果真的是不想去lecture的话,不去就好了不会点名的,把普通session当成online session上呗还少做点题呢。

此外,coursera上面有一门叫做”Learn to Program: The Fundamentals”的课,这门课就是CSC108。如果不是很有把握自己能不能跳过CSC108直接上CSC148,或者想在上课前先提前看一看这门课的内容的话,不妨去coursera上看一看。


CSC108-Introduction to Computer Programming

作者:Gavin Zhang,黄学长,CS程序狗,以码code为生

学术背景:无课程相关基础。

我大Computer Science的入门课程,专门给没有任何编程经验的小伙伴准备的。如果你是一位已经有了无数编程经验的编程大神,可以跳过这门课直接上CSC148。当然,完全没有或有一点编程经验小伙伴们还是老老实实的上吧。

在这门课里,主要通过学习Python编程软件编写程序,来掌握编程里一些最基础的概念和知识。这门课整体的难度并不高,考试拿高分的关键就是细心,细心,再细心!不要因为粗心缺这儿少那儿的明明会做的题却被扣很多细节冤枉分(学长默默擦掉眼角的泪…)。

同时,既然是CS的课当然少不了实践的Assignment。CS的Assignment和其他科目的project啊essay啊比起来有一个非常特殊的好处,那就是可以找队友!找到一个好的队友和你一起写Assignment无疑是为拿高分增添了一份保障。如果运气好找到大神一组更是可以躺着拿高分。当然,不能因为队友可以carry就不好好学了。。。那样考试的时候还是很容易崩的。。。

CSC108作为入门课程,主要还是帮助大家对编程有一个初步的认识与理解,如果想要在程序猿这条道路上继续深造下去,务必在这门课上打好基础。


CSC148-Introduction to Computer Science

作者:Joyce Zhou,Computer Science+Actuarial Science

学术背景:9年级来到加拿大上,中学的四年是在温哥华度过的,英文对付上课无压力。初中学过pascal语言,但是因为上课的时候老玩4399所以除了搞清楚if和else的关系以外并没有学会任何东西。没有接触过任何算法方面的东西,在计算机方面基本上是纯新手。

Prerequisite:CSC108(但是如果有编程经验的话不要这个prerequisite也可以)

专业课要求分数:67%

发展方向:所有CS学生的必修课,以及很多其他的和CS有关的专业的必修课。

这门课的重要性:感觉很重要吧,这门课向学生介绍了很多数据结构,感觉以后都会用到的。

  • 课程内容:继CSC108之后的编程课,编程语言还是Python。讲了一些数据结构。
  • 感受:一开始课程内容并不难,在看到第一个assignment的时候有些被吓到了,和CSC108的跨度稍微有一点大。之后习惯了就好了。
  • Lab:个人感觉是这节课最有用的地方了……每节lab都有点像CSC108的一个assignment,学生需要围绕这个星期学习的数据结构来写一些function。这些lab在帮助学生理解数据结构上起到了很大的作用。
  • Assignment:相比CSC108的assignment只是写一些单独的function的话,CSC148的assignment要求学生写一个相对完整的小程序。意思就是,除了写function,学生需要从结构上来设计整个程序。所以第一个assignment会感觉难度略大,但是之后教授会给出这个assignment的solution,也就同时给出了一份几乎完美的程序结构。加之后来适应了这门课的思维方式,接下来的assignment应该都不算太难。
  • 考试:基本上就是手写程序了,就当成一个三个小时的综合lab好啦……哦对没有TA在旁边指导哦~
  • 总结:不算难的一门课,只要把讲到的数据结构理解了就不会有太大问题。Lab一定要认真做

CSC148-Introduction to Computer Science

作者:Gavin Zhang,黄学长,CS程序狗,以码code为生

学术背景:无课程相关基础。

CSC108的进阶课程,也是CS大一最最最重要的必修课。如果想要进CS的Major或者Specialist,这门课则不能低于60分,以及它和CSC165两门的平均分不低于67分。相比于CSC108,CSC148的难度有了质的提升

同样是使用Python进行编程,CSC148会从108最后学的Class开始讲起,并不断的引入新的算法,越来越深入的学习Programming。作为CS大一的必修课,是所有想修CS的同学们必须迈过去的一个坎儿。这是一门真正需要大家付出时间,精力,与努力才能修好、拿高分的课。


CSC165-Mathematical Expression and Reasoning for Computer Science

作者:Gavin Zhang,黄学长,CS程序狗,以码code为生

学术背景:无课程相关基础。

CS大一的必修课,是相当有意思的一门课,主要理念是把所有文字表达的东西转化成符号来进行表达。学长在有段时间里学的有点走火入魔,听到很多话在脑海里都会自动过滤成符号哈哈。在这门课里会学到很多数学,统计等等其他专业都会用到符号和推导定义,同时也会有学习一些简单的证明(虽然是简单的证明然而并不简单 [微笑])。但总的来说,只要认真听课,好好练习,拿高分并不是很难。


CSC240-Enriched Introduction to the Theory of Computation

作者:Joyce Zhou,Computer Science+Actuarial Science

学术背景:9年级来到加拿大上,中学的四年是在温哥华度过的,英文对付上课无压力。初中学过pascal语言,但是因为上课的时候老玩4399所以除了搞清楚if和else的关系以外并没有学会任何东西。没有接触过任何算法方面的东西,在计算机方面基本上是纯新手。

教授:Ellen Faith

Corequisite:CSC148/CSC150; MAT137/MAT157

专业课要求分数:60%

 

  • 班级平均分:B+
  • 分数比重:
    • Weekly assignment:10*4% = 40% (就是每周几道题的作业)
    • Weekly quiz:10*1% = 10%
    • Midterm:20%
    • Final exam:40%
  • 课程内容:这门课一共有五个topic,分别是:
    • Predicate and propositional logic 各种逻辑符号以及他们的意思,这些符号在接下里的课程中会频繁使用。
    • Proof这个topic 是让学生熟悉各种类型的证明,同样,接下来的课程中会频繁运用到这些证明方法。
    • Induction 一种很重要的证明方法,后面会经常用到。
    • Correctness and Analysis of Iterative and Recursive Algorithms 个人认为这个topic算是这节课的主线剧情了。主要内容就是分析各种算法的正确性,运算时间。
    • Languages and Automata Theory 这个……中文好像叫自动机?
  • 课程形式:

一开始的predicate and propositional logic和proof这两个topic是online完成的。学生需要在上课之前根据教授给出的一段视频进行自学。虽然说视频不长,但是内容蛮多的。所以笔者感觉这个视频一般要花一个小时左右吧。Lecture的一个小时教授会根据视频里的内容进行举例,帮助学生更好的理解这些知识点。

之后的lecture是在教室里面进行的。Ellen Faith讲课逻辑非常清晰,全程手写,板书比较整洁。但是课程进度很快。

Tutorial的内容是讲解assignment+考quiz。但是一般来讲,大家好像明显更看重这个quiz部分……

  • 上课感受:

这是一门进度很快的课。这门课的进度到底有多快呢?同样是一个学期,CSC240这门课讲完了CSC165和CSC236这两节课的内容,同时还增加了难度。加量不加价哦!

在适应了CSC108的悠哉游哉的进度之后,CSC240的第一个lecture真是把我给吓尿了。加之当时刚放完寒假回来,笔者暂时还在这门课的waitlist上面,所以并不知道上课之前需要看视频进行学习这回事。第一节课完!全!没!听!懂!

在一开始两个星期的quiz和assignment失利之后,我才渐渐适应了这门课的节奏。这门课的进度非常快,所以我从来不敢迟到什么的,怕一迟到就跟不上了。

哪怕在适应了之后,这节课还是很难,一个weekly assignment三四道题吧,一般来说我都会花大半天泡在图书馆里来解决他们。

在开学两个星期过后,这门课的人会变得很少,意思就是,这是一个小班课程!教授基本上会认识她的所有学生哦~(嗯,我说的是来听课的那些)

  • 课本:

这节课并没有课本……省钱的同时意味着:如果缺课你就完蛋了!好在今年的课是上午11点到12点,只要不是太爱睡懒觉应该还是能做到全勤的。

考试相关:

考试的难度和平时的assignment差不了太多,题型在assignment里面都出现过。时间稍微有一些紧迫。应该会有curve。(2015年的midterm和final都curve了)

考试可以带一张手写的A4大小的cheat sheet。笔者亲测,把字写小一点的话基本上能把整节课的笔记抄进去——然而并没有什么卵用。因为公式在考试里的作用实在是微乎其微,主要考察的还是学生对这些公式与方法的运用:你的笔记里面并没有这些东西。

  • 总体推荐程度:

虽然说上面吐槽了那么多这节课有多么多么难。但是总体来讲我还是很喜欢这门课的,说是我大一最喜欢的课程也不为过。Ellen Faith真的是一个很棒的教授,无论是她的学术水平还是教学能力都很优秀,她能用逻辑把繁复的证明梳理的很清晰,如果不是有分数的压力的话,上这门课其实蛮享受的。

此外正因为这节课很难,所以这节课的平均分在UT算是很高的了。因为教授说了,I don’t want you guys to get punished for challenging yourselves。教授说,她是根据CSC236的难度来curve大家的分数的。

而且,对于大一的小伙伴来说,上小班课程的机会并不多,这是一个难得的学生能够真正和教授有交流的课程。如果小伙伴对自己的逻辑和数学能力有一定的自信,真的应该尝试一下这门课,对自己是一个挑战,也是一个提升。

这门课适合哪种类型的同学:

Obviously, CSC240 is not for everyone。

如果想研究算法的同学,请一定考虑来这门课。另外,如果上半学期的学业并没有让你觉得压力很大,那么应该来试试CSC240。

  • 想要学好这门课,该做好哪些准备:

请做好每个星期在除了lecture和tutorial之外还要投入至少五个小时的准备。以及分数可能会不好看的觉悟。(但是说真的,笔者身边最后选择留下来的小伙伴的分数都还是不错的。)

班上可能会出现一些大神,可能会被碾压到连北都找不到,但是没关系,这些大神不会影响你的分数的!Ellen Faith的教学还是很平易近人的。

lecture请一定认真听!一定认真听!一定认真听!听不懂就问!反正一堂课也没几个人耽误不了啥的。最好能够做到lecture讲到哪里理解到哪里。

Office hour要好好利用,Ellen Faith人很好的,笔者有一次没有听懂去office hour找她的时候她基本上单独给我把课再讲了一遍……如果有哪里没弄明白,最好能够在下一节lecture开始之前去问教授,否则要是下一节lecture也没听明白就糟糕了。

如果一开始的分数不好看,不妨找教授谈一谈,她会很乐意帮助你figure out这门课是否适合你的。也许真的只是从相对松散的多大大一突然来到这样一门快节奏的课程需要一定时间来适应而已。