电子书《THE NATURE OF CODE》第二版
http://t.cn/A6Hho6po
作者Daniel Shiffman纽约大学Tisch艺术学院助理艺术教授,Nature of Code便是其主讲课程之一。多年来,他一直用Processing这门艺术家友好型开源语言开发教程、教学示例和代码库,拥有丰富的算法和应用教学经验。
“十多年前,我自费出版了《代码本色》(The Nature of Code),这是一本在线资源和印刷书籍,通过创意编码框架Processing探索自然界中不可预测的进化和突现特性在软件中的实现。自那时以来,技术和创意媒体世界已经发生了翻天覆地的变化,因此我再次带着这本书的新版本和重构版本回来了,这次围绕JavaScript和p5.js库构建。这本书这次有一些新的编码技巧,但它仍然是那个老样子的自然——鸟儿仍然在拍打翅膀,苹果也仍然会落在我们头上。
🌟这本书是什么?
在纽约大学Tisch艺术学院的ITP/IMA,自2004年以来,我一直教授一门名为“计算媒体导论”的课程。这门课程的起源可以追溯到1987年,以及Mike Mills和John Henry Thompson(Lingo编程语言的发明者)的工作。在这门课程中,学生们学习编程的基础知识(变量、条件、循环、对象、数组)以及与制作交互式媒体项目相关的概念(像素、数据、声音、网络、3D等)。2008年,我将这门课程的材料综合成一本入门书籍《Learning Processing》,2015年,我创建了一系列与p5.js库在JavaScript中相同轨迹的视频教程。
🌟一旦学生掌握了基础知识并看到了一系列应用,他们接下来的步骤可能是深入研究某个特定领域。也许他们想专注于计算机视觉、数据可视化或生成诗歌。我在ITP/IMA自2008年以来教授的《代码自然》课程代表了另一个可能的下一步。这门课程正好接上了我的入门材料,展示了一个专注于算法和模拟的编程技术世界。您正在阅读的这本书就是从该课程演变而来的。
这本书的目标很简单:我想观察在物理世界中自然发生的各种现象,并弄清楚如何编写代码来模拟它们。
🌟那么,这本书究竟是什么呢?是科学书籍吗?答案是一个响亮的“不”。的确,我可能会研究来自物理学或生物学的主题,但我不会以特别高的学术严谨性来研究这些主题。相反,这本书是“受真实事件启发”的。我从科学和数学中提取必要的部分来构建自然的软件解释,并根据我的看法改变方向或跳过细节。
🌟这是一本艺术或设计书籍吗?我也会说不是。不管我的方法多么非正式,我仍然专注于算法及其相关的编程技术。当然,生成的演示是视觉的(表现为动画p5.js草图),但它们是算法和编程技术本身的字面可视化,仅用基本形状和灰度颜色绘制。然而,我希望您,亲爱的读者,可以使用您的创造力和视觉想法,使示例成为新的、引人入胜的作品。(如果您将每个草图都变成彩虹,我也不会抱怨。)
🌟最终,如果这本书是什么,它就是一本老式的编程教科书。虽然科学主题(牛顿物理学、细胞生长、进化)可能会引发一个章节,结果可能会激发艺术项目,但内容本身总是会归结为代码实现,特别关注面向对象编程。”
