什么是计算性文章?

表达思想的有力方法

人们习惯于用散文,有时用图画来表达自己。但在现代计算时代,我想打电话给徳赢中国计算性论文.

几十年来,我一直致力于构建支持计算论文的技术,但直到最近,我才意识到中央计算论文对人们学习的两种方式都是如此的重要,以及他们交流事实和想法的方式。未来的专业人士将定期以计算论文的形式提交结果和报告。教育家们通常会用计算论文来解释概念。学生们通常会制作计算性论文作为课堂作业。

下面是一个非常简单的计算性文章的例子:

简单的计算题示例

这里基本上有三种东西。第一,普通文本(此处为英文)。第二,计算机输入。第三,计算机输出。最关键的一点是,所有这些都是一起工作来表达所传达的信息。

普通文本提供了上下文和动机。计算机输入给出了正在讨论的内容的精确说明。徳赢彩票游戏然后计算机输出提供事实和结果,通常以图形形式。它是一种强有力的阐述形式,将人类作者的计算思维与计算机的计算知识和计算处理结合起来。

但真正起作用的是沃尔夫拉姆语-以及它所提供的高层思想的简洁表达,在人类的计算思维和计算机提供的实际计算和知识之间定义一个独特的桥梁。

在一篇典型的计算文章中,每一段Wolfram语言输入通常都很短(通常不超过一行或两行)。但关键是这样的输入可以传达高层次的计算思想,以一种既能被计算机理解又能被阅读文章的人理解的形式。

对于所有这些来说,Wolfram语言有如此多关于世界和如何计算其中事物的内置知识是至关重要的。徳赢彩票游戏因为这使得它可以立即谈论抽象计算,徳赢彩票游戏同时也涉及现实世界徳赢彩票游戏中存在和发生的事情,并最终提供一种真正的计算通信语言,将人类和计算机的能力连接起来。

一个例子

让我们用一篇计算文章来解释计算文章。

假设我们想谈谈人类语言的结构,徳赢彩票游戏喜欢英语。英语基本上是由单词组成的。我们来列一张常见的清单。

生成英语常用词列表:

词表[ ]
γ

词表[ ]

一个典型的词有多长?好,我们可以把常用词列出来,并制作一个柱状图来显示它们的长度分布。

制作单词长度的柱状图:

柱状图[字符串长度[单词表]]
γ

柱状图[字符串长度[单词表]]

法语也一样:

柱状图[字符串长度[单词表[语言->
γ

柱状图[字符串长度[单词表[语言->“法语”]]]

注意,法语中单词的长度往往更长。我们可以研究一下,这是否就是为什么文件的法语比英语长的原因,或者这和文本的熵等量有什么关系。(当然,因为这是一篇计算性的文章,读者可以自己重新运行其中的计算,比如用俄语代替法语。)

但作为不同的东西,让我们通过比较他们的翻译来比较语言,说,“计算机”这个词。

查找10种最常用语言的“计算机”翻译:

采取[文字翻译[
γ

取[WordTranslation[“计算机”,所有,10

在每种情况下查找第一个翻译:

第一个/@take[文字翻译[
γ

第一个/@take[wordstranslation[“computer”,所有,10

根据“计算机”的翻译在“功能空间”中排列通用语言:

FeatureSpacePlot[第一个/@Take[文字翻译][
γ

featurespaceplot[第一个/@take[文字翻译[“计算机”,所有,40 ] ]

从这个情节中,我们可以开始研究各种语言之间的结构和历史关系。但是从计算的角度来看,重要的是,我们要分享普通文本之间的论述,计算机输入,并输出。

文中说的是基本要点。然后输入给出了我们想要的精确定义。输出显示了它的真实性。徳赢彩票游戏但是看看输入。即使只是通过查看其中的Wolfram语言函数的名称,你可以很好地了解它在说什么。徳赢彩票游戏虽然函数名是基于英语的,“可以使用”代码字幕“要用另一种语言来理解它,说日语:

FeatureSpacePlot[第一个/@Take[文字翻译][
γ

featurespaceplot[第一个/@take[文字翻译[“计算机”,所有,40 ] ]

但我们假设一个人不知道徳赢彩票游戏特征空间图.这是怎么一回事?如果它只是英语中的一个词或短语,我们可以查字典,但不会有确切的答案。但是,Wolfram语言中的函数总是被精确定义的。为了知道它做了什么,我们可以从它的文档开始。但更重要的是,我们可以自己运行它来明确地看到它的作用。

功能空间绘图页

这是计算论文的重要部分。徳赢彩票游戏如果你读了一篇普通的文章,你不明白什么,最后,你只需要问作者他们的意思就行了。在一篇计算性文章中,虽然,这里有Wolfram语言输入,它精确而明确地指定了一切,如果你想知道它的含义,你只需运行它并在你的电脑上浏览它的任何细节,自动的,无需借助于与作者的讨论。

实用性

一个人是如何真正创造一篇计算性文章的?我们拥有的技术组合,这很容易,主要是由于笔记本的概念,我们介绍了数学第一版一路回到1988年。笔记本是一种结构化文档,它将文本单元格与Wolfram语言输入和输出单元格混合在一起,包括图形,图像,声音,互动内容:

典型的笔记本

在现代,一个伟大的(并且很难实现!)问题是,完整的Wolfram笔记本可以在桌面上无缝运行,云和移动。你可以在本地写一本笔记本沃尔夫桌面应用程序(Mac,窗户,Linux)或通过任何Web浏览器在Web上,或通过手机Wolfram云应用程序.然后您可以通过钨云,在网络或手机上访问它,或者下载到桌面,或者,现在,iOS设备。

笔记本电脑环境

有时你只想让笔记本的读者看一眼,可能是打开和关闭一组细胞。有时您还希望他们能够操作交互元素。有时候你希望他们能够编辑和运行代码,或者修改整个笔记本。关键的一点是,所有这些事情都很容易通过我们构建的云桌面移动系统来完成。

新形徳赢中国式的学生工作

计算论文对学生来说是很好的阅读,但是他们也很适合学生写作。目前大多数的学生工作方式都非常陈旧。写一篇文章。进行数学推导。这些已经存在了几千年了。不是说他们有什么问题。但是现在有了新的东西:写一篇计算性的文章。徳赢中国这是非常有教育意义的。

实际上,一篇计算性的文章是通过人类作者和计算机之间的协作来讲述的一个智力故事。电脑就像一种智力外骨骼,让你立刻掌握巨大的计算能力和知识。但它也是理解的执行者。因为要引导电脑了解你想讲的故事,你必须自己理解。

当学生写普通文章时,他们通常写的内容在某种意义上“已经存在”(“讨论这段徳赢彩票游戏话”);“解释这段历史”;……)但是在做计算(至少用Wolfram语言)时,很容易发现新的东西,计算文章最终将得到一个基本上取之不尽的新内容,徳赢中国以前从未见过。学生将探索、发现、理解和解释。

当你写一篇计算论文时,你的计算文章中的代码必须产生与你所讲的故事相匹配的结果。这不像是在做数学推导,然后有老师告诉你你的答案是错的。您可以立即看到代码的作用,是否符合你所讲的故事。如果没有,那么也许你的代码是错误的,或者你的故事是错误的。

学生写计算论文的实际过程应该是什么?在今年沃尔夫拉姆暑期学校我们做了一个实验,要求我们所有的学生写一篇关于他们所知道的任何事情的计算性论文。徳赢中国徳赢彩票游戏我们以72篇有趣的文章-探索各种各样的主题。

在更典型的教育环境中,计算性论文的“提示”可以是“英语中一个词的典型长度是多少”或“探究英语中的词长度”。

我还尝试了另一个工作流。作为课堂的“课堂”组成部分,进行实时编码(或实时实验)。创造或发现一些东西,每个学生都跟着做自己的计算。在课后,每个学生都会有一本笔记本。然后让他们的“家庭作业”是把笔记本变成一篇解释所做工作的计算性文章。

根据我的经验,这最终是一个非常好的练习,真正测试和巩固学生的理解。但是也有其他的东西:当学生们写了一篇计算性的论文,他们有一些可以长期保存和直接使用的东西。

这是计算论文的一个重要的一般特征。当学生写的时候,实际上,他们正在为自己创建一个定制的计算工具库,在将来的任何时候都可以立即使用。学生在课堂上写笔记太普遍了,那就不要再提他们了。对,他们可能会遇到这样的情况:笔记会有帮助。但经常很难激励自己回去读笔记,尤其是因为这只是开始;还有一个问题就是实现笔记中的任何内容。

但重点是,通过计算性的文章,一旦你找到你想要的,实现它的代码就在那里,可以立即应用到任何出现的问题上。

任何你想要的主题

计算论文可以是关于什么的?徳赢彩票游戏几乎什么都有!我经常说,对于研究X的任何领域(从考古学到动物学)。要么是现在,或者很快,“计算X”。任何“计算X”都可以立即用计算文章来探索和解释。

但即使还没有一个明确的“计算X”,计算论文仍然是组织和呈现材料的有力方式。从某种意义上说,在一篇文章中,通常需要一系列的计算来“讲述故事”,这一事实有助于为整个文章定义一个清晰的主干。实际上,计算呈现的结构化性质有助于为叙述提供结构建议,使学生(和其他人)更容易撰写易于阅读和理解的文章。

但实际的主题呢?徳赢彩票游戏好,想象你在学习历史,比如说英国内战的历史。好,方便地,Wolfram语言有很多关于历史的知识(以及其他许多东西)。徳赢彩票游戏所以你可以通过一种对话来展示英国内战。例如,你可以向它询问战斗的地理位置:

γ

地理位置图[\]!\(\*namespacebox[“linguisticassistant”,dynamicmodulebox[typeset` query$=“英国内战”,typeset`box$=templatebox[“\”英语内战\“”,rowbox[“实体”,“行框[“\”军事冲突\“”,“,”“英国公民战争”“”},“\”实体[\ \ \”军事冲突\\ \”,\\\\“Englishcivilwar\”]\“”,“军事冲突”“实体”typeset`allassumptions$=“type”->“clash”,“word”->“英国内战”,“template”->“假设”$word \“是$desc1。改为\$desc2使用“,“计数”>“3”,“值”->“名称”->“军事冲突”,“desc”->“军事冲突”,“input”->“*c.english+civil+war-”军事冲突-”,“name”->“word”,“desc”->“一个词”,“input”->“*c.english+civil+war-”字-“,“name”->“HistoricaleEvent”,“desc”->“历史事件”,“input”->“*c.english+civil+war-ux Historicalevent-”,“type”->“子类别”,“word”->“英国内战”,“template”->“假设$desc1。使用$desc2代替“,“计数”>“4”,“values”->“name”->“Englishcivilwar”,“DESC”->“英国内战(1642-1651)”,“input”->“*dpclash.militaryconflicte.english+civil war-”,“name”->“FirstEnglish Civilwar”,“DESC”->“英国内战(1642-1646)”,“input”->“*dpclash.militaryconflicte.english+civil war-”,“name”->“secondenglishcivilwar”,“desc”->“第二次英国内战”,“input”->“*dpclash.militaryconflicte.english+civil war-”,“name”->“Thirdenglish civilwar”,“desc”->“第三次英国内战”,“input”->“*dpclash.militaryconflicte.english+civil war-\thirdenglish civil war-”,typeset`假设$=,typeset`open$=1,2 },typeset`querystate$=“online”->true,“允许”->真,“mparse.jsp”->1.305362`6.5672759594240935,“消息”->,dynamicbox[toboxes[alphaintegration'语言识别stantbox[“”,4,自动的,动态[typeset`query$],动态[typeset`box$],动态[typeset`allassumptions$],动态[typeset`assumptions$],动态[typeset`open$],动态[typeset`querystate$],标准格式),图像尺寸cache->265.,{ 7,17.,trackedSymbols:>typeset`查询$,排版`方框$$,typeset`allassumptions美元,typeset`assumptions美元,开放式$typeset`querystate$],dynamicmodulevalues:>,undtrackedvariables:>typeset` open$],basestyle->“deploy”,deleteWithContents->true,editable->false,selectWithContents->true])[“战斗”]

你可以要求一个战争开始的时间表(你不需要说“前15场战争”,因为如果有人在乎,我们可以从Wolfram语言代码中读取它):

γ

时间线图[记下[\!\(\*namespacebox[“linguisticassistant”,dynamicmodulebox[typeset` query$=“英国内战”,typeset`box$=templatebox[“\”英语内战\“”,rowbox[“实体”,“行框[“\”军事冲突\“”,“,”“英国公民战争”“”},“\”实体[\ \ \”军事冲突\\ \”,\\\“Englishcivilwar\”“]\”“,“军事冲突”“实体”typeset`allassumptions$=“type”->“clash”,“word”->“英国内战”,“template”->“假设”$word \“是$desc1。改为\$desc2使用“,“计数”>“3”,“值”->“名称”->“军事冲突”,“desc”->“军事冲突”,“input”->“*c.english+civil+war-”军事冲突-”,“name”->“word”,“desc”->“一个词”,“input”->“*c.english+civil+war-”字-“,“name”->“HistoricaleEvent”,“desc”->“历史事件”,“input”->“*c.english+civil+war-ux Historicalevent-”,“type”->“子类别”,“word”->“英国内战”,“template”->“假设$desc1。使用$desc2代替“,“计数”>“4”,“values”->“name”->“Englishcivilwar”,“DESC”->“英国内战(1642-1651)”,“input”->“*dpclash.militaryconflicte.english+civil war-”,“name”->“FirstEnglish Civilwar”,“DESC”->“英国内战(1642-1646)”,“input”->“*dpclash.militaryconflicte.english+civil war-”,“name”->“secondenglishcivilwar”,“desc”->“第二次英国内战”,“input”->“*dpclash.militaryconflicte.english+civil war-”,“name”->“Thirdenglish civilwar”,“desc”->“第三次英国内战”,“input”->“*dpclash.militaryconflicte.english+civil war-”,typeset`假设$=,typeset`open$=1,2 },typeset`querystate$=“online”->true,“允许”->真,“mparse.jsp”->1.305362`6.5672759594240935,“消息”->,dynamicbox[toboxes[alphaintegration'语言识别stantbox[“”,4,自动的,动态[typeset`query$],动态[typeset`box$],动态[typeset`allassumptions$],动态[typeset`assumptions$],动态[typeset`open$],动态[typeset`querystate$],标准格式),图像尺寸cache->275.,{ 7,17.,trackedSymbols:>typeset`查询$,排版`方框$$,typeset`allassumptions美元,typeset`assumptions美元,开放式$typeset`querystate$],dynamicmodulevalues:>,undtrackedvariables:>typeset` open$],basestyle->“deploy”,deleteWithContents->true,editable->false,selectWithContents->true])[“战斗”],15 ] ]

你可以开始看看军队是如何移动的,或者谁赢了,谁输了。起初,你可以写一篇计算性的文章,其中计算基本上只是生成定制的信息图表来说明你的叙述。但是你可以更进一步,真正开始做“计算历史”。你可以开始计算战争进展的各种统计指标。你可以找到方法将它与其他战争进行定量比较,等等。

你能写一篇关于艺术的“计算论文”吗?徳赢彩票游戏当然。也许是关于艺徳赢彩票游戏术史。挑选10幅梵高的随机画作:




梵高绘画作品输出
γ

EntityValue[随机样本[\!\(\*namespacebox[“linguisticassistant”,dynamicmodulebox[typeset` query$=“梵高”,typeset`box$=templatebox[“\”Vincent van Gogh\“”,rowbox[“实体”,“行框[“”人\“”,“,”“文森特梵高:9VQ62\”“”,“”},“\”实体[\ \”个人\ \ \\“,\\\“文森特梵高::9VQ62 \ \ \”“]\”“,“人”“},“实体”typeset`allassumptions$=“type”->“clash”,“字”->“梵高”,“template”->“假设”$word \“是$desc1。改为\$desc2使用“,“计数”>“4”,“值”->“名称”->“人”,“desc”->“一个人”,“输入”->“*C.van+Gogh-u*Person-”,“name”->“电影”,“desc”->“电影”,“输入”->“*c.van+gogh-ux电影-”,“name”->“solarSystemFeature”,“desc”->“太阳能系统功能”,“输入”->“*c.van+gogh-*solarSystemFeature-”,“name”->“word”,“desc”->“一个词”,“输入”->“*c.van+gogh-*word-”,typeset`假设$=,typeset`open$=1,2 },typeset`querystate$=“online”->true,“允许”->真,“mparse.jsp”->0.472412`6.1258659143333281,“消息”->,dynamicbox[toboxes[alphaintegration'语言识别stantbox[“”,4,自动的,动态[typeset`query$],动态[typeset`box$],动态[typeset`allassumptions$],动态[typeset`assumptions$],动态[typeset`open$],动态[typeset`querystate$],标准格式),图像尺寸cache->227.,{ 7,17.,trackedSymbols:>typeset`查询$,排版`方框$$,typeset`allassumptions美元,typeset`assumptions美元,开放式$typeset`querystate$$],dynamicmodulevalues:>,undtrackedvariables:>typeset` open$$],basestyle->“deploy”,deleteWithContents->true,editable->false,selectWithContents->true])[“notableRtworks”],10,“图像”

然后看看他们使用的颜色(一个非常窄的选择):

色度图[%]
γ

色度图[%]

或者可以写一篇关于创造艺术的计算性文章,徳赢彩票游戏或音乐。

科学呢?徳赢彩票游戏你可以通过观察行星的性质来重新发现开普勒定律:

γ

!\(\*namespacebox[“linguisticassistant”,dynamicmodulebox[typeset` query$=“行星”,typeset`box$=templatebox[“\”行星\“”,行框[“实体类”,“行框[“\”行星\“”,“,”“全部”},“”},“\”实体类[\ \ \”行星\\ \”,““行星”“},“实体类”,typeset`allassumptions$=“type”->“clash”,“单词”->“行星”,“template”->“假设”$word \“是$desc1。改为\$desc2使用“,“计数”>“4”,“值”->“名称”->“PlanetClass”,“desc”->“指行星”,“输入”->“*C.Planets-*PlanetClass-”,“name”->“ExoplanetClass”,“desc”->“指外行星”,“输入”->“*C.Planets-*ExoplanetClass-”,“name”->“minorplanetclass”,“desc”->“指小行星”,“输入”->“*C.Planets-*MinorPlanetClass-”,“name”->“word”,“desc”->“一个词”,“输入”->“*c.planets-*word-”,typeset`假设$=,typeset`open$=1,2 },typeset`querystate$=“online”->true,“允许”->真,“mparse.jsp”->0.400862`6.054539882441674,“消息”->,dynamicbox[toboxes[alphaintegration'语言识别stantbox[“”,4,自动的,动态[typeset`query$],动态[typeset`box$],动态[typeset`allassumptions$],动态[typeset`assumptions$],动态[typeset`open$],动态[typeset`querystate$],标准格式),图像尺寸cache->171.,{ 7,17.,trackedSymbols:>typeset`查询$,排版`方框$$,typeset`allassumptions美元,typeset`assumptions美元,开放式$typeset`querystate$],dynamicmodulevalues:>,undtrackedvariables:>typeset` open$],basestyle->“deploy”,deleteWithContents->true,editable->false,selectWithContents->true]\)[“与sun的距离”,“轨道周期”}

列表日志图[%]
γ

列表日志图[%]

也许你可以继续检查外行星。或者你可以开始解行星的运动方程。

你可以看看生物学。这是人类线粒体参考序列的第一个开始:

遗传算法[{
γ

基因组数据[“线粒体”,{ 1,150 } }

你可以把它分成可能的密码子:

字符串分区[%,3
γ

字符串分区[%,3

在Wolfram语言中有大量关于各种事物的数据。徳赢彩票游戏但也有Wolfram数据存储库,它包含各种特定的数据集。这里有一张美国州集市的地图:

geolistplot[资源数据[
γ

geolistplot[资源数据[“美国州集市“【全部,“地理位置”]

以下是2010年以来颁布的国家宪法的字云:

γ

wordcloud[stringjoin[normal[resourcedata[“world constitutions”][选择[年颁布>\!\(\*namespacebox[“linguisticassistant”,dynamicmodulebox[typeset` query$=“2010年”,typeset`box$=rowbox[“日期对象”,“ROBOBOX { { },“2010”“}”,“”},typeset`allassumptions$=“type”->“multilash”,“单词”->“”“template”->“假设$word1是指\$desc1。将“$word2”用作“$desc2.”,“计数”>“2”,“值”->“名称”->“伪标记年”,“word”->“2010年”,“desc”->“一年”,“input”->“*mc.year+2010-*pseudotokenyear-”,“name”->“Unit”,“字”->“年”,“desc”->“A单元”,“输入”->“*mc.year+2010-x单位-”,typeset`假设$=,typeset`open$=1,typeset`querystate$=“online”->true,“允许”->真,“mparse.jsp”->0.542662`6.18607404594303,“消息”->,dynamicbox[toboxes[alphaintegration'语言识别stantbox[“”,4,自动的,动态[typeset`query$],动态[typeset`box$],动态[typeset`allassumptions$],动态[typeset`assumptions$],动态[typeset`open$],动态[typeset`querystate$],标准格式),图像尺寸cache->86.,{ 7,18.,跟踪符号:>typeset`查询$,排版`方框$$,typeset`allassumptions美元,typeset`assumptions美元,开放式$typeset`querystate$],dynamicmodulevalues:>,undtrackedvariables:>typeset`open$],basestyle->“deploy”,deleteWithContents->true,editable->false,selectWithContents->true]&],“文本”] ]

经常有人对不处理公共数据感兴趣,但是有一些本地数据。其中一个方便的来源是Wolfram数据丢弃.在教育环境中,可以设置特定的数据箱(或一般的云对象),以便某些特定的组可以读取(和/或添加到)。这是我为自己积累的一个数据库,一整天都在显示我的心率。这是今天的:

数据列表图[时间序列[数据箱][
γ

日期列表图[时间序列[您的日期选项卡]]

当然,制作柱状图也很容易:

柱状图[时间序列[数据库][
γ

柱状图[时间序列[您的日期表]]

数学怎么样徳赢彩票游戏?数学中的一个关键问题是理解事物为什么是真的。传统的做法是提供证据。但是计算文章提供了一种选择。这些步骤的本质是不同的,但目的是相同的:展示真实的东西和为什么。

作为一个非常简单的例子,我们来看看素数。以下是前50个:

表[Prim[n],{n,50 }
γ

表[Prim[n],{n,50 }

让我们找到所有这些素数的剩余mod 6:

mod[表[prime[n],{n,50 },6
γ

mod[表[prime[n],{n,50 },6

但是为什么只有1和5发生(好吧,在素数2和3的小例子之后?我们可以通过计算看到这一点。任何数字都可以写成6n+K对于一些nK

表〔6 N+K〕,{0,5 }
γ

表〔6 N+K〕,{0,5 }

但是如果我们把用这种形式写的数字考虑进去,我们会看到6n+1和6n+5是唯一不必是倍数的:

因子[%]
γ

因子[%]

计算机科学徳赢彩票游戏呢?例如,我们可以写一篇关于实现欧几里得算法的计算文章,徳赢彩票游戏研究它的运行时间,等等。

定义函数以给出欧几里得算法中的所有步骤:

GCDLISTA[A]b_u]:=嵌套列表[最后一个[],应用和{a,B}最后!=01
γ

GCDLISTA[A]b_u]:=嵌套列表[最后一个[],应用和{a,B}最后!=01

找到算法运行长度的分布,对于最多200个数字:

柱状图[展平[表[长度[gcdlist[i,J]{200 },{200 } ] ]
γ

柱状图[展平[表[长度[gcdlist[i,J]{200 },{200 } ] ]

或者在现代,我们可以探索机器学习,启动,说,通过绘制mnist手写数字数据集的一部分的特征空间图:

特征空间图[随机样本[键[资源数据][
γ

功能空间图[随机样本[键[资源数据[“mnist”],50 ] ]

如果你想深入了解软件工程,你可以写一篇关于HTTP协议的计算性文章。徳赢彩票游戏这将从站点获取HTTP响应:

乌尔里德
γ

urlread[“https://www.wolfram.com”]

这显示了该URL网页上元素的树结构:

Treeform[导入[错误的,aspectratio->1/2]“title=”treeform[导入[“http://www.wolframalpha.com”,{“HTML”)“XMLObjuts}},VertexLabeling->false,aspectratio->1/2]“width=”497“height=”257“class=”Alignnone size full wp-image-14978“/>
γ

treeform[导入[“http://www.wolframalpha.com”,{“HTML”)“XMLObjuts}},VertexLabeling->false,电气->1/2]

或者在一个完全不同的方向上,你可以谈论解剖学:徳赢彩票游戏

解剖图3d[左脚]
γ

解剖图3d[实体[“解剖结构”,“左脚”

怎样才能写出一篇好的计算论文?

就我而言,要想写一篇好的计算论文,它必须尽可能容易理解。这种格式有很大帮助,当然。因为一篇计算性的文章充满了易于浏览的输出(通常是图形化的)。这立刻让人对这篇文章想说的有了一些印象。它也有助于计算文章是结构化文档,以封装良好的方式传送信息。

但归根结底,这取决于一篇计算性文章的作者。但是另一个有帮助的事情是,计算性文章的本质是它必须有一个“计算性叙述”——计算机可以执行的一系列代码来完成本文中讨论的内容。虽然一个人可以写一篇普通的文章,虽然没有什么意义,但听起来还是不错的,我们最终不能在计算性的文章中做那样的事情。因为最终代码就是代码,事实上,我们必须跑步和做事。

那么什么会出错呢?好,像英语散文一样,Wolfram语言代码可能不必要地复杂,很难理解。在一篇好的计算文章中,普通文本,和代码,应该尽可能的简单和干净。我试图通过说每个输入部分至多应该有一行或两行长,并且输入的标题应该总是只有一行长来实现这一点。如果我想做一些事情,它的核心(可能不包括显示选项等)需要的不仅仅是一行代码,然后我把它分开,分别解释每一行。

就我而言,另一个重要的原则是:明确。没有变量,说,隐式存储单词列表。实际上至少显示了列表的一部分,所以人们可以清楚地看到它是什么样的。当输出复杂时,找到一些表格或者可视化的东西,让你感兴趣的特性变得明显。不要让“关键结果”隐藏在角落里的东西里;确保你设置的方式使它在前面和中间。

使用笔记本的结构化特性。用章节标题分解计算文章,再次有助于使他们容易脱脂。我遵循在每次输入前都有一个“标题行”的样式。不要担心这是否会重复一段文字所说的话;考虑一下标题,一些“看照片”的人可能会读到的内容,以理解图片的内容,在他们真正深入到完整的文本叙述之前。

Wolfram笔记本电脑的技术使得它可以很容易地加入互动元素,喜欢操纵,进入计算论文。有时候这很有帮助,甚至是必要的。但是交互元素不应该被过度使用。因为只要有一个元素需要交互,这会降低浏览文章的能力。

有时需要大量的数据或代码来建立一篇特定的计算文章。云对于处理这一点非常有用。只需将数据(或代码)部署到Wolfram云,并设置适当的权限,以便在执行文章中的代码时自动读取。

笔记本还允许“反向关闭”单元格,使输出单元格立即可见,即使生成它的输入单元最初是关闭的。这种代码隐藏通常应该避免在计算文章的正文中,但有时候在文章的开头或结尾会很有用,或者是暗示接下来会发生什么,或者包括一些更高级的,你不想详细介绍它是如何制造的。

好啊,所以如果一篇计算论文完成了,说,作为作业,如何评估?首先,直截了当的问题是:代码运行吗?这可以自动确定。之后,评估过程与普通论文非常相似。当然,将单元格添加到笔记本中,以便对其中的内容进行评论,这既好又容易。这些单元格可以包含可运行的代码,例如,可以在文章中获取结果并对其进行处理或检查。

有好的计算文章的原则吗?以下是一些候选人:

0。明白你在说什么!!)徳赢彩票游戏

1。找到最直接、最直接的方式来代表你的主题

2。将每一段Wolfram语言输入的核心保留到一两行

三。尽可能使用显式可视化或其他信息表示

4。试着让每个输入+标题独立理解

5。将不同的主题或方向分成不同的小节

学习语言

计算论文的核心是用Wolfram语言表达计算思想的思想。但要做到这一点,一个人必须懂得语言。现在,与人类语言不同,Wolfram语言是明确设计的(并且,对,这就是过去30多年来我一直在做的事情),遵循明确的原则,尽可能容易学习。但仍有学习要做。

Wolfram语言的一个特点是,与人类语言一样,它通常更容易阅读而不是书写。这意味着,对于人们来说,一个好的学习他们需要写什么计算论文的方法就是首先阅读一堆论文。也许他们可以开始修改这些文章。或者他们可以开始创作“笔记随笔”,基于在LiveCoding或其他课堂课程中生成的代码。

随着人们对沃尔夫拉姆语的写作越来越熟练,有趣的事情发生了:他们开始用语言表达自己,并使用Wolfram语言输入,在一篇计算性文章中承载了叙事的重要部分。

当我写作的时候Wolfram语言简介(这本书本身大部分是作为一系列计算文章写的)我有一个有趣的经历。在书的早期,用英语解释计算练习(用前10个方格做一张表)相当容易。但在书的后面,这是一个令人沮丧的过程。

用Wolfram语言表达我想要的东西很容易。但是用英语来表达它又长又难(而且有听起来像法律术语的倾向)。这就是使用Wolfram语言的要点,我花了30多年来建造它的原因是:因为它提供了更好的,更清晰的方式来表达计算思想。

有时人们说人类的语言决定了你的思维方式。目前还不清楚人类语言的真实性。但计算机语言绝对是如此。Wolfram语言最强大的功能之一就是帮助人们形成清晰的计算思维。徳赢彩票游戏

传统的计算机语言是关于编写描述计算机应该做什么的细节的代码。徳赢彩票游戏Wolfram语言的要点是提供更高层次的东西,可以立即谈论世界上的事情,徳赢彩票游戏这可以让人们尽可能直接地把它作为计算思维的媒介。从某种意义上说,这就是一篇好的计算论文的可能之处。

计算论文的长路

既然我们有了成熟的计算论文,我意识到我已经走上了通向他们的道路近40年.一开始,我是把交互式计算机输出和Scotch录音描述带到其中:

交互式计算机输出草图

1981岁,当我建立SMP时,我经常写一些分散代码和解释的文档:

代码穿插解释

但那只是在1986年,当我开始记录什么变成了Mathematica和Wolfram语言时,我开始认真地开发一种接近于我现在喜欢的计算文章的风格:

Wolfram语言版本1文档

随着1988年Mathematica 1.0另一个关键因素是:Wolfram笔记本的发明。笔记本的形式至少表面上与现在非常相似(而且已经在很多方面比25年后开始出现的模仿更为复杂!):按组排列的单元格集合,并且能够包含文本,可执行代码,绘图,等。

早期的Mac笔记本电脑

起初,笔记本电脑只能在Mac电脑和下一台电脑上使用。几年后,它们被扩展到了Microsoft Windows和X Windows(后来,Linux)。但很快人们就开始使用笔记本来提供他们所做的报告,徳赢彩票游戏创造丰富的讲解和教材。几年之内,开始有基于笔记本的课程,还有从笔记本上打印出来的书,在后面的CD-ROM上提供交互式版本:

笔记本出版物示例

因此,从某种意义上说,计算论文的原材料在20世纪90年代初就已经存在了。但是,要真正使计算文章形成自己,需要云的发展,以及现在属于Wolfram语言一部分的所有广泛的计算知识。

到了1990年,完全有可能创造出一本叙述性的笔记本,人们做到了,尤其是关于数学之类的话题。徳赢彩票游戏但如果有真实的数据,事情变得一团糟。人们必须确保所需的一切都能从发行版CD-ROM或其他什么光盘上得到。我们创造了一个笔记本播放器很早,有时会和笔记本一起分发。

但在过去的几年里,尤其是随着钨云,事情变得更加简单了。因为现在你可以无缝地在云中存储东西并在任何地方使用它们。你可以直接在云端使用笔记本电脑,只是使用网络浏览器。此外,多亏了大量的用户帮助创新(包括自然语言输入)。用Wolfram语言编写变得更加容易,而且通过这样做可以实现更多的功能。

我认为重要的是,它已经变得足够轻,可以产生一篇很好的计算性文章,这是很有意义的,无论是专业的撰写报告,或者作为一个学生做家庭作业。

古代教育史

学生写计算论文的想法是现代的新想法,徳赢中国通过一整套当前技术实现。但是有一种奇怪的共鸣来自遥远的过去。你看,如果你几百年前在美国学过数学这样的学科,你要做的一件大事就是写一本所谓的密码书,在这本书中,你花了几年时间仔细地写出了一系列问题的解决方案,把解释和计算混为一谈。当时的想法是你把你的密码簿留了一辈子,每当你需要解决像它所包含的问题时,就参考它。

好,现在,通过计算文章,你可以做很多相同的事情。你能解决的问题比手工计算要复杂和广泛得多。但就像加密书一样,你可以写计算文章,这样它们将来对你有用,尽管现在你不必手工模仿计算;相反,您只需编辑您的计算论文笔记本,然后立即重新运行其中的Wolfram语言输入。

实际上,我最近才知道加密书。徳赢彩票游戏大约20徳赢彩票游戏年来,作为一件艺术品,我基本上拥有一本奇特的手写笔记本(创作于1818年,它说,一个叫乔治·雷曼的人,显然是奥威斯堡宾夕法尼亚)像这样的页面:

密码书

我现在知道这是一本密文书,在这一页上描述了如何找到“垂直物体的高度…通过给定阴影的长度”。当然,我无法抗拒现代计算论文的模拟,哪一个,不用说,可以更详细一点。

以太阳的当前位置为方位角,海拔高度:

太阳星座[太阳]
γ

太阳星座[太阳]

为单位高度的对象查找阴影的长度:

1/tan[太阳位置[[[2]]]
γ

1/tan[太阳位置[[[2]]]

如果有10英尺的阴影,找到制造它的物体的高度:

谭[太阳位置][[2]]]10英尺
γ

谭[太阳位置][[2]]]10英尺

前面的路

我喜欢写文章(比如博客文章!).但我更喜欢写计算论文。因为至少对于我想交流的很多事情,我发现这是一种更纯粹、更有效的方法。我可以花大量的文字来表达一个想法,或者我可以只提供一点Wolfram语言输入,它非常直接地表达了这个想法,并通过生成(通常是非常直观的)输出来显示它是如何工作的。

当我写大书的时候一种徳赢中国新的科学(1991年至2002年)无论是我们的技术还是世界,都没有完全准备好以现在可能的形式进行计算。我对这本书的研究填补了沃尔夫拉姆上千本笔记本。但当它真正开始整理这本书时,我刚刚展示了这些笔记本的结果,包括它们在笔记本背面的笔记中的一点代码。

但现在这本书的故事可以在我已经开始撰写的计算论文中讲述。(只是为了好玩,我一直在畜牧业我正在做的一些工作是为了创造这些。)而最令人满意的是书中的思想可以在计算论文中清晰而清晰地表达出来。

计算论文有很大的潜力。事实上,我们现在正在开始收集“主题探索”的项目,使用计算文章以前所未有的清晰和直接的方式探索大量的主题。会有点像我们的沃尔夫拉姆示范项目(现在有11000多个Wolfram语言支持的演示)。下面是我写的一个典型例子:

中心极限定理

计算文章开辟了各种新的交流方式。徳赢中国直接提出计算实验和探索的研究论文。描述已发现事物的报告,但允许立即调查其他案件。而且,当然,计算论文为学生(和其他人)定义了一种非常直接和有用地展示他们所学知识的方法。

写和读计算论文都令人满意。徳赢彩票游戏就好像在交流思想时,我们最终能够超越单纯的人类努力,真正利用计算的力量。对我来说,把Wolfram语言建成计算通信语言,很高兴看到它如何被用来在计算论文中如此有效地交流。

当我收到一篇格式很好的计算论文时,我感到非常高兴。因为我马上就知道我会得到一个真实的我能理解的故事。不会有任何缺失的来源和隐藏的假设;只有Wolfram语言输入是独立的,我可以自己出去学习或跑步。

现代网络世界给我们带来了一些新的交流方式,比如博客,徳赢中国以及社交媒体,像维基百科。但所有这些都遵循了从识字时代开始就存在的文本+图片的基本概念。有了计算论文,我们终于有了新的东西,看到它所能做到的一切都会让人兴奋。徳赢中国

十二评论.显示全部

  1. 嗨,史蒂芬
    这个博客深深地触动了我的心弦,离提交一篇完全以数学笔记形式撰写的统计学博士论文只有几周的时间了。
    我有一个附录,在其中我对这种陈述形式提出了异议,我引用理查德·克兰德尔1991年出版的《科学数学》一书的前言。
    今天我读了你的计算论文博客,并添加了一节,指的是这个新的术语,一个旧的想法。徳赢中国
    我使用了程序化的“反向关闭”单元格来显示所有的标题数字,事实证明,这对于制作吸引人的文档是非常有价值的,而这正是我在计算性文章中一直想要表达的。
    我要谢谢你,然后,为了你的道德支持,希望主考同意我们的做法!
    最美好的祝福
    巴里

    巴里斯托克斯
  2. 伟大的职位!
    作为概率统计导论的讲师,中心极限定理的笔记本给我留下了特别深刻的印象,我想知道是否还有更多关于这些主题的笔记本。

    鲁宾
  3. 你可能会对一个叫做唐纳德·克努斯的计算机科学家开发的“识字编程”的想法感兴趣。

    吉姆泰森
  4. 别忘了计算期刊的文章,所有人都可以访问数据。

    戴维G鹳
  5. 你写,“真正使这项工作得以开展的是Wolfram语言。”我很困惑。你的计算文章和你从降价中得到的有什么不同?ipython笔记本,等。?

    • Wolfram语言支持我们的技术堆栈,创建一个内聚的过程。我们的笔记本电脑提供了完整的数据导入生产环境,原型制作,操作和测试都可以在部署到云端或生成最终报告或演示文稿的同一个笔记本中完成。它不需要像ipython笔记本那样与单独的工具捆绑在一起,制作笔记本更适合计算论文,因为您不需要设置笔记本来使用特定的库。
      最重要的是,因为我们的语言统一了我们的技术堆栈,像python这样相互不兼容的解释程序没有问题,甚至当你搬到Jupyter,它可以有多个语言内核,对于每种特定的语言,确保您拥有所需的每个包变得越来越困难。降价在笔记本中很有用,但是ipython笔记本的降价是不可折叠的,这使得它们很难构造。
      另外一个关键特性是我们的内置知识库。跨越数千个领域,知识库包含从主要来源直接获得的精心策划的专家知识。它不仅包括数万亿个数据元素,但也有大量的算法封装了几乎每个领域的方法和模型。

      行政
  6. 我同意计算机论文是一项重要的创新。他们一直都是数学的一个组成部分,这是多么美妙啊……这个想法的含义还在继续显现。我认为有趣的是,它给了“数学家做什么”一个新的更好的答案?徳赢中国计算性的文章不仅仅是一个问题的解决方案,或者描述如何解决问题,但是,一个完整的模型和导游旅游,体现了比印刷纸更多的问题解决过程。

    一个显而易见的问题是,计算性文章能否以一种深刻的方式相互联系,从而使文章链成为一个连续的证据?例如。一系列的计算文章能作为一个完整的计算证明吗?说,威尔斯对费马最后定理的证明?如果不是,缺少什么?一篇计算文章能证明另一篇文章中可以“称为”的定理吗?像计算函数?在我看来,数学文献应该被看作是一个巨大的相互联系的结构,而不是孤立的不相容符号岛。

    为了充分理解这种形式的含义,我将自己写一些计算论文。过去让我陷入困境的是,我想写的几乎所有东西都不能(我相信)用Wolfram语言表达,徳赢彩票游戏因为它们涉及直接操作(拖动和组装多胺,例如)作为输入,Wolfram语言似乎不支持。

  7. 你会考虑发布一个样式表来编写这种文档吗?还是输入描述文本单元格的默认样式?您使用的单元格样式(据我所知)在默认样式表中不可用。我仍在使用这些单元格的旧数学题注,但要使用更新的样式。

    丹尼尔
    • 输入描述单元的样式将在下一版本中提供,称为“代码文本”,尽管只能通过“格式>样式>其他”对话框访问。之后将提供完整的样式表支持。

      行政
  8. 我对这些计算笔记本(wolfram alpha/jupyter)唯一的问题是,图形与文本混合在一起,使得我难以集中注意力。我认为一个简单的双列用户界面可能更好,从计算中分离文本。

    德凯泽凯文
隐藏注释»

?斯vwin中国蒂芬·沃尔夫拉姆,有限责任公司 条款γ RSS