导航:首页 > 源码编译 > 编译原理及实践影印版

编译原理及实践影印版

发布时间:2022-05-27 04:57:24

A. 计算机科学与技术是学什么的

计算机科学与技术专业课程不完全解析
1.计算机导论:
计算机科学的基础课程之一,其教学目的是概要性地对专业课程作介绍,是典型的面向专业新生的课程(即CS0型课程)。认真学习该课程有助于今后的学习,然而这门课程往往容易被新生们忽略……
(推荐教材:可使用学校配发的教材,但建议使用外版翻译教材。)

2.高级语言程序设计:
计算机科学的基础课程之一,教学目的是让本专业同学实际掌握一门程序设计语言并且习得一些程序设计的基本技能,目前的教学语言是C语言。个人认为课程名称可改为“高级程序设计语言”,因为课程对语言的强调远胜于对程序设计本质的讲解。建议在学习这门课程时配以《程序设计实践》一书,效果甚佳。
(推荐教材:
①《从问题到程序--程序设计与C语言引论》 机械工业出版社
②《程序设计实践》 机械工业出版社
③《程序设计语言--实践之路》 电子工业出版社 )

3.离散数学:
计算机科学基础课程之一,被誉为计算机科学的数学基础。其内容博大精深,从中派生出的图论(图算法)、数理逻辑、组合数学以及泛代数等多门专业课程是现代计算机科学和应用数学的主要研究领域。能否学好离散数学对进一步学习以后的专业课程有着非同一般的影响。
(推荐教材及参考书:
①《离散数学》(第四版) 清华大学出版社
②《离散数学导学》机械工业出版社
③《现代应用数学手册:离散数学卷》清华大学出版社 )

4.电路与电子技术:
电子产业有“朝阳产业”的美誉,被认为是信息时代的工业。这门电子与电路技术可谓是对电子学领域学习的敲门砖。虽然课程本身对计算机科学专业今后的学习影响不大,但掌握这项技能对于学生本身专业素养地提高是大有裨益的。同时,学习这门课程也能为今后学习数字逻辑和微机原理等系统底层方面的课程打好基础。
(推荐教材:《电子学基础:电路和元器件》(第四版)清华大学出版社)

5.面向对象程序设计:
如果说上世纪软件开发领域最伟大的突破是什么,面向对象程序设计(OOP)必为其中之一。目前主流的程序设计语言,如C++、Java、Python和Delphi等,几乎清一色支持面向对象。可以说,掌握的面向对象的精髓,便是掌握了我们这个行业的入门钥匙。我校此课程的教学语言采用的是C++,而就国内C++教学的糟糕现状来看,若想完整掌握面向对象思想,学生自己不努力是不行的。
(推荐教材及参考书:
①《C++ Primer中文版》(第四版) 人民邮电出版社
②《Essential C++ 中文版》华中科技大学出版社
③《Effective C++ 中文版》(第三版)电子工业出版社
④《Accelerated C++(影印版)》机械工业出版社
⑤《C++语言的设计与演化》机械工业出版社 )

6.数字逻辑:
计算机科学核心课程之一。计算机科学中有一个研究领域即系统设计领域,而本门课程即为这一领域研究的基础。正确认识与掌握数字逻辑及其设计,可以使那些有志于系统底层开发的学生获益匪浅。
(推荐教材:
①《数字基础(第八版)》清华大学出版社
②《逻辑与计算机设计基础》 中国电力出版社 )
7.数据结构:
计算机科学核心课程之一。对数据地有效组织是程序的主要任务之一,算法的主要操作对象亦为数据结构。从简单的数组和链表,到各色高级的抽象数据类型(ADT),数据结构在程序设计中的地位不言而喻。学好数据结构,是进一步学习专业课的基本前提。可以这么说,一个不懂得如何组织和操控数据的学生,根本就不配当我们计算机科学专业的学生,更不配当一名程序员!!!
(推荐教材:
①《C算法 第一卷(第三版)》人民邮电出版社
②《程序设计抽象思想--C语言描述》清华大学出版社
③《数据抽象与问题求解--C++语言描述(第四版)》清华大学出版社
④《数据结构与算法--Java语言描述》机械工业出版社 )

8.计算方法:内容不详,不敢妄作断言。 (推荐教材:待定)
// 转帖者:线性代数、微积分、微分方程等的计算机算法

9.计算机原理与汇编:
系统底层课程之一,亦为计算机科学核心课程。重点讲述计算机(微机)构造以及低级语言--汇编语言的基础知识。学习这门课程,对进一步学习编译原理等专业高级课程有很大帮助。
(推荐教材:
①《深入理解计算机系统》中国电力出版社
②《Intel汇编语言程序设计(影印版)》清华大学出版社
③《Windows环境下32位汇编语言程序设计(第二版)》电子工业出版社
④《汇编语言编程艺术》清华大学出版社 )

10.操作系统:
计算机科学的核心课程之一。课程全面讲述了操作系统的原理与构造,各类上机实验更能让学生对操作系统有深刻地理解。
(推荐教材:
①《操作系统(第三版)》机械工业出版社
②《现代操作系统(第二版)》机械工业出版社
③《Linux内核设计与实现(影印版)》机械工业出版社
④《UNIX系统编程》机械工业出版社
⑤《UNIX环境高级编程(第二版)》人民邮电出版社 )

11.软件工程:
计算机科学的核心课程之一。近年来,随着软件开发革命地进一步深化,批判软件工程及过程方法改进的着作日益丰富,我们也得以从不良的软件开放中解放。建议在学习本课程时,联系自己的实战,并阅读批判软件工程和改良软件工程的着作。
(推荐教材及参考书:
①《软件工程:实践者的研究方法(第五版)》机械工业出版社
②《程序设计心理学(银年纪念版)》清华大学出版社
③《人月神话(银年纪念版)》清华大学出版社
④《人件》清华大学出版社 )

12.数据库原理及应用:
计算机科学与信息学科的好像课程之一。课程讲述了数据库原理以及设计等方面的内容。对于那些注重实效的学生而言,学好这门课程,可以使今后的工作更为轻松。
(推荐教材:《数据库系统概念(第四版)》机械工业出版社)

13.运筹学及其算法:
此课程课作为计算机科学的辅助课程,向学生介绍了运筹学方面的算法,此类算法属于现代算法范畴,本人暂时还未涉猎,故恕难对此课程解析之…… (推荐教材:待定)
// 转帖者:线性规划、动态规划、排队论、决策分析等等

14.计算机网络:
计算机科学的核心课程之一。课程详细地介绍了计算机网络的发展、组成和协议方面的内容。对于自我要求较高的同学而言,学好这门课程义不容辞!
(推荐教材:
①《计算机网络(第四版)》清华大学出版社
②《TCP/IP协议族》清华大学出版社 )

15.软件开发管理:
应该是软件工程课的附属课程吧,不详。 (推荐教材:待定)
// 转帖者:对于工程,管理重于技术

16.数学建模:
可以说是本专业的相关课程,但其意义及作用目前在下还不甚了解。 (推荐教材:待定)
// 转帖者:既然学了数学,会用也很重要吧

17.J2EE体系结构:
J2EE是目前我们产业的两大工业平台之一,学习这门课程,可以为今后涉足企业级开发领域打下基础。但请注意,J2EE和Java语言本身都是在不断演进的,因而如果不能在课程结束后持续学习相关技术,恐怕还不等你出大学校门,这门课的内容就已经过时了…… (推荐教材:最新的国外相关教材。)

18.计算机图形学:
计算机科学的核心课程之一。有关计算机图形学在各个领域的应用不必在下一一说明了吧。无论是游戏开发,还是航空航天等前沿领域,到处都有计算机图形学的技术被应用。目前该课程主要用C语言和OpenGL图形库进行教学,效果应该还算不错。
(推荐教材及参考书:
①《计算机图形学原理与实践-C语言描述(第二版)》机械工业出版社
②《交互式计算机图形学--基于OpenGL的自顶向下的方法(第四版)》清华大学出版社
③《OpenGL超级宝典(第三版)》 人民邮电出版社 )

19.微型计算机技术:
计算机专业的核心课程之一。课程详细地分析了微型计算机(主要是单片机)技术,由于这方面资料奇缺,这门课程可不太受在下欢迎…… (推荐教材:待定)
// 转帖者:想搞嵌入式的要注意了

20.编译原理:
计算机科学核心课程之一。如果想要写出好的程序,编译原理的相关知识必不可少,因而这门课程是十分重点的一门课程。课程教材“龙书”、“虎书”和“鲸书”更是我们专业的经典着作。
(推荐教材:
①《编译原理》机械工业出版社
②《现代编译原理--C语言描述》人民邮电出版社
③《高级编译器设计与实现》机械工业出版社 )

21.Web系统开发:
目前主流的web开发主要集中在ASP.NET和JSP开发领域 ,当然,还有近来火爆异常的Ajax,以前的CGI和ASP已经不那么流行了。与J2EE一样,这是一门必须持续学习的课程,否则,你必将被其所抛弃! (推荐教材:最新国外相关书籍。)

22.嵌入式软件开发:
这个领域可谓是软件开发的前沿领域,也是未来软件业霸主的孕育地之一(另两个领域为Web开发和企业级开发)。目前的软件开发领域正蕴含着“泛嵌入式”的潜规则(《程序员》2006年7月刊)。认真并持续学习这门课程,对将来的工作会有莫大的帮助。 (推荐教材:《嵌入式系统开放大全》人民邮电出版社)

23.算法设计与分析:
计算机科学的核心课程之一。“程序是衣,算法为魂”(《程序员》2006年3月刊),这门课程是本专业学生所亟需掌握的,如果学不好这门课,那么,你就不是一名优秀的程序员!
(推荐教材:
①《数据结构与算法分析-C语言描述》机械工业出版社
②《C算法 第一卷 (第三版)》人民邮电出版社 )

24.情报检索与利用

B. 中国科技大学研究生经济学的参考书目谁知道啊

中国科学技术大学2006年招收攻读硕士学位研究生参考书目

科目
覆盖范围
参考书
备注

311高等数学单考
单变量微积分、多变量微积分、场论初步、级数、常微分方程
大学本科通用教材

312高等数学A
单变量微积分、多变量微积分、场论初步、级数、常微分方程
《高等数学导论》(上、中、下) 陈登远 中国科大出版社

《高等数学导论习题集》中国科大数学系 中国科大出版社

313普通物理A
力学、电磁学、原子物理
科大、北大或其他高校物理系普通物理教材

314高等数学B
高等数学(函数、极限、一元函数微积分、多元函数微积分、级数、常微分方程、解析几何)
大学本科通用教材

315中国哲学史

《中国哲学史》(上、下),肖萐父、李锦全主编,人民出版社

316科技通史
中西科技史基本内容,重要科学史事件、着作、人物思想及其述评
任何科技通史类着作均可作为参考书

317马克思主义原理
唯物论、辨证论、认识论、唯物史观;劳动价值论、剩余价值论、垄断资本主义理论、社会主义基本经济制度与市场经济理论
《辩证唯物主义和历史唯物主义原理》李秀林 人大出版社95年版

《政治经济学教程》宋涛 人大出版社99年版

318议论文写作
以科技哲学涉及的领域为范围,命题作文,主要考核考生运用所学知识分析问题的理论思辨水平和论述表达能力

319综合英语
专业英语八级所涵盖的范围。重点在对英语基本功和知识面作全方位的考查。

320传播学
传播学基本理论及其应用。
《传播理论—起源方法与应用》华夏出版社 2001 沃纳·赛佛林等着 郭镇之等译

《20世纪传播学经典文本》 复旦大学出版社 2003 张国良主编

《大众传播动力学》约瑟夫 R 多米尼加国着 蔡骐译 人民大学出版社2004年版

321数学分析
数学分析:极限、连续、微分、积分的概念及性质;(拟)微分中值定理、Taylor定理及其应用;凸函数的概念及性质、极值问题、隐函数定理;Newton-Leibniz、Green、Gauss和Stokes公式及其在物理学中的应用;一致收敛函数项级数的判别和性质;Γ函数和B函数;Fourier级数的常见性质
《数学分析教程》常庚哲 中国科大出版社

322分析和代数
数学分析:一元和多元微积分,无穷级数,广义积分。线性代数:行列式,矩阵,线性方程组和线性变换,欧氏空间,矩阵标准形
《数学分析》(一、二、三册) 何琛 高等教育出版社

《线性代数》李炯生 中国科大出版社

323科技考古学
现代科学技术在考古学各领域的应用。
科技考古论丛(第二辑),中国科学技术大学出版社,2003年版,王昌燧主编,左健副主编;

科技考古论丛(第三辑),中国科学技术大学出版社,2003年版,王昌燧主编,秦颍、冯敏副主编。

324 物理化学
热力学、动力学、胶体表面、电化学、统计热力学
《物理化学》付献彩 高等教育出版社

《物理化学-概念辨析,解题方法》范崇政 中国科大出版社

325地球化学
无机地球化学,涉及地球不同层圈的化学组成、元素和同位素地球化学、同位素年代学、地球化学热力学等基本知识
《地球化学》赵伦山、张本仁 地质出版社 1988版

《地球化学》陈道公等编着 中国科学技术大学出版社 1994版

326神经生物学
外周神经系统、中枢神经系统、感觉神经系统和发育神经系统
《神经生理学》阮迪云、寿天德 中国科大出版社 1996版

《神经生物学》寿天德 高等教育出版社 2001版

327生物化学
糖、脂、蛋白质、核酸、维生素、激素的结构、性质、功能; 合成和分解及相关调控;酶学;能量转换;染色质的组成、结构,原核与真核复制、转录、翻译及相关调控以及表达调控的相关物质及性质;
《生物化学》王镜岩等 高教出版社2002版

《分子遗传学》孙乃恩 南京大学出版社,

《Biochemistry》5th Edition Geremy M. Berg 着W.H. Freeman and Company 2004版

328科技史议论文
科学技术史上重要事件分析评论和写作能力
《自然科学史》梅森 上海译文出版社

329环境科学基础
环境科学基本原理
《环境学概论》刘培桐 高等教育出版社1995年版或新版

330宏观经济学
宏观经济学

《西方经济学》下册 高鸿业 中国人民大学出版社 第三版

331地质学原理
普通地质学

《地球与极地科学》孙立广 中国科学技术大学出版社,2003年版

《普通地质学》夏邦栋 地质出版社

332综合化学
含无机、分析、有机、物化
《综合化学》张懋森 中国科学技术大学出版社

334现代科技知识

科技第一生产力的发展历程、当代科技发展的重要前沿、科技推进传统产业现代化、人与自然的协调发展、自然与社会的协调发展、不同国家科技强国的途径与经验、高科技在国家战略中的地位与作用、新技术革命的世界影响与我国对策
《现代科学技术基础知识》宋健主编、惠永正副主编 科学出版社、中共中央党校出版社 1994年版。

《高科技—跨世纪的战略问题》吴锡军 何国平编着 江苏科技出版社 1992年版。

《跨世纪科技与社会可持续发展》郑积源主编 人民出版社1999年版

335法学综合
法理学、中国法制史、刑法、诉讼法、行政法
《法理学》孙国华,中国人民大学出版社,1999;

《刑法》陈忠林,中国人民大学出版社,2003;

《民事诉讼法》江伟主编 北京大学出版社 2000;

《刑事诉讼法》张旭 中国人民大学出版社,2003;

《行政法与行政诉讼法》姜明安北京大学出版社、高等教育出版社,2002

421西方经济学
微观:消费者及生产者行为理论,市场结构与价格决定,要素价格与收入分配,一般均衡,信息不对称的市场;宏观:国民收入核算,国民收入决定的静态均衡模型,货币理论与货币政策,后凯恩斯主义经济学、动态经济学
《现代西方经济学》(上、下)宋承先 复旦大学出版社

422中国共产党党史
新民主主义革命、社会主义革命、社会主义建设、改革开放和全面建设小康社会的历史进程;马克思主义中国化的经验总结和理论成果
《中国共产党的七十年》,胡绳,中共党史出版社91年版; 《新编中共党史简明教程》,盖军,中共中央党校出版社03年版

423教育技术学与计算机基础
教育技术学基础

教学设计

数据结构
《教育技术学导论》尹华俊 高等教育出版社

《数据结构》(C或PASCAL语言版)严蔚敏 清华大学出版社

424写作与评论
要求有每小时500字以上的英文写作能力。着重于对问题的理解、分析和阐述。翻译评论则注重考查对英、汉两种语言的理解和把握。(包括一篇翻译评论)

425数字媒体技术
多媒体、计算机网络、因特网等技术基础
《数字媒体概论》冯广超着 人民大学出版社,2004年版

《数字媒体技术、应用、设计》刘惠芬 清华大学出版社 2003年版

《网络出版》周荣庭 科学出版社2004年版

426中国通史
史前至宋代
中国史纲要(上下册),1995年版,人民出版社,翦伯赞主编。

427线性代数与解析几何
线性代数:行列式、矩阵、线性空间线性映射与线性变换、二次型与内积

解析几何:向量代数、平面与直线、常见曲面
《线性代数》李炯生 中国科大出版社

《空间解析几何简明教程》吴光磊 高等教育出版社

428科学技术史概论

科学技术史基础知识

《自然科学史》梅森 上海译文出版社

《科学的历程》吴国盛 北京大学出版社

429 物理化学B
热力学、动力学、胶体表面、电化学、统计热力学
《物理化学》付献彩 高等教育出版社

《物理化学-概念辨析,解题方法》范崇政 中国科大出版社

430西方哲学史
形而上学、本体论、认识论、伦理学等基本问题和这些问题的提出、转变与持续,以及就此展开的争论
《西方哲学简史》赵敦华着 北京大学出版社2000年版

431中西方美学史
关于美、美的本质、审美对象、审美意象、审美意识等基本问题;真、善、美三者关系的理论探讨及发展
《中国美学史大纲》叶朗 上海人民出版社

《西方美学史》朱光潜 人民文学出版社

432概率论与数理统计
概率论:随机变量及其分布,数字特征,极限定理。数理统计:参数估计,假设检验。
《概率论》苏淳 科学出版社 2004

《数理统计学教程》陈希孺、倪国熙 上海科技出版社

433科学技术哲学
自然观、科技观、方法论、西方科学哲学基础知识、科技哲学实证问题分析
《自然辩证法原理》栾玉广 中国科大出版社

434量子力学
量子力学的概念和基本原理、波函数和波动方程,一维定态问题、力学量算符对称性及守恒定律、中心力场、粒子在电磁场中的运动、自旋、定态微扰论、量子跃迁。

《量子力学》曾谨言 第三版 第一卷 科学出版社

435原子物理与量子力学
原子结构和光谱、分子结构和光谱、量子力学概论
《近代物理学》徐克尊 高等教育出版社;

《原子物理学》杨福家 第三版,高等教育出版社;

《原子物理学》褚圣麟 高等教育出版社

《量子力学导论》曾谨言高等教育出版社

436电动力学A
电磁现象的普遍规律;静电场和静磁场;电磁波的传播,电磁波的辐射(包括低速和高速运动带电粒子的辐射);狭义相对论
《电动力学》郭硕鸿 第二版 高等教育出版社

437固体物理
晶体结构、晶体缺陷、晶体结合、晶体振动及热学性质、金属电子论、能带论、电导论
《固体物理》黄昆原着 韩汝琦改编 高等教育出版社

438信号与系统

连续时间和离散时间信号与系统(包括在输入输出描述方式和状态描述方式下,以及时域、频域和复频域)的一整套概念、理论和方法,及其在通信、信号处理中的主要应用,以及数字信号处理的基本概念和方法(DFT,FFT和数字滤波器)。

《信号与系统:理论、方法和应用》中国科学技术大学出版社,徐守时,修订版,2003年版

《数字信号处理》北京理工大学出版社,王世一,1997,3-5章。

439电子线路
电子线路、数字电路
《线性电子线路》戴蓓蒨 中国科学技术大学出版社

《数字电子技术基础》阎石 高等教育出版社 第四版

440无机化学
无机化学基本原理、理论及元素无机化学
《无机化学》武汉大学、吉林大学等校编 高等教育出版社,第三版(上、下册)

《无机化学例题、要点、习题》张祖德等编 中国科技大学出版社 第三版


441分析化学
误差与数据处理;酸碱滴定,配位滴定,氧化-还原滴定,重量分析;沉淀滴定,常用的分离方法与复杂物质分析
《分析化学》武汉大学主编 高等教育出版社

《定量化学分析》李龙泉等编着 中国科学技术大学出版社

442有机化学
《有机化学》伍越环编着的全部内容
《有机化学》伍越环编 中国科学技术大学出版社

《有机化学实验》兰州大学、复旦大学编 高等教育出版社

443结构化学
量子力学基础、原子分子电子结构、分子光谱、晶体结构
《物质结构》潘道皑 人民教育出版社

444高分子化学
聚合反应基本原理及高分子化学反应
《高分子化学》潘才元 中国科大出版社

445高分子物理
聚合物结构及物理性质
《高聚物结构与性能》 马德柱等 科学出版社

446大气科学导论
大气组成和结构,大气静力学,大气热力学和静力稳定度,大气辐射传输和辐射平衡,大气动力学基础,天气预报原理,云和降水物理,大气声、光、电基本知识。
《大气科学概论》徐玉貌等,南京大学出版社

《大气物理学基础》许绍祖 气象出版社

447电动力学B
全书(除*号章节外)
《电动力学》郭硕鸿 高等教育出版社

448地震学
地震波传播理论、射线理论、用地震波研究地下结构
《地球物理学基础》地震学部分,傅承义等 科学出版社

《地震学原理》有关章节 徐果明等,地震出版社

《地震学原理与应用》有关章节 ,刘斌等,中国科大讲义

449理论力学B
质点力学、质点组力学、刚体力学、相对运动与参照系、分析力学
《理论力学教程》周衍柏 人民教育出版社

450空间物理基础
普通物理/理论物理学中涉及到空间科学的知识
力学、热学、电磁学、光学、原子物理或普通物理教材

科大、北大或其他高校物理系普通物理教材

451普通地质学
地质学基础,包括矿物岩石学、构造地质学、地层学等基础知识
《普通地质学》夏邦栋等 地质出版社

《地球与极地科学》孙立广 中国科学技术大学出版社 2003年版

452生理学
全书
《生理学》第五版 姚泰 人民卫生出版社,2002年版

453系统安全工程
全书
《危险源辩识、控制及评价》陈宝智 四川科技出版社1996版

454高分子化学与物理
高分子化学、高聚物结构与性能基本内容
高分子化学》潘才元 中国科大出版社

《高聚物结构与性能》 马德柱等 科学出版社

455细胞生物学
细胞的结构与性能;细胞分泌和运动的机理;细胞分裂、分化和死亡在个体发育中的作用及其调节机制;细胞工程。

《细胞生物学》翟中和 王喜忠等 高等教育出版社,2001年版

《细胞生物学》鲁润龙 顾月华 中国科大出版社,2002年版

456普通化学

大学本科通用教材

457理论力学A
运动学、动力学、静力学到拉格朗日方程、微振动
《理论力学》哈尔滨工业大学

458机械设计
零件的几何精度,平面机构的结构分析,平面连杆机构,凸轮机构,摩擦轮传动和带传动,齿轮传动,螺旋传动,轴,联轴器、离合器,支承,直线运动导轨,弹性元件。
《机械原理》郑文纬 高等教育出版社

《精密机械零件》庞振基 机械工业出版社

459工程光学
几何光学成像原理、平面零件成像、光阑和光能计算、光学系统成像质量评价,典型光学系统、光的干涉、衍射、偏振
《应用光学》胡玉禧 中国科大出版社

《工程光学》郁道银等 机械工业出版社

460普通物理B
力学、电磁学、原子物理
《中国科大基础物理教程》丛书 科学出版社

461化学工程学
液体动力过程,传热过程,传质过程、反应器基本原理
《化学工程基础》北京大学化学系 高等教育出版社

462热工基础
《工程热力学》

《传热学》
《工程热力学》曾丹岑 高等教育出版社

《传热学》杨世铭 陶文全编 高等教育出版社

463普通生物学

大学本科通用教材

464电子学基础
电路分析基础、模拟电子线路、数字电路、微机原理
《电子技术基础》数字和模拟部分 康华光 第四版 高等教育出版社

《微型计算机原理与接口技术》周荷琴 中国科学技术大学出版社

465半导体集成电路
1. 双极型模拟集成电路设计原理、方法。单元电路的具体设计

2. MOS模拟电路的设计原理、方法

3. 数字集成电路的基本设计原理、方法和典型单元电路的实现
《模拟集成电路》陈金松 中国科大出版社

《数字集成电路设计透析》清华大学出版社

466微波技术基础
传输线理论,金属波导,介质波导、微波谐振腔,微波网络基础
《微波技术基础》廖承恩编着

西安电子科大出版社1994版

467热力学与统计物理
热力学基本规律,均匀物质热力学性质,热动平衡判据,相平衡,微观态的描述,玻尔兹曼统计,玻色和费米统计,系综理论初步。
《热力学统计物理》汪志诚 高等教育出版社(第二版)1993年

468计算机系统结构
数据结构、操作系统、计算机组成原理
《数据结构》严蔚敏 清华大学出版社

《计算机操作系统》 汤子瀛 西安电子科技大学出版社

《计算机组成原理》唐朔飞 高等教育出版社

469计算机软件基础
数据结构、操作系统、编译原理
《数据结构》严蔚敏 清华大学出版社

《编译原理和技术》 陈意云 高等教育出版社

《计算机操作系统》 汤子瀛 西安电子科技大学出版社

470企业管理
微观经济学、管理学
《西方经济学》上册 高鸿业 中国人民大学出版社 第三版

《管理学—原理与方法》周三多 复旦大学出版社

471行政管理
管理学、政治科学
《管理学—原理与方法》周三多 复旦大学出版社

《政治科学》迈克尔·罗斯金等着,林震等译 华夏出版社

472自动控制理论
古典控制理论、现代控制理论
《自动控制原理》除第4、8、10三章 庞国仲 中国科大出版社

《线性系统理论和设计》前七章 仝茂达 中国科大出版社

473管理综合A
管理学、微观经济学、运筹学
《管理学-原理与方法》周三多 复旦大学出版社

《西方经济学》上册 高鸿业 中国人民大学出版社 第三版

《运筹学》李维静等 清华大学出版社

474管理综合B
管理学、数据库与网络
《管理学-原理与方法》周三多 复旦大学出版社

《数据库系统原理教程》王珊、陈红 清华大学出版社

《计算机网络工程教程》黄叔武、杨一平 清华大学出版社

475信息安全基础
密码学导论,计算机安全,网络安全
《密码学与网络安全:原理与实践》(第二版)杨明等译,电子工业出版社。

《Computer Security》,Dieter Gollman等,1999

《网络安全基础教程:应用与标准》(英文影印版) William Stallings,清华大学出版社

476概率统计
概率论:随机变量及其分布,数字特征。数理统计:参数估计,假设检验。
《概率论与数理统计》陈希孺

中国科大出版社

477媒介管理
媒介管理基本理论及案例分析,数字媒介经营与管理
《媒介管理学》邵培仁着 2002版 高等教育出版社

《媒介经济学》赵曙光 史宇鹏着2003版 湖南人民出版社

《电子媒介经营与管理》彼得.K普林格尔 北京广播学院出版社 2004年版

478当代国际关系
国际关系的形成及其在当代的演变、国际关系中的基本行为体、国家的对外政策与手段、国际组织、国际法、冷战后的国际战略与安全、经济全球化与国际关系、当今全球问题与全球治理、21世纪的世界格局与国际关系发展趋势、中国外交战略与在世界的和平崛起

《全球化时代的国际关系》俞正梁等着 复旦大学出版社 2000年版。

《21世纪:世界格局与大国关系》 张蕴岭主编 社会科学文献出版社 2001版。

《探求变化中的世界》张蕴岭着 社会科学文献出版社2002年版

479民商法学
公司法、票据法、保险法、证券法
《民法》王利民,中国人民大学出版社,2000;

《新编公司法教程》江平主编,法律出版社2000年版;

《票据法》董安生 中国人民大学出版社,2000;

《证券法》叶林 中国人民大学出版社,2000。

480经济法学
经济法学与知识产权法
《经济法》潘静成,中国人民大学出版社;

《知识产权法》中国人民大学出版社,2002、刘春田;

481污染控制工程
水污染控制的化学和生物理论及技术;气态污染物控制技术
《水污染控制工程》高廷耀 高等教育出版社

《环境工程学》蒋展鹏 高等教育出版社

482医学免疫学
免疫细胞、免疫分子、免疫应答、免疫病理、免疫学技术
《Immunobiology 5》Charles A Janeway

《细胞和分子免疫学》(第二版)

金伯泉

《免疫学原理》周光炎

《医学免疫学》(第三版)陈慰峰

《医学免疫学基础》高晓明

483基础化学
化学基础
大学本科通用教材

484决策分析

《管理决策分析》彭勇行 科学出版社

485材料科学基础
晶体学基础,常见的晶体结构,晶体结构缺陷,化学热力学基础,相平衡与相图、相变、晶体中的扩散、成核生长理论等
《材料科学基础》徐恒钧 北京工业大学出版社

486计算机技术基础
数据结构、微机原理
《数据结构》(C语言版)严蔚敏、吴伟明 清华大学出版社

《微型计算机原理与接口技术》

周荷琴 中国科学技术大学出版社

487等离子体物理导论
单粒子理论、等离子体平衡、等离子体波动、等离子体不稳定性
《等离子体物理导论》F.F.Chen,科学出版社 1980年。

《等离子体物理原理》马腾才、胡希伟、陈银华,中国科大出版社 1988年

C. 有请计算机系的学哥学姐回答

编程经典好书:C#入门经典(第4版)嵌入式实时操作系统μC/OS-II(第2版)Windows核心编程

C++ Primer Plus(第五版)Windows 程序设计(第5版)(上、下册)C++ Primer中文版(第四版)

编译原理(原书第2版)(龙书)深入浅出MFC(第二版)程序员面试宝典(第2版)

Java核心技术 卷1 卷2 原书第8版Java编程思想(第4版)C专家编程 C++沉思录 C和指针

深入理解LINUX内核(第三版)C++语言的设计和演化 Accelerated C++ MORE EFFECTIVE C++

Imperfect C++中文版 C++ Templates中文版 C++编程你也行 C++编程思想(第2版) 第1卷 第2卷

代码大全(第二版)UNIX环境高级编程(第2版)C#捷径教程你必须知道的495个C语言问题

Java程序设计语言(英文版·第4版)C语言参考手册(原书第5版)程序设计实践(双语版)

C++程序设计语言(特别版) C语言核心技术Windows 内核情景分析--采用开源代码ReactOS

深入理解计算机系统(修订版)深入理解LINUX网络内幕(影印版)算法导论(原书第2版)

大象--Thinking in UMLHead First设计模式(中文版)编程之美--微软技术面试心得

Shell脚本学习指南Windows高级调试Linux设备驱动程序(第三版)Effective Java中文版(第2版)

程序员的自我修养--链接、装载与库C程序设计语言(第2版·新版)Effective C++

面向对象分析与设计(第3版)代码之美Beautiful Code重构:改善既有代码的设计

深度探索C++对象模型编程珠玑Python技术手册(第二版) Python编程(第三版·英文影印版)

你看这些怎么样?

D. 大学软件工程专业教材都有哪些

ST软件工程免费下载

链接:https://pan..com/s/1zesJfTuWTpPplC7Yf4YusQ

提取码:7y95

ST是指境内上市公司被进行特别处理的股票,也是退市风险警示。ST股是指境内上市公司经营连续两年亏损,被进行退市风险警示的股票。

E. 在计算机网络组网方法和应用模式上,无线局域网与有线局域网有哪些差别

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

计算机理论的一个核心问题——从数学谈起:
记得当年大一入学,每周六课时高等数学,天天作业不断(那时是六日工作制)。颇有些同学惊呼走错了门:咱们这到底念的是什么系?不错,你没走错门,这就是计算机科学与技术系。我国计算机科学系里的传统是培养做学术研究,尤其是理论研究的人(方向不见得有问题,但是做得不是那么尽如人意)。而计算机的理论研究,说到底了,如网络安全,图形图像学,视频音频处理,哪个方向都与数学有着很大的关系,虽然也许是正统数学家眼里非主流的数学。这里我还想阐明我的一个观点:我们都知道,数学是从实际生活当中抽象出来的理论,人们之所以要将实际抽象成理论,目的就在于想用抽象出来的理论去更好的指导实践,有些数学研究工作者喜欢用一些现存的理论知识去推导若干条推论,殊不知其一:问题考虑不全很可能是个错误的推论,其二:他的推论在现实生活中找不到原型,不能指导实践。严格的说,我并不是一个理想主义者,政治课上学的理论联系实际一直是指导我学习科学文化知识的航标(至少我认为搞计算机科学与技术的应当本着这个方向)。

其实我们计算机系学数学光学高等数学是不够的(典型的工科院校一般都开的是高等数学),我们应该像数学系一样学一下数学分析(清华计算机系开的好像就是数学分析),数学分析这门科学,咱们学计算机的人对它有很复杂的感情。在于它是偏向于证明型的数学课程,这对我们培养良好的分析能力极有帮助。我的软件工程学导师北工大数理学院的王仪华先生就曾经教导过我们,数学系的学生到软件企业中大多作软件设计与分析工作,而计算机系的学生做程序员的居多,原因就在于数学系的学生分析推理能力,从所受训练的角度上要远远在我们之上。当年出现的怪现象是:计算机系学生的高中数学基础在全校数一数二(希望没有冒犯其它系的同学),教学课时数也仅次于数学系,但学完之后的效果却不尽如人意。难道都是学生不努力吗,我看未见得,方向错了也说不一定,其中原因何在,发人深思。

我个人的浅见是:计算机系的学生,对数学的要求固然跟数学系不同,跟物理类差别则更大。通常非数学专业的所谓"高等数学",无非是把数学分析中较困难的理论部分删去,强调套用公式计算而已。而对计算机系来说,数学分析里用处最大的恰恰是被删去的理论部分。说得难听一点,对计算机系学生而言,追求算来算去的所谓"工程数学"已经彻底地走进了误区。记上一堆曲面积分的公式,难道就能算懂了数学?那倒不如现用现查,何必费事记呢?再不然直接用Mathematics或是Matalab好了。
我在系里最爱做的事情就是给学弟学妹们推荐参考书。中文的数学分析书,一般都认为以北大张筑生老师的"数学分析新讲"为最好。万一你的数学实在太好,那就去看菲赫金哥尔茨的"微积分学教程"好了--但我认为没什么必要,毕竟你不想转到数学系去。吉米多维奇的"数学分析习题集"也基本上是计算型的东东。书的名气很大,倒不见得适合我们,还是那句话,重要的是数学思想的建立,生活在信息社会里我们求的是高效,计算这玩意还是留给计算机吧。不过现在多用的似乎是复旦大学的《数学分析》也是很好的教材。

中国的所谓高等代数,就等于线性代数加上一点多项式理论。我以为这有好的一面,因为可以让学生较早感觉到代数是一种结构,而非一堆矩阵翻来覆去。这里不得不提南京大学林成森,盛松柏两位老师编的"高等代数",感觉相当舒服。此书相当全面地包含了关于多项式和线性代数的基本初等结果,同时还提供了一些有用的又比较深刻的内容,如Sturm序列,Shermon-Morrison公式,广义逆矩阵等等。可以说,作为本科生如能吃透此书,就可以算高手。国内较好的高等代数教材还有清华计算机系用的那本,清华出版社出版,书店里多多,一看就知道。从抽象代数的观点来看,高等代数里的结果不过是代数系统性质的一些例子而已。莫宗坚先生的《代数学》里,对此进行了深刻的讨论。然而莫先生的书实在深得很,作为本科生恐怕难以接受,不妨等到自己以后成熟了一些再读。

正如上面所论述的,计算机系的学生学习高等数学:知其然更要知其所以然。你学习的目的应该是:将抽象的理论再应用于实践,不但要掌握题目的解题方法,更要掌握解题思想,对于定理的学习:不是简单的应用,而是掌握证明过程即掌握定理的由来,训练自己的推理能力。只有这样才达到了学习这门科学的目的,同时也缩小了我们与数学系的同学之间思维上的差距。

概率论与数理统计这门课很重要,可惜大多数院校讲授这门课都会少些东西。少了的东西现在看至少有随机过程。到毕业还没有听说过Markov过程,此乃计算机系学生的耻辱。没有随机过程,你怎么分析网络和分布式系统?怎么设计随机化算法和协议?据说清华计算机系开有"随机数学",早就是必修课。另外,离散概率论对计算机系学生来说有特殊的重要性。而我们国家工程数学讲的都是连续概率。现在,美国已经有些学校开设了单纯的"离散概率论"课程,干脆把连续概率删去,把离散概率讲深些。我们不一定要这么做,但应该更加强调离散概率是没有疑问的。这个工作我看还是尽早的做为好。

计算方法学(有些学校也称为数学分析学)是最后一门由数理学院给我们开的课。一般学生对这门课的重视程度有限,以为没什么用。不就是照套公式嘛!其实,做图形图像可离不开它,密码学搞深了也离不开它。而且,在很多科学工程中的应用计算,都以数值的为主。这门课有两个极端的讲法:一个是古典的"数值分析",完全讲数学原理和算法;另一个是现在日趋流行的"科学与工程计算",干脆教学生用软件包编程。我个人认为,计算机系的学生一定要认识清楚我们计算机系的学生为什么要学这门课,我是很偏向于学好理论后用计算机实现的,最好使用C语言或C++编程实现。向这个方向努力的书籍还是挺多的,这里推荐大家高等教育出版社(CHEP)和施普林格出版社(Springer)联合出版的《计算方法(Computational Methods)》,华中理工大学数学系写的(现华中科技大学),这方面华科大做的工作在国内应算是比较多的,而个人认为以这本最好,至少程序设计方面涉及了:任意数学函数的求值,方程求根,线性方程组求解,插值方法,数值积分,场微分方程数值求解。李庆扬的那本则理论性过强,与实际应用结合得不太紧。

每个学校本系里都会开一门离散数学,涉及集合论,图论,和抽象代数,数理逻辑。不过,这么多内容挤在离散数学一门课里,是否时间太紧了点?另外,计算机系学生不懂组合和数论,也是巨大的缺陷。要做理论,不懂组合或者数论吃亏可就太大了。从理想的状态来看,最好分开六门课:集合,逻辑,图论,组合,代数,数论。这个当然不现实,因为没那么多课时。也许将来可以开三门课:集合与逻辑,图论与组合,代数与数论。(这方面我们学校已经着手开始做了)不管课怎么开,学生总一样要学。下面分别谈谈上面的三组内容。
古典集合论,北师大出过一本《基础集合论》不错。 数理逻辑,中科院软件所陆钟万教授的《面向计算机科学的数理逻辑》就不错。现在可以找到陆钟万教授的讲课录像,http://www.cas.ac.cn/html/Dir/2001/11/06/3391.htm自己去看看吧。总的来说,学集合/逻辑起手不难,普通高中生都能看懂。但越往后越感觉深不可测。

学完以上各书之后,如果你还有精力兴趣进一步深究,那么可以试一下GTM系列中的《Introction to Axiomatic Set Theory》和《A Course of Mathematical Logic》。这两本都有世界图书出版社的引进版。你如果能搞定这两本,可以说在逻辑方面真正入了门,也就不用再浪费时间听我瞎侃了。

据说全中国最多只有三十个人懂图论。此言不虚。图论这东东,技巧性太强,几乎每个问题都有一个独特的方法,让人头痛。不过这也正是它魅力所在:只要你有创造性,它就能给你成就感。我的导师说,图论里面随便揪一块东西就可以写篇论文。大家可以体会里面内容之深广了吧!国内的图论书中,王树禾老师的"图论及其算法"非常成功。一方面,其内容在国内教材里算非常全面的。另一方面,其对算法的强调非常适合计算机系(本来就是科大计算机系教材)。有了这本书为主,再参考几本翻译的,如Bondy & Murty的《图论及其应用》,人民邮电出版社翻译的《图论和电路网络》等等,就马马虎虎,对本科生足够了。再进一步,世界图书引进有GTM系列的"Modern Graph Theory"。此书确实经典!国内好象还有一家出版了个翻译版。不过,学到这个层次,还是读原版好。搞定这本书,也标志着图论入了门。

离散数学方面我们北京工业大学实验学院有个世界级的专家,叫邵学才,复旦大学概率论毕业的,教过高等数学,线性代数,概率论,最后转向离散数学,出版着作无数,论文集新加坡有一本,堪称经典,大家想学离散数学的真谛不妨找来看看。这老师的课我专门去听过,极为经典。不过你要从他的不经意的话中去挖掘精髓。在同他的交谈当中我又深刻地发现一个问题,虽说邵先生写书无数,但依他自己的说法每本都差不多,我实在觉得诧异,他说主要是有大纲的限制,不便多写。这就难怪了,很少听说国外写书还要依据个什么大纲(就算有,内容也宽泛的多),不敢越雷池半步,这样不是看谁的都一样了。外版的书好就好在这里,最新的科技成果里面都有论述,别的先不说,至少是"紧跟时代的理论知识"。

组合感觉没有太适合的国产书。还是读Graham和Knuth等人合着的经典"具体数学"吧,西安电子科技大学出版社有翻译版。 抽象代数,国内经典为莫宗坚先生的"代数学"。此书是北大数学系教材,深得好评。然而对本科生来说,此书未免太深。可以先学习一些其它的教材,然后再回头来看"代数学"。国际上的经典可就多了,GTM系列里就有一大堆。推荐一本谈不上经典,但却最简
单的,最容易学的:http://www.math.miami.e/~ec/book/这本"Introction to Linear and Abstract Algebra"非常通俗易懂,而且把抽象代数和线性代数结合起来,对初学者来说非常理想,我校比较牛的同学都有收藏。

数论方面,国内有经典而且以困难着称的"初等数论"(潘氏兄弟着,北大版)。再追溯一点,还有更加经典(可以算世界级)并且更加困难的"数论导引"(华罗庚先生的名着,科学版,九章书店重印,繁体的看起来可能比较困难)。把基础的几章搞定一个大概,对本科生来讲足够了。但这只是初等数论。本科毕业后要学计算数论,你必须看英文的书,如Bach的"Introction to Algorithmic Number Theory"。
计算机科学理论的根本,在于算法。现在很多系里给本科生开设算法设计与分析,确实非常正确。环顾西方世界,大约没有一个三流以上计算机系不把算法作为必修的。算法教材目前公认以Corman等着的"Introction to Algorithms"为最优。对入门而言,这一本已经足够,不需要再参考其它书。

再说说形式语言与自动机。我看过北邮的教材,应该说写的还清楚。但是,有一点要强调:形式语言和自动机的作用主要在作为计算模型,而不是用来做编译。事实上,编译前端已经是死领域,没有任何open problems,北科大的班晓娟博士也曾经说过,编译的技术已相当成熟。如果为了这个,我们完全没必要去学形式语言--用用yacc什么的就完了。北邮的那本在国内还算比较好,但是在深度上,在跟可计算性的联系上都有较大的局限,现代感也不足。所以建议有兴趣的同学去读英文书,不过国内似乎没引进这方面的教材。可以去互动出版网上看一看。入门以后,把形式语言与自动机中定义的模型,和数理逻辑中用递归函数定义的模型比较一番,可以说非常有趣。现在才知道,什么叫"宫室之美,百官之富"!

计算机科学和数学的关系有点奇怪。二三十年以前,计算机科学基本上还是数学的一个分支。而现在,计算机科学拥有广泛的研究领域和众多的研究人员,在很多方面反过来推动数学发展,从某种意义上可以说是孩子长得比妈妈还高了。但不管怎么样,这个孩子身上始终流着母亲的血液。这血液是the mathematical underpinning of computer science(计算机科学的数学基础),也就是理论计算机科学。原来在东方大学城图书馆中曾经看过一本七十年代的译本(书皮都没了,可我就爱关注这种书),大概就叫《计算机数学》。那本书若是放在当时来讲决是一本好书,但现在看来,涵盖的范围还算广,深度则差了许多,不过推荐大一的学生倒可以看一看,至少可以使你的计算数学入入门。

最常和理论计算机科学放在一起的一个词是什么?答:离散数学。这两者的关系是如此密切,以至于它们在不少场合下成为同义词。(这一点在前面的那本书中也有体现)传统上,数学是以分析为中心的。数学系的同学要学习三四个学期的数学分析,然后是复变函数,实变函数,泛函数等等。实变和泛函被很多人认为是现代数学的入门。在物理,化学,工程上应用的,也以分析为主。

随着计算机科学的出现,一些以前不太受到重视的数学分支突然重要起来。人们发现,这些分支处理的数学对象与传统的分析有明显的区别:分析研究的问题解决方案是连续的,因而微分,积分成为基本的运算;而这些分支研究的对象是离散的,因而很少有机会进行此类的计算。人们从而称这些分支为"离散数学"。"离散数学"的名字越来越响亮,最后导致以分析为中心的传统数学分支被相对称为"连续数学"。

离散数学经过几十年发展,基本上稳定下来。一般认为,离散数学包含以下学科:
1) 集合论,数理逻辑与元数学。这是整个数学的基础,也是计算机科学的基础。
2) 图论,算法图论;组合数学,组合算法。计算机科学,尤其是理论计算机科学的核心是
算法,而大量的算法建立在图和组合的基础上。
3) 抽象代数。代数是无所不在的,本来在数学中就非常重要。在计算机科学中,人们惊讶地发现代数竟然有如此之多的应用。

但是,理论计算机科学仅仅就是在数学的上面加上"离散"的帽子这么简单吗?一直到大约十几年前,终于有一位大师告诉我们:不是。D.E.Knuth(他有多伟大,我想不用我废话了)在Stanford开设了一门全新的课程Concrete Mathematics。 Concrete这个词在这里有两层含义:
首先:对abstract而言。Knuth认为,传统数学研究的对象过于抽象,导致对具体的问题关心不够。他抱怨说,在研究中他需要的数学往往并不存在,所以他只能自己去创造一些数学。为了直接面向应用的需要,他要提倡"具体"的数学。在这里我做一点简单的解释。例如在集合论中,数学家关心的都是最根本的问题--公理系统的各种性质之类。而一些具体集合的性质,各种常见集合,关系,映射都是什么样的,数学家觉得并不重要。然而,在计算机科学中应用的,恰恰就是这些具体的东西。Knuth能够首先看到这一点,不愧为当世计算机第一人。其次,Concrete是Continuous(连续)加上discrete(离散)。不管连续数学还是离散数学,都是有用的数学!

理论与实际的结合——计算机科学研究的范畴
前面主要是从数学角度来看的。从计算机角度来看,理论计算机科学目前主要的研究领域包括:可计算性理论,算法设计与复杂性分析,密码学与信息安全,分布式计算理论,并行计算理论,网络理论,生物信息计算,计算几何学,程序语言理论等等。这些领域互相交叉,而且新的课题在不断提出,所以很难理出一个头绪来。想搞搞这方面的工作,推荐看中国计算机学会的一系列书籍,至少代表了我国的权威。下面随便举一些例子。
由于应用需求的推动,密码学现在成为研究的热点。密码学建立在数论(尤其是计算数论),代数,信息论,概率论和随机过程的基础上,有时也用到图论和组合学等。很多人以为密码学就是加密解密,而加密就是用一个函数把数据打乱。这样的理解太浅显了。
现代密码学至少包含以下层次的内容:
第一,密码学的基础。例如,分解一个大数真的很困难吗?能否有一般的工具证明协议正确?
第二,密码学的基本课题。例如,比以前更好的单向函数,签名协议等。
第三,密码学的高级问题。例如,零知识证明的长度,秘密分享的方法。
第四,密码学的新应用。例如,数字现金,叛徒追踪等。
在分布式系统中,也有很多重要的理论问题。例如,进程之间的同步,互斥协议。一个经典的结果是:在通信信道不可靠时,没有确定型算法能实现进程间协同。所以,改进TCP三次握手几乎没有意义。例如时序问题。常用的一种序是因果序,但因果序直到不久前才有一个理论上的结果....例如,死锁没有实用的方法能完美地对付。例如,......操作系统研究过就自己去举吧!
如果计算机只有理论,那么它不过是数学的一个分支,而不成为一门独立的科学。事实上,在理论之外,计算机科学还有更广阔的天空。

我一直认为,4年根本不够学习计算机的基础知识,因为面太宽了......
这方面我想先说说我们系在各校普遍开设的《计算机基础》。在高等学校开设《计算机基础课程》是我国高教司明文规定的各专业必修课程要求。主要内容是使学生初步掌握计算机的发展历史,学会简单的使用操作系统,文字处理,表格处理功能和初步的网络应用功能。但是在计算机科学系教授此门课程的目标决不能与此一致。在计算机系课程中目标应是:让学生较为全面的了解计算机学科的发展,清晰的把握计算机学科研究的方向,发展的前沿即每一个课程在整个学科体系中所处的地位。搞清各学科的学习目的,学习内容,应用领域。使学生在学科学习初期就对整个学科有一个整体的认识,以做到在今后的学习中清楚要学什么,怎么学。计算机基本应用技能的位置应当放在第二位或更靠后,因为这一点对于本系的学生应当有这个摸索能力。这一点很重要。推荐给大家一本书:机械工业出版社的《计算机文化》(New Perspective of Computer Science),看了这本书我才深刻的体会到自己还是个计算机科学初学者,才比较透彻的了解了什么是计算机科学。另外在厦门大学赵致琢老师的着作《计算科学导论》当中的很多经典理论都是在同类书籍中很难找到的。看看他也许你才会明白一个最基本的问题:为什么计算机科学叫计算科学更为准确。这本书在世界上也可成为精品级的着作。

一个一流计算机系的优秀学生决不该仅仅是一个编程高手,但他一定首先是一个编程高手。我上大学的时候,第一门专业课是C语言程序设计,念计算机的人从某种角度讲相当一部分人是靠写程序吃饭的。在我们北京工业大学实验学院计算机系里一直有这样的争论(时至今日CSDN上也有),关于第一程序设计语言该用哪一种。我个人认为,用哪种语言属于末节,关键在养成良好的编程习惯。当年老师对我们说,打好基础后学一门新语言只要一个星期。现在我觉得根本不用一个星期,前提是先把基础打好。不要再犹豫了,学了再说,等你抉择好了,别人已经会了几门语言了。

汇编语言和微机原理是两门特烦人的课。你的数学/理论基础再好,也占不到什么便宜。这两门课之间的次序也好比先有鸡还是先有蛋,无论你先学哪门,都会牵扯另一门课里的东西。所以,只能静下来慢慢琢磨。这就是典型的工程课,不需要太多的聪明和顿悟,却需要水滴石穿的渐悟。有关这两门课的书,计算机书店里不难找到。弄几本最新的,对照着看吧。组成原理推荐《计算机组成与结构》清华大学王爱英教授写的。汇编语言大家拿8086/8088入个门,之后一定要学80x86汇编语言。实用价值大,不落后,结构又好,写写高效病毒,高级语言里嵌一点汇编,进行底层开发,总也离不开他,推荐清华大学沈美明的《IBM—PC汇编语言程序设计》。有些人说不想了解计算机体系结构,也不想制造计算机,所以诸如计算机原理,汇编语言,接口之类的课觉得没必要学,这样合理吗?显然不合理,这些东西迟早得掌握,肯定得接触,而且,这是计算机专业与其他专业学生相比的少有的几项优势。做项目的时候,了解这些是非常重要的,不可能说,仅仅为了技术而技术,只懂技术的人最多做一个编码工人,而永远不可能全面地了解整个系统的设计,而编码工人是越老越不值钱。关于组成原理还有个讲授的问题,在我学这门课程时老师讲授时把CPU工作原理誉微程序设计这一块略掉了,理由是我们国家搞CPU技术不如别的国家,搞了这么长时间好不容易出了个龙芯比Intel的还差个十万八千里,所以建议我们不要学了。我看这在各校也未见得不是个问题吧!若真是如他所说,那中国的计算机科学哪个方向都可以停了,软硬件,应用,有几项搞得过美国,搞不过别人就不搞了,那我们坐在这里干什么?教学的观念需要转变的。

模拟电路这东东,如今不仅计算机系学生搞不定,电子系学生也多半害怕。如果你真想软硬件通吃,那么建议你先看看邱关源的"电路原理",也许此后再看模拟电路底气会足些。教材:康华光的"电子技术基础"(高等教育出版社)还是不错的(我校电子系在用)。有兴趣也可以参考童诗白的书。

数字电路比模拟电路要好懂得多。推荐大家看一看我们北工大刘英娴教授写的《数字逻辑》业绩人士都说这本书很有参考价值(机械工业出版社的)。原因很明了,实用价值高,能听听她讲授的课程更是有一种"享受科学"的感觉。清华大学阎石的书也算一本好教材,遗憾的一点是集成电路讲少了些。真有兴趣,看一看大规模数字系统设计吧(北航那本用的还比较多)。

计算机系统结构该怎么教,国际上还在争论。国内能找到的较好教材为Stallings的"Computer Organization and Architectureesigning for Performance"(清华影印
本)。国际上最流行的则是"Computer architecture: aquantitative approach", by Patterson & Hennessy。
操作系统可以随便选用《操作系统的内核设计与实现》和《现代操作系统》两书之一。这两部都可以算经典,唯一缺点就是理论上不够严格。不过这领域属于Hardcore System,所以在理论上马虎一点也情有可原。想看理论方面的就推荐清华大学出版社《操作系统》吧,高教司司长张尧学写的,我们教材用的是那本。 另外推荐一本《Windows操作系统原理》机械工业出版社的,这本书是我国操作系统专家在微软零距离考察半年,写作历时一年多写成的,教操作系统的专家除了清华大学的张尧学(现高教司司长)几乎所有人都参加了。Bill Gates亲自写序。里面不但结合windows2000,xp详述操作系统的内核,而且后面讲了一些windows编程基础,有外版书的味道,而且上面一些内容可以说在国内外只有那本书才有对windows内核细致入微的介绍,
如果先把形式语言学好了,则编译原理中的前端我看只要学四个算法:最容易实现的递归下降;最好的自顶向下算法LL(k);最好的自底向上算法LR(k);LR(1)的简化SLR(也许还有另一简化LALR)。后端完全属于工程性质,自然又是another story。
推荐教材:Kenneth C.Louden写的"Compiler Construction Principles and Practice"即是《编译原理及实践》(机械工业出版社的译本)
学数据库要提醒大家的是,会用VFP,VB, Power builder不等于懂数据库。(这世界上自以为懂数据库的人太多了!)数据库设计既是科学又是艺术,数据库实现则是典型的工程。所以从某种意义上讲,数据库是最典型的一门计算机课程——理工结合,互相渗透。另外推荐大家学完软件工程学后再翻过来看看数据库技术,又会是一番新感觉。推荐教材:Abraham Silberschatz等着的 "Database System Concepts".作为知识的完整性,还推荐大家看一看机械工业出版社的《数据仓库》译本。

计算机网络的标准教材还是来自Tanenbaum的《Computer Networks》(清华大学有译本)。还有就是推荐谢希仁的《计算机网络教程》(人民邮电出版社)问题讲得比较清楚,参考文献也比较权威。不过,网络也属于Hardcore System,所以光看书是不够的。建议多读RFC,http://www.ietf.org/rfc.htm里可以按编号下载RFC文档。从IP的读起。等到能掌握10种左右常用协议,就没有几个人敢小看你了。再做的工作我看放在网络设计上就比较好了。

F. 我下了清华大学计算机汇编 温冬婵的课件,打开后是用浏览器学习的,

基础方面:(应该无需解释啦) ⒈ 高等数学 ⒉ 线性代数 ⒊ 复变函数与积分变换 ⒊ 概率统计 硬件方面:(最终应该达到可以看懂并分析电路图;可以设计专用计算机系统的程度) ⒈ 电路分析基础 一切电子方向的基础 ⒉ 模拟电子技术基础 一切电子方向的基础(开始分化方向) ⒊ 数字电子技术基础 数字电子(计算机)专业的基础 ⒋ 计算机组成原理 抽象的数字电子的“可以用来计算的机器”的大原理 ⒌ 微机原理及接口技术 基于8086的PC微型计算机系统的原理 ⒌ IBM PC汇编语言程序设计 8086CPU指令系统程序设计 ⒌ 计算机系统与结构 抽象的数字电子计算机系统(非单指计算机)的原理 ⒌ 单片机及接口技术 单芯片计算机系统的基本原理 ⒍ (计算机)信号与系统 从数字电路角度理解的计算机系统的接口与通讯 软件方面:(最终应该达到可以阅读并分析程序(不单指源码);可以设计计算机程序系统) ⒈ 离散数学 ⒈ C语言程序设计 或 C++面向对象程序设计 或 Pascall语言程序设计 ⒉ 数据结构 计算机中数据的组织与管理方式(启发式,非结论式) ⒊ 计算方法 计算机数值计算提高计算精度的方法 ⒋ 操作系统 计算机系统基础管理软件的组成与实现技术 ⒌ 编译原理 从源码到可执行代码的翻译过程快速有效的实现方法 ⒍ 数据库系统概论 计算机中大批量数据的管理与检索方法 ⒍ SQL Server数据库 一个具体的数据库系统的应用 ⒍ 软件工程 从工程管理的角度来管理“软件制造业”的方法 其它方向:(电子)信号与系统通信原理 计算机网络 TCP/IP技术分布式应用原理图形学多媒体技术基础 计算机专业课程自学参考 有人说,计算机专业的人编的程序要比非计算机专业的人编的要好.也许这是在大多数情况下适用的,但是并不是绝对的.你在这个方面经验比别人多,研究的比别人深入,那你就比别人专业,所以要相信自己. 我本不是计算机专业的,但是本专业也学过许多计算机课程.准备把没学的补补.下面是计算机专业课程,供大家自学参考,当然这些都是基础. 一 离散数学,数据结构,计算机组成原理,汇编语言程序设计,面向对象技术,数据通信原理,数字电路与逻辑设计,程序设计课程设计,数据结构课程设计,计算机组成原理试验,数字电路与逻辑设计试验,计算机文化基础,计算机程序设计,线性代数A,概率论与数理统计B,普通物理B,电路电子学 数据库系统,操作系统,计算机网络,计算机系统结构,光通信技术,嵌入式系统设计, Internet与web编程,Cisio/Solaris网络体系设计与实现,综合布线系统 编译原理,数字系统设计VHDL,信号与系统,微机系统与接口技术,数字信号处理,软件工程,IT项目管理,七号信令系统,电子商务概论,多媒体技术,UNIX操作系统,计算机信息安全移动通信,卫星通信,计算机系统维护技术 二 基础方面:(应该无需解释啦) ⒈ 高等数学 ⒉ 线性代数 ⒊ 复变函数与积分变换 ⒊ 概率统计 硬件方面:(最终应该达到可以看懂并分析电路图;可以设计专用计算机系统的程度) ⒈ 电路分析基础 一切电子方向的基础 ⒉ 模拟电子技术基础 一切电子方向的基础(开始分化方向) ⒊ 数字电子技术基础 数字电子(计算机)专业的基础 ⒋ 计算机组成原理 抽象的数字电子的“可以用来计算的机器”的大原理 ⒌ 微机原理及接口技术 基于8086的PC微型计算机系统的原理 ⒌ IBM PC汇编语言程序设计 8086CPU指令系统程序设计 ⒌ 计算机系统与结构 抽象的数字电子计算机系统(非单指计算机)的原理 ⒌ 单片机及接口技术 单芯片计算机系统的基本原理 ⒍ (计算机)信号与系统 从数字电路角度理解的计算机系统的接口与通讯 软件方面:(最终应该达到可以阅读并分析程序(不单指源码);可以设计计算机程序系统) ⒈ 离散数学 ⒈ C语言程序设计 或 C++面向对象程序设计 或 Pascall语言程序设计 ⒉ 数据结构 计算机中数据的组织与管理方式(启发式,非结论式) ⒊ 计算方法 计算机数值计算提高计算精度的方法 ⒋ 操作系统 计算机系统基础管理软件的组成与实现技术 ⒌ 编译原理 从源码到可执行代码的翻译过程快速有效的实现方法 ⒍ 数据库系统概论 计算机中大批量数据的管理与检索方法 7 SQL Server数据库 一个具体的数据库系统的应用 8 软件工程 从工程管理的角度来管理“软件制造业”的方法 9 汇编语言 其它方向:(电子)信号与系统通信原理 计算机网络 TCP/IP技术分布式应用原理图形学多媒体技术基础 三 很多朋友可能跟我一样,想学习计算机专业知识,又没机会接受正规的大学计算机教育。在此我作为过来人跟大家谈谈自己自学的感受。 ★确立学习方向 计算机专业人才的培养目标有很多,就大学计算机专业的设置来看,大致可以概括为以下几个方面: 一、计算机软件与理论 本专业主要培养具有较强理论基础和设计、开发软件能力的软件人才,以满足软件开发、技术管理、科学研究和高等教育等多层次的社会需要。 二、计算机应用技术 本专业主要培养计算机应用技术领域的各类开发、研究、应用人才。 毕业生适合的工作有:高等院校计算机科学与技术的教师和研究人员、中小型控制系统的设计实施人员、大型控制系统的应用人员、企业级MIS/ERP建设人员、基于Internet/Intranet的多媒体应用程序开发人员、数字通讯领域各类应用人员、大中型企业及涉外企业IT部门的工作人员。 三、计算机系统(体系)结构 本专业以并行处理、容错计算等为主要研究方向,所开设的课程反映当前国内外计算机系统结构学科的发展水平。培养学生的计算机软硬件基础,以及熟练的以计算机为手段独立研究与设计计算机系统的能力和计算机应用、软件开发能力。 ★如何挑选教材 好的教材对于自学者来说是至关重要的,因此下面我们重点介绍一下适合自学用的计算机专业教材。 一、数学 数学是计算机专业的基础,学好数学是学好计算机专业的关键。高等数学课程主要学习微积分、空间解析几何和微分方程,一般高校通用的教材是同济大学编的《高等数学》,目前已经有了第五版,也可以使用自考教材——西安交通大学陆庆乐编的《高等数学》,可以买一些配套的辅导书和习题解答。 还有两门重要的数学课程是《线性代数》和《概率统计》。可以分别采用高等教育出版社出版、同济大学编写的《线性代数》和浙江大学编写的《概率统计》。注意:自学一定要多做习题,而且最好一门课有一本习题解答和辅导书。 除了上面数学基础课外,在计算机专业中举足轻重的就是《离散数学》,这门课要多花点力气来学。可以采用左孝凌教授等编的《离散数学》,上海科学技术文献出版社。也可以用北大、清华的教材,还可以参考左教授编的自学教材,经济科学出版社。 其他课程还有《复编函数》、《计算方法》等,有余力的朋友可以选学。 二、专业基础课 1.《程序设计》:学习内容一般为C和C++。C语言可以采用谭浩强教授的《C程序设计》,内容比较浅显,C++方面的书推荐钱能编写的《C++程序设计》,清华大学出版社。 2.《数据结构》:这门课程比较难,可以采用严蔚敏教授编写的《数据结构(C语言版)》,有配套习题册。好好做题,有时间多编几个大的程序。 3.《模拟电路》和《数字电路》:这是难度较高的两门课程,选用自考教材相对来说容易些,也可以参考清华大学出版社出版的相关教材。 三、专业课 1.《计算机组成原理》:推荐白中英主编的《计算机组成原理》(第三版),科学出版社;黄爱英主编的《计算机组成原理》(第三版),清华大学出版社。 2.《操作系统》:汤子赢编写的《计算机操作系统》(第三版),西安电子科技大学出版社。还可以参考高教司司长张尧学教授编写的教材,清华大学出版社。 3.《汇编语言》:可以用清华大学出版社出版的教材,也可以用自考教材。 4.《数据库原理》:人民大学教授王珊编的《数据库系统概论》(第三版),高等教育出版社,复旦大学施伯乐老师编写的教材也不错。 5.《编译原理》:国防科技大学陈火旺院士编写的教材十分不错,最新版本是2000年出的,国防工业出版社。 四、选修课 包括计算机网络与通讯、软件工程、图形学、人工智能、系统结构、图形学等。此类课程的教材可选用全国高等教育自学考试指定教材,或参考各高校所采用的计算机专科和本科教材及配套辅导书。英文基础好的朋友可以用国外着名大学的影印版教材。 需要提醒大家的是,除了教材,网上有许多相关课堂录像和课件,有条件的朋友要充分利用。 我自己通过上述课程的学习和实践,已经考完了计算机本科自学考试的大部分课程,并已通过计算机四级考试,下半年还准备参加高级程序员考试。希望我的经验对大家能有所帮助。 总结一下,没学过的课程大概有: 1.*离散数学 2.*计算机组成原理,*计算机系统结构,嵌入式系统设计,编译原理,*Unix系统 3.*Internet与web编程,Cisio/Solaris网络体系设计与实现,*TCP/IP技术 4.综合布线系统,信号与系统,数字信号处理,单片机及接口技术,分布式应用原理 5.*IT项目管理 6.多媒体 *号的一定会看,其他的课可能会看.除了以上的,其他基本都在本科学过.需要进一步加强的有: 1.汇编语言,操作系统,微机原理 2.数据库,计算机网络,软件工程. 补充:研一第一学期计算机专业课: 并行程序设计,算法设计与分析,组合数学,高级计算机网络,程序设计语言理论,高级数据库系统,现代密码学理论与实践,智能计算模型与方法,高级计算机图形学,计算机辅助设计与制造,嵌入式系统设计方法、工具与环境,高性能处理器体系结构,数据库技术前沿,人工智能前沿,软件安全的理论与方法,普适计算

G. 推荐一本数据库原理的好书。中文的,如果是翻译的,要公认翻译的不错的。

计算机科学与技术学习反思录
计算机理论的一个核心问题--从数学谈起:
记得当年大一入学,每周六课时高等数学,天天作业不断(那时是六日工作制)。颇有些同学惊呼走错了门:咱们这到底念的是什么系?不错,你没走错门,这就是计算机科学与技术系。我国计算机科学系里的传统是培养做学术研究,尤其是理论研究的人(方向不见得有问题,但是做得不是那么尽如人意)。而计算机的理论研究,说到底了,如网络安全,图形图像学,视频音频处理,哪个方向都与数学有着很大的关系,虽然也许是正统数学家眼里非主流的数学。这里我还想阐明我的一个观点:我们都知道,数学是从实际生活当中抽象出来的理论,人们之所以要将实际抽象成理论,目的就在于想用抽象出来的理论去更好的指导实践,有些数学研究工作者喜欢用一些现存的理论知识去推导若干条推论,殊不知其一:问题考虑不全很可能是个错误的推论,其二:他的推论在现实生活中找不到原型,不能指导实践。严格的说,我并不是一个理想主义者,政治课上学的理论联系实际一直是指导我学习科学文化知识的航标(至少我认为搞计算机科学与技术的应当本着这个方向)。
其实我们计算机系学数学光学高等数学是不够的(典型的工科院校一般都开的是高等数学),我们应该像数学系一样学一下数学分析(清华计算机系开的好像就是数学分析),数学分析这门科学,咱们学计算机的人对它有很复杂的感情。在于它是偏向于证明型的数学课程,这对我们培养良好的分析能力极有帮助。我的软件工程学导师北工大数理学院的王仪华先生就曾经教导过我们,数学系的学生到软件企业中大多作软件设计与分析工作,而计算机系的学生做程序员的居多,原因就在于数学系的学生分析推理能力,从所受训练的角度上要远远在我们之上。当年出现的怪现象是:计算机系学生的高中数学基础在全校数一数二(希望没有冒犯其它系的同学),教学课时数也仅次于数学系,但学完之后的效果却不尽如人意。难道都是学生不努力吗,我看未见得,方向错了也说不一定,其中原因何在,发人深思。
我个人的浅见是:计算机系的学生,对数学的要求固然跟数学系不同,跟物理类差别则更大。通常非数学专业的所谓“高等数学”,无非是把数学分析中较困难的理论部分删去,强调套用公式计算而已。而对计算机系来说,数学分析里用处最大的恰恰是被删去的理论部分。说得难听一点,对计算机系学生而言,追求算来算去的所谓“工程数学”已经彻底地走进了误区。记上一堆曲面积分的公式,难道就能算懂了数学?那倒不如现用现查,何必费事记呢?再不然直接用Mathematics或是Matalab好了。
我在系里最爱做的事情就是给学弟学妹们推荐参考书。中文的数学分析书,一般都认为以北大张筑生老师的“数学分析新讲”为最好。万一你的数学实在太好,那就去看菲赫金哥尔茨的“微积分学教程”好了--但我认为没什么必要,毕竟你不想转到数学系去。吉米多维奇的“数学分析习题集”也基本上是计算型的东东。书的名气很大,倒不见得适合我们,还是那句话,重要的是数学思想的建立,生活在信息社会里我们求的是高效,计算这玩意还是留给计算机吧。不过现在多用的似乎是复旦大学的《数学分析》也是很好的教材。
中国的所谓高等代数,就等于线性代数加上一点多项式理论。我以为这有好的一面,因为可以让学生较早感觉到代数是一种结构,而非一堆矩阵翻来覆去。这里不得不提南京大学林成森,盛松柏两位老师编的“高等代数”,感觉相当舒服。此书相当全面地包含了关于多项式和线性代数的基本初等结果,同时还提供了一些有用的又比较深刻的内容,如Sturm序列,Shermon-Morrison公式,广义逆矩阵等等。可以说,作为本科生如能吃透此书,就可以算高手。国内较好的高等代数教材还有清华计算机系用的那本,清华出版社出版,书店里多多,一看就知道。从抽象代数的观点来看,高等代数里的结果不过是代数系统性质的一些例子而已。莫宗坚先生的《代数学》里,对此进行了深刻的讨论。然而莫先生的书实在深得很,作为本科生恐怕难以接受,不妨等到自己以后成熟了一些再读。
正如上面所论述的,计算机系的学生学习高等数学:知其然更要知其所以然。你学习的目的应该是:将抽象的理论再应用于实践,不但要掌握题目的解题方法,更要掌握解题思想,对于定理的学习:不是简单的应用,而是掌握证明过程即掌握定理的由来,训练自己的推理能力。只有这样才达到了学习这门科学的目的,同时也缩小了我们与数学系的同学之间思维上的差距。
概率论与数理统计这门课很重要,可惜大多数院校讲授这门课都会少些东西。少了的东西现在看至少有随机过程。到毕业还没有听说过Markov过程,此乃计算机系学生的耻辱。没有随机过程,你怎么分析网络和分布式系统?怎么设计随机化算法和协议?据说清华计算机系开有“随机数学”,早就是必修课。另外,离散概率论对计算机系学生来说有特殊的重要性。而我们国家工程数学讲的都是连续概率。现在,美国已经有些学校开设了单纯的“离散概率论”课程,干脆把连续概率删去,把离散概率讲深些。我们不一定要这么做,但应该更加强调离散概率是没有疑问的。这个工作我看还是尽早的做为好。
计算方法学(有些学校也称为数学分析学)是最后一门由数理学院给我们开的课。一般学生对这门课的重视程度有限,以为没什么用。不就是照套公式嘛!其实,做图形图像可离不开它,密码学搞深了也离不开它。而且,在很多科学工程中的应用计算,都以数值的为主。这门课有两个极端的讲法:一个是古典的“数值分析”,完全讲数学原理和算法;另一个是现在日趋流行的“科学与工程计算”,干脆教学生用软件包编程。我个人认为,计算机系的学生一定要认识清楚我们计算机系的学生为什么要学这门课,我是很偏向于学好理论后用计算机实现的,最好使用C语言或C++编程实现。向这个方向努力的书籍还是挺多的,这里推荐大家高等教育出版社(CHEP)和施普林格出版社(Springer)联合出版的《计算方法(Computational Methods)》,华中理工大学数学系写的(现华中科技大学),这方面华科大做的工作在国内应算是比较多的,而个人认为以这本最好,至少程序设计方面涉及了:任意数学函数的求值,方程求根,线性方程组求解,插值方法,数值积分,场微分方程数值求解。李庆扬的那本则理论性过强,与实际应用结合得不太紧。
每个学校本系里都会开一门离散数学,涉及集合论,图论,和抽象代数,数理逻辑。不过,这么多内容挤在离散数学一门课里,是否时间太紧了点?另外,计算机系学生不懂组合和数论,也是巨大的缺陷。要做理论,不懂组合或者数论吃亏可就太大了。从理想的状态来看,最好分开六门课:集合,逻辑,图论,组合,代数,数论。这个当然不现实,因为没那么多课时。也许将来可以开三门课:集合与逻辑,图论与组合,代数与数论。(这方面我们学校已经着手开始做了)不管课怎么开,学生总一样要学。下面分别谈谈上面的三组内容。
古典集合论,北师大出过一本《基础集合论》不错。
数理逻辑,中科院软件所陆钟万教授的《面向计算机科学的数理逻辑》就不错。现在可以找到陆钟万教授的讲课录像,自己去看看吧。总的来说,学集合/逻辑起手不难,普通高中生都能看懂。但越往后越感觉深不可测。
学完以上各书之后,如果你还有精力兴趣进一步深究,那么可以试一下GTM系列中的《Introction to Axiomatic Set Theory》和《A Course of Mathematical Logic》。这两本都有世界图书出版社的引进版。你如果能搞定这两本,可以说在逻辑方面真正入了门,也就不用再浪费时间听我瞎侃了。
据说全中国最多只有三十个人懂图论。此言不虚。图论这东东,技巧性太强,几乎每个问题都有一个独特的方法,让人头痛。不过这也正是它魅力所在:只要你有创造性,它就能给你成就感。我的导师说,图论里面随便揪一块东西就可以写篇论文。大家可以体会里面内容之深广了吧!国内的图论书中,王树禾老师的“图论及其算法”非常成功。一方面,其内容在国内教材里算非常全面的。另一方面,其对算法的强调非常适合计算机系(本来就是科大计算机系教材)。有了这本书为主,再参考几本翻译的,如Bondy & Murty的《图论及其应用》,人民邮电出版社翻译的《图论和电路网络》等等,就马马虎虎,对本科生足够了。再进一步,世界图书引进有GTM系列的"Modern Graph Theory"。此书确实经典!国内好象还有一家出版了个翻译版。不过,学到这个层次,还是读原版好。搞定这本书,也标志着图论入了门。 外版的书好就好在这里,最新的科技成果里面都有论述,别的先不说,至少是“紧跟时代的理论知识”。
组合感觉没有太适合的国产书。还是读Graham和Knuth等人合着的经典“具体数学”吧,西安电子科技大学出版社有翻译版。
抽象代数,国内经典为莫宗坚先生的“代数学”。此书是北大数学系教材,深得好评。然而对本科生来说,此书未免太深。可以先学习一些其它的教材,然后再回头来看“代数学”。国际上的经典可就多了,GTM系列里就有一大堆。推荐一本谈不上经典,但却最简单的,最容易学的:这本“Introction to Linear and Abstract Algebra"非常通俗易懂,而且把抽象代数和线性代数结合起来,对初学者来说非常理想,我校比较牛的同学都有收藏。
数论方面,国内有经典而且以困难着称的”初等数论“(潘氏兄弟着,北大版)。再追溯一点,还有更加经典(可以算世界级)并且更加困难的”数论导引“(华罗庚先生的名着,科学版,九章书店重印,繁体的看起来可能比较困难)。把基础的几章搞定一个大概,对本科生来讲足够了。但这只是初等数论。本科毕业后要学计算数论,你必须看英文的书,如Bach的"Introction to Algorithmic Number Theory"。
计算机科学理论的根本,在于算法。现在很多系里给本科生开设算法设计与分析,确实非常正确。环顾西方世界,大约没有一个三流以上计算机系不把算法作为必修的。算法教材目前公认以Corman等着的"Introction to Algorithms"为最优。对入门而言,这一本已经足够,不需要再参考其它书。
再说说形式语言与自动机。我看过北邮的教材,应该说写的还清楚。但是,有一点要强调:形式语言和自动机的作用主要在作为计算模型,而不是用来做编译。事实上,编译前端已经是死领域,没有任何open problems,北科大的班晓娟博士也曾经说过,编译的技术已相当成熟。如果为了这个,我们完全没必要去学形式语言--用用yacc什么的就完了。北邮的那本在国内还算比较好,但是在深度上,在跟可计算性的联系上都有较大的局限,现代感也不足。所以建议有兴趣的同学去读英文书,不过国内似乎没引进这方面的教材。可以去互动出版网上看一看。入门以后,把形式语言与自动机中定义的模型,和数理逻辑中用递归函数定义的模型比较一番,可以说非常有趣。现在才知道,什么叫“宫室之美,百官之富”!
计算机科学和数学的关系有点奇怪。二三十年以前,计算机科学基本上还是数学的一个分支。而现在,计算机科学拥有广泛的研究领域和众多的研究人员,在很多方面反过来推动数学发展,从某种意义上可以说是孩子长得比妈妈还高了。但不管怎么样,这个孩子身上始终流着母亲的血液。这血液是the mathematical underpinning of computer science(计算机科学的数学基础),也就是理论计算机科学。原来在东方大学城图书馆中曾经看过一本七十年代的译本(书皮都没了,可我就爱关注这种书),大概就叫《计算机数学》。那本书若是放在当时来讲决是一本好书,但现在看来,涵盖的范围还算广,深度则差了许多,不过推荐大一的学生倒可以看一看,至少可以使你的计算数学入入门。
最常和理论计算机科学放在一起的一个词是什么?答:离散数学。这两者的关系是如此密切,以至于它们在不少场合下成为同义词。(这一点在前面的那本书中也有体现)传统上,数学是以分析为中心的。数学系的同学要学习三四个学期的数学分析,然后是复变函数,实变函数,泛函数等等。实变和泛函被很多人认为是现代数学的入门。在物理,化学,工程上应用的,也以分析为主。
随着计算机科学的出现,一些以前不太受到重视的数学分支突然重要起来。人们发现,这些分支处理的数学对象与传统的分析有明显的区别:分析研究的问题解决方案是连续的,因而微分,积分成为基本的运算;而这些分支研究的对象是离散的,因而很少有机会进行此类的计算。人们从而称这些分支为“离散数学”。“离散数学”的名字越来越响亮,最后导致以分析为中心的传统数学分支被相对称为“连续数学”。
离散数学经过几十年发展,基本上稳定下来。一般认为,离散数学包含以下学科 :
1) 集合论,数理逻辑与元数学。这是整个数学的基础,也是计算机科学的基础。
2) 图论,算法图论;组合数学,组合算法。计算机科学,尤其是理论计算机科学的核心是
算法,而大量的算法建立在图和组合的基础上。
3) 抽象代数。代数是无所不在的,本来在数学中就非常重要。在计算机科学中,人们惊讶地发现代数竟然有如此之多的应用。
但是,理论计算机科学仅仅就是在数学的上面加上“离散”的帽子这么简单吗?一直到大约十几年前,终于有一位大师告诉我们:不是。D.E.Knuth(他有多伟大,我想不用我废话了)在Stanford开设了一门全新的课程Concrete Mathematics。 Concrete这个词在这里有两层含义:
首先:对abstract而言。Knuth认为,传统数学研究的对象过于抽象,导致对具体的问题关心不够。他抱怨说,在研究中他需要的数学往往并不存在,所以他只能自己去创造一些数学。为了直接面向应用的需要,他要提倡“具体”的数学。在这里我做一点简单的解释。例如在集合论中,数学家关心的都是最根本的问题--公理系统的各种性质之类。而一些具体集合的性质,各种常见集合,关系,映射都是什么样的,数学家觉得并不重要。然而,在计算机科学中应用的,恰恰就是这些具体的东西。Knuth能够首先看到这一点,不愧为当世计算机第一人。其次,Concrete是Continuous(连续)加上discrete(离散)。不管连续数学还是离散数学,都是有用的数学!
理论与实际的结合--计算机科学研究的范畴
前面主要是从数学角度来看的。从计算机角度来看,理论计算机科学目前主要的研究领域包括:可计算性理论,算法设计与复杂性分析,密码学与信息安全,分布式计算理论,并行计算理论,网络理论,生物信息计算,计算几何学,程序语言理论等等。这些领域互相交叉,而且新的课题在不断提出,所以很难理出一个头绪来。想搞搞这方面的工作,推荐看中国计算机学会的一系列书籍,至少代表了我国的权威。下面随便举一些例子。
由于应用需求的推动,密码学现在成为研究的热点。密码学建立在数论(尤其是计算数论),代数,信息论,概率论和随机过程的基础上,有时也用到图论和组合学等。很多人以为密码学就是加密解密,而加密就是用一个函数把数据打乱。这样的理解太浅显了。

现代密码学至少包含以下层次的内容:

第一,密码学的基础。例如,分解一个大数真的很困难吗?能否有一般的工具证明协议正确?

第二,密码学的基本课题。例如,比以前更好的单向函数,签名协议等。

第三,密码学的高级问题。例如,零知识证明的长度,秘密分享的方法。

第四,密码学的新应用。例如,数字现金,叛徒追踪等。

在分布式系统中,也有很多重要的理论问题。例如,进程之间的同步,互斥协议。一个经典的结果是:在通信信道不可靠时,没有确定型算法能实现进程间协同。所以,改进TCP三次握手几乎没有意义。例如时序问题。常用的一种序是因果序,但因果序直到不久前才有一个理论上的结果....例如,死锁没有实用的方法能完美地对付。例如,......操作系统研究过就自己去举吧!

如果计算机只有理论,那么它不过是数学的一个分支,而不成为一门独立的科学。事实上,在理论之外,计算机科学还有更广阔的天空。

我一直认为,4年根本不够学习计算机的基础知识,因为面太宽了,8年,应该差不多了......

这方面我想先说说我们系在各校普遍开设的《计算机基础》。在高等学校开设《计算机基础课程》是我国高教司明文规定的各专业必修课程要求。主要内容是使学生初步掌握计算机的发展历史,学会简单的使用操作系统,文字处理,表格处理功能和初步的网络应用功能。但是在计算机科学系教授此门课程的目标决不能与此一致。在计算机系课程中目标应是:让学生较为全面的了解计算机学科的发展,清晰的把握计算机学科研究的方向,发展的前沿即每一个课程在整个学科体系中所处的地位。搞清各学科的学习目的,学习内容,应用领域。使学生在学科学习初期就对整个学科有一个整体的认识,以做到在今后的学习中清楚要学什么,怎么学。计算机基本应用技能的位置应当放在第二位或更靠后,因为这一点对于本系的学生应当有这个摸索能力。这一点很重要。推荐给大家一本书:机械工业出版社的《计算机文化》(New Perspective of Computer Science),看了这本书我才深刻的体会到自己还是个计算机科学初学者,才比较透彻的了解了什么是计算机科学。

一个一流计算机系的优秀学生决不该仅仅是一个编程高手,但他一定首先是一个编程高手。我上大学的时候,第一门专业课是C语言程序设计,念计算机的人从某种角度讲相当一部分人是靠写程序吃饭的。关于第一程序设计语言该用哪一种。我个人认为,用哪种语言属于末节,关键在养成良好的编程习惯。当年老师对我们说,打好基础后学一门新语言只要一个星期。现在我觉得根本不用一个星期,前提是先把基础打好。不要再犹豫了,学了再说,等你抉择好了,别人已经会了几门语言了。

汇编语言和微机原理是两门特烦人的课。你的数学/理论基础再好,也占不到什么便宜。这两门课之间的次序也好比先有鸡还是先有蛋,无论你先学哪门,都会牵扯另一门课里的东西。所以,只能静下来慢慢琢磨。这就是典型的工程课,不需要太多的聪明和顿悟,却需要水滴石穿的渐悟。有关这两门课的书,计算机书店里不难找到。弄几本最新的,对照着看吧。组成原理推荐《计算机组成与结构》清华大学王爱英教授写的。汇编语言大家拿8086/8088入个门,之后一定要学80x86汇编语言。实用价值大,不落后,结构又好,写写高效病毒,高级语言里嵌一点汇编,进行底层开发,总也离不开他,推荐清华大学沈美明的《IBM-PC汇编语言程序设计》。有些人说不想了解计算机体系结构,也不想制造计算机,所以诸如计算机原理,汇编语言,接口之类的课觉得没必要学,这样合理吗?显然不合理,这些东西迟早得掌握,肯定得接触,而且,这是计算机专业与其他专业学生相比的少有的几项优势。做项目的时候,了解这些是非常重要的,不可能说,仅仅为了技术而技术,只懂技术的人最多做一个编码工人,而永远不可能全面地了解整个系统的设计,而编码工人是越老越不值钱。关于组成原理还有个讲授的问题,在我学这门课程时老师讲授时把CPU工作原理誉微程序设计这一块略掉了,理由是我们国家搞CPU技术不如别的国家,搞了这么长时间好不容易出了个龙芯比Intel的还差个十万八千里,所以建议我们不要学了。我看这在各校也未见得不是个问题吧!若真是如他所说,那中国的计算机科学哪个方向都可以停了,软硬件,应用,有几项搞得过美国,搞不过别人就不搞了,那我们坐在这里干什么?教学的观念需要转变的。

模拟电路这东东,如今不仅计算机系学生搞不定,电子系学生也多半害怕。如果你真想软硬件通吃,那么建议你先看看邱关源的“电路原理”,也许此后再看模拟电路底气会足些。教材:康华光的“电子技术基础”(高等教育出版社)还是不错的(我校电子系在用)。有兴趣也可以参考童诗白的书。

数字电路比模拟电路要好懂得多。清华大学阎石的书算一本好教材,遗憾的一点是集成电路讲少了些。真有兴趣,看一看大规模数字系统设计吧(北航那本用的还比较多)。

计算机系统结构该怎么教,国际上还在争论。国内能找到的较好教材为Stallings的"Computer Organization and Architecture:Designing for Performance"(清华影印
本)。国际上最流行的则是“Computer architecture: aquantitative approach", by Patterson & Hennessy。

操作系统可以随便选用《操作系统的内核设计与实现》和《现代操作系统》两书之一。这两部都可以算经典,唯一缺点就是理论上不够严格。不过这领域属于Hardcore System,所以在理论上马虎一点也情有可原。想看理论方面的就推荐清华大学出版社《操作系统》吧,高教司司长张尧学写的,我们教材用的是那本。 另外推荐一本《Windows操作系统原理》机械工业出版社的,这本书是我国操作系统专家在微软零距离考察半年,写作历时一年多写成的,教操作系统的专家除了清华大学的张尧学(现高教司司长)几乎所有人都参加了。Bill Gates亲自写序。里面不但结合windows2000,xp详述操作系统的内核,而且后面讲了一些windows编程基础,有外版书的味道,而且上面一些内容可以说在国内外只有那本书才有对windows内核细致入微的介绍,

如果先把形式语言学好了,则编译原理中的前端我看只要学四个算法:最容易实现的递归下降;最好的自顶向下算法LL(k);最好的自底向上算法LR(k);LR(1)的简化SLR(也许还有另一简化LALR)。后端完全属于工程性质,自然又是another story。

推荐教材:Kenneth C.Louden写的“Compiler Construction Principles and Practice”即是《编译原理及实践》(机械工业出版社的译本)

学数据库要提醒大家的是,会用VFP,VB, Power builder不等于懂数据库。(这世界上自以为懂数据库的人太多了!)数据库设计既是科学又是艺术,数据库实现则是典型的工程。所以从某种意义上讲,数据库是最典型的一门计算机课程--理工结合,互相渗透。另外推荐大家学完软件工程学后再翻过来看看数据库技术,又会是一番新感觉。推荐教材:Abraham Silberschatz等着的 "Database System Concepts".作为知识的完整性,还推荐大家看一看机械工业出版社的《数据仓库》译本。

计算机网络的标准教材还是来自Tanenbaum的《Computer Networks》(清华大学有译本)。还有就是推荐谢希仁的《计算机网络教程》(人民邮电出版社)问题讲得比较清楚,参考文献也比较权威。不过,网络也属于Hardcore System,所以光看书是不够的。建议多读RFC,里可以按编号下载RFC文档。从IP的读起。等到能掌握10种左右常用协议,就没有几个人敢小看你了。再做的工作我看放在网络设计上就比较好了。

数据结构的重要性就不言而喻了,学完数据结构你会对你的编程思想进行一番革命性的洗礼,会对如何建立一个合理高效的算法有一个清楚的认识。对于算法的建立我想大家应当注意以下几点:

当遇到一个算法问题时,首先要知道自己以前有没有处理过这种问题.如果见过,那么你一般会顺利地做出来;如果没见过,那么考虑以下问题:

1. 问题是否是建立在某种已知的熟悉的数据结构(例如,二叉树)上?如果不是,则要自己设计数据结构。

2. 问题所要求编写的算法属于以下哪种类型?(建立数据结构,修改数据结构,遍历,查找,排序...)

3. 分析问题所要求编写的算法的数学性质.是否具备递归特征?(对于递归程序设计,只要设计出合理的参数表以及递归结束的条件,则基本上大功告成.)

4. 继续分析问题的数学本质.根据你以前的编程经验,设想一种可能是可行的解决办法,并证明这种解决办法的正确性.如果题目对算法有时空方面的要求,证明你的设想满足其要求.一般的,时间效率和空间效率难以兼得.有时必须通过建立辅助存储的方法来节省时间.

5. 通过一段时间的分析,你对解决这个问题已经有了自己的一些思路.或者说,你已经可以用自然语言把你的算法简单描述出来.继续验证其正确性,努力发现其中的错误并找出解决办法.在必要的时候(发现了无法解决的矛盾),推翻自己的思路,从头开始构思.

6. 确认你的思路可行以后,开始编写程序.在编写代码的过程中,尽可能把各种问题考虑得详细,周密.程序应该具有良好的结构,并且在关键的地方配有注释.

7. 举一个例子,然后在纸上用笔执行你的程序,进一步验证其正确性.当遇到与你的设想不符的情况时,分析问题产生的原因是编程方面的问题还是算法思想本身有问题.

8. 如果程序通过了上述正确性验证,那么在将其进一步优化或简化。

9. 撰写思路分析,注释.

对于具体的算法思路,只能靠你自己通过自己的知识和经验来加以获得,没有什么特定的规律(否则程序员全部可以下岗了,用机器自动生成代码就可以了).要有丰富的想象力,就是说当一条路走不通时,不要钻牛角尖,要敢于推翻自己的想法.我也只不过是初学者,说出上面的一些经验,仅供大家参考和讨论。

关于人工智能,我觉得的也是非常值得大家仔细研究的,虽然不能算是刚刚兴起的学科了,但是绝对是非常有发展前途的一门学科。我国人工智能创始人之一,北京科技大学涂序彦教授(这老先生是我的导师李小坚博士的导师)对人工智能这样定义:人工智能是模?

H. 大学计算机专业用什么教材

一、需要的专业教材:

1、数据库方面:王珊等编的《数据库系统概论(第4版)》 高教版。

2、数据结构方面: 《数据结构》,清华严蔚敏版。

3、还有经典教材《操作系统设计与实现(第三版)》陈渝 译 电子工业出版社等

4、当然还有 《计算机系统结构》用西电的就行了,还有西电的《计算机操作系统(第 三 版) 》 ,《计算机组成原理》 作者唐朔飞,是高教版。

二、数学课程:

高等教育出版社出版的《线性代数》和浙江大学编写《概率统计》。

《离散数学》,用左孝凌教授等编的就可以,上海科学技术文献出版社。还可以参考左教授编的自学教材,经济科学出版社,也可以用北大、清华的教材。

《复编函数》、《计算方法》等也可以学一下。

三、英语课程:

可以选择《计算机英语学生用书》清华大学出版社,姜同强主编。

(8)编译原理及实践影印版扩展阅读

计算机科学与另外的一些学科紧密相关。这些学科之间有明显的交叉领域,但也有明显的差异。

1、信息科学—信息科学是指以信息为主要研究对象,以信息的运动规律和应用方法为主要研究内容,以计算机等技术为主要研究工具,以扩展人类的信息功能为主要目标的一门新兴的综合性学科。信息科学由信息论、控制论、计算机科学、仿生学、系统工程与人工智能等学科互相渗透、互相结合而形成的。

2、软件工程–(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。在现代社会中,软件应用于多个方面。

典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏,app等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。

3、信息系统–所谓MIS(信息系统--Management Information System)系统 ,是一个由人、计算机及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统。

它是一门新兴的科学,其主要任务是最大限度的利用现代计算机及网络通讯技术加强企业的信息管理,通过对企业拥有的人力、物力、财力、设备、技术等资源的调查了解,建立正确的数据,加工处理并编制成各种信息资料及时提供给管理人员,以便进行正确的决策,不断提高企业的管理水平和经济效益。

目前,企业的计算机网络已成为企业进行技术改造及提高企业管理水平的重要手段。

4、计算机工程–(也称为电子和计算机工程或计算机系统工程)是一门学科,结合内容都电气工程和计算机科学。计算机工程师正电气工程师有更多的培训领域的软件设计和硬件,软件一体化。反过来,他们注重减少对电力电子学和物理学。

电脑工程师都参与了许多方面的计算,从设计的个别处理器,个人电脑,和超级计算机,以电路设计。这一工程的许多子系统监控机动车辆。

5、信息安全 –本专业是计算机、通信、数学、物理、法律、管理等学科的交叉学科,主要研究确保信息安全的科学与技术。培养能够从事计算机、通信、电子商务、电子政务、电子金融等领域的信息安全高级专门人才。

密码学-是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学。



I. 自学计算机看书顺序

计算机专业课程自学参考

有人说,计算机专业的人编的程序要比非计算机专业的人编的要好.也许这是在大多数情况下适用的,但是并不是绝对的.你在这个方面经验比别人多,研究的比别人深入,那你就比别人专业,所以要相信自己.

我本不是计算机专业的,但是本专业也学过许多计算机课程.准备把没学的补补.下面是计算机专业课程,供大家自学参考,当然这些都是基础.

离散数学,数据结构,计算机组成原理,汇编语言程序设计,面向对象技术,数据通信
原理,数字电路与逻辑设计,程序设计课程设计,数据结构课程设计,计算机组成原理试验,
数字电路与逻辑设计试验,计算机文化基础,计算机程序设计,线性代数A,概率论与数理统计B,
普通物理B,电路电子学

数据库系统,操作系统,计算机网络,计算机系统结构,光通信技术,嵌入式系统设计,
Internet与web编程,Cisio/Solaris网络体系设计与实现,综合布线系统

编译原理,数字系统设计VHDL,信号与系统,微机系统与接口技术,数字信号处理,
软件工程,IT项目管理,七号信令系统,电子商务概论,多媒体技术,UNIX操作系统,计算机信息安全移动通信,卫星通信,计算机系统维护技术

基础方面:(应该无需解释啦)
⒈ 高等数学
⒉ 线性代数
⒊ 复变函数与积分变换
⒊ 概率统计

硬件方面:(最终应该达到可以看懂并分析电路图;可以设计专用计算机系统的程度)
⒈ 电路分析基础 一切电子方向的基础
⒉ 模拟电子技术基础 一切电子方向的基础(开始分化方向)
⒊ 数字电子技术基础 数字电子(计算机)专业的基础
⒋ 计算机组成原理 抽象的数字电子的“可以用来计算的机器”的大原理
⒌ 微机原理及接口技术 基于8086的PC微型计算机系统的原理
⒌ IBM PC汇编语言程序设计 8086CPU指令系统程序设计
⒌ 计算机系统与结构 抽象的数字电子计算机系统(非单指计算机)的原理
⒌ 单片机及接口技术 单芯片计算机系统的基本原理
⒍ (计算机)信号与系统 从数字电路角度理解的计算机系统的接口与通讯

软件方面:(最终应该达到可以阅读并分析程序(不单指源码);可以设计计算机程序系统)
⒈ 离散数学
⒈ C语言程序设计 或 C++面向对象程序设计 或 Pascall语言程序设计
⒉ 数据结构 计算机中数据的组织与管理方式(启发式,非结论式)
⒊ 计算方法 计算机数值计算提高计算精度的方法
⒋ 操作系统 计算机系统基础管理软件的组成与实现技术
⒌ 编译原理 从源码到可执行代码的翻译过程快速有效的实现方法
⒍ 数据库系统概论 计算机中大批量数据的管理与检索方法
7 SQL Server数据库 一个具体的数据库系统的应用
8 软件工程 从工程管理的角度来管理“软件制造业”的方法
9 汇编语言

其它方向:
(电子)信号与系统
通信原理
计算机网络
TCP/IP技术
分布式应用原理
图形学
多媒体技术基础

很多朋友可能跟我一样,想学习计算机专业知识,又没机会接受正规的大学计算机教育。在此我作为过来人跟大家谈谈自己自学的感受。

★确立学习方向

计算机专业人才的培养目标有很多,就大学计算机专业的设置来看,大致可以概括为以下几个方面:

一、计算机软件与理论

本专业主要培养具有较强理论基础和设计、开发软件能力的软件人才,以满足软件开发、技术管理、科学研究和高等教育等多层次的社会需要。

二、计算机应用技术

本专业主要培养计算机应用技术领域的各类开发、研究、应用人才。

毕业生适合的工作有:高等院校计算机科学与技术的教师和研究人员、中小型控制系统的设计实施人员、大型控制系统的应用人员、企业级MIS/ERP建设人员、基于Internet/Intranet的多媒体应用程序开发人员、数字通讯领域各类应用人员、大中型企业及涉外企业IT部门的工作人员。

三、计算机系统(体系)结构

本专业以并行处理、容错计算等为主要研究方向,所开设的课程反映当前国内外计算机系统结构学科的发展水平。培养学生的计算机软硬件基础,以及熟练的以计算机为手段独立研究与设计计算机系统的能力和计算机应用、软件开发能力。

★如何挑选教材

好的教材对于自学者来说是至关重要的,因此下面我们重点介绍一下适合自学用的计算机专业教材。

一、数学

数学是计算机专业的基础,学好数学是学好计算机专业的关键。高等数学课程主要学习微积分、空间解析几何和微分方程,一般高校通用的教材是同济大学编的《高等数学》,目前已经有了第五版,也可以使用自考教材——西安交通大学陆庆乐编的《高等数学》,可以买一些配套的辅导书和习题解答。

还有两门重要的数学课程是《线性代数》和《概率统计》。可以分别采用高等教育出版社出版、同济大学编写的《线性代数》和浙江大学编写的《概率统计》。注意:自学一定要多做习题,而且最好一门课有一本习题解答和辅导书。

除了上面数学基础课外,在计算机专业中举足轻重的就是《离散数学》,这门课要多花点力气来学。可以采用左孝凌教授等编的《离散数学》,上海科学技术文献出版社。也可以用北大、清华的教材,还可以参考左教授编的自学教材,经济科学出版社。

其他课程还有《复编函数》、《计算方法》等,有余力的朋友可以选学。

二、专业基础课

1.《程序设计》:学习内容一般为C和C++。C语言可以采用谭浩强教授的《C程序设计》,内容比较浅显,C++方面的书推荐钱能编写的《C++程序设计》,清华大学出版社。

2.《数据结构》:这门课程比较难,可以采用严蔚敏教授编写的《数据结构(C语言版)》,有配套习题册。好好做题,有时间多编几个大的程序。

3.《模拟电路》和《数字电路》:这是难度较高的两门课程,选用自考教材相对来说容易些,也可以参考清华大学出版社出版的相关教材。

三、专业课

1.《计算机组成原理》:推荐白中英主编的《计算机组成原理》(第三版),科学出版社;黄爱英主编的《计算机组成原理》(第三版),清华大学出版社。

2.《操作系统》:汤子赢编写的《计算机操作系统》(第三版),西安电子科技大学出版社。还可以参考高教司司长张尧学教授编写的教材,清华大学出版社。

3.《汇编语言》:可以用清华大学出版社出版的教材,也可以用自考教材。

4.《数据库原理》:人民大学教授王珊编的《数据库系统概论》(第三版),高等教育出版社,复旦大学施伯乐老师编写的教材也不错。

5.《编译原理》:国防科技大学陈火旺院士编写的教材十分不错,最新版本是2000年出的,国防工业出版社。

四、选修课

包括计算机网络与通讯、软件工程、图形学、人工智能、系统结构、图形学等。此类课程的教材可选用全国高等教育自学考试指定教材,或参考各高校所采用的计算机专科和本科教材及配套辅导书。英文基础好的朋友可以用国外着名大学的影印版教材。

需要提醒大家的是,除了教材,网上有许多相关课堂录像和课件,有条件的朋友要充分利用。

我自己通过上述课程的学习和实践,已经考完了计算机本科自学考试的大部分课程,并已通过计算机四级考试,下半年还准备参加高级程序员考试。希望我的经验对大家能有所帮助。

总结一下,没学过的课程大概有:

1.*离散数学
2.*计算机组成原理,*计算机系统结构,嵌入式系统设计,编译原理,*Unix系统
3.*Internet与web编程,Cisio/Solaris网络体系设计与实现,*TCP/IP技术
4.综合布线系统,信号与系统,数字信号处理,单片机及接口技术,分布式应用原理
5.*IT项目管理
6.多媒体

*号的一定会看,其他的课可能会看.除了以上的,其他基本都在本科学过.需要进一步加强的有:

1.汇编语言,操作系统,微机原理
2.数据库,计算机网络,软件工程.

J. 大学数学(计算机专业)

计算机科学与技术学习反思录
计算机理论的一个核心问题--从数学谈起:
记得当年大一入学,每周六课时高等数学,天天作业不断(那时是六日工作制)。颇有些同学惊呼走错了门:咱们这到底念的是什么系?不错,你没走错门,这就是计算机科学与技术系。我国计算机科学系里的传统是培养做学术研究,尤其是理论研究的人(方向不见得有问题,但是做得不是那么尽如人意)。而计算机的理论研究,说到底了,如网络安全,图形图像学,视频音频处理,哪个方向都与数学有着很大的关系,虽然也许是正统数学家眼里非主流的数学。这里我还想阐明我的一个观点:我们都知道,数学是从实际生活当中抽象出来的理论,人们之所以要将实际抽象成理论,目的就在于想用抽象出来的理论去更好的指导实践,有些数学研究工作者喜欢用一些现存的理论知识去推导若干条推论,殊不知其一:问题考虑不全很可能是个错误的推论,其二:他的推论在现实生活中找不到原型,不能指导实践。严格的说,我并不是一个理想主义者,政治课上学的理论联系实际一直是指导我学习科学文化知识的航标(至少我认为搞计算机科学与技术的应当本着这个方向)。
其实我们计算机系学数学光学高等数学是不够的(典型的工科院校一般都开的是高等数学),我们应该像数学系一样学一下数学分析(清华计算机系开的好像就是数学分析),数学分析这门科学,咱们学计算机的人对它有很复杂的感情。在于它是偏向于证明型的数学课程,这对我们培养良好的分析能力极有帮助。我的软件工程学导师北工大数理学院的王仪华先生就曾经教导过我们,数学系的学生到软件企业中大多作软件设计与分析工作,而计算机系的学生做程序员的居多,原因就在于数学系的学生分析推理能力,从所受训练的角度上要远远在我们之上。当年出现的怪现象是:计算机系学生的高中数学基础在全校数一数二(希望没有冒犯其它系的同学),教学课时数也仅次于数学系,但学完之后的效果却不尽如人意。难道都是学生不努力吗,我看未见得,方向错了也说不一定,其中原因何在,发人深思。
我个人的浅见是:计算机系的学生,对数学的要求固然跟数学系不同,跟物理类差别则更大。通常非数学专业的所谓“高等数学”,无非是把数学分析中较困难的理论部分删去,强调套用公式计算而已。而对计算机系来说,数学分析里用处最大的恰恰是被删去的理论部分。说得难听一点,对计算机系学生而言,追求算来算去的所谓“工程数学”已经彻底地走进了误区。记上一堆曲面积分的公式,难道就能算懂了数学?那倒不如现用现查,何必费事记呢?再不然直接用Mathematics或是Matalab好了。
我在系里最爱做的事情就是给学弟学妹们推荐参考书。中文的数学分析书,一般都认为以北大张筑生老师的“数学分析新讲”为最好。万一你的数学实在太好,那就去看菲赫金哥尔茨的“微积分学教程”好了--但我认为没什么必要,毕竟你不想转到数学系去。吉米多维奇的“数学分析习题集”也基本上是计算型的东东。书的名气很大,倒不见得适合我们,还是那句话,重要的是数学思想的建立,生活在信息社会里我们求的是高效,计算这玩意还是留给计算机吧。不过现在多用的似乎是复旦大学的《数学分析》也是很好的教材。
中国的所谓高等代数,就等于线性代数加上一点多项式理论。我以为这有好的一面,因为可以让学生较早感觉到代数是一种结构,而非一堆矩阵翻来覆去。这里不得不提南京大学林成森,盛松柏两位老师编的“高等代数”,感觉相当舒服。此书相当全面地包含了关于多项式和线性代数的基本初等结果,同时还提供了一些有用的又比较深刻的内容,如Sturm序列,Shermon-Morrison公式,广义逆矩阵等等。可以说,作为本科生如能吃透此书,就可以算高手。国内较好的高等代数教材还有清华计算机系用的那本,清华出版社出版,书店里多多,一看就知道。从抽象代数的观点来看,高等代数里的结果不过是代数系统性质的一些例子而已。莫宗坚先生的《代数学》里,对此进行了深刻的讨论。然而莫先生的书实在深得很,作为本科生恐怕难以接受,不妨等到自己以后成熟了一些再读。
正如上面所论述的,计算机系的学生学习高等数学:知其然更要知其所以然。你学习的目的应该是:将抽象的理论再应用于实践,不但要掌握题目的解题方法,更要掌握解题思想,对于定理的学习:不是简单的应用,而是掌握证明过程即掌握定理的由来,训练自己的推理能力。只有这样才达到了学习这门科学的目的,同时也缩小了我们与数学系的同学之间思维上的差距。
概率论与数理统计这门课很重要,可惜大多数院校讲授这门课都会少些东西。少了的东西现在看至少有随机过程。到毕业还没有听说过Markov过程,此乃计算机系学生的耻辱。没有随机过程,你怎么分析网络和分布式系统?怎么设计随机化算法和协议?据说清华计算机系开有“随机数学”,早就是必修课。另外,离散概率论对计算机系学生来说有特殊的重要性。而我们国家工程数学讲的都是连续概率。现在,美国已经有些学校开设了单纯的“离散概率论”课程,干脆把连续概率删去,把离散概率讲深些。我们不一定要这么做,但应该更加强调离散概率是没有疑问的。这个工作我看还是尽早的做为好。
计算方法学(有些学校也称为数学分析学)是最后一门由数理学院给我们开的课。一般学生对这门课的重视程度有限,以为没什么用。不就是照套公式嘛!其实,做图形图像可离不开它,密码学搞深了也离不开它。而且,在很多科学工程中的应用计算,都以数值的为主。这门课有两个极端的讲法:一个是古典的“数值分析”,完全讲数学原理和算法;另一个是现在日趋流行的“科学与工程计算”,干脆教学生用软件包编程。我个人认为,计算机系的学生一定要认识清楚我们计算机系的学生为什么要学这门课,我是很偏向于学好理论后用计算机实现的,最好使用C语言或C++编程实现。向这个方向努力的书籍还是挺多的,这里推荐大家高等教育出版社(CHEP)和施普林格出版社(Springer)联合出版的《计算方法(Computational Methods)》,华中理工大学数学系写的(现华中科技大学),这方面华科大做的工作在国内应算是比较多的,而个人认为以这本最好,至少程序设计方面涉及了:任意数学函数的求值,方程求根,线性方程组求解,插值方法,数值积分,场微分方程数值求解。李庆扬的那本则理论性过强,与实际应用结合得不太紧。
每个学校本系里都会开一门离散数学,涉及集合论,图论,和抽象代数,数理逻辑。不过,这么多内容挤在离散数学一门课里,是否时间太紧了点?另外,计算机系学生不懂组合和数论,也是巨大的缺陷。要做理论,不懂组合或者数论吃亏可就太大了。从理想的状态来看,最好分开六门课:集合,逻辑,图论,组合,代数,数论。这个当然不现实,因为没那么多课时。也许将来可以开三门课:集合与逻辑,图论与组合,代数与数论。(这方面我们学校已经着手开始做了)不管课怎么开,学生总一样要学。下面分别谈谈上面的三组内容。
古典集合论,北师大出过一本《基础集合论》不错。
数理逻辑,中科院软件所陆钟万教授的《面向计算机科学的数理逻辑》就不错。现在可以找到陆钟万教授的讲课录像,http://www.cas.ac.cn/html/Dir/2001/11/06/3391.htm自己去看看吧。总的来说,学集合/逻辑起手不难,普通高中生都能看懂。但越往后越感觉深不可测。
学完以上各书之后,如果你还有精力兴趣进一步深究,那么可以试一下GTM系列中的《Introction to Axiomatic Set Theory》和《A Course of Mathematical Logic》。这两本都有世界图书出版社的引进版。你如果能搞定这两本,可以说在逻辑方面真正入了门,也就不用再浪费时间听我瞎侃了。
据说全中国最多只有三十个人懂图论。此言不虚。图论这东东,技巧性太强,几乎每个问题都有一个独特的方法,让人头痛。不过这也正是它魅力所在:只要你有创造性,它就能给你成就感。我的导师说,图论里面随便揪一块东西就可以写篇论文。大家可以体会里面内容之深广了吧!国内的图论书中,王树禾老师的“图论及其算法”非常成功。一方面,其内容在国内教材里算非常全面的。另一方面,其对算法的强调非常适合计算机系(本来就是科大计算机系教材)。有了这本书为主,再参考几本翻译的,如Bondy & Murty的《图论及其应用》,人民邮电出版社翻译的《图论和电路网络》等等,就马马虎虎,对本科生足够了。再进一步,世界图书引进有GTM系列的"Modern Graph Theory"。此书确实经典!国内好象还有一家出版了个翻译版。不过,学到这个层次,还是读原版好。搞定这本书,也标志着图论入了门。 外版的书好就好在这里,最新的科技成果里面都有论述,别的先不说,至少是“紧跟时代的理论知识”。
组合感觉没有太适合的国产书。还是读Graham和Knuth等人合着的经典“具体数学”吧,西安电子科技大学出版社有翻译版。
抽象代数,国内经典为莫宗坚先生的“代数学”。此书是北大数学系教材,深得好评。然而对本科生来说,此书未免太深。可以先学习一些其它的教材,然后再回头来看“代数学”。国际上的经典可就多了,GTM系列里就有一大堆。推荐一本谈不上经典,但却最简单的,最容易学的:http://www.math.miami.e/~ec/book/这本“Introction to Linear and Abstract Algebra"非常通俗易懂,而且把抽象代数和线性代数结合起来,对初学者来说非常理想,我校比较牛的同学都有收藏。
数论方面,国内有经典而且以困难着称的”初等数论“(潘氏兄弟着,北大版)。再追溯一点,还有更加经典(可以算世界级)并且更加困难的”数论导引“(华罗庚先生的名着,科学版,九章书店重印,繁体的看起来可能比较困难)。把基础的几章搞定一个大概,对本科生来讲足够了。但这只是初等数论。本科毕业后要学计算数论,你必须看英文的书,如Bach的"Introction to Algorithmic Number Theory"。
计算机科学理论的根本,在于算法。现在很多系里给本科生开设算法设计与分析,确实非常正确。环顾西方世界,大约没有一个三流以上计算机系不把算法作为必修的。算法教材目前公认以Corman等着的"Introction to Algorithms"为最优。对入门而言,这一本已经足够,不需要再参考其它书。
再说说形式语言与自动机。我看过北邮的教材,应该说写的还清楚。但是,有一点要强调:形式语言和自动机的作用主要在作为计算模型,而不是用来做编译。事实上,编译前端已经是死领域,没有任何open problems,北科大的班晓娟博士也曾经说过,编译的技术已相当成熟。如果为了这个,我们完全没必要去学形式语言--用用yacc什么的就完了。北邮的那本在国内还算比较好,但是在深度上,在跟可计算性的联系上都有较大的局限,现代感也不足。所以建议有兴趣的同学去读英文书,不过国内似乎没引进这方面的教材。可以去互动出版网上看一看。入门以后,把形式语言与自动机中定义的模型,和数理逻辑中用递归函数定义的模型比较一番,可以说非常有趣。现在才知道,什么叫“宫室之美,百官之富”!
计算机科学和数学的关系有点奇怪。二三十年以前,计算机科学基本上还是数学的一个分支。而现在,计算机科学拥有广泛的研究领域和众多的研究人员,在很多方面反过来推动数学发展,从某种意义上可以说是孩子长得比妈妈还高了。但不管怎么样,这个孩子身上始终流着母亲的血液。这血液是the mathematical underpinning of computer science(计算机科学的数学基础),也就是理论计算机科学。原来在东方大学城图书馆中曾经看过一本七十年代的译本(书皮都没了,可我就爱关注这种书),大概就叫《计算机数学》。那本书若是放在当时来讲决是一本好书,但现在看来,涵盖的范围还算广,深度则差了许多,不过推荐大一的学生倒可以看一看,至少可以使你的计算数学入入门。
最常和理论计算机科学放在一起的一个词是什么?答:离散数学。这两者的关系是如此密切,以至于它们在不少场合下成为同义词。(这一点在前面的那本书中也有体现)传统上,数学是以分析为中心的。数学系的同学要学习三四个学期的数学分析,然后是复变函数,实变函数,泛函数等等。实变和泛函被很多人认为是现代数学的入门。在物理,化学,工程上应用的,也以分析为主。
随着计算机科学的出现,一些以前不太受到重视的数学分支突然重要起来。人们发现,这些分支处理的数学对象与传统的分析有明显的区别:分析研究的问题解决方案是连续的,因而微分,积分成为基本的运算;而这些分支研究的对象是离散的,因而很少有机会进行此类的计算。人们从而称这些分支为“离散数学”。“离散数学”的名字越来越响亮,最后导致以分析为中心的传统数学分支被相对称为“连续数学”。
离散数学经过几十年发展,基本上稳定下来。一般认为,离散数学包含以下学科 :
1) 集合论,数理逻辑与元数学。这是整个数学的基础,也是计算机科学的基础。
2) 图论,算法图论;组合数学,组合算法。计算机科学,尤其是理论计算机科学的核心是
算法,而大量的算法建立在图和组合的基础上。
3) 抽象代数。代数是无所不在的,本来在数学中就非常重要。在计算机科学中,人们惊讶地发现代数竟然有如此之多的应用。
但是,理论计算机科学仅仅就是在数学的上面加上“离散”的帽子这么简单吗?一直到大约十几年前,终于有一位大师告诉我们:不是。D.E.Knuth(他有多伟大,我想不用我废话了)在Stanford开设了一门全新的课程Concrete Mathematics。 Concrete这个词在这里有两层含义:
首先:对abstract而言。Knuth认为,传统数学研究的对象过于抽象,导致对具体的问题关心不够。他抱怨说,在研究中他需要的数学往往并不存在,所以他只能自己去创造一些数学。为了直接面向应用的需要,他要提倡“具体”的数学。在这里我做一点简单的解释。例如在集合论中,数学家关心的都是最根本的问题--公理系统的各种性质之类。而一些具体集合的性质,各种常见集合,关系,映射都是什么样的,数学家觉得并不重要。然而,在计算机科学中应用的,恰恰就是这些具体的东西。Knuth能够首先看到这一点,不愧为当世计算机第一人。其次,Concrete是Continuous(连续)加上discrete(离散)。不管连续数学还是离散数学,都是有用的数学!
理论与实际的结合--计算机科学研究的范畴
前面主要是从数学角度来看的。从计算机角度来看,理论计算机科学目前主要的研究领域包括:可计算性理论,算法设计与复杂性分析,密码学与信息安全,分布式计算理论,并行计算理论,网络理论,生物信息计算,计算几何学,程序语言理论等等。这些领域互相交叉,而且新的课题在不断提出,所以很难理出一个头绪来。想搞搞这方面的工作,推荐看中国计算机学会的一系列书籍,至少代表了我国的权威。下面随便举一些例子。
由于应用需求的推动,密码学现在成为研究的热点。密码学建立在数论(尤其是计算数论),代数,信息论,概率论和随机过程的基础上,有时也用到图论和组合学等。很多人以为密码学就是加密解密,而加密就是用一个函数把数据打乱。这样的理解太浅显了。

现代密码学至少包含以下层次的内容:

第一,密码学的基础。例如,分解一个大数真的很困难吗?能否有一般的工具证明协议正确?

第二,密码学的基本课题。例如,比以前更好的单向函数,签名协议等。

第三,密码学的高级问题。例如,零知识证明的长度,秘密分享的方法。

第四,密码学的新应用。例如,数字现金,叛徒追踪等。

在分布式系统中,也有很多重要的理论问题。例如,进程之间的同步,互斥协议。一个经典的结果是:在通信信道不可靠时,没有确定型算法能实现进程间协同。所以,改进TCP三次握手几乎没有意义。例如时序问题。常用的一种序是因果序,但因果序直到不久前才有一个理论上的结果....例如,死锁没有实用的方法能完美地对付。例如,......操作系统研究过就自己去举吧!

如果计算机只有理论,那么它不过是数学的一个分支,而不成为一门独立的科学。事实上,在理论之外,计算机科学还有更广阔的天空。

我一直认为,4年根本不够学习计算机的基础知识,因为面太宽了,8年,应该差不多了......

这方面我想先说说我们系在各校普遍开设的《计算机基础》。在高等学校开设《计算机基础课程》是我国高教司明文规定的各专业必修课程要求。主要内容是使学生初步掌握计算机的发展历史,学会简单的使用操作系统,文字处理,表格处理功能和初步的网络应用功能。但是在计算机科学系教授此门课程的目标决不能与此一致。在计算机系课程中目标应是:让学生较为全面的了解计算机学科的发展,清晰的把握计算机学科研究的方向,发展的前沿即每一个课程在整个学科体系中所处的地位。搞清各学科的学习目的,学习内容,应用领域。使学生在学科学习初期就对整个学科有一个整体的认识,以做到在今后的学习中清楚要学什么,怎么学。计算机基本应用技能的位置应当放在第二位或更靠后,因为这一点对于本系的学生应当有这个摸索能力。这一点很重要。推荐给大家一本书:机械工业出版社的《计算机文化》(New Perspective of Computer Science),看了这本书我才深刻的体会到自己还是个计算机科学初学者,才比较透彻的了解了什么是计算机科学。

一个一流计算机系的优秀学生决不该仅仅是一个编程高手,但他一定首先是一个编程高手。我上大学的时候,第一门专业课是C语言程序设计,念计算机的人从某种角度讲相当一部分人是靠写程序吃饭的。关于第一程序设计语言该用哪一种。我个人认为,用哪种语言属于末节,关键在养成良好的编程习惯。当年老师对我们说,打好基础后学一门新语言只要一个星期。现在我觉得根本不用一个星期,前提是先把基础打好。不要再犹豫了,学了再说,等你抉择好了,别人已经会了几门语言了。

汇编语言和微机原理是两门特烦人的课。你的数学/理论基础再好,也占不到什么便宜。这两门课之间的次序也好比先有鸡还是先有蛋,无论你先学哪门,都会牵扯另一门课里的东西。所以,只能静下来慢慢琢磨。这就是典型的工程课,不需要太多的聪明和顿悟,却需要水滴石穿的渐悟。有关这两门课的书,计算机书店里不难找到。弄几本最新的,对照着看吧。组成原理推荐《计算机组成与结构》清华大学王爱英教授写的。汇编语言大家拿8086/8088入个门,之后一定要学80x86汇编语言。实用价值大,不落后,结构又好,写写高效病毒,高级语言里嵌一点汇编,进行底层开发,总也离不开他,推荐清华大学沈美明的《IBM-PC汇编语言程序设计》。有些人说不想了解计算机体系结构,也不想制造计算机,所以诸如计算机原理,汇编语言,接口之类的课觉得没必要学,这样合理吗?显然不合理,这些东西迟早得掌握,肯定得接触,而且,这是计算机专业与其他专业学生相比的少有的几项优势。做项目的时候,了解这些是非常重要的,不可能说,仅仅为了技术而技术,只懂技术的人最多做一个编码工人,而永远不可能全面地了解整个系统的设计,而编码工人是越老越不值钱。关于组成原理还有个讲授的问题,在我学这门课程时老师讲授时把CPU工作原理誉微程序设计这一块略掉了,理由是我们国家搞CPU技术不如别的国家,搞了这么长时间好不容易出了个龙芯比Intel的还差个十万八千里,所以建议我们不要学了。我看这在各校也未见得不是个问题吧!若真是如他所说,那中国的计算机科学哪个方向都可以停了,软硬件,应用,有几项搞得过美国,搞不过别人就不搞了,那我们坐在这里干什么?教学的观念需要转变的。

模拟电路这东东,如今不仅计算机系学生搞不定,电子系学生也多半害怕。如果你真想软硬件通吃,那么建议你先看看邱关源的“电路原理”,也许此后再看模拟电路底气会足些。教材:康华光的“电子技术基础”(高等教育出版社)还是不错的(我校电子系在用)。有兴趣也可以参考童诗白的书。

数字电路比模拟电路要好懂得多。清华大学阎石的书算一本好教材,遗憾的一点是集成电路讲少了些。真有兴趣,看一看大规模数字系统设计吧(北航那本用的还比较多)。

计算机系统结构该怎么教,国际上还在争论。国内能找到的较好教材为Stallings的"Computer Organization and Architecture:Designing for Performance"(清华影印
本)。国际上最流行的则是“Computer architecture: aquantitative approach", by Patterson & Hennessy。

操作系统可以随便选用《操作系统的内核设计与实现》和《现代操作系统》两书之一。这两部都可以算经典,唯一缺点就是理论上不够严格。不过这领域属于Hardcore System,所以在理论上马虎一点也情有可原。想看理论方面的就推荐清华大学出版社《操作系统》吧,高教司司长张尧学写的,我们教材用的是那本。 另外推荐一本《Windows操作系统原理》机械工业出版社的,这本书是我国操作系统专家在微软零距离考察半年,写作历时一年多写成的,教操作系统的专家除了清华大学的张尧学(现高教司司长)几乎所有人都参加了。Bill Gates亲自写序。里面不但结合windows2000,xp详述操作系统的内核,而且后面讲了一些windows编程基础,有外版书的味道,而且上面一些内容可以说在国内外只有那本书才有对windows内核细致入微的介绍,

如果先把形式语言学好了,则编译原理中的前端我看只要学四个算法:最容易实现的递归下降;最好的自顶向下算法LL(k);最好的自底向上算法LR(k);LR(1)的简化SLR(也许还有另一简化LALR)。后端完全属于工程性质,自然又是another story。

推荐教材:Kenneth C.Louden写的“Compiler Construction Principles and Practice”即是《编译原理及实践》(机械工业出版社的译本)

学数据库要提醒大家的是,会用VFP,VB, Power builder不等于懂数据库。(这世界上自以为懂数据库的人太多了!)数据库设计既是科学又是艺术,数据库实现则是典型的工程。所以从某种意义上讲,数据库是最典型的一门计算机课程--理工结合,互相渗透。另外推荐大家学完软件工程学后再翻过来看看数据库技术,又会是一番新感觉。推荐教材:Abraham Silberschatz等着的 "Database System Concepts".作为知识的完整性,还推荐大家看一看机械工业出版社的《数据仓库》译本。

计算机网络的标准教材还是来自Tanenbaum的《Computer Networks》(清华大学有译本)。还有就是推荐谢希仁的《计算机网络教程》(人民邮电出版社)问题讲得比较清楚,参考文献也比较权威。不过,网络也属于Hardcore System,所以光看书是不够的。建议多读RFC,http://www.ietf.org/rfc.htm里可以按编号下载RFC文档。从IP的读起。等到能掌握10种左右常用协议,就没有几个人敢小看你了。再做的工作我看放在网络设计上就比较好了。

数据结构的重要性就不言而喻了,学完数据结构你会对你的编程思想进行一番革命性的洗礼,会对如何建立一个合理高效的算法有一个清楚的认识。对于算法的建立我想大家应当注意以下几点:

当遇到一个算法问题时,首先要知道自己以前有没有处理过这种问题.如果见过,那么你一般会顺利地做出来;如果没见过,那么考虑以下问题:

1. 问题是否是建立在某种已知的熟悉的数据结构(例如,二叉树)上?如果不是,则要自己设计数据结构。

2. 问题所要求编写的算法属于以下哪种类型?(建立数据结构,修改数据结构,遍历,查找,排序...)

3. 分析问题所要求编写的算法的数学性质.是否具备递归特征?(对于递归程序设计,只要设计出合理的参数表以及递归结束的条件,则基本上大功告成.)

4. 继续分析问题的数学本质.根据你以前的编程经验,设想一种可能是可行的解决办法,并证明这种解决办法的正确性.如果题目对算法有时空方面的要求,证明你的设想满足其要求.一般的,时间效率和空间效率难以兼得.有时必须通过建立辅助存储的方法来节省时间.

5. 通过一段时间的分析,你对解决这个问题已经有了自己的一些思路.或者说,你已经可以用自然语言把你的算法简单描述出来.继续验证其正确性,努力发现其中的错误并找出解决办法.在必要的时候(发现了无法解决的矛盾),推翻自己的思路,从头开始构思.

6. 确认你的思路可行以后,开始编写程序.在编写代码的过程中,尽可能把各种问题考虑得详细,周密.程序应该具有良好的结构,并且在关键的地方配有注释.

7. 举一个例子,然后在纸上用笔执行你的程序,进一步验证其正确性.当遇到与你的设想不符的情况时,分析问题产生的原因是编程方面的问题还是算法思想本身有问题.

8. 如果程序通过了上述正确性验证,那么在将其进一步优化或简化。

9. 撰写思路分析,注释.

对于具体的算法思路,只能靠你自己通过自己的知识和经验来加以获得,没有什么特定的规律(否则程序员全部可以下岗了,用机器自动生成代码就可以了).要有丰富的想象力,就是说当一条路走不通时,不要钻牛角尖,要敢于推翻自己的想法.我也只不过是初学者,说出上面的一些经验,仅供大家参考和讨论。

关于人工智能,我觉得的也是非常值得大家仔细研究的,虽然不能算是刚刚兴起的学科了,但是绝对是非常有发展前途的一门学科。我国人工智能创始人之一,北京科技大学涂序彦教授(这老先生是我的导师李小坚博士的导师)对人工智能这样定义:人工智能是模

阅读全文

与编译原理及实践影印版相关的资料

热点内容
java解析网页 浏览:836
2020广西艺术分算法 浏览:101
手机解压文件大不能解压 浏览:99
android获取当前系统时间 浏览:324
苹果电脑安卓版怎么还原 浏览:612
javaftpjar 浏览:324
phpmysql自增id 浏览:920
仿抖音系统源码建站 浏览:746
云服务器搭建sqlserver2008 浏览:950
如何查看服务器安全组 浏览:429
云服务器会保存app记录吗 浏览:716
程序员身份证年龄 浏览:943
appstore如何注册一个美国帐号 浏览:321
春笋公式源码 浏览:497
蔚来app如何反馈 浏览:51
基础生态学pdf 浏览:957
cp2012单片机 浏览:990
张晓谦程序员 浏览:115
取消应用加密忘记密码 浏览:998
心熵pdf 浏览:809