Math 计算机科学数学

Math 计算机科学数学,math,computer-science,Math,Computer Science,关于这个话题,我已经读了好几个答案,但我还有一些问题。。 数学课很多,我不知道该先上哪一门。 每个计算机科学家都应该上哪些数学课?什么课应该是第一节课,为什么 ,,,,等等。既然您指定了“计算机科学家”,我们将采取艰难的路线: 算法分析依赖于微积分、微分方程和离散数学。(许多人认为算法分析是计算机科学和软件工程程序之间的主要区别) 计算机图形学/科学可视化需要工程分析类背景:数值方法、线性代数等 计算几何 函数逼近 集合论,逻辑/一阶微积分 概率/统计 名单如下:) 非常好而且重要的问题!对每一

关于这个话题,我已经读了好几个答案,但我还有一些问题。。 数学课很多,我不知道该先上哪一门。 每个计算机科学家都应该上哪些数学课?什么课应该是第一节课,为什么

,,,,等等。

既然您指定了“计算机科学家”,我们将采取艰难的路线:

  • 算法分析依赖于微积分、微分方程和离散数学。(许多人认为算法分析是计算机科学和软件工程程序之间的主要区别)
  • 计算机图形学/科学可视化需要工程分析类背景:数值方法、线性代数等
  • 计算几何
  • 函数逼近
  • 集合论,逻辑/一阶微积分
  • 概率/统计
  • 名单如下:)

  • 非常好而且重要的问题!对每一位计算机科学家来说,良好的数学理解是必不可少的,数学要求也开始变得更加多样化

    • 是计算机科学最重要和最基本的课程,因此,它通常在计算机科学系而不是数学系开设。这门课将巩固你的算法入门课,教你如何用数学证明事物,并为你提供分析数据结构和算法的基础知识
    • ,虽然不是直接用于入门级的计算机科学课程,但通常是你所在大学为提高你的数学技能而开设的一系列课程。然而,当你开始学习数字编程和机器学习时,它将被证明是非常有用的。这也是高级概率/统计课程的要求
    • 通常在离散数学课上会有一定程度的介绍,但你会想上一门关于连续概率分布的课,可能是在数学和统计系。这将使您更好地理解如何进行数值计算和模拟,这对于计算机科学最重要的应用之一是必不可少的
    • 是一个你会发现主要对机器学习和(高级)算法类有用的类,但它在计算机视觉、计算机图形学、机器学习和其他定量子学科中的重要性至关重要
    这就是说,如果有一门机器学习入门课程,它们可能会涵盖足够多的线性代数和其他东西,你可以通过一门基本的概率课程来学习。然而,对于计算机科学的研究生学习来说,充分理解上述所有数学领域是必不可少的

    除了本科数学,更高层次的数学课程对于计算机科学的某些理论领域(例如,与经济学交叉的算法博弈论)非常有用,特别是在超越机器学习实践者的身份,开发新算法方面。这些课程包括:

    • ,包括你会发现,如果你学习概率和微积分足够长的时间,它们会再次收敛。当您开始使用涉及数字的算法时,分析通常是一件有用的事情

    • ,包括、等。在许多情况下,“学习”机器学习模型基本上可以归结为优化目标函数,而该函数的属性(如它是否凸)对优化的容易程度有很大影响

    • 有些人不认为这是一个数学类,但是在把算法和理论翻译成浮点数学的不完美表示时,有许多实际问题需要解决。比如,

    • 对于那些将在“数据科学”和相关领域工作的人来说,先进的统计数据尤其重要。有很多事情需要知道,主要是因为访问大量数据对新手来说很有诱惑力


    我是否应该按照您列出的顺序选修这些课程?在典型的四年制大学中,您将在第一年开始学习微积分课程,然后在完成CS课程中的一些基本要求后立即选修离散数学。如果你进入计算机科学更定量的子领域,你可以学习更高级的概率/统计学课程和线性代数。我认真编程已经35年了。当我在骰子上发帖时,我会在几天内收到多个6位数的报价。根据经验,我可以告诉你,数学几乎与严肃的编程无关。有例外吗?当然,但我甚至会说,一个擅长数学的人很可能是一个糟糕的程序员。@patcapozzi编程只是计算机科学的一小部分:)@patcapozzi你说得绝对正确。编程几乎与数学无关。但关键是,编程不是计算机科学。计算机科学涉及建模、系统设计和架构、开发算法、解决问题等。事实上,编程只是实现的一部分,这是最后一个阶段。所有这些都与99%的编程无关。如果数学如此重要,那么数学课在哪里?我一直在将:组合数学、离散数学、概率论、数学逻辑和线性代数直接应用到编程中,它们都与算法有关。我认为计算机科学和编程常常是等同的,但它们是不同的学科。一个人可以不用CS学位就学会编程,实际上只需要基础数学,因为大多数复杂的概念通常都封装在编程语言或库中。然而,这些概念的基础植根于CS,需要一些像样的数学知识才能理解,尤其是算法设计/优化。