Questions tagged «computer-science»

计算机科学或计算科学(简称CS或CompSci)是计算及其应用的科学方法。

8
是否有一部分程序可以避免停顿问题
我只是在阅读有关停止问题的另一种解释,这使我想到我所看到的所有示例中涉及的问题都涉及无限序列。但是我从不在程序中使用无限序列-它们花费的时间太长。现实世界中的所有应用程序都有上限和下限。甚至实数也不是真正的实数-它们是存储为32/64位等的近似值。 因此,问题是,是否存在可以确定程序是否暂停的子集?对于大多数程序来说足够好了吗?我可以建立一套可以确定程序的“可暂停性”的语言结构吗?我敢肯定,这已经在某处研究过,所以任何指针都将不胜感激。语言不会完全完成,但是是否有几乎完全完成这件事呢? 很自然地,这样的构造必须排除递归和无边界的while循环,但是我可以编写一个没有那么容易的程序。 作为示例,从标准输入中读取内容必须是一定范围的,但这很容易-根据问题域的不同,我将输入限制为10,000,000个字符,以此类推。 tia [更新] 阅读评论和答案后,也许我应该重申我的问题。 对于所有输入都受限的给定程序,您可以确定该程序是否暂停。如果是这样,语言的约束是什么,输入集的极限是什么。这些构造的最大集合将确定可以推论为停止或不停止的语言。是否对此进行了一些研究? [更新2] 答案是肯定的,可以回溯到1967年,网址是http://www.isp.uni-luebeck.de/kps07/files/papers/kirner.pdf 明斯基已经在1967年提出论点,认为至少可以在理论上解决有限状态系统的停顿问题[4]:“ ...任何有限状态机,如果完全留给自己,最终将陷入一个完美的周期重复模式。这种重复模式的持续时间不能超过机器内部状态的数量……” (因此,如果您坚持使用有限的图灵机,则可以构建一个oracle)

3
软件工程和计算机科学专业应该分开吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 4年前关闭。 几十年来,成为计算机开发人员的公认程度是“计算机科学”。关于该学位是否真的为学生开发软件做好了准备, 我们已经有几个 问题。 在过去的八年左右的时间里,一些学校开始提供编程方面的多个不同专业。使用我学校的课程: 计算机科学,从第一年的一些入门编程课程开始,然后侧重于理论计算机科学,算法和一些OS知识。大多数班级都涉及几个较小的项目和作业,这些作业和作业都是单独或成对完成的。 软件工程从相同的入门编程课程开始,进行了几类理论,然后涉及软件开发实践(测试,过程方法,软件度量,需求收集)和软件设计(分布式系统设计,信息系统设计) ,实时/嵌入式设计,子系统设计等) 不同的学校做的方式不同,因此以上只是我所熟悉的真实示例。我要问的是:是否需要编程方面的专业?


2
这是什么类型的问题,解决这个问题我需要知道什么数学?
蘑菇栽培需要相当精确的底物(又名生长培养基)的化学成分。让我们假装我们正在种植香菇,这是其基材的必需成分: Nitrogen | Benzene | Toluene | Dioxygen Diflouride 5% | 5% | 10% | 80% 我们想用我们知道的化学成分的现有材料创建合适的基材。 Material | Nitrogen | Benzene | Toluene | Dioxygen Diflouride apples | 5% | 0% | 5% | 90% oranges | 20% | 20% | 50% | 10% Etc... 如何计算呢?它使我想起了在高中求解矩阵的过程。这是矩阵可以完成的事情吗?这个问题叫什么?我需要知道什么来解决它?

4
外行术语是什么图
计算机科学中的图是什么,它们的用途是什么?从外行的角度来看最好。 我已经阅读了维基百科的定义: 在计算机科学中,图是一种抽象数据类型,旨在从数学上实现图和超图概念。 图数据结构由一组有限的(可能是可变的)有序对集合(称为边或弧)组成,这些对对称为某些实体,称为节点或顶点。就像在数学中一样,边(x,y)被称为指向x或从x指向y。节点可以是图结构的一部分,也可以是由整数索引或引用表示的外部实体。 但我正在寻找一个不太正式,更容易理解的定义。

3
演员模型如何使用?
我已经阅读了一些有关actor模型的知识,但是并不太了解如何在现实世界中使用actor –如何为它们建模问题。 有人可以解释一下吗?一个简单的示例或示例的链接将不胜感激。

13
计算机科学已经死了吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 问题: CS的科学和艺术死了吗?我的意思是,这些天来思考,计划和有效解决问题的实际需求似乎已脱离CS。该领域似乎正在降低进入壁垒,因此更多的人可以“编程”而不必学习如何真正编程。 背景: 我最近刚获得计算机科学学士学位。我正在一家IT部门的大型公司中担任起步职位。我主要在工作中使用.NET和其他Microsoft技术,但是在此之前,我已经通过实习等工作完成了Java工作。我个人是我自己的有趣项目的C ++程序员。 在深度:通过我一直在做的工作,在我看来,CS中不再存在真正科学的严格学科。过去,程序员必须有效地解决问题,才能使系统健壮和快速。但是现在,随着诸如.NET,Java和脚本语言等主流技术的出现,似乎已经在效率和健壮性之间进行了权衡以简化开发。 与我合作的大多数同事甚至都没有计算机科学学位。大多数人获得了电子工程学位,少数人获得了软件工程学位,甚至有些人是来自没有四年制课程的技术学校。然而,他们没有CS的技术背景,没有研究理论和算法,也没有考虑做一个优雅的解决方案(他们只是寻求最简单,最便宜的解决方案)而表现不错。 该公司敦促我们使用Microsoft技术,这些技术可以解决所有实际问题,并用可以在一半时间内为您自动构建项目的库和工具代替它。我并不是想讨厌这些语言,我知道它们可以达到目的并且可以很好地完成工作,但是当您的员工不知道哈希表如何工作,使用错误的排序方法或运行SQL命令时,效率极低(但是可以在可接受的时间内完成工作),感觉就像是在开发开发技术以整合新的“程序员”,而不是实际教人们如何做正确的事情。 我有兴趣制作高效且美观的程序。如果有更好的方法,我宁愿回去重构它,也不要滑动它。但是在企业界,他们迫使我快速而不是优雅地完成任务。那真的让我很烦。 这就是我一生都会期待的东西吗?对于那些热爱CS的科学和艺术而不只是薪水的人,还有没有职位? 同样,如果您在Java学校的危险之前没有看过这本书,那么可以读一读。

8
“哥德尔,埃舍尔,巴赫”今天仍然有效吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我刚刚完成了有关可计算性和逻辑的课程,这是一个有趣的课程。讲师在他的幻灯片上推荐了几本书,其中包括“哥德尔,埃舍尔,巴赫”。我可以看到这本书非常有名,并且看起来很有趣。但是关于它的内容,我有几个问题要问。 内容今天仍然有效吗?我想大多数理论上的事情不会在一夜之间发生变化,但是有什么要注意的主要观点今天不再存在了吗? 我认为在过去30年左右的时间里,我们实际上已经取得了一些进展。你们中的任何人都可以推荐一本包括该进展(逻辑,人工智能,可计算性)的书吗? 另一个问题:我是否需要了解埃舍尔和巴赫?

6
计算上不可能的业务问题的例子是什么?
我有一位同事拒绝接受图灵机(以及扩展的冯·诺伊曼机)无法解决其自身的停机问题这一事实,他指出: 您可以花足够的时间和金钱来做任何事情。 他还不喜欢以下理论问题: 在我们的领域中,我们永远不会遇到这些问题。我们是应用程序开发人员,而不是理论科学家。 是否有一个很好的例子说明我无法用计算机来使他信服的商业问题?

3
为什么树木向下生长?
为什么树木在计算机科学中会向下生长? 我感觉它可以回溯到打印机,并且遍历树的程序首先打印根,然后使用无底纸叠的概念来表达可能遇到的不确定的递归级别。 参考文献: 树木向下生长,其根在页面顶部,叶子在下方 从“ 神圣的战争”和“和平请愿”谈起。 按照惯例,树木被画成向下生长 摘自Wikipedia上有关树数据结构的文章。 真实的树木从根部向上生长到天空,而计算机科学的树木从根部向下生长 摘自David Schmidt的讲义。

26
计算机科学中最困难的学科/理论?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 您学习过哪些最困难的CS学科/理论,但对该领域来说很重要?原因是什么?

1
可以将所有代码表示为一系列Map / Filter / Reduce操作吗?
我最近一直在重构大量代码并将其替换为Linq查询。 消除语言偏见-Linq本质上是一组对一系列数据进行操作的Map / Filter和Reduce操作。 这让我开始思考,从理论上讲,我能走多远。我是否可以将整个代码库重写为一系列(甚至单个)Map / Filter和Reduce操作。 不幸的是,我得到报酬去做有用的事情,所以我无法做进一步的实验,但是我无法想到任何无法重构的代码结构。副作用代码可以通过monad处理。即使输出本质上是将内存地址映射到屏幕地址。 有什么东西(理论上)不能重写为Linq查询吗?

3
Ruby创建者为什么选择使用符号的概念?
tl; dr:是否会有语言不可知的符号定义,以及是否有其他语言的符号? 那么,为什么Ruby创建者symbols在语言中使用的概念? 我是从非橄榄球程序员的角度提出这个问题的。我学习了许多其他语言,但没有发现需要指定我是否在处理Ruby所调用的语言symbols。 主要的问题是, symbols Ruby存在以提高性能,还是仅仅因为语言的编写方式而需要? Ruby中的程序会比Python或Javascript对应的程序轻和/或快吗?如果是这样,那是因为symbols吗? 由于Ruby的目的之一是易于人类阅读和编写,难道其创建者不能通过在解释器本身中实现这些改进来简化编码过程吗(就像其他语言一样)? 似乎每个人都只想知道symbols它们是什么以及如何使用它们,而不是为什么首先要知道它们的存在。

9
学习C对计算机科学必不可少吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我是一个前端开发人员,几乎看不到带有.h或.c扩展名的文件。我知道基本的C语法,我在Unreality中学习了它,但是对这种低级编程从来没有兴趣,因为它对于简单的事情来说设置太多了。 我对学习计算机科学的各个方面都非常感兴趣,但是我想相信,为了理解计算机科学中的大多数概念,我真的不需要了解特定的语言。但是,当我开始阅读有关计算机科学基本概念(例如数据结构和算法设计)的书籍和文章时,似乎必须学习C,因为所有示例甚至课程都使用C(有时甚至是Java)编写。 我的问题是,C是计算机科学必不可少的编程语言,还是我们刚巧用CS编写了所有CS资源?不学习C就能学习计算机科学吗?

7
计算机科学属于什么学科?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 是计算机科学,应用数学,工程学,艺术,哲学吗?“其他”? 为了提供背景知识,这是史蒂文·沃蒂克(Steven Wartik)在《科学美国人》上发表的博客文章,标题是“ 我不是真正的科学家,没关系。” 本文涵盖了该问题的一些不错的主题,但开放性远远超出了答案。 如果您能想到该学科,计算机科学将如何适应其定义?计算机科学的学科应该基于程序员的工作还是学者的工作?您从似乎对此有深刻思考的人那里得到什么样的答案?他们给出什么原因?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.