博文

影响计算机算法世界的十位大师(2007-05-31 13:06:00)

摘要:影响计算机算法世界的十位大师   DonE. Knuth(美)高德纳 《计算机程序设计艺术》的作者;
  Edsger Wybe(荷兰) Dijkstra算法(最短路径算法)发明者;
  George Dantzing(俄国) 运筹学大师;
  James Cooley(美) FFT(快速傅利叶变换)算法发明者,该算法主要用语数字信号处理技术;
  John Backus(美) FORTRAN之父,又提出规范描编程语言语法的Backus-Naur Form(BNF);
  Jon Bentley(美)?《Programming Pearls》(中文名《编程珠玑》)作者,精于软件工程;
  Nicklaus Wirth(瑞士) PASCAL之父,提出了“算法+数据结构=程序”,他是创办Borland公司的Philie kahn的老师;
  Robort Sedgewick(美) 算法讲解者;
  Tony Hoare(英) 快速排序算法(Quick Sort)发明者,1999年加入微软创办了剑桥研究院;
  Udi Manber(美) Google副总裁,首席算法官。   伟大的智者——Don E.Knuth,中文名:高德纳(1938-)算法和程序设计技术的先驱者。Oh,God!一些国外网站这样评价他。一般说来,不知道此人的程序员是不可 原谅的。其经典著作《计算机程序设计艺术》更是被誉为算法中“真正”的圣经,像KMP和LR(K)这样令人不可思议的算法,在此书比比皆是。难怪连 Bill Gates都说:“如果能做对书里所有的习题,就直接来微软上班吧!”   对于Don E.Knuth本人,一生中获得的奖项和荣誉不计其数,包括图灵奖,美国国家科学金奖,美国数学学会斯蒂尔将(AMS Steel Prize),以及发明先进技术荣获的极受尊重的京都奖(KyotoPrize)等等,写过19部书和160余篇论文,每一篇著作都能用影响深远来形容。 Don E.Knuth也被公认是美国最聪明的人之一。当年他上大学的时候,常写些各种各样的编译器来挣外快,只要是他参加的编程比赛,总是第一名,同时也是世上 少有的编程达到40年以上的程序员之一。他除了是技术与科学上的泰斗外,更是无可非议的写作高手,技术文章堪称一绝,文风细腻......

阅读全文(2805) | 评论:1

[转载]计算机技术与学习心得 (2007-05-26 23:03:00)

摘要:[转载]计算机技术与学习心得

--------------------------------------------------------------------------------

前言:自从Inside Programming开动以来, 基本不转其他人的文章. 但是, 此次这篇是一定要转的. 学计算机的人何止千万, 但是有哪些真正能成大器. 虽然作者论断非计算机专业的做不出计算机专业能作的大型系统不尽正确, 但是对于基础学科的重要性讲得是十分的透彻. 曾毅先生此文写得是真有大家风范. 推荐诸位是一定要拜读的. 与挫折录相比, 我的那些牢骚话太肤浅了.


1.本文集众前辈及恩师之经验于一文,由我执笔总结前辈所感而已。并非尽我所言,特别说明基于南京大学网友sir《胡侃理论计算机》一文并融入我的若干观点。

2.本文虽经多次修订,仍有诸多不妥之处,有待笔者进一步学习之后修订此文,文章侧重理论学习兼谈实践,望读者各取所需。

3. 本文早期版本曾流传于其它网站,本文会不断融入作者最新的学习感受,最终版本将只在此处保持最新更新,请读者注意此文修改中的若干重要思想变动。


计算机科学与技术这一门科学深深的吸引着我们这些同学们,上计算机系已经有近三年了,自己也做了一些思考,原先不管是国内还是国外都喜欢把这个系分为计算机软件理论、计算机系统、计算机技术与应用。后来又合到一起,变成了现在的计算机科学与技术。我一直认为计算机科学与技术这门专业,在本科阶段是不可能切分成计算机科学和计算机技术的,因为计算机科学需要相当多的实践,而实践需要技术;每一个人(包括非计算机专业),掌握简单的计算机技术都很容易(包括原先Major们自以为得意的程序设计),但计算机专业的优势是:我们掌握许多其他专业并不"深究"的东西,例如,算法,体系结构,等等。非计算机专业的人可以很容易地做一个芯片,写一段程序,但他们做不出计算机专业能够做出来的大型系统。今天我想专门谈一谈计算机科学,并将重点放在计算理论上。

在我大一时无意中找到了南京大学网友sir的帖子"胡侃(理论)计算机学习",这个帖子对我大学学习起到了至关重要的指导作用,我在这篇文章成文的时候正是基于sir的文章做得必要的补充和修改,并得到......

阅读全文(2649) | 评论:0

20世纪10最好的算法(2007-04-20 22:26:00)

摘要:一、算法一词的来源

  Algos是希腊字,意思是“疼”,A1gor是拉丁字,意思是“冷却”。这两个字都不是Algorithm(算法)一词的词根,a1gorithm一词却与9世纪的阿拉伯学者al-Khwarizmi有关,他写的书《al-jabr w’al muqabalah》(代数学)演变成为现在中学的代数教科书。Ad-Khwarizmi强调求解问题的有条理的步骤。如果他能活到今天的话,他一定会被以他的名字而得名的方法的进展所感动。

二、20世纪10最好的算法

  20世纪最好的算法,计算机时代的挑选标准是对科学和工程的研究和实践影响最大。下面就是按年代次序排列的20世纪最好的10个算法。

1. Monte Carlo方法

1946年,在洛斯阿拉莫斯科学实验室工作的John von Neumann,Stan Ulam和Nick Metropolis编制了Metropolis算法,也称为Monte Carlo方法。Metropolis算法旨在通过模仿随机过程,来得到具有难以控制的大量的自由度的数值问题和具有阶乘规模的组合问题的近似解法。数字计算机是确定性问题的计算的强有力工具,但是对于随机性(不确定性)问题如何当时并不知晓,Metropolis算法可以说是最早的用来生成随机数,解决不确定性问题的算法之一。

2. 线性规划的单纯形方法

1947年,兰德公司的Grorge Dantzig创造了线性规划的单纯形方法。就其广泛的应用而言,Dantzig算法一直是最成功的算法之一。线性规划对于那些要想在经济上站住脚,同时又有赖于是否具有在预算和其他约束条件下达到最优化的能力的工业界,有着决定性的影响(当然,工业中的“实际”问题往往是非线性的;使用线性规划有时候是由于估计的预算,从而简化了模型而促成的)。单纯形法是一种能达到最优解的精细的方法。尽管理论上讲其效果是指数衰减的,但在实践中该算法是高度有效的——它本身说明了有关计算的本质的一些有趣的事情。

3. Krylov子空间叠代法

1950年,来自美国国家标准局的数值分析研究所的Magnus Hestenes, Eduard Stiefel和Cornelius Lanczos开创了Krylov子空间叠代法......

阅读全文(2351) | 评论:0

十大热门语言大汇集(2007-04-11 21:43:00)

摘要:十大热门语言大汇集


       掌握一些编程语言可让您在职场竞争中收放自如,而扎实的技巧将会让您炙手可热。但是,语言种类繁多。很多开发人员掌握多种语言,懂得在合适的地方合适的时间使用正确的语言,而大多长期从事编程的人员会告诉您周期性的学习新的语言是成为一名优秀成功的网络开发人员的重要步骤。

  圣地亚哥的软件工程公司Interknowlogycom的CEO Huckaby说:“我的一位老师曾说编程语言就是一门语言。它与你是否为一个好的编程人员无关,仅仅就是语法。”

  但是,Huckaby还说当他的公司运行尚未稳定时,他几乎没有时间来寻找新成员,即便是只懂得某种特定语言的入门级新成员。“我们疯狂雇人,但是那并不容易。我们只是寻找那些刚出校门的有良好天赋的新手,他们只需了解.Net 或Java,因为这样我们可以对他们进行.Net的培训。”Huckaby如是说。

  Grandview Systems软件开发主管Wayne Duqaine说:“不要只停留在一两种语言上。我在1969年刚入行的时候,Fortran、Cobol和S/360 Assembler是敲门砖。而10年后,一些新的语言又流行开来。就最近一次统计,在过去30年中,我学习掌握了超过24种不同语言。”

  以下,我们选取了10种编程语言进行比较,为您寻找更有挑战的工作提供参考。

  1. PHP

  基本描述:一种开源,工作在服务器端,跨平台,使用HTML脚本的语言,因为可置入HTML页面,因此尤其适用于网页制作。

  学习理由:使用十分广泛。“借助缓存高速调用脚本,并使用编译代码插件来增强效果是今后趋势所在。使用C或COBOL创建Web应用程序是不可行的。

  2. C#

  基本描述:一种通用编辑,面向对象的编程语言,由微软作为其.net计划的一部分开发而成,包含C和C++。

  学习理由:是.Net框架的基础部分。Duquaine说:“如果您大量使用Microsoft的产品,那么学习C#是十分有必要的。”

  3. AJAX (同步 JavaScript 与 ......

阅读全文(1785) | 评论:0

世界十大最烂发明和新四大发明(2007-04-06 17:52:00)

摘要:世界十大最烂发明和新四大发明   科技给人类生活带来的影响决不是一个简单的“好”或是“不好”就能简单回答的。也许,我们可以从以下有关科技的评选中有一个直观的认识。 世界最烂十大发明排行榜 科技发明在很多时候为人们带来了便利。然而崇尚法治、推崇民意”的英国人却在不久前就“你最讨厌哪一个发明”这一命题搞了一份民意调查,结果令人惊讶不已,手机、汽车等十大发明榜上有名。以下就是十大发明的排名情况: 第十位:宗教 很多人将战争归咎于宗教。宗教与科学的关系历来不和。很多早期的科学家都信奉神灵。例如艾萨克·牛顿认为行星的轨道是在太阳的引力作用下形成的,但他却相信是上帝创造了太阳系。
!f [v HXE I]|6Or0时至今日,科学与宗教仍然格格不入,关于人类究竟是智慧生物精心设计的结果还是自然选择的结果,两派理论依旧争论不休。 第九位:电子测速仪 具有讽刺意义的是,电子测速仪的原型是二十世纪五十年代汽车拉力赛选手莫里斯·盖特桑耐德斯发明的,目的是为了监测他的车速。二十世纪六十年代,公路上开始安装带有胶卷的测速装置,而电子测速装置更是到二十世纪九十年代后期才得以应用。 交通部门在经过调查后称,装有测速仪地点的交通事故伤亡率比没有安装测速仪的地方少42%,尽管这一数字仍存在争议。 第八位:快餐食物 对快餐食物上瘾最严重的是美国人,2006年美国人在快餐食物上面的花销约达1420亿美元。但随着人们逐渐认识到快餐食物给健康所带来的威胁,那段无忧无虑沉溺于高脂肪、高胆固醇食物的日子似乎不会长久了。 一些肥胖的美国青少年2002年对麦当劳提起诉讼,控告麦当劳连锁店出售的食物让他们落得一身肥膘。虽然法官最终驳回了他们的起诉,但此后人们对快餐食物给健康带来的影响更加关注。 第七位:电视节目 电视迷们肯定会对这一结果感到惊讶。但其实这里指的是真人秀节目,它占所有票数的3%。真人秀的始作俑者是1984年美国推出的一档名为“偷拍”的节目,自本世纪初开始,真人秀节目便如雨后春笋般地出现。美国甚至有两个专门播出真人秀节目的频道。 真人秀究竟为什么会这么火?各位自己猜吧。 第六位:香烟 香烟中的强致癌物意味着男性吸烟者患肺癌的几率比常人高22%,女性吸烟者患肺癌几率高出12%。吸烟还会导致其它癌症和心脏病。吸烟的孕妇更容易出现流产,或婴儿体......

阅读全文(2220) | 评论:0

中国软件业缺自信 应尽快走出单一印度模式  (2007-03-26 22:31:00)

摘要:中国软件业缺自信 应尽快走出单一印度模式 
 
 
 时间:2006年05月21日10:30   我来说两句(45)       【来源:南方日报报业集团-21世纪经济报道】 
  本报记者 刘涓涓 北京报道   “首先需要厘清的是,这只是一个商业模式而已。”5月17日,一位国际知名咨询管理机构的中国区总经理向记者指出,只有中国才把印度的外包模式称为软件业,连印度本身都从来没有将其提升到软件业的高度。
 
 
    但是,这并不妨碍在软件产业发展上,印度屡屡被国人树为标杆。事实上,上述专家也同样认为,“但要看到,这个外包市场是多么巨大,中国软件业的确有必要重新考量软件外包在整个产业链上的位置。”   时至今日,当中央将长期以来的“引入型”思路全面调整为“自主创新”并提升为国家战略的时候,面对曾经与我们站在同一起跑线、如今却已形成规模并发挥效应的印度,我们还要不要再向它看齐?   “中国软件业最缺自信”   《21世纪》:数年来,业界乃至政府有关部门都有同一个论调,那就是中国软件业应该向印度学习,中国软件业该不该学印度?他们各自的特征是什么?怎么学?   倪光南:学习印度经验是不错的,印度外包出口的成功,确实对中国很有吸引力,但同时,更值得中国学习的榜样却往往被“忽略”。   数据表明,印度现时的外包出口额是173亿美元,它大约有85万软件人员,人均产值约为2万美元,这当然是很可观的经济效益。然而,微软公司一年的销售收入就达到414亿美元,等于2.4个印度。微软只有6万名员工,因此,微软的人均产值约为69万美元。也就是说,一个微软员工创造的价值等于34名印度软件人员。造成这种差别的原因主要不是人员的素质(在微软也有不少印度员工),而在于微软是做基础软件的,印度是做外包的,微软在上游,印度在下游。   既然有微软这样的榜样,那为什么只说学习印度而不说学习微软呢?印度缺乏国内市场,走外包道路是不得已。而中国有巨大的内需市场,为什么不学微软,不学美国,依靠内需市场的支撑,全方位地发展包括基础软件在内的自主软件产业体系呢?   这里的障碍主要不是人员的素质,也不是物质......

阅读全文(1995) | 评论:0

印度软件业崛起(2007-03-26 22:30:00)

摘要:印度软件业崛起的三大内因http://tech.QQ.com   2005年07月18日15:27   IT时代周刊       (0)广东省信息协会秘书长/黄观辉(供《IT时代周刊》专稿)  
  印度是曾经创造了古代文明的大国,印度综合国力不强,人均GDP比中国低,多年来印度GDP增长速度亦不高,信息产业的基础设施也较差,但印度软件业的发展却一枝独秀。其实,印度软件业的高速发展,主要是政府部门在其中扮演了主要的角色。他山之石,可以攻玉,本刊刊登此文,希望政府部门能借鉴印度的做法,提升国内软件业的发展。
印度软件业的发展,正以世人瞩目的速度高速前进。一个GDP增长速度并不高的国家,为何在短短的时间内成长为世界软件大国?这离不开印度政府对软件的支持。
据资料显示,印度软件业自1993年以来的年均增长速度为50%左右,1998~1999年度印度软件业产值为39亿美元,其中出口为26亿多美元,是仅次于美国之后的世界第二大软件生产和出口国。印度软件业占据世界软件市场16.7%以上的份额,印度软件产品大多输出到美国,其次是欧洲。印度的软件公司承揽了美国航空公司、瑞士航空公司、新加坡航空公司等航空公司的运行软件,以及伦敦地铁的运行软件,其设计技术堪称一流。
世界银行的一份调查称,80%的美国公司把印度作为国外软件来源的首选市场。难怪,微软的比尔·盖茨访印时惊呼:“21世纪的软件大国,不是美国,也不是欧洲,而可能是印度。”
政策引导产业发展
印度是个发展中国家,综合国力不强。但印度政府的发展策略是从几个主要产业入手,使用有限的资源和集中的政策扶持发展相关产业。其成效就是使印度成为了世界软件第二大国。
上世纪80年代初,拉吉夫·甘地政府明确提出:“要用电子革命把印度带入21世纪。”其政府推动和政策切入点就是软件业。1984年印度政府颁布了计算机政策,明确了软件业为产业,可以获得相应的补贴和优惠(中国在2000年国务院的18号文才明确了软件业的税收优惠等政策)。1986年印度政府又颁布了《计算机软件出口发展和培训政策》,为软件生产提供了一切必需的投入,如提供进出口用汇便利、金融支持、人员培训、高速数额传输、简化投资和进出口手续等;并给予税收优惠,如免交国内货物税、进出口生产的软件......

阅读全文(2126) | 评论:0

考研十大热门专业深度解析之计算机应用技术(2007-03-26 22:30:00)

摘要:考研十大热门专业深度解析之计算机应用技术
http://www.sina.com.cn 2007年02月05日 17:06  海文学校
  近年来IT产业对于高级专业人才的需求持续上升,使得报考这一专业的研究生竞争日趋激烈。2007年计算机应用专业的报考人数排名由06年的第六位上升到第三位,仅次于工商管理和法学硕士。   计算机应用技术专业是一应用十分广泛的专业,它以计算机基本理论为基础,突出计算机和网络的实际应用。学生将系统地学习计算机的软、硬件与应用的基本理论、基本技能与方法,具有初步运用专业基础理论及工程技术方法进行系统开发、应用、管理和维护的能力。   你知道计算机专业的分类吗?   根据海文教育集团资讯中心提供的资料,目前我国计算机专业主要分为三大类:计算机基础专业、与理工科交叉的计算机专业、与文科艺术类交叉的计算机专业。   一、计算机基础专业:   专业要求与就业方向:这些专业不但要求学生掌握计算机基本理论和应用开发技术,具有一定的理论基础,同时又要求学生具有较强的实际动手能力。学生毕业后能在企事业单位、政府部门从事计算机应用以及计算机网络系统的开发、维护等工作。   推荐院校:北京大学、清华大学、北京工业大学、南京大学、上海交通大学、东南大学   二、与理工科交叉的计算机专业:   与理工科交叉而衍生的计算机专业很多,如数学与应用数学专业、自动化专业、信息与计算科学专业、通信工程专业、电子信息工程专业、计算机应用与维护专业等。   1.数学与应用数学专业:   专业要求与就业方向:数学与应用数学是计算机专业的基础和上升的平台,是与计算机科学与技术联系最为紧密的专业之一。该专业就业面相对于计算机科学与技术专业来说宽得多,不但适用于IT领域,也适用于数学领域。   推荐院校:同济大学、东南大学、中山大学、宁波大学、深圳大学   2.自动化专业:   专业要求与就业方向:自动化专业是一个归并了多个自动控制领域专业的宽口径专业,要求学生掌握自动控制的基本理论,并立足信息系统和信息网络的控制这一新兴应用领域制定专业课程体系,是工业制造业的核心专业。自动化专业的毕业生具有很强的就业基础和优势。   推荐院校:清华大学、东南大学、北京邮电大学、重庆大学   3.信息与计算科学专业:   专业要求与就业方向:这是......

阅读全文(3450) | 评论:1

“影响未来的10大IT技术”候选技术简介(2007-03-26 22:29:00)

摘要: “影响未来的10大IT技术”候选技术简介 发表:2004-1-3 14:29:28 出处:你的博客网(yourblog.org)
发信站: 武汉白云黄鹤站 (2003年12月27日12:33:03 星期六), 站内信件

编者按: 本次“影响未来的10大IT技术”评选中,共产生了53项候选技术,经过100名专家
的评选,其中10项中选“10大”,其余43项候选技术以简介形式表述如下。  

OLED显示技术

OLED又被很多厂商称为OEL,指有机电致发光材料。OLED的发明者柯达公司采用的是小分子
技术,而此后英国剑桥大学又研发出了大分子技术。

OLED被称为下一代平板显示技术,目前2英寸左右的小屏已经开始在数码相机等产品上得到
应用,OLED显示器、电视等产品也有原型机展示。与LCD相比,OLED器件的核心层厚度很薄
,全固态机构可以适应各种恶劣环境;主动发光的特性让OLED几乎没有视角问题,极高的响
应速度可以实现流畅的视频重放。目前不少国际大型企业都投入了OLED技术的研发,全球
已有数条产品线开始运行。据Stanford Resources估计,OLED在2005年时产值将突破7.15
亿美元。

面向Agent的软件技术

软件代理是一种计算机程序,它能采取自治的行为,通过与所处的环境交互,以完成给定
的目标。必要时,可从一个环境迁移到另一个环境。这个定义强调了代理的反应性、自治
性和目标性,并且把社会性、学习性和移动性作为参考性质。

与传统对象不同,代理实现了完全的局域化,即自治化。代理不再被动地接受外部消息的
刺激而做出反应,它完全可以在自身目标和规则的驱使下,主动作用于周围的环境,并根
据环境反馈改变自己。从这个意义上说,一个代理比对象更真实地模拟了现实中的主体,
如人的状态和行为。因此,它是一种更深刻的抽象,是面向对象技术的进一步发展。

在未来,有高度智能和自治能力的软件代理,将深刻地改变我们对信息技术的理解,模糊
传统人机之间的界限,在人机之间实现真正的协同工作。
......

阅读全文(3555) | 评论:0