内容简介
第1部分 引言
第1章 计算机科学与媒体计算概述
1.1 什么是计算机科学
1.2 编程语言
1.3 计算机理解的东西
1.4 媒体计算:为什么要数字化媒体
1.5 每个人的计算机科学
1.5.1 它与沟通有关
1.5.2 它与过程有关
1.5.3 你可能需要它
问题
深入学习
第2章 编程简介
2.1 编程是关于命名的
文件及其名称
2.2 Python中的编程
2.3 JES中的编程
2.4 JES中的媒体计算
2.4.1 显示图片
2.4.2 播放声音
2.4.3 为值命名
2.5 制作一个程序
函数:真正像数学的函数接受输入
编程小结
问题
深入学习
第3章 创建和修改文本
3.1 字符串:在计算机中制作人类文本
从字符串制作字符串:讲故事
3.2 用for来拆分字符串
3.2.1 测试这些字母
3.2.2 拆分字符串,合并字符串
3.2.3 用索引拆分字符串
3.2.4 使用索引实现镜像、反转和分离字符串
3.2.5 使用关键字密码对字符串进行编码和解码
3.3 按单词拆分字符串
3.4 字符串内部是什么
3.5 计算机能做什么
编程小结
程序片段
字符串程序片段
问题
深入学习
第4章 使用循环修改图片
4.1 如何编码图片
4.2 操作图片
浏览图片
4.3 更改颜色值
4.3.1 在图片中使用循环
4.3.2 增加/减少红色(绿色、蓝色)
4.3.3 测试程序:这真的有效吗
4.3.4 一次更改一种颜色
4.4 创造日落
理解函数
4.5 变亮和变暗
4.6 创造负片
4.7 转换为灰度图
4.8 用索引指定像素
编程小结
图片程序片段
像素程序片段
颜色程序片段
问题
深入学习
第5章 使用选择的图片技术
5.1 替换颜色:红眼、棕褐色调,海报化
5.1.1 减少红眼
5.1.2 棕褐色调和海报化图片:使用条件选择颜色
5.2 比较像素:边缘检测
5.3 背景消除
5.4 抠像
5.5 在范围内着色
5.5.1 添加边框
5.5.2 加亮图片的右半部分
5.6 选择无需再次测试
编程小结
问题
深入学习
第6章 按位置修改像素
6.1 更快地处理像素
6.1.1 用range在像素上循环
6.1.2 编写更快的像素循环
6.2 镜像图片
6.3 复制和转换图片
6.3.1 复制
6.3.2 复制到较小的图片和修改
6.3.3 复制和引用
6.3.4 创建拼贴图
6.3.5 通用复制
6.3.6 旋转
6.3.7 缩放
6.4 组合像素:模糊
6.5 混合图片
6.6 绘制图像
6.6.1 使用绘图命令绘图
6.6.2 矢量和位图表示
6.7 程序作为指定绘图的过程
我们为什么要编写程序
编程小结
问题
深入学习
第2部分 声音
第7章 用循环修改声音
7.1 声音如何编码
7.1.1 声音的物理学
7.1.2 研究不同的声音
7.1.3 编码声音
7.1.4 二进制数和二进制补码
7.1.5 存储数字化的声音
7.2 操作声音
7.2.1 打开声音和操作样本集
7.2.2 使用JES MediaTools
7.2.3 循环
7.3 改变声音的音量
7.3.1 增加音量
7.3.2 真的有效吗
7.3.3 减小音量
7.3.4 使用数组索引表示法
7.3.5 在声音中理解函数
7.4 规格化声音
产生削波
编程小结
声音文件函数和片段
声音对象函数和片段
面向样本的函数和片段
问题
深入学习
第8章 修改范围中的样本
8.1 对声音的不同部分进行不同操作
复习索引数组表示法
8.2 拼接声音
8.3 通用剪辑和复制
8.4 反转声音
8.5 镜像
8.6 关于函数和作用域
编程小结
问题
深入学习
第9章 通过组合片段制作声音
9.1 通过叠加合成声音
9.2 混合声音
9.3 创建回声
9.3.1 创建多个回声
9.3.2 创建和弦
9.4 采样键盘的工作原理
采样作为算法
9.5 叠加式合成
9.5.1 制作正弦波
9.5.2 叠加正弦波
9.5.3 检查结果
9.5.4 方波
9.5.5 三角波
9.6 现代音乐合成
9.6.1 MP3
9.6.2 MIDI
编程小结
问题
深入学习
第10章 构建更大的程序
10.1 自顶向下设计程序
10.1.1 自顶向下的设计实例
10.1.2 设计顶层函数
10.1.3 编写子函数
10.2 自底向上设计程序
自底向上过程的示例
10.3 测试程序
测试边界条件
10.4 关于调试的提示
10.4.1 寻找要担心的语句
10.4.2 查看变量
10.4.3 调试冒险游戏
10.5 算法和设计
10.6 连接到函数外的数据
10.7 在JES之外运行程序
编程小结
问题
深入学习
第3部分 文本、文件、网络、数据库和统一媒体
第11章 使用方法操作文本和文件
11.1 作为统一媒体的文本
11.2 操作部分字符串
11.2.1 字符串方法:介绍对象和点表示法
11.2.2 列表:强大的结构化文本
11.2.3 字符串没有字体
11.3 文件:放置字符串和其他东西的地方
11.3.1 打开和操作文件
11.3.2 生成套用信函
11.3.3 从因特网读取和操作数据
11.3.4 从网页上抓取信息
11.3.5 读取CSV数据
11.3.6 编写程序
11.4 Python标准库
11.4.1 再谈导入和你自己的模块
11.4.2 用随机数为程序添加不可预测性
11.4.3 利用库读取CSV文件
11.4.4 Python标准库的例子
编程小结
通用程序片段
字符串函数、函数、方法和片段
列表函数和片段
问题
深入学习
第12章 高级文本技巧:Web和信息
12.1 网络:从网上获取文本
12.1.1 自动访问CSV数据
12.1.2 访问FTP
12.2 使用文本在媒体之间转换
12.3 在媒体之间移动信息
12.4 使用列表作为媒体表示的结构文本
12.5 在图片中隐藏信息
将声音隐藏图片内
编程小结
通用程序片段
问题
深入学习
第13章 为Web创建文本
13.1 HTML:网页的表示法
13.2 编写程序生成HTML
制作主页
13.3 数据库:存储文本的地方
13.3.1 关系数据库
13.3.2 使用散列表的示例关系数据库
13.3.3 使用SQL
13.3.4 用数据库构建网页
问题
深入学习
第4部分 影片
第14章 创建和修改影片
14.1 生成动画
14.2 使用视频源
视频操作示例
14.3 自底向上建立视频效果
问题
第15章 速度
15.1 关注计算机科学
15.2 什么使程序更快
15.2.1 计算机真正理解的是什么
15.2.2 编译器和解释器
15.2.3 什么限制了计算机的速度
15.2.4 它真不一样吗
15.2.5 让搜索更快
15.2.6 永远不会完成或无法编写的算法
15.2.7 为什么Photoshop比JES更快
15.3 什么使计算机更快
15.3.1 时钟频率和实际计算
15.3.2 存储:什么使计算机变慢
15.3.3 显示
问题
深入学习
第16章 函数式编程
16.1 使用函数让编程更容易
16.2 使用映射和归约的函数式编程
16.3 针对媒体的函数式编程
不改变状态的媒体操作
16.4 递归:强大的思想
16.4.1 递归目录遍历
16.4.2 递归的媒体函数
编程小结
函数式编程
问题
第17章 面向对象编程
17.1 对象的历史
17.2 使用海龟
17.2.1 类和对象
17.2.2 向对象发送消息
17.2.3 对象控制其状态
17.3 教海龟新技巧
17.3.1 覆盖原有的海龟方法
17.3.2 一次使用多只海龟
17.3.3 带有图片的海龟
17.3.4 跳舞的海龟
17.3.5 递归和海龟
17.4 面向对象的幻灯片放映
使Slide类更加面向对象
17.5 面向对象的媒体
17.6 盒子乔
17.7 为什么要对象
编程小结
面向对象编程
图形方法
Turtle和World的方法
问题
深入学习
附录A Python快速参考
A.1 变量
A.2 函数创建
A.3 循环和条件
A.4 运算符和表示函数
A.5 数字函数
A.6 序列操作
A.7 字符串转义
A.8 有用的字符串方法
A.9 文件
A.10 列表
A.11 字典、散列表或关联数组
A.12 外部模块
A.13 类
A.14 函数式方法
参考资料