May 2009 - May 2017 论坛八周年-你的足迹,我的骄傲



查看: 5385|回复: 40

Umich EE:S新生,转CS。求各路大神指点选课。

[复制链接] |试试Instant~ |关注本帖
xiaoxiaohan 发表于 2014-5-15 16:18:31 | 显示全部楼层 |阅读模式


您需要 登录 才可以下载或查看,没有帐号?获取更多干活,快来注册

请各位帮忙看一下,缺什么课程。在哪些能力方面(尤其是coding?)还有欠缺,需要靠哪些课程来进一步弥补的。。哪些课程可能对就业帮助不是特别明显,特别理论化的。可以删掉。。亦或是有哪些课选的比较重复可以删去的。给出建议。拜谢。。。Umich CSE的各位大牛能给出指点就更好了。。拜谢。。。

EECS 101. Thriving in a Digital World
Prerequisite: none. (4 credits)
From mobile apps to bitmaps, this course explores computational technologies and how they impact society and our everyday lives. Topics include: social networks, creative computing, algorithms, security and digital privacy. Traditional computer programming is not a primary focus. Instead, mobile applications will be created using a novel visual programming environment.
EECS 182 (SI 182). Building Applications for Information Systems
Prerequisite: none. I, II (4 credits)
Fundamental programming skills in the context of end-user software applications using a high-level language, such as Ruby or Python. Rapid design of a variety of information-oriented applications to gather, analyze, transform, manipulate, and publish data. Applications drawn from statistics, pattern matching, social computing and computer games.
EECS 183. Elementary Programming Concepts
Prerequisite: none. (Credit for only one: EECS 183, ENGR 101) I, II (4 credits)
Fundamental concepts and skills of programming in a high-level language. Flow of control: selection, iteration, subprograms. Data structures: strings, arrays, records, lists, tables. Algorithms using selection and iteration (decision making, finding maxima/minima, searching, sorting, simulation, etc.) Good program design, structure and style are emphasized. Testing and debugging. Not intended for Engineering students (who should take ENGR 101).

EECS 203. Discrete Mathematics
Prerequisite: MATH 115. I, II (4 credits)
Introduction to the mathematical foundations of computer science. Topics covered include: propositional and predicate logic, set theory, function and relations, growth of functions and asymptotic notation, introduction to algorithms, elementary combinatorics and graph theory and discrete probability theory.
EECS 270. Introduction to Logic Design
Prerequisite: EECS 183 or ENGR 101 or equivalent. I, II (4 credits)
Binary and non-binary systems, Boolean algebra, digital design techniques, logic gates, logic minimization, standard combinational circuits, sequential circuits, flip-flops, synthesis of synchronous sequential circuits, PLAs, ROMs, RAMs, arithmetic circuits, computer-aided design. Laboratory includes design and CAD experiments.
EECS 280. Programming and Introductory Data Structures
Prerequisite: ENG 101 or ENG 151 or EECS 182 or EECS 183 or permission of instructor. I, II (4 credits)
Techniques and algorithm development and effective programming, top-down analysis, structured programming, testing and program correctness. Program language syntax and static and runtime semantics. Scope, procedure instantiation, recursion, abstract data types and parameter passing methods. Structured data types, pointers, linked data structures, stacks, queues, arrays, records and trees.
EECS 281. Data Structures and Algorithms
Prerequisite: EECS 203 and EECS 280. I, II (4 credits)
Introduction to algorithm analysis and O-notation; Fundamental data structures including lists, stacks, queues, priority queues, hash tables, binary trees, search trees, balanced trees and graphs; searching and sorting algorithms; recursive algorithms; basic graph algorithms; introduction to greedy algorithms and divide and conquer strategy. Several programming assignments.
EECS 282. Information Systems Design and Programming
Prerequisite: EECS 182 or EECS 183 or ENGR 101 AND Math 115. II (4 credits)
Techniques for algorithm development and programming. Learning a programming language, such as Java, which is suitable for designing enterprise-scale information systems; data structures including stacks, queues, trees and dictionaries; recursion; program complexity; object-oriented design; handling exceptions, debugging and testing; introduction to database design with JDBC and SQL.

EECS 285. A Programming Language or Computer System
Prerequisite: some programming experience. I (2 credits)
A course covering a complex computer system or programming language. Programming problems will be assigned. Specific languages or systems to be offered will be announced in advance
EECS 370. Introduction to Computer Organization
Prerequisite: (EECS 203 or EECS 270) and (EECS 280 or EECS 283). I, II (4 credits)
Basic concepts of computer organization and hardware. Instructions executed by a processor and how to use these instructions in simple assembly-language programs. Stored-program concept. Datapath and control for multiple implementations of a processor. Performance evaluation, pipelining, caches, virtual memory, input/output.
EECS 373. Design of Microprocessor Based Systems
Prerequisite: EECS 270 and EECS 370 and junior standing. I, II (4 credits)
Principles of hardware and software microcomputer interfacing; digital logic design and implementation. Experiments with specially designed laboratory facilities. Introduction to digital development equipment and logic analyzers. Assembly language programming. Lecture and laboratory.
这门课要求junior standing。。有点不太理解。。
EECS 376. Foundations of Computer Science
Prerequisite: EECS 203 and EECS 280 or equivalent. I, II (4 credits)
An introduction to computation theory: finite automata, regular languages, pushdown automata, context-free languages, Turing machines, recursive languages and functions and computational complexity.
EECS 381. Object Oriented and Advanced Programming
Prerequisite: EECS 281 and EECS 370. I, II (4 credits)
Programming concepts and techniques in Standard C++ for complex or high-performance software: C foundations, separate compilation model, modular design, incomplete types, exceptions, generic programming, function objects, Standard Library algorithms and containers. Achieving extensibility with single and multiple inheritance and polymorphism, basic design idioms, patterns and notation. Intensive programming projects required.
EECS 470. Computer Architecture
Prerequisite: EECS 370 and EECS 270 or graduate standing. I, II (4 credits)
Basic concepts of computer architecture and organization. Computer evolution. Design methodology. Performance evaluation. Elementary queuing models. CPU architecture instruction sets. ALU design. Hardware and micro-programmed control. Nanoprogramming. Memory hierarchies. Virtual memory. Cache design. Input-output architectures. Interrupts and DMA. I/O processors. Parallel processing. Pipelined processors. Multiprocessors.
EECS 477. Introduction to Algorithms
Prerequisite: EECS 281 or graduate standing. II (4 credits)
Fundamental techniques for designing efficient algorithms and basic mathematical methods for analyzing their performance. Paradigms for algorithm design: divide-and-conquer, greedy methods, graph search techniques, dynamic programming. Design of efficient data structures and analysis of the running time and space requirements of algorithms in the worst and average cases.
EECS 480. Logic and Formal Verification
Prerequisite: EECS 281 and (EECS 376 or EECS 270). I, alternating years (4 credits)
An introduction to current methodologies for verifying computer systems. Topics covered include logic and theorem proving; transition systems; temporal logic and the mu-calculus; modeling sequential and concurrent systems; model checking methods; binary decision diagrams; and controlling state explosion. Students will complete a project using current model checking technology.
EECS 481. Software Engineering
Prerequisite: EECS 281 or graduate standing. II (4 credits)
Pragmatic aspects of the production of software systems, dealing with structuring principles, design methodologies and informal analysis. Emphasis is given to development of large, complex software systems. A term project is usually required.
EECS 482. Introduction to Operating Systems
Prerequisite: EECS 281 and EECS 370 or graduate standing. I, II (4 credits)
Operating system design and implementation: multi-tasking; concurrency and synchronization; inter-process communication; deadlock; scheduling; resource allocation; memory and storage management; input-output; file systems; protection and security. Students write several substantial programs dealing with concurrency and synchronization in a multi-task environment, with file systems and with memory management.
EECS 483. Compiler Construction
Prerequisite: EECS 281 and EECS 370 or graduate standing. II (4 credits)
Introduction to compiling techniques including parsing algorithms, semantic processing and optimization. Students implement a compiler for a substantial programming language using a compiler generating system.
EECS 484. Database Management Systems
Prerequisite: EECS 281 or graduate standing. I, II (4 credits)
Concepts and methods for the design, creation, query and management of large enterprise databases. Functions and characteristics of the leading database management systems. Query languages such as SQL, forms, embedded SQL, and application development tools. Database design, integrity, normalization, access methods, query optimization, transaction management and concurrency control and recovery.
EECS 485. Web Database and Information Systems
Prerequisites: {EECS major OR Informatics major AND (EECS 281 OR EECS 382)} OR graduate standing. II (4 credits)
Concepts surrounding Web information systems, including client/server systems, security, XML, information retrieval and search engines and data replication issues. Includes substantial final project involving development of a database-backed web site.


xsh6528 发表于 2016-3-4 19:39:36 | 显示全部楼层
前辈还来地里吗?刚拿到Umich ECE AD。想问下,10门课里选7门CS性质的操作性如何,都能选上吗?您最后选了哪些课
回复 支持 1 反对 0

使用道具 举报

drphilistine 发表于 2014-5-15 17:02:08 | 显示全部楼层
我觉得281 370 381 477 482 484比较重要。很不能理解UM power出身的人居然是coding零基础,至少一门语言课基础该是有的吧。
回复 支持 反对

使用道具 举报

 楼主| xiaoxiaohan 发表于 2014-5-15 17:54:21 | 显示全部楼层
drphilistine 发表于 2014-5-15 17:02
我觉得281 370 381 477 482 484比较重要。很不能理解UM power出身的人居然是coding零基础,至少一门语言课 ...

回复 支持 反对

使用道具 举报

lyuhao 发表于 2014-5-15 23:43:27 | 显示全部楼层



回复 支持 反对

使用道具 举报

 楼主| xiaoxiaohan 发表于 2014-5-16 11:57:51 | 显示全部楼层
lyuhao 发表于 2014-5-15 23:43


回复 支持 反对

使用道具 举报

donnice 发表于 2014-5-17 02:10:31 | 显示全部楼层
回复 支持 反对

使用道具 举报

rlzth2013 发表于 2014-5-25 07:01:17 | 显示全部楼层
lyuhao 发表于 2014-5-15 23:43


这样选课根本就满足不了degree requirement,毕不了业呀,别瞎给建议。
回复 支持 反对

使用道具 举报

rlzth2013 发表于 2014-5-25 07:04:22 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| xiaoxiaohan 发表于 2014-5-26 18:31:22 | 显示全部楼层
rlzth2013 发表于 2014-5-25 07:04
楼主得先确定是学software还是hardware。感觉楼主列的课都是software的课,482和484学了就够找工作了。但前 ...

非常感谢~~你应该是Umich的在校生吧。。。我问过很多人。。Power的前景在美国还是不太乐观。。Power PHD自然是没问题。。只是我一个小MS。。感觉还是没啥竞争力。。。很多都找有多年工作经验的。。。。你说Power很好找工作是怎么得出这个结论的。。感谢信息。。
回复 支持 反对

使用道具 举报

 楼主| xiaoxiaohan 发表于 2014-5-26 18:55:45 | 显示全部楼层

1打头的选1门ENGR 101. Introduction to Computers and Programming
回复 支持 反对

使用道具 举报

 楼主| xiaoxiaohan 发表于 2014-5-26 18:57:59 | 显示全部楼层
rlzth2013 发表于 2014-5-25 07:04
楼主得先确定是学software还是hardware。感觉楼主列的课都是software的课,482和484学了就够找工作了。但前 ...

回复 支持 反对

使用道具 举报

donnice 发表于 2014-5-27 15:00:31 | 显示全部楼层
xiaoxiaohan 发表于 2014-5-26 18:57
我之前考虑过。。学硬件的话就不转了。。不过power的伤不起啊。。一直说不是很好找工作的样子。。就想反 ...

回复 支持 反对

使用道具 举报

bazingawang 发表于 2014-5-27 15:23:19 | 显示全部楼层
donnice 发表于 2014-5-27 15:00

双学位= =。。。好贵。。。
回复 支持 反对

使用道具 举报

 楼主| xiaoxiaohan 发表于 2014-5-27 19:03:09 | 显示全部楼层
donnice 发表于 2014-5-27 15:00

回复 支持 反对

使用道具 举报

尚佳蕾 发表于 2014-5-29 10:24:46 | 显示全部楼层
(1) 400 level一下的课程不会让你选, 但281 一定要去上,370 也建议,策略是混visiting,然后不去rackham改visiting,这样保持enroll的状态来拿到学分与push自己好好学。
(2) 381无论如何连visting都不会让你去。建议找一个不爱学习的本科同学帮他做project来练手,否则等于没学

回复 支持 反对

使用道具 举报

rlzth2013 发表于 2014-5-30 10:38:55 | 显示全部楼层
你可以看看Zach大神的贴,他是umich power的phd,据他说所有的ms都找着工作了,我认识的umich power的人也都找着了。我说的就业形势是说相比control的,我同学在usc,她那的power就业率基本上能赶上vlsi了,不过因为她那vlsi学的人多,没啥可比性。如果你要拿cs比的话肯定比ee的要好很多倍。找工作我不太清楚,但是今年ee的intern比率整体偏低呀,我听说他们vlsi也就一半找着intern。

我觉得其实拿不拿cs学位无所谓,因为面试主要是看你的project,我是control的,但是找的实习是computer engineering,主要是因为我有这方面project。问过cs的学长,如果软件的话其实面试靠你算法,281精通就差不多了,然后有些题库要刷一下,你可以看看论坛上cs的人介绍。但是一般cs面试不会考到400,500level的课的深度。

另外咱system反向会要有12 credit 500level以上的要求,楼主如果想偏cs可以用software当minor。但是major还是得选购学分,9学分major和6学分500level。如果一定想转cs,建议cs课搭上一些本专业水课
回复 支持 反对

使用道具 举报

 楼主| xiaoxiaohan 发表于 2014-5-30 14:30:16 | 显示全部楼层
rlzth2013 发表于 2014-5-30 10:38
你可以看看Zach大神的贴,他是umich power的phd,据他说所有的ms都找着工作了,我认识的umich power的人也 ...

非常感谢你的信息~。。就目前来看貌似转到CSE也没什么必要了。。因为EE:S的选课相对还是比较自由。。如果真像各位所说的CSE和EE:S的学位区别对找软件工作的影响并没有那么明显的话。。那还是上好那些基础的算法课比较重要。。只要coding的本事过硬。。。另感谢有关power的信息~。如果不好转的话我准备Major power,minor computer了。。选课还是偏software就好了。。
回复 支持 反对

使用道具 举报

kakazhang 发表于 2014-6-4 08:28:38 | 显示全部楼层
it is no use to learn all those courses!!! when you come to work, they ask u about java, javascript , html ,,,etc  you know? umich is not teaching you how to work? you should learn it by yourself, go learn some math stuff in umich, it helps a lot. if you want to learn how to work, choose another way to go blue ---- nanxiang!
回复 支持 反对

使用道具 举报

Allenping 发表于 2014-6-4 14:36:09 | 显示全部楼层
381 和 482 一起修, 只能祝福你了,太多code
回复 支持 反对

使用道具 举报

 楼主| xiaoxiaohan 发表于 2014-6-4 19:43:11 | 显示全部楼层
kakazhang 发表于 2014-6-4 08:28
it is no use to learn all those courses!!! when you come to work, they ask u about java, javascript  ...

Interesting replay! I just want to be pragmatic, because i really want to improve my coding skills through those cs  courses given my poor foundation.i do not have confidence to learn those tough materials myself especially in the first quarter . in addition, i wanna a complete view of cs ,but not to learn to sovle those boring questions .i think after careful consideration, those selected courses would help a lot
回复 支持 反对

使用道具 举报



一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2017-5-27 07:15

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表