数据库为什么要分库分表

数据库为什么要分库分表,第1张

1 基本思想之什么是分库分表?

从字面上简单理解,就是把原本存储于一个库的数据分块存储到多个库上,把原本存储于一个表的数据分块存储到多个表上。

2 基本思想之为什么要分库分表?

据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据 *** 作,增

删改查的开销也会越来越大;另外,由于无法进行分布式式部署,而一台服务器的资源(CPU、磁盘、内存、IO等)是有限的,最终数据库所能承载的数据量、

数据处理能力都将遭遇瓶颈。

3 分库分表的实施策略。

分库分表有垂直切分和水平切分两种。

31

何谓垂直切分,即将表按照功能模块、关系密切程度划分出来,部署到不同的库上。例如,我们会建立定义数据库workDB、商品数据库payDB、用户数据

库userDB、日志数据库logDB等,分别用于存储项目数据定义表、商品定义表、用户数据表、日志数据表等。

32

何谓水平切分,当一个表中的数据量过大时,我们可以把该表的数据按照某种规则,例如userID散列,进行划分,然后存储到多个结构相同的表,和不同的库

上。例如,我们的userDB中的用户数据表中,每一个表的数据量都很大,就可以把userDB切分为结构相同的多个userDB:part0DB、

part1DB等,再将userDB上的用户数据表userTable,切分为很多userTable:userTable0、userTable1等,

然后将这些表按照一定的规则存储到多个userDB上。

33 应该使用哪一种方式来实施数据库分库分表,这要看数据库中数据量的瓶颈所在,并综合项目的业务类型进行考虑。

如果数据库是因为表太多而造成海量数据,并且项目的各项业务逻辑划分清晰、低耦合,那么规则简单明了、容易实施的垂直切分必是首选。

如果数据库中的表并不多,但单表的数据量很大、或数据热度很高,这种情况之下就应该选择水平切分,水平切分比垂直切分要复杂一些,它将原本逻辑上属于一体

的数据进行了物理分割,除了在分割时要对分割的粒度做好评估,考虑数据平均和负载平均,后期也将对项目人员及应用程序产生额外的数据管理负担。

在现实项目中,往往是这两种情况兼而有之,这就需要做出权衡,甚至既需要垂直切分,又需要水平切分。我们的游戏项目便综合使用了垂直与水平切分,我们首先对数据库进行垂直切分,然后,再针对一部分表,通常是用户数据表,进行水平切分。

4 分库分表存在的问题。

41 事务问题。

在执行分库分表之后,由于数据存储到了不同的库上,数据库事务管理出现了困难。如果依赖数据库本身的分布式事务管理功能去执行事务,将付出高昂的性能代价;如果由应用程序去协助控制,形成程序逻辑上的事务,又会造成编程方面的负担。

42 跨库跨表的join问题。

在执行了分库分表之后,难以避免会将原本逻辑关联性很强的数据划分到不同的表、不同的库上,这时,表的关联 *** 作将受到限制,我们无法join位于不同分库的表,也无法join分表粒度不同的表,结果原本一次查询能够完成的业务,可能需要多次查询才能完成。

43 额外的数据管理负担和数据运算压力。

外的数据管理负担,最显而易见的就是数据的定位问题和数据的增删改查的重复执行问题,这些都可以通过应用程序解决,但必然引起额外的逻辑运算,例如,对于

一个记录用户成绩的用户数据表userTable,业务要求查出成绩最好的100位,在进行分表之前,只需一个order

by语句就可以搞定,但是在进行分表之后,将需要n个order

by语句,分别查出每一个分表的前100名用户数据,然后再对这些数据进行合并计算,才能得出结果。

美国留学的学生里,很多学生都会选择它的计算机专业。而美国在计算机方面也确实有很先进的互联网技术,所以每年都吸引了不少的学生到这里来就读计算机专业。那么现在来给大家讲讲美国这个计算机专业的分类吧。

一、美国计算机专业分类

第一类:多媒体动漫方向

这个专业包括了计算机图形学ComputerGraphics,主要研究图像的表达、处理等。计算机成像、三维动画、网络影像传播都属于这个方向的范畴。学习这个专业的同学可以去游戏设计公司,**视频公司、电子出版、教育软件开发、商业简报、平面广告设计及其它多媒体应用领域的媒体集成与系统设计的工作岗位寻找机会。现在的生活离不开图形图像的数字表达处理,也就离不开学多媒体,计算机图形学的同学。

第二类:软件编程方向

大体上分成软件设计、编程语言和软件测试。包括需求分析、结构设计、开发流程、生命周期等等相关内容全部在关注范围。计算机专业的基础学科如 *** 作系统、数据结构和算法全部包含。此方向几乎属于CS内部第一大的方向了,录取名额很多,奖学金也有一些。问题的关键是,这个专业是培养coder的,而计算机专业的从业者大部分就是coder。因此学这个专业工作机会较多,但是起步阶段的收入居于中等。

第三类:计算机网络Networking

这个范围可以说是非常的大。网络应用、网络协议、网络通信、网络理论、网络安全、加密解密、路由算法、甚至编解码都是需要学习的学科。这个学科申请的竞争者非常多,来自EE,ECE背景的同学也都可以申请。Telecommunication就业不错,从设备商到运营商到第三方软件开发商,都有职位可以选择。很多公司的招人广告上写的就是Telecommunication和CS,EE相关专业,可见这个范围达到什么程度,明明是个应用专业,却都快成了与EE,CS平起平坐了。中国国内这方面工作机会也多,中国移动按照用户数量是世界第一大运营商。Networking里面有方向设计及到网络安全方面,这个方向的工作主要是在大型政府、国防、电信、电力、金融、铁路等部门的计算机网络系统——若在美国就业,因受到公民身份等限制不少,回国形势还是不错的。

第四类:人工智能与人机交互方向

人工智能其实是很综合的学科,他的目的就是把人类的智能扩展到信息处理的机器的上。人工智能里面涵盖了计算机专业的很多小方向。比如机器学习系统,计算机语言,图像处理,语音识别,机器人,人机交互等等。对于申请者的计算机科学背景要求较高,包括数据结构算法之类纯计算机专业的课程,都有一定要求。人工智能的产品包括机器人、语言识别、图像识别、自然语言处理和专家系统等。这个方向最近很热,招收的名额也比较多,也有从主要招收PhD向Master转移的趋势。完全对口的工作是纯研发的性质,找起来有一些难度,不过退一步海阔天空,在各类电子设备商处都有大批学习此类专业可以涉足的工作。唯一需要注意的是AI的某些部分在美国也一定程度上应用于国防,所以如果自己要进入的program涉及此类就不推荐了。

二、美国计算机专业留学院校

1、UC-Berkeley

CS顶尖院校,地处加州,毗邻硅谷,INTEL总裁Andrew Grove毕业于此,学校professor David Patterson是美国CS Pioneer,巨牛人物,更有3位图灵奖得主,CS实力有目共睹(图灵奖被誉为CS中的诺贝尔奖)。学校的CS和EE并在一个department,而且MS学位是以研究为主,一般捆绑PhD,多数学生是硕博连读。对MS-only学生不会提供Financial Aid。UCB在CS的研究方向包括AI,人机互动,计算机结构,绘图,计算机编程, *** 作系统与网络等,招的学生水平不是一般的高。

IBT方面,学校写最低68,但傻子都知道UCB没可能以这个标准要人。雅思最低要求7分。大多数学生GPA最后一年达到37以上,GRE Q部分>90%,而且多人考CS Sub,90%以上。2010 Fall申请人数3000,录取100人,竞争激烈程度可想而知。而且UCB提供的并非career-oriented的terminal degree,research-cased的课程设置对学生之后就业帮助难以衡量有多大。(学校也说明MS完全是为了准备PhD而设置出来的学位)当然,Berkerley的牌子,而且是CS,去到哪里都会吃香。

除了UCB,还有一些CS牛校,master学位都是research-oriented的,例如U of Washington,Bill Gates就出自这里。这些学校的硕士学位大多是为了PhD做准备,而我们DiySmart的大多数学生都是为了更好就业,很少考虑PhD,以下就不再介绍此类学校了。

2、CMU

绝对是CS方面的权威。甚少学校把CS独立出来作为一个学院,而CMU的CS学院规模庞大,而且对CS内的各个专业方向分得十分细致,如machine learning,HCI,robotics,language technology等都是独立出来作为一个program的,可想而知CMU对CS的重视程度。CMU某些program是面向CMU内部人员或者在职人士的,例如Masters in Machine Learning就不对非CMU学生开放,而MS Robotic Systems Development则prefer申请人有1-3年industrial experience。

CMU中对应届毕业生开放的program包括:

3、人机互动HCI:

entry requirements:strong CS本科学位,或者CS领域一定的工作经验。IBT 90+,speaking和reading 24+,GRE无明确要求。CMU表示此项目录取率33%,共有42人在Pittsburgh校区,另外14在葡萄牙。录取率算不上低。

学校希望学生修过一门行为科学(社会学,心理学,组织行为学,人类学等),或者学过visual/information design。学生需要修过起码一门的统计,设计和编程,而CMU也提供编程,设计,统计的Place-out课程(类似prerequisites)。12个月的full-time课程中学生要上4门core courses,HCI Pro Seminar(HCI相关小组讨论课),Intro to HCI Methods(HCI简述),Basic Interaction Design(基础互动设计),Programming usable interfaces/software architectures for user interfaces(用户界面相关课程)。此外,有5门选修课和2个HCI project,相当充实。选修课程繁多,有行为科学/分析研究,艺术/绘图/设计,计算机科学/执行 三大类课程,学生可以自行调节。

先来大概看下美国CS专业申请条件:

美国计算机科学cs硕士研究生申请要求   

1、GPA

对于硕士申请人来讲,几乎所有美国大学的低gpa要求都是30(4分制),按国内百分之计算应该在平均分80分以上。对于phd申请人来讲,gpa低要求为35,远远高于硕士的要求。

根据学校的录取统计数据来看,cs专业top10的学校,录取的平均gpa大都在35以上,部分学校甚至达到了37。

2、语言考试

ibt(托福):对于计算机专业,美国top100学校ibt低总分要求为80分,top50学校的ibt要求在90左右,部分学校会要求ibt100以上。以美国综合top50学校为例,建议ibt考到90+。一般来讲,建议ibt单项不低于18,好单项都能上20。

雅思:通常需要考到65以上,单项不低于6。部分学校会要求雅思成绩达到7分。

GRE:根据学校往年的平均录取gre成绩来看,美国top100的学校建议gre成绩不低于300,如果希望进入top50甚至top30的学校,gre成绩至少要达到315以上。理工类专业都非常看重学生的数学能力,通常来讲,q部分会要求达到151以上,v部分达到140以上,写作部分则不是考察重点达到3或35即可。

3、专业背景

计算机科学与技术、软件工程以及其他计算机相关专业是比较匹配的专业。如果要跨专业申请,至少要修过一些核心的基础课程如c语言、java、计算机结构、数据库等等。

4、工作实习

cs是一门非常看实践的学科。如果有高质量的计算机方面工作经验、实习经验,甚至是在学校内参与的编程项目,都会对申请有很大帮助。如果有谷歌、微软、ibm、百度这些巨头的工作或实习经验,将比一般申请人有很大优势。

题主如果想申请美国top50的CS专业,GPA还是要再刷高一点的,还要多增加工作实习。

美国作为计算机的发源地,拥有硅谷这一电子工业和计算机业的王国,可以提供留学者最前沿,最专业的理论学习和技术指导,成为众多计算机学子的首选之地。

接下来,我们就来系统了解一下美国的计算机专业。

美国大学计算机热门方向:

软件编程方向

大体分成软件设计、编程语言和软件测试等,数据库也属于这个方向。

计算机网络方向

网络应用、网络协议、网络通信、网络理论、网络安全、加密解密、路由算法、编解码均属此方向。

计算机科学技术方向

具体包括生物信息学,气象数据处理,数字处理算法,计算物理,计算化学等。

人工智能与人机互动方向

人工智能里面涵盖了计算机专业的很多小方向。比如机器学习系统,计算机语言,图像处理,语音识别,机器人,人机交互等等。

热门就业方向

1软件开发Developer/程序员Programmer/软件工程师Software Engineer

2软件质量/测试工程师 Software Quality Assurance / Testing (监测软件工程产品,活动,过程以及方法,确保实时符合开发目标以及相关规定。)

3数据工程师/数据科学家Big Data Engineer/Data scientist (从企业的大数据中提取有用的数据信息,分析解决复杂的数据问题, 是商业和数据分析这一角色的升级,是工程师和统计学家的结合)

八个热门院校的专业介绍

一、卡内基梅隆大学

CMU是全美乃至全世界最大的计算机学院,可谓是码农的天堂,整个学校的特色就是全民编程(coding)。研究方向相当全面,研究水平也相当高,你能想到的计算机方面的研究、分支它基本都有,而且还有许多你闻所未闻、十分前沿的研究方向。

最新的设置是下面设有7个系,分别为:

1 计算生物学系Computational Biology Department

2 计算机科学系Computer Science Department

3 人机交互研究所Human-Computer Interaction Institute

4 软件研究所Institute for Software Research (Master of Software Engineering就开设在其中)

5 语言技术研究所 Language Technologies Institute

6 机器学习系Machine Learning Department

7 机器人研究所Robotics Institute

热门的包括有人机交互研究所、计算机科学系、机器学习系等。

总的来说,由于卡梅的CS专业有着极高的专业地位与极为光明的就业前景,每年都吸引着数万留学生竞相追逐,竞争压力极大,因而也导致卡梅的CS专业在全校的录取率最低。

二、麻省理工大学

MIT素以顶尖的工程学和计算机科学而著名,CS专业没有整合成为独立的计算机学院,而是分列在以下7个最主要的研究群体和实验室之中。

三、斯坦福大学

斯坦福大学计算机系设立在工程学院下,与麻省理工学院、加州大学伯克利分校、卡内基梅隆大学三所大学的计算机系并称计算机专业的四大。

斯坦福历来被认为是注重理论联系实际的典范,并且由于校园地处硅谷,每年CS院系申请竞争相当激烈。斯坦福申请虽不强制要求学生本科学习阶段有计算机或者数学的背景,但对于那些没有计算机背景的学生来讲,申请的时候往往需要具备一定的定量分析能力,并且熟悉至少一门编程语言和精通一门算法,还要具备较高的英语水平。

此外,由于斯坦福大学就坐落在加州硅谷,周围资源及其丰富,毕业生基本不用因为找不到工作而苦恼,大部分人的烦恼都来源于如何从已经拿到手的Offer中选择最有利于自己未来发展并且薪资优越的那一份。

四、加州大学伯克利分校

加州大学伯克利分校的计算机专业是隶属于其工程学院的电气工程与计算机科学系Department of Electrical Engineering & Computer Sciences (EECS)。作为美国计算机专业四大之一,申请也同样是非常激烈的, 拿到UC-B下的EECS系专业录取的学生大多条件都非常的优秀。

同样,虽然UC-B申请不要求学生本科必须为计算机专业,但学校要求学生需要拥有同本科学计算机专业学生相比肩的技术背景,必须拥有编程、算法、数据结构的学习经历和相关计算理论基础。

UC-B的计算机系统结构与工程全美排名第一,对于申请者相关学术背景,线性代数、数学、 *** 作系统、数据结构等工科课程成绩的要求非常高。靠近硅谷的地理位置不用说,无论是实习还是就业都有着得天独厚的优势。

五、伊利诺伊大学香槟分校

在伊利诺伊大学香槟分校内部,现已设置Department of Electrical Engineering & Computer Sciences (EECS),设立在工程学院下。UIUC的CS全美专排TOP 5,学术层面非常专业,分支方向全面多元。

学校接受本科非计算机科学专业的学生,但必须具备计算机编程(Computer Programming)、数据结构与算法(Data Structures and Algorithms)、计算机体系结构(Computer Architecture)和计算理论(Theory of Computation)相关的专业背景。

虽说UIUC的地理位置不占先天优势,但其安静优雅的环境也是一大特色, UIUC计算机科学专业毕业的学生在就业市场上依然表现不俗。

六、康奈尔大学

CS 是 Faculty of Computing and Information Science(CIS)里的一个系,Cornell 的计算机系历史悠久,其专业实力位居美国TOP5。康奈尔大学提供包括 11 个研究领域:人工智能、机器人、计算生物学、科学计算、计算机架构与超大规模集成电路、网络安全、数据库系统、系统与网络、计算机图形、计算机理论和程序设计语言。

Cornell 的 CS 里最有实力的研究领域为人工智能;同时,计算机理论也是Cornell 最传统、深入的研究领域之一。康奈尔大学位于纽约伊萨卡,并在纽约市拥有分校区,因此良好的地理位置也为学生提供了良好的就业机会。

以上就是小编分享的内容,希望对你有帮助!

;一美国计算机专业课程设置

美国计算机专业(简称CS专业),理论或应用的课程作为学习的重点。计算机专业的典型课程设置包括:数据结构、数学、运算法则、 *** 作系统、软件工程、编程、人工智能等。计算机科学的相关专业包括:计算机工程、电子通信工程、计算数学、认知科学、软件工程、系统工程、机器人技术、信息技术、计算机 工程技术、电脑制图。

学生在申请时,主要有以下几个专业方向:

1CS: Computer Science 计算机科学

2CE: Computer Engineering 计算机工程

3EE: Electrical Engineering 电子工程

4ECE: Electrical and Computer Engineering 电子与计算机工程

5EECS: Electrical Engineering Computer Science 电子工程与计算机科学

6ESE: Electrical Sciences and Engineering (only saw this in MIT) 电子科学和工程

这些专业分支有一定的区别,但是并不绝对。CS偏向于理论研究和软件,研究方向和就业偏向于解决计算机内部的问题和大型计算。CE、ECE等偏向于应用和硬件。这些专业都要学习编程和计算机 *** 作等课程。

二美国计算机专业名校推荐

设有CS的TOP20大学,不同的学校侧重点都不同。如Stanford的CS在理论、数据库、软件、硬件、AI等领域都是实力非常强劲。MIT数据流计算的思想和数据流计算机、人工智能方面有突出的成就。CMU的CS不是一个系,而是一个学院,规模之大。CMU师资力量雄厚,不少的faculty在此领域都有各自的贡献,但唯一不足的就是招研究生特别的少。UIUC计算机硬件特别强,另外计算机系统的研究开发也受到极度高的评价,这样faculty就提供了全面的CS教育和科研项目。所以表示当你选择自己申请的学校,首先要考虑的因素不是学校的排名,更多的是在了解他们这个专业是否与自己所感兴趣的领域有所吻合。CS要选Match而并非Top的大学。

1斯坦福大学(Stanford University)

斯坦福大学的CS很大,拥有40人以上的Faculty成员,其中不乏响当当的图灵奖得主和各个学科领域的****。

2麻省理工学院(Massachusetts Inst of Technology)

MIT招生不太喜欢看GRE成绩。MIT的CS曾为CS的发展做出不可磨灭的贡献,数据流计算的思想和数据流计算机、人工智能方面的许多重大成就,影响了整个UNIX界的X-Window等等。

3加州大学伯克利分校(University of California-Berkeley)

同样地处旧金山湾畔,硅谷地带,离Stanford大约只有50公里的UCBerkeley是美国最激进的学校之一。当今高科技领域,UCBerkeley在缔造新的神话,文学、数学、化学、新闻等20多个大的学科领域位居前3名。拥有16个诺贝尔奖得主,以及总数近200的科学院院士、工程院院士。

4卡耐基梅隆大学(Carnegie Mellon University)

CMU是位于匹兹堡的不大的学校,但这个学校在工程及其他一些领域却是顶尖的学堂。CMU的CS不是一个系,而是一个学院,其规模之大,恐怕也只有Stanford、UIUC可与之相比。Mach *** 作系统,PVM,Cmmp等都有CMU的巨大贡献。申请CMU的难度很大,因为尽管CMU的CS Faculty很多,但每年只招收不足30人的研究生队伍。申请CMU,着实是很大的挑战。

5伊利诺斯大学(Univ of Illinois-Urbana-Champaign)

UIUC的工程学院在全美是至尊级的,其CS、ECE、EE在历史上都屡建战功。CS方面,从早期的超级计算机ILLIAC I,II,III,IV到后来的CEDAR,都是CS发展史上,特别是并行计算机发展史上的重要事件,影响和引导了CS很长时期的发展。David Kuck曾是并行计算机处理界的一代先驱。

如同会计专业有CPA证书一样,计算机领域也有相关的证书,常用的主要有全国计算机应用技术证书、国家计算机软件专业技术资格证书、全国计算机信息高新技术考试、微软认证专家证书、美国Adobe认证平面设计师证书、美国Aotudesk认证证书。目前国内IT国际认证中比较重要的是微软的 MCSE(微软认证系统工程师),CISCO的CCNA(思科认证网络支持工程师),SUN的SCJ[(JAVA程序员认证)。

"首先列举下CMU的计算机专业下著名的八大领域:

Computer Science

Entertainment Technology Center

Institute for Software Research

Robotics Institute

Human-Computer Interaction Institute

Computational Biology Department

Language Technologies Institute

Machine Learning Department

另外这八大领域又下设了许许多多的不同的concentration/specialization,部分项目会在下文中提到。

众所周知,CMU作为CS专业的四大名校之一,一直以来都是该专业学生梦想的摇篮。其CS不单单是一个系,而是一个学院,规模之大可能只有Stanford和UIUC可以相比。该校的相关领域申请难度很大,每年大概只有30人左右的研究生队伍。学院下有很多CS方向的faculty,MS的专业也有很多选择,入学后学生可以自由选课,比如Master of Information Systems Management (MISM), Information Networking Institute (INI)等等。总体而言CMU比较学术,更关注CS,engineering,design, 或者 psychology方面的研究。Master of Tangible Interaction Design (MTID)招收的人比较少,大概在6-10个左右,funding一般来自企业或者学校。该校大部分的MS项目基本都在一年半左右,课程读起来还是比较累的。然而相比Stanford来说,相对容易申请,性价比较高。

除了上面提到的MTID的招生情况外,EBIZ据说是最好申请的。至于INI,建议想申请information security专业的同学可以选择这个项目。另外像Masters of Science in Information Technology, Specialization in Very Large Information Systems (MSIT-VLIS)这样一个professional master的项目,喜欢招收有information (IR, ML, DM, NLP)或者System相关经验的applicants对于G/T也没有那么卡。据不完全统计,2011年该项目预计招生20个,也就是说会发40个左右的AD,50%的人会Accept。据悉,2010年CMU普遍增加了华人的招生名额。最后友情提醒那些想继续读博的同学,CMU转成博士的几率比较小。 "

[ 标签:软件 niit,技术,niit ]为什么老师强制我们选CMU呢?昨天来校报名时,我被录取的是软件技术(ACCP认证方向、NIIT认证方向、CMU认证方向),老师说只能选一个方向,我说我选ACCP(北大青鸟)认证方向,老师说ACCP这个方向已经没了,因为去年学校在ACCP方向只招了一个班,所以今年就没和北大青鸟合作了。剩下的两个方向,我说我选NIIT方向,可老师却听都没听,就给我写的CMU方向的,有很多同学都遇到这种情况,还没讲好老师就签了,签在通知书上,不能改了。可是有的同学却选到了NIIT方向的。不过NIIT方向的只有2个班,而CMU方向的有8个班,老师说学习的内容都是一样的,只是最后的认证证书不同,NIIT是印度的,而CMU是美国的,而且NIIT认证难些。最后,在网上NIIT的可以找到,可是CMU的找不到,可能是我记错了,好像是CUM,反正是这三个字母的。我想具体了解下这两个方向之间的差异,最好能对比分析下。谢谢。学校层次是 高职专科 公办 湖南 长沙 。

1、美国斯坦福大学计算机专业

斯坦福大学拥有独立的计算机科学系。浏览该校的教学手册,最具特色的恐怕要算多门科普性计算机知识讲座了,一般有两到三个单元,涉及面非常之广,从量子计算到数字演员,从计算科学的伟大思想到网络安全,从网上拍卖到使用元编译发现大型开放源代码软件中的大量错误,其中还不乏对技术乌托邦、斯诺“两种文化”、计算机面临的困境以及迅速发展所带来的诸多问题的思考。开课的老师阵容强大,基本上都是响当当的名教授,甚至包括图灵奖得主John McCarthy。用这种讲座代替计算机科学导论性质的专门课程,可以充分展示计算机科学的丰富内涵,使学生较早地了解学科的轮廓和脉络,对于开阔学生视野,启发学生的学习兴趣也大有好处。由于美国大学中专业的选择非常灵活,而近年来计算机学科招生受行业影响流失严重(这种情况甚至惊动了比尔•盖茨,2004年微软到各大高校招兵买马时,他每站必到,利用自己的明星效应,大讲计算机学科的美妙前景),可以想象,这种讲座同样也肩负着吸引学生选择计算机专业的重大使命。

2、美国加州大学伯克利分校计算机专业

伯克利的课程设置也有很多独树一帜的地方,尤其是在专业基础课方面,除了有专业导引课程“计算机科学专题”之外,对于没有编程经验的学生,第一门编程课是符号编程入门,采用LISP语言。有一定编程经验或者有自学能力的学生,可以选择多种语言和环境的自主学习(Self-paced)课程,包括C、Fortran、C++、Java,以及UNIX的使用等,这种多元化与伯克利计算机科学与电子电气工程同系有关。但是所有学生在第二学期都要学习一组独特的基础课:61A“计算机程序的结构与解释”,采用MIT Abelson等编著的同名教材;61B“数据结构”(教材采用自编讲义);61C“计算机结构”(Machine Structures),采用Hennessy的《计算机组织与设计》。这项规定就是转校生也不例外,可见其中蕴涵了伯克利多年的教学经验结晶。

伯克利其他比较有特点的课程还有:将离散数学和概率论结合讲授的CS70,主讲是名教授Christos PApadimitriou;CS98-1 编程练习课,以主要大学生编程竞赛中的赛题为授课素材;CS 169 软件工程直接用Kent Beck的《极限编程》作为教材,非常超前,但是既然连Pressman的《软件工程:实践者方法》新版中敏捷方法都已经成为重头戏,既然IEEE都已经开始制定敏捷方法相关标准,这种课程选材也就不显得那么骇世惊俗了。除了软件工程课程常见内容外,教学侧重实际,贯穿了极限编程的思想,涵盖UML、JUnit单元测试、软件架构、设计模式和反模式、重构、CVS版本控制、系统和集成测试,最后要求完成一个实际产品,并进行演示。

3、美国UIUC(伊利诺依大学厄班纳-香槟分校)计算机专业

UIUC的计算机科学专业创建于1972年,到1986年基本定型,十多年来几乎没有什么变化。其中,数值分析方向课程中,Math225为矩阵论,CS257为数值方法,CS35x代表数值分析导论、常微分数值方法、偏微分与数值逼近和数值线性代数;

理论方向课程中,CS173为离散结构,CS273为计算理论,CS37x包括算法、形式方法、程序验证;

人工智能方向课程中,CS348为人工智能导论,CS34x包括机器人、机器学习与模式识别;

软件方向,CS125为计算机科学导论,CS225为数据结构与软件工程原理,CS31x包括数据库、图形学、多媒体,CS32x包括软件工程、 *** 作系统设计、分布式系统、编程语言与编译器、并行计算、实时系统、编译器构造、编程语言设计;

硬件方向课程中,CS231为计算机体系结构I,CS232为计算机体系结构II,CS33x包括计算机组成、VLSI系统与逻辑设计、VLSI系统设计、通信网络、嵌入式体系架构与软件。

4、美国CMU(卡内基梅隆大学)计算机专业

与MIT、伯克利等学校计算机科学仍然和电子与电气工程同处一系不同,CMU的计算机科学系成立于1965年,是全美最早的,如今它已经升格为计算机科学学院。其研究生项目中除了机器人方向与硬件关系较多之外,其他基本上都是纯软的。从这个意义上来说,CMU的教学体系对于偏软的计算机科学系应该有较大的借鉴意义。

CMU的教学手册上没有从传统意义上针对计算机科学专业学生的导论课,虽然有名为“计算机科学伟大思想”的两学期课程,但是从内容上看应该是离散数学的替代,因为此外CMU并没有其他离散数学方面的课程。此课程没有教材,内容比传统离散数学要灵活得多,涉及概率、代数、算法、加密理论、复杂性理论、博弈论等,非常注重学习的趣味性和实用性。

与其他名校相同,CMU对程序设计的重视也给人留下很深印象:本土新生的第一堂课就是“初中级程序设计”,直接讲授Java。然后是中高级程序设计(Java)、C语言编程技巧、高级编程实践(Java)、程序设计原理(用SML语言讲授)。

目前计算机科学专业教学计划中的一个难点,是硬件课程的设置问题。硬件知识体系本身非常丰富,但是硬件课程多了,又削弱了计算机科学专业的特色。CMU在这一问题上是怎样处理的呢?计算机科学学院的现任院长Randal E Bryant 亲自给出了回答,他用15~213“计算机系统导论”一门课(12个单元)完成了硬件知识的教学。这项教学改革的成果就是一本厚达900多页的书:《Computer Systems: A Programmer's Perspective》。他在该书的序言中说:

“本课程的宗旨是用一种不同的方式向学生介绍计算机。因为,我们的学生中几乎没有人有机会构造计算机系统。而大多数学生,甚至是计算机工程师,也要求能日常使用计算机和编写计算机程序。所以我们决定从程序员的角度来讲解系统,并采用这样的过滤方法:我们只讨论那些影响用户级C程序的性能、正确性或实用性的主题。

比如,我们排除了诸如硬件加法器和总线设计这样的主题。虽然我们谈及了机器语言,但是不关注如何编写汇编语言,而是关心编译器怎样翻译C的各种构造,比如指针、循环、过程调用和返回,以及switch语句。更进一步,我们将更广泛和现实地看待系统,包括硬件和系统软件,讨论链接、加载、进程、信号、性能优化、评估、I/O以及网络与并发编程。

这种做法使得我们讲授本课程的方式对学生来讲既实用、具体,又能实践,同时也非常利于调动学生的积极性。”

5、美国MIT(麻省理工学院)计算机专业

MIT的课程设置,只能用其学生起点高来解释。该校没有典型意义上的计算机科学专业,偏软的只有理论计算机科学和人工智能及其应用两个专业。因此没有类似于其他学校的导论课程。

在MIT的电子电气工程与计算机科学系中,所有学生都要参加如下四门课程:6001“计算机程序的结构与解释”,当然与伯克利相同,采用的是Abelson等编著的同名教材;6002“电路与电子学”;6003“信号与系统”(自编讲义);6004 “计算结构”(Computation Structures),与伯克利的61C“计算机结构”对等。此外有两门专业基础数学课:“概率系统分析”和“计算机科学数学”,后者的教材是国外院校普遍采用的Rosen所著《离散数学及其应用》。

以上就是关于数据库为什么要分库分表全部的内容,包括:数据库为什么要分库分表、美国计算机专业留学的方向与院校有哪些、985本科CS专业,想申请美国TOP30院校等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9326499.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存