计算机系课程之非常不完全介绍
只能分很多帖子慢慢写. 这个学期论文压力太大了... 要赶几个deadline 只能有点时间写点了.
计算机系和统计系的非常不一样, 所以体系方面就和特特的完全不一样了.
计算机系难的课程主要是Core course, 其中有些core course例如algorithm 对于外系似乎不是很友好, 曾经有EE的同学选结果倒下一片的.
CS phd要求是6门core course, 所以 目前为止, 我只尝试过这6门:
1.必修core course: computation theory, algorithm
2.AI core course: AI, machine learning
3.System core course: Operating System, Information Retrieval. Information Retrieval 现在改革属于AI类了
CS core course的特点是期中+期末考试, 平时assignment无数>5, projects数量>2, 一般都有一个大的final project. 所以一般系里推荐一个学期1门core course+1门non core course. 两门core course就没什么时间做research了.
首先介绍必修core course吧:
1. computation theory, 是Prof. immerman neil主讲. 从DFA, NFA, CFG, Turing Machine 到Complexity theory中的各种结构: NP, NL, EXP, .... 证明题无数. 作业是7-8次assignments, 期中期末各有8个证明题.
评价: 作业量极大, 死去n个脑细胞思考证明题, 主要是训练计算机系的基本素质和思维, 其中将来对于CS的同学影响较大的主要是regular expression 以及NP 问题的分析.
教授评价: 人非常nice, 有问必答. 该教授因为证明immerman定理获得过Godel奖(Godel不完备定理的Godel设立的奖)
2. algorithm, 这个讲义是Prof. Micah的, 很多不同的教授曾经主讲, 从Micah到Barrington到现在的一个faculty. 这门课显然是计算机系必备, 以后找工作, interview中关于algorithm的问题无数. 虽然课程极为实用, 但是课业量巨大: >5 次的assignment 另外期中期末考试另外再加上作业中多是很难的证明题目, 导致大家都比较郁闷.
建议: 外系不要轻易选这门课, 旁听就好了. 不过做作业有助于消化课程内容, 否则期中考试以后的内容基本可以让大家云里雾里.
课程假设本科已经修过algorithm和data-structure,所以如果没有这些基础建议自学introduction to algorithm那本书. 主要讲matriod, net-flow, graph-cut, NP problem, Dynamic programming, randomized algorithm,prime number testing, 加密解密算法, online algorithm等等. 东西比较杂.
教授评价: 因为n多教授都教过, 所以不好评价. 讲义都一样. Micah的平时作业很难, 杀手级的, fail过n多人, Barrington的作业还行, 人比较nice, 其他教授的情况不祥.
总之 两门巨课, 无数证明. 往事不堪回首.