在现在这个CS专业越来越火,无论学什么专业有一点编程技能都能锦上添花的时代,转入CS专业或者辅修一个CSminor都是一个不二选择。一般转入major或minor CS都需要修完至少三门专业课,并获得A-以上的成绩。这篇文章将介绍一些CS必修课的情况,让对CS课程还没有认知的同学对它们有一个大概的了解。下面的介绍都是针对没有编程基础的新手而言,已经有许多经验的人可以直接一学期上N门轻松转入。
CS125 Introduction to Computer Science:
CS125是计算机专业的入门课程,它以教授Java语言为途径,从编程的基础,如type,条件语句等讲起,深入讲解面向对象编程,至期末时讲解时间、空间复杂度,及递归为终结。一般约有7个MP(Machine problem, 即编程大作业),难度依次上升。对于从来没有接触过编程的新手而言需要花费不少精力与时间。但课程给分并不strict,也有许多extra credit。上完这门课就可以说是入了编程的门了,可以轻松handle一些普通的编程。想转CS major或者minor CS的同学可以从尝试这门课入手,体会一下自己是否对编程有兴趣,再决定是否深入学习下去。一般拿A以上的成绩可以说基础学的足够扎实,能继续后续的学习。
推荐Textbook:Introduction to Programming Using Java, Seventh Edition, by David J. Eck
CS173 Discrete Structures:
CS173 是一门离散数学课,课程不需要写代码,但离散数学对于往后的深入CS学习有十分重要的影响。它覆盖的topic有逻辑,如何做严格的数学证明(包括归纳法,反证法,直接证明),函数的映射性质,一些简单数论,图论,集合性质,状态机,递归等。通过教授严格的数学证明,这门课让你对那些知识的模糊的感觉有一个更formal的理解,这对日后学习CS374 Algorithms and Models of Computation十分重要。
课程覆盖了大多数的基础topic,但教的并不十分深入,属于难度尚可的课。许多有较好数学基础的同学会选择在proficiency exam考掉。
Official textbook by Margaret M. Fleck链接:http://ermine.cs.illinois.edu/building-blocks/index.html
CS225 Data Structure:
CS225 数据结构CS125, CS173之后最为重要的一门基础课。课程前三分之一讲授C++语言,然后大部分时间讲授数据结构,结尾讲一些常见的图算法。因学C++必须要学习指针,通过对相对Java而言较底层的指针的掌握,可在在学习数据结构时对时间复杂度更为敏感。同时对充满指针的C++程序debug经验能让你的编程和debug能力迅速增加。CS225的debug会是一个比CS125困难很多的过程,因此课程也安排了非常充足的office hour,在那里可以寻求debug帮助。
数据结构部分会覆盖大部分常见结构比如数组,链表,二叉搜索树,AVL平衡树,哈希表,并查集等。对数据结构的深入理解和使用不仅仅对高效的编程不可或缺,同时在设计算法方面也有着极其广泛的运用。可以说学习CS方向的任何一个分支都必须有扎实的数据结构基础。同时,找实习时几乎所有公司的要求都会有熟练掌握数据结构,这门课的重要性也由此可见。
这门课约有7个MP,每周1个lab,工作量和debug的难度约是CS125的翻倍,因此需要话费许多时间认真学习才能学通学扎实。CS advisor经常因为课程爆满而推荐把CS173和CS225分两个学期上,但实际上大多数人的进度都会把两门课在同一个学期修完。
推荐Textbook: Introduction to Algorithms by Thomas H. Cormen
CS233 Computer Architecture:
CS233 计算机体系讲授底层的知识,如CPU中的算术数逻辑单元,寄存器堆,Pipelining,Cache等。是比较硬的一门课,每周一个lab,没有mp,7个考试1个final。其中约期末时对Pipelining和Cache考察的考试较深入,需要完全吃透的课程内容才有机会拿高分,需要仔细准备,很多人都因为这一场考试而没有拿到A。CS233一般是作为CS241 System Programming的prerequisite,了解计算机底层的知识对学习系统有许多帮助。
下期介绍:CS241 System Programming, CS374 Model of Computation and Algorithm, CS357 Numerical Methods等
领取专属 10元无门槛券
私享最新 技术干货