研究生从EE转CS该如何做准备-新东方前途出国

您的位置:首页>顾问中心>田晓娜—离职>日志>研究生从EE转CS该如何做准备
在线咨询
免费评估
留学评估助力院校申请
获取验证码
立即评估
定制方案
费用计算
留学费用计算器
电话咨询
预约回电

顾问将于15分钟内回电

立即预约
咨询热线

小语种欧亚留学
400-650-0116

导航

研究生从EE转CS该如何做准备

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

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

  

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

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

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

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

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

  

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

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

  

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

  

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

 

Cornell: 

A bachelor'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 Algebra  Functions 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相关方向背景,如果不是本专业需要至少完成4CS课程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++
操作系统基础

次重要:
线性代数
概率论与统计
自动机理论
计算机组成结构
计算机网络
数据库

更多详情
-老师帮忙评估

自身软实力标化成绩多维度为您评估留学录取率

立即评估
推荐阅读 换一换