ee转行计算机的学校,研究生从EE转CS该如何做准备

EE学生能转CS,CS学生很少转EE,但是真有CS学生想转EE,我还得担心学生毕不了业。EE在本科学的比较稳扎稳打偏基础,学好了后劲非常猛,之所以这么多学生转CS说白了就是现在CS大热,在美国就业极其容易且高薪且低门槛,但是学EE的硬货学生就业也不难,EE棒棒哒~

再说到EE和CS的就业,首先我们要得搞清楚EE和CS在就业上代表着什么不同的方向。 宏观上说,EE是属于物理层面偏硬件,CS是物理层偏软件。举例来说,凡是跟芯片有关系的,Intel,AMD,德州仪器,都是偏硬件;凡是跟软件关系大的,从微软到甲骨文到金山,都是偏软件的。还有一些是做产品和集成的,比如说NOKIA,华为,BYD之类,是典型的软硬兼修,并不偏向哪一个,因为他们的产品离开了硬件软件都不行。EE几个比较有代表性的方向是电磁学、电路设计相关、控制电路相关、微机电系统、强电系统、通信系统相关。在美国所有相关的专业都有比较好的工作形势。

那么转申Computer Science需要做哪些准备工作呢?

怎么提高自己的竞争力去跟本科CS的同学竞争少量的录取名额呢?

今天和大家分享一下我的建议。

这里我们需要明确一个概念:提高竞争力,是指如何增加你手中的干货,也就是在申请工作开始的时候,你积攒了多少有说服力的东西。而如何把这些东西呈现出来、呈现的效果如何,则是另外的问题,不在我们今天的讨论范围之内。

同学们都知道,以下因素对提升自身竞争力起着重要作用:GPA、学校背景/档次、GRE、TOEFL、竞赛、实习、科研背景等。但究竟哪一项更重要,不同的人有不同的看法。

在转专业申请CS硕士时,这些因素的重要程度,我的看法是:

CS专业先修课程(及其GPA)>本专业的GPA> CS相关的实习经历> TOEFL >GRE > CS相关的竞赛>CS相关的科研经历

先修课程来举例。假设有这样两个申请者,他们的条件非常相似:交大,大学期间成绩85左右,GT成绩全部一样,大学期间别的没干,就好好学习了。但他们一个是学中文的,一个是学CS 的。要说优秀,学CS 的真不一定比学中文的优秀。但在申请某CS 名校时,招生官更愿意要哪个呢?当然是CS 专业的。这就是先修课程的作用。美国许多CS 硕士项目都规定了先修课程,没有修满是非常吃亏的,获得录取的难度会增加不少。这个例子希望可以让各位体会到先修课程的巨大作用。那么为了在这方面做好,我们要做的是什么呢?仅仅是需要在本科时多选一些CS 先修课程就好了。

先修课程,英文叫做prerequisite,指的是你在修某一个课程前必须先修的课程。比如,你想学算法基础,你至少要先学一门计算机语言吧。所以,C、C++、Python等都可以是算法基础这门课的先修课程。有的课程列出一堆先修课程,告诉你只要修过一门就可以了,有的课程则要求必须修过哪几门,一门都不能缺。很多学校的硕士申请页面都有明确的列出要申请这个硕士项目的先修课程,各位可以自行去官网查看。

Cornell:

Abachelor's degree (BA / BS / BE) in computer science or a related technical field (e.g., electrical and computer engineering, information science, operations research) typically suffices. Applicants who have majored in other fields are absolutely encouraged to apply provided they have demonstrated knowledge of the following subjects:

·Object-Oriented Programming and Data Structures (e.g.,CS 2110)Intermediate programming in a high-level language and introduction to computer science. Topics include program structure and organization, object-oriented programming (classes, objects, types, sub-typing), graphical user interfaces, algorithm analysis (asymptotic complexity, big “O” notation), recursion, data structures (lists, trees, stacks, queues, heaps, search trees, hash tables, graphs), simple graph algorithms. Java is the principal programming language.

·Data Structures and Functional Programming (e.g.,CS 3110)Advanced programming course that emphasizes functional programming techniques and data structures. Programming topics include recursive and higher-order procedures, models of programming language evaluation and compilation, type systems, and polymorphism. Data structures and algorithms covered include graph algorithms, balanced trees, memory heaps, and garbage collection. Also covers techniques for analyzing program performance and correctness. NOTE: Although knowledge of functional programming is not essential, advanced knowledge of data structures is.

·Computer System Organization and Programming (e.g.,CS 3410)An introduction to the design of embedded systems, with an emphasis on understanding the interaction between hardware, software, and the physical world. Topics covered include assembly language programming, interrupts, I/O, concurrency management, scheduling, resource management, and real-time constraints.

·Discrete Structures (e.g.,CS 2800) Covers the mathematics that underlies most of computer science. Topics include mathematical induction; logical proof; propositional and predicate calculus; combinatorics and discrete mathematics; some basic elements of basic probability theory; basic number theory; sets, functions, and relations; graphs; and finite-state machines. These topics are discussed in the context of applications to many areas of computer science, such as the RSA cryptosystem and web searching.

·Basic Calculus and Linear AlgebraFunctions and graphs, limits and continuity, differentiation and integration, volume and arc length, infinite sequences and power series, parametric equations, partial derivatives, double and triple integrals, line and surface integrals, vector fields, gradients and Jacobians, matrices, determinants, vector spaces, linear systems, least squares, eigenvalues and eigenvectors, orthogonality and inner product spaces.

The courses listed above will best prepare you for the courses required to meet the CS M.Eng degree requirements. It is essential that the material covered in these courses be familiar to you in order for you to be successful. We suggest that when taking the equivalent of the Cornell CS courses listed as pre-requisites, you insure the courses you take cover the same material and the school where you take them is of comparable to Cornell.

U of Southern California:

(南加大的先修课要这么理解,你要学习A这门课,那你应该掌握以下几项技能,这几项技能一般是本科阶段的BCD几门课教的。)

MS in Computer Science

About the CSCI 402 - Operating Systems Prerequisite:

ALL Computer Science (CSCI) Majors:For CSCI students that are interested in the following courses: CSCI 530, CSCI 551, CSCI 555, and CSCI 588L, the department will waive the CSCI 402 prerequisite if the student has completed an operating systems course during his/her undergraduate degree.  If he/she has not completed an OS course during the bachelor's degree, then the student is required to complete CSCI 402 here at USC and earn a grade of "C" or better.  Students in Scientists & Engineers are required to take CSCI 402 and cannot have it waived off.

NON-Computer Science Majors:

For Non-Computer Science Majors who are interested in the following courses: CSCI 530, CSCI 551, CSCI 555, and CSCI 558L, you must complete CSCI 402 here at USC and earn a grade of "C" or better.  We will not grant any waivers.  There is no placement examination.

About the EE 450 - Computer Networks Prerequisite:

The department will not waive the EE 450 prerequisite for CSCI 551 or CSCI 558L.  All students (CS and non-CS) are still required to either pass the EE 450 placement examination or complete EE 450 here at USC and earn a grade of "C" or better

UCSD:

需要满足的先修课要求有:

Basic programming: JAVA, C, C++等

Discrete math

Data structures and algorithms

Background in some or all of the following is also recommended:

Hardware and architecture

Systems and Software

Theory

Columbia University

本科为CS相关方向背景,如果不是本专业需要至少完成4门CS课程covering foundations of the field and basic programming和两门数学课程。

For example, Intro to Computer Science (COMS W1004 or COMS W1007), Advanced Programming (COMS W3157), Data Structures and Algorithms (COMS W3134 or W3137), which is a prerequisite for most of our graduate-level courses, or/and Discrete Math (COMS W3202).

仔细分析一下你会发现他们要求其实很低,通常是要求一门数学课程(比如《高等数学》。《离散数学》)+一门计算机基础课程(比如《计算机基础》)+一门语言课程(比如《C语言》)+一门算法课程(比如《数据结构与算法》)+一门高级语言课程(比如《C++语言》)。但是请你想想,如果你仅仅是修了这么几门课,怎么和计算机专业的学生竞争呢?所以,我的建议是:尽量多修。

附上中文翻译,来源于匿名知友的最重要,次重要,一般重要整理:

最重要:高等数学离散数学计算方法计算机基础数据结构计算机算法C语言C++操作系统基础次重要:线性代数概率论与统计自动机理论计算机组成结构计算机网络数据库

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值