1. 学习这些计算机基础科目要学习什么数学
一、数学
数学是计算机专业的基础,学好数学是学好计算机专业的关键。高等数学课程主要学习微积分、空间解析几何和微分方程,一般高校通用的教材是同济大学编的《高等数学》,目前已经有了第五版,也可以使用自考教材——西安交通大学陆庆乐编的《高等数学》,可以买一些配套的辅导书和习题解答。
还有两门重要的数学课程是《线性代数》和《概率统计》。可以分别采用高等教育出版社出版、同济大学编写的《线性代数》和浙江大学编写的《概率统计》。注意:自学一定要多做习题,而且最好一门课有一本习题解答和辅导书。
除了上面数学基础课外,在计算机专业中举足轻重的就是《离散数学》,这门课要多花点力气来学。可以采用左孝凌教授等编的《离散数学》,上海科学技术文献出版社。也可以用北大、清华的教材,还可以参考左教授编的自学教材,经济科学出版社。
其他课程还有《复编函数》、《计算方法》等,有余力的朋友可以选学。
二、专业基础课
1.《程序设计》:学习内容一般为C和C++。C语言可以采用谭浩强教授的《C程序设计》,内容比较浅显,C++方面的书推荐钱能编写的《C++程序设计》,清华大学出版社。
2.《数据结构》:这门课程比较难,可以采用严蔚敏教授编写的《数据结构(C语言版)》,有配套习题册。好好做题,有时间多编几个大的程序。
3.《模拟电路》和《数字电路》:这是难度较高的两门课程,选用自考教材相对来说容易些,也可以参考清华大学出版社出版的相关教材。
三、专业课
1.《计算机组成原理》:推荐白中英主编的《计算机组成原理》(第三版),科学出版社;黄爱英主编的《计算机组成原理》(第三版),清华大学出版社。
2.《操作系统》:汤子赢编写的《计算机操作系统》(第三版),西安电子科技大学出版社。还可以参考高教司司长张尧学教授编写的教材,清华大学出版社。
3.《汇编语言》:可以用清华大学出版社出版的教材,也可以用自考教材。
4.《数据库原理》:人民大学教授王珊编的《数据库系统概论》(第三版),高等教育出版社,复旦大学施伯乐老师编写的教材也不错。
5.《编译原理》:国防科技大学陈火旺院士编写的教材十分不错,最新版本是2000年出的,国防工业出版社。
四、选修课
包括计算机网络与通讯、软件工程、图形学、人工智
能、系统结构、图形学等。此类课程的教材可选用全国高等教育自学考试指定教材,或参考各高校所采用的计算机专科和本科教材及配套辅导书。英文基础好的朋友可以用国外着名大学的影印版教材。
我也是学计算机专业的,其最核心的课程是数据结构,这门课程想学好不是很容易,要花大量时间去实践;还有一些重要课程比如:操作系统,C语言,计算机组成原理,汇编语言,数据库,计算机网络,人工智能这些都是专业基础课,还有一些建模课~~~
高中起点计算机本科:
1. 计算机科学与技术专业:C语言程序设计、计算机组成原理、数据结构、操作系统、
微机原理及汇编语言、计算机网络、计算机系统结构、软件工程、面向对象程序设计等。
2. 计算机软件专业:面向对象程序设计、计算机组成原理、操作系统、数据结构、计算
机网络、软件工程、编译原理、分布式系统、软件项目管理、Oracle数据库系统等。
3. 电子商务专业:管理学原理、电子商务、物流管理、计算机网络、供应链管理、电子商务平台及核心技术、国际商务管理、电子商务案例分析、商务网站建设等。
专科起点计算机本科:
1. 计算机科学与技术专业:计算机组成原理、数据结构、面向对象程序设计、操作系统、计算机系统结构、软件工程、数据库原理及应用、计算机网络、嵌入式系统与结构等。
2. 计算机软件专业:操作系统、数据结构、面向对象程序设计、计算机原理及系统结构、数据库系统、JAVA程序设计、计算机网络、软件工程、中间件技术、信息系统集成等。
3. 电子商务专业:管理学原理、数据库原理及应用、管理信息系统、金融学、电子商务平台及核心技术、物流管理、计算机网络、人力资源管理、供应链管理等。
开设的主要课程有:高等数学、线性代数、概率与数理统计、普通物理、 离散数学、计算机科学导论、C语言及程序设计、汇编语言、、数字电路与逻辑设计、计算机组成原理、算法与数据结构、操作系统原理、软件工程、计算机网络与通信、计算机专业英语、编译原理、数据库系统原理、面向对象编程技术(如:VB)、CAD技术、图形图象处理技术、软件开发新环境、接口与通讯、人工智能及应用、信息系统工程、企业会计、电子数据交换(EDI)、计算机维修技术、计算机网络工程、计算机系统维护技术、多媒体技术及其应用、算法分析与设计、面向对象技术、、计算机图形学、决策支持系统、网络应用软件设计、网络操作系统、大型数据库系统、单片机应用、计算方法、软件高级工资格认证、高级程
序员水平认证、马克思主义哲学原理、毛泽东思想概论、马列政治经济学原理、邓小平理论、思想道德修养、法律基础、大学语文、大学英语、体育等。
《计算机操作系统》课程简介
本课程是计算机专业的专业课程之一, 着重介绍计算机系统的一个重要系统软件——操作系统。本课程详细阐述了操作系统如何管理计算机系统中的软件和硬件资源、合理组织计算机系统的工作流程、提供用户与计算机系统之间的软件接口等机制。
授课内容包括操作系统的基本内容和概念、进程的概念以及通信和调度的方法、操作系统中各种资源的管理。最后通过实例——Linux操作系统,介绍Linux系统中的存储、设备、文件和进程的管理。
本课程的前导课程为:C语言程序设计。授课对象为:网络与通信专业本科生。
《应用数据库技术》课程简介
本课程为本科计算机与通信专业的专业课程。本课程详细阐述和研究了数据库系统尤其是关系数据库系统的基本概念和基本原理、介绍了数据库国际标准语言——SQL语言以及数据库设计的基本技术和方法,旨在指导数据库应用系统的开发和数据库技术的广泛应用。
授课内容包括:数据库的基本原理和数据的物理组织与存取方法;关系数据库系统的基本概念、关系代数理论、查询语言、规范化理论、查询优化;数据库保护技术;数据库设计的基本技术和方法以及几种现今流行的数据库应用。
本课程的前导课程为:C语言程序设计、数据结构。授课对象为:网络与通信专业本科生。
《数据结构》课程简介
数据结构是计算机专业课程的主要基础课程之一。它旨在使学生了解和掌握数据对象的特性,学会数据组织的方法和把现实世界中的问题在计算机内部的表示方法,以及培养基本的、良好的程序设计技能。本课程详细阐述和研究了各种数据元素之间存在的关系(数据的逻辑结构)、在计算机中如何表示这种关系的存储结构以及存储结构的描述方法、数据的不同的逻辑结构在各种存储结构上实现的基本运算:查找、插入和删除的算法,从时间和空间复杂度的角度综合比较各种存储结构的不同特点和适用场合。
本课程的基本授课内容包括线性表、栈和队列、串、数组和广义表、二叉树和树、图、动态存储管理、查找、排序和文件等以及实现这些数据组织的算法等。
2. 如果要把计算机学到很牛要掌握那些数学知识
数学在计算机图形学中的应用 Greg Turk, August 1997 “学习计算机图形学需要多少的数学?”这 是初学者最经常问的问题。答案取决于你想在计算机图形学领域钻研多深。如果仅仅使用周围唾手可得的图形软件,你不需要知道多少数学知识。如果想学习计算机 图形学的入门知识,我建议你读一读下面所写的前两章(代数,三角学和线性代数)。如果想成为一名图形学的研究者,那么对数学的学习将是活到老,学到老。如 果你并不特别喜欢数学,是否仍有在计算机图形学领域工作的机会?是的,计算机图形学的确有一些方面不需要考虑太多的数学问题。你不应该因为数学成绩不好而 放弃它。不过,如果学习了更多的数学知识,似乎你将在研究课题上有更多的选择余地。对于在计算机图形学中哪些数学才是重要的还没有明确的答案。这领域里不 同的方面要求掌握不同的数学知识,也许兴趣将会决定了你的方向。以下介绍我认为对于计算机图形学有用的数学。别以为想成为一名图形学的研究者就必须精通各 门数学!为了对用于图形学的数学有一个全面的看法,我特地列出了很多方面。但是许多研究者从不需要考虑下面提到的数学。最后,虽然读了这篇文章后,你应该 会对数学在计算机图形学中的应用有所了解,不过这些观点完全是我自己的。也许你应该阅读更多的此类文章,或者至少从其他从事计算机图形学工作的人那里了解 不同的学习重点。现在开始切入正题。代数和三角学对于计算机图形学的初学者来说,高中的代数和三角学可能是最重要的数学。日复一日,我从简单的方程解出一 个或更多的根。我时常还要解决类似求一些几何图形边长的简单三角学问题。代数和三角学是计算机图形学的最基础的知识。那么高中的几何学怎么样呢?可能让人 惊讶,不过在多数计算机图形学里,高中的几何学并不经常被用到。原因是许多学校教的几何学实际上是如何建立数学证明的课程。虽然证明题对提高智力显然是有 效的,但对于计算机图形学来说,那些与几何课有关的定理和证明并不常被用到。如果你毕业于数学相关领域(包括计算机图形学),就会发现虽然你在证明定理, 不过这对开始学习图形学不是必要的。如果精通代数和三角学,就可以开始读一本计算机图形学的入门书了。下一个重要的用于计算机图形学的数学——线性代数,多数此类书籍至少包含了一个对线性代数的简要介绍。推荐的参考书: Computer Graphics: Principles and Practice James Foley, Andries van Dam, Steven Feiner, John Hughes Addison-Wesley [虽然厚重,可是我很喜欢] 线性代数线性代数的思想贯穿于计算机图形学。事实上,只要牵涉到几何数值表示法,就常常抽象出例如x,y,z坐 标之类的数值,我们称之为矢量。图形学自始至终离不开矢量和矩阵。用矢量和矩阵来描述旋转,平移,或者缩放是再好不过了。高中和大学都有线性代数的课程。 只要想在计算机图形学领域工作,就应该打下坚实的线性代数基础。我刚才提到,许多图形学的书都有关于线性代数的简要介绍——足够教给你图形学的第一门课。推荐的参考书: Linear Algebra and Its Applications Gilbert Strang Academic Press 微积分学 微 积分学是高级计算机图形学的重要成分。如果打算研究图形学,我强烈建议你应该对微积分学有初步认识。理由不仅仅是微积分学是一种很有用的工具,还有许多研 究者用微积分学的术语来描述他们的问题和解决办法。另外,在许多重要的数学领域,微积分学被作为进一步学习的前提。学习了基本代数之后,微积分学又是一种 能为你打开多数计算机图形学与后继的数学学习之门的课程。微积分学是我介绍的最后一个中学课程,以下提及的科目几乎全部是大学的课程。 微分几何学微分几何学研究支配光滑曲线,曲面的方程组。如果你要计算出经过某个远离曲面的点并垂直于曲面的矢量(法向矢量)就会用到微分几何学。让一辆汽车以特定速度在曲线上行驶也牵涉到微分几何学。有一种通用的绘制光滑曲面的图形学技术,叫做“凹凸帖图”,这个技术用到了微分几何学。如果要着手于用曲线和曲面来创造形体(在图形学里称之为建模)你至少应该学习微分几何学的基础。推荐的参考书: Elementary Differential Geometry Barrett O'Neill Academic Press 数值方法几乎任何时候,我们在计算机里用近似值代替精确值来表示和操作数值,所以计算过程总是会有误差。而且对于给定的数值问题,常常有多种解决的方法,一些方法会更块,更精确或者对内存的需求更少。数值方法研究的对象包括“计算方法”和“科学计算”等等。这是一个很广阔的领域,而且我将提及的其他几门数学其实是数值方法的一些分支。这些分支包括抽样法理论,矩阵方程组,数值微分方程组和最优化。推荐的参考书: Numerical Recipes in C: The Art of Scientific Computing William Press, Saul Teukolsky, William Vetterling and Brian Flannery Cambridge University Press [这本参考书很有价值可是很少作为教材使用] 抽 样法理论和信号处理在计算机图形学里我们反复使用储存在正规二维数组里的数字集合来表示一些对象,例如图片和曲面。这时,我们就要用抽样法来表示这些对 象。如果要控制这些对象的品质,抽样法理论就变得尤为重要。抽样法应用于图形学的常见例子是当物体被绘制在屏幕上时,它的轮廓呈现锯齿状的边缘。这锯齿状 的边缘(被认为是“混淆”现象)是非常让人分散注意力的,用抽样法中着名的技术例如回旋,傅立叶变换,空间和频率的函数表示就能把这个现象减少到最小。这些思想在图像和音频处理领域是同样重要的。推荐的参考书: The Fourier Transform and Its Applications Ronald N. Bracewell McGraw Hill 矩 阵方程组计算机图形学的许多问题要用到矩阵方程组的数值解法。一些涉及矩阵的问题包括:找出最好的位置与方向以使对象们互相匹配(最小二乘法),创建一个 覆盖所给点集的曲面,并使皱折程度最小(薄板样条算法),还有材质模拟,例如水和衣服等。在图形学里矩阵表述相当流行,因此在用于图形学的数学中我对矩阵 方程组的评价是很高的。推荐的参考书: Matrix Computations Gene Golub and Charles Van Loan Johns Hopkins University Press 物 理学物理学显然不是数学的分支,它是自成一家的学科。但是在计算机图形学的某些领域,物理学和数学是紧密联系的。在图形学里,牵涉物理学的问题包括光与物 体的表面是怎样互相影响的,人与动物的移动方式,水与空气的流动。为了模拟这些自然现象,物理学的知识是必不可少的。这和解微分方程紧密联系,我将会在下 一节提到微分方程。 微 分方程的数值解法我相信对于计算机图形学来说,解微分方程的技巧是非常重要的。像我们刚才讨论的,计算机图形学致力于模拟源于真实世界的物理系统。波浪是 怎样在水里形成的,动物是怎样在地面上行走的,这就是两个模拟物理系统的例子。模拟物理系统的问题经常就是怎样解微分方程的数值解。请注意,微分方程的数 值解法与微分方程的符号解法是有很大差异的。符号解法求出没有误差的解,而且时常只用于一些非常简单的方程。有时大学课程里的“微分方程”只 教符号解法,不过这并不会对多数计算机图形学的问题有帮助。在对物理系统的模拟中,我们把世界细分为许多表示成矢量的小元素。然后这些元素之间的关系就可 以用矩阵来描述。虽然要处理的矩阵方程组往往没有很精确的解,但是取而代之的是执行了一系列的计算,这些计算产生一个表示成数列的近似解。这就是微分方程 的数值解法。请注意,矩阵方程的解法与微分方程数值解法的关系是很密切的。 最优化在计算机图形学里,我们常常为了期望的目标寻求一种合适的描述对象或者对象集的方法。例如安排灯的位置使得房间的照明看起来有种特殊的“感觉”,动画里的人物要怎样活动四肢才能实现一个特殊的动作,怎样排版才不会使页面混乱。以上这些例子可以归结为最优化问题。十年前的计算机图形学几乎没有最优化技术的文献,不过最近这个领域越来越重视最优化理论。我认为在计算机图形学里,最优化的重要性将会日益增加。 概率论与统计学计算机图形学的许多领域都要用到概率论与统计学。当研究者涉足人类学科时,他们当然需要统计学来分析数据。图形学相关领域涉及人类学科,例如虚拟现实和人机交互(HCI)。另外,许多用计算机描绘真实世界的问题牵涉到各种未知事件的概率。两个例子:一棵成长期的树,它的树枝分杈的概率;虚拟的动物如何决定它的行走路线。最后,一些解高难度方程组的技巧用了随机数来估计方程组的解。重要的例子:蒙特卡罗方法经常用于光如何传播的问题。以上仅是一部分在计算机图形学里使用概率论和统计学的方法。 计算几何学计算几何学研究如何用计算机高效地表示与操作几何体。典型问题如,碰撞检测,把多边形分解为三角形,找出最靠近某个位置的点,这个学科包括了运算法则,数据结构和数学。图形学的研究者,只要涉足创建形体(建模),就要大量用到计算几何学。推荐的参考书: Computational Geometry in C Joseph O'Rourke Cambridge University Press [大学教材] Computational Geometry: An Introction Franco Preparata and Michael Shamos Springer-Verlag [很经典,不过有点旧了] 总 结:数学应用和数学理论对于图形学来说,以上提到的许多数学学科都有个共同点:比起这些数学的理论价值,我们更倾向于发掘它们的应用价值。不要惊讶。图形 学的许多问题和物理学者与工程师们研究的问题是紧密联系的,并且物理学者与工程师们使用的数学工具正是图形学研究者们使用的。多数研究纯数学理论的学科从 不被用于计算机图形学。不过这不是绝对的。请注意这些特例:分子生物学正利用节理论来研究DNA分 子动力学,亚原子物理学用到了抽象群论。也许有一天,纯数学理论也能推动计算机图形学的发展,谁知道呢?有些看来重要的数学实际上在计算机图形学里不常被 用到。可能拓扑学是此类数学中最有意思的。用一句话来形容拓扑学,它研究油炸圈饼与咖啡杯为什么在本质上是相同的。答案是他们都是只有一个洞的曲面。我们 来讨论一下拓扑学的思想。虽然曲面是计算机图形学的重要成分,不过微分几何学的课程已经涵盖了多数对图形学有用的拓扑学知识。微分几何学研究曲面的造型, 可是拓扑学研究曲面的相邻关系。我觉得拓扑学对于图形学来说几乎没用,这是由于拓扑学关心抽象的事物,而且拓扑学远离了多数图形学的核心——三维欧氏空间的概念。对于图形学来说,拓扑学的形式(符号表示法)是表达思想的简便方法,不过图形学很少用到抽象拓扑学的实际工具。对图形学来说,拓扑学像一个好看的花瓶,不过别指望它能立即带给你回报。有人曾经这么问我,计算机图形学是否用到了抽象代数(群论,环,等等….)或者数论。我没怎么遇到过。和拓扑学一样,这些学科有很多美好的思想。可是很不幸,这些思想很少用于计算机图形学。