计算机程序设计课程往往是枯燥乏味的,而本书根据教育理论,开发了一种新的教学方法,介绍如何通过多媒体编程来学习计算机程序设计,将趣味性和实用性融于枯燥的编程课程的教学当中。本书方法独特新颖,实例通俗易懂,可帮助读者快速入门并深入掌握编程技能,是一本理论联系实际的程序设计教程。
本书使用的编程语言是Python,这是因为Python强大实用(比如网站开发)、易于入门,计算机科学专业和非专业人士都可以学习。本书以Python数字多媒体编程为主线,从图像、声音、文本和电影这些学生已经熟知的内容开始,讲解它们的处理方法,其中穿插介绍计算机科学与程序设计的基础知识。在讲解知识点的时候也独具匠心,先介绍容易理解的基本概念,如赋值、顺序操作、迭代、条件式、函数定义等,逐步涉及抽象内容,如算法复杂度、程序效率、计算机组成、层次式分解、递归、面向对象等。本书还提供了大量例题和习题,方便教学。
出版者的话
译者序
第2版前言
第1版前言
第一部分 导 论
第1章 计算机科学与媒体计算导论 2
1.1 计算机科学是关于什么的 2
1.2 编程语言 4
1.3 计算机理解什么 5
1.4 媒体计算:为什么要把媒体数字化 7
1.5 大众的计算机科学 8
1.5.1 计算机科学与交流有关 8
1.5.2 计算机科学与过程有关 9
习题 9
第2章 编程导论 11
2.1 编程与命名有关 11
2.2 python编程 13
2.3 jes编程 13
2.4 jes媒体计算 15
.2.4.1 显示图片 18
2.4.2 播放声音 19
2.4.3 数值命名 20
2.5 构建程序 22
习题 27
第3章 使用循环修改图片 30
3.1 图片的编码 30
3.2 处理图片 35
3.3 改变颜色值 40
3.3.1 在图片上运用循环 40
3.3.2 增/减红(绿、蓝) 42
3.3.3 测试程序:它真的能运行吗 45
3.3.4 一次修改一种颜色 46
3.4 制作日落效果 47
3.5 亮化和暗化 51
3.6 制作底片 52
3.7 转换到灰度 53
习题 55
第4章 修改区域中的像素 58
4.1 复制像素 58
4.2 图片镜像 60
4.3 复制和转换图片 66
4.3.1 复制 66
4.3.2 制作拼贴图 72
4.3.3 通用复制 74
4.3.4 旋转 75
4.3.5 缩放 77
习题 81
第5章 高级图片技术 84
5.1 颜色替换:消除红眼、深褐色调和
色调分离 84
5.1.1 消除红眼 86
5.1.2 深褐色调和色调分离:使用条件式
选择颜色 88
5.2 合并像素:图片模糊化 92
5.3 比较像素:边缘检测 93
5.4 图片融合 94
5.5 背景消减 96
5.6 色键 98
5.7 在图像上绘图 101
5.7.1 使用绘图命令 102
5.7.2 向量和位图表示 104
5.8 指定绘图过程的程序 105
习题 107
第二部分 声 音
第6章 使用循环修改声音 110
6.1 声音是如何编码的 110
6.1.1 声音的物理学 110
6.1.2 探索声音的样子 113
6.1.3 声音编码 115
6.1.4 二进制数和二进制补码 116
6.1.5 存储数字化的声音 117
6.2 处理声音 118
6.2.1 打开声音并处理样本数据 118
6.2.2 使用jes媒体工具 121
6.2.3 循环 123
6.3 改变音量 123
6.3.1 增大音量 123
6.3.2 真的行吗 124
6.3.3 减小音量 127
6.3.4 理解声音函数 128
6.4 声音规格化 128
习题 131
第7章 修改一段样本区域 133
7.1 用不同方法处理不同声音片段 133
7.2 剪接声音 135
7.3 通用剪辑和复制 140
7.4 声音倒置 142
7.5 镜像 143
习题 144
第8章 通过合并片段制作声音 146
8.1 用加法组合声音 146
8.2 混合声音 147
8.3 制造回声 148
8.3.1 制造多重回声 149
8.3.2 制作和弦 149
8.4 采样键盘工作原理 150
8.5 加法合成 153
8.5.1 制作正弦波 153
8.5.2 把正弦波叠加起来 155
8.5.3 检查结果 156
8.5.4 方波 157
8.5.5 三角波 158
8.6 现代音乐合成 160
8.6.1 mp3 161
8.6.2 midi 161
习题 162
第9章 构建更大的程序 164
9.1 自顶向下设计程序 164
9.1.1 自顶向下设计示例 165
9.1.2 设计顶层函数 166
9.1.3 编写子函数 168
9.2 自底向上设计程序 171
9.3 测试程序 172
9.4 调试技巧 174
9.4.1 找出担心的语句 174
9.4.2 查看变量 175
9.4.3 调试冒险游戏 176
9.5 算法和设计 179
9.6 在jes之外运行程序 180
习题 181
第三部分 文本、文件、网络、
数据库和单媒体
第10章 创建和修改文本 186
10.1 文本作为单媒体 186
10.2 字符串:构造和处理字符串 187
10.3 处理部分字符串 189
10.3.1 字符串方法:对象和点号语法
简介 190
10.3.2 列表:强大的结构化文本 191
10.3.3 字符串没有字体 194
10.4 文件:存放字符串和其他数据的
地方 194
10.4.1 打开文件和操作文件 195
10.4.2 制作套用信函 197
10.4.3 编写程序 197
10.5 python标准库 201
10.5.1 再谈导入和私有模块 202
10.5.2 另一个有趣模块:random 202
10.5.3 python标准库的例子 204
习题 205
第11章 高级文本技术:web和信息 208
11.1 网络:从web获取文本 208
11.2 通过文本转换不同媒体 211
11.3 在图片中隐藏信息 216
习题 219
第12章 产生web文本 221
12.1 html:web的表示方法 221
12.2 编写程序产生html 225
12.3 数据库:存放文本的地方 229
12.3.1 关系型数据库 231
12.3.2 基于散列表的关系型数据库示例 231
12.3.3 使用sql 234
12.3.4 使用数据库构建web页面 236
习题 237
第四部分 电 影
第13章 制作和修改电影 240
13.1 产生动画 241
13.2 使用视频源 247
13.3 自底向上制作视频效果 250
习题 254
第五部分 计算机科学议题
第14章 速度 258
14.1 关注计算机科学 258
14.2 什么使程序速度更快 258
14.2.1 什么是计算机真正理解的 258
14.2.2 编译器和解释器 259
14.2.3 什么限制了计算机的速度 263
14.2.4 让查找更快 265
14.2.5 永不终止和无法编写出的算法 266
14.2.6 为什么photoshop比jes更快 268
14.3 什么使计算机速度更快 268
14.3.1 时钟频率和实际的计算 268
14.3.2 存储:什么使计算机速度慢 269
14.3.3 显示 270
习题 270
第15章 函数式编程 272
15.1 使用函数简化编程 272
15.2 使用map和reduce进行函数式编程 275
15.3 针对媒体的函数式编程 277
15.4 递归:一种强大的思想 279
15.4.1 递归式目录遍历 284
15.4.2 递归式媒体函数 286
习题 287
第16章 面向对象编程 289
16.1 对象的历史 289
16.2 使用“小海龟” 290
16.2.1 类和对象 290
16.2.2 创建对象 290
16.2.3 向对象发送消息 291
16.2.4 对象控制自己的状态 292
16.2.5 小海龟的其他函数 293
16.3 教小海龟新的技艺 295
16.4 面向对象的幻灯片 297
16.4.1 joe the box 300
16.4.2 面向对象的媒体 302
16.4.3 为什么使用对象 306
习题 307
附录a python快速参考 309
参考文献 313
《C++从入门到精通(微视频精编版)》内容简介:本书从初、中级读者的角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使
《互联网+教育:技术应用》内容简介:本书围绕教育发展过程中不断出现的新需求及应对各种需求的技术应用,从互联网+教育在教育信息
《理智与情感》内容简介:人文社本版“奥斯丁文集”首次亮相 简·奥斯丁处女作,与《傲慢与偏见》堪称姐妹篇 简·奥斯丁在十九岁时
MATLAB 在数学建模中的应用-(第2版) 本书特色 《matlab在数学建模中的应用》(第2版)一书是《matlab在数学建模中的应用》一书的第2版...
《素茶书》内容简介:茶是中国人的生活之需,也是不可或缺的精神饮料。它平易亲和又清雅高远,与文人的性情十分贴合。"大家茶坊"丛
《拉通》内容简介:怎样加快项目或订单的获取和交付,实现高效增长?怎样提高部门之间、员工之间的协作效率或人效?怎样判断并从根
SQL语法简洁,使用方式灵活,功能强大,已经成为当今程序员不可或缺的技能。本书是深受世界各地读者欢迎的SQL经典畅销书,内容丰
《细胞神经网络动力学》主要内容包括:细胞神经网络动力学是神经网络与动力系统交叉结合的一门新型学科,《细胞神经网络动力学》
微型计算机技术及应用:习题、实验题与综合训练题集(第3版) 本书特色 本书特色内容: ·本书是清华大学计算机系列教材和北京市高等教育精品教材立项项目,是在第2版...
《高效能团队模式》内容简介:高效能软件开发团队是任何组织能够持续交付价值的关键。本书主要介绍了高效能团队模式——团队拓扑,
网络大事记篇-中国互联网20年 本书特色 20 年,中国互联网从无到有,从小到大,从大到强,放在中国历史长河上看,堪称是开天辟地的时代传奇。互联网作为人类文明的...
《全国法律硕士专业学位研究生入学联考考试指南(第二十二版)》内容简介:本书是由全国法律专业学位研究生教育指导委员会组编的针
非线性随机时滞神经网络-稳定性分析与脉冲镇定 本书特色 本专著的内容是研究非线性*时滞神经网络系统的稳定与脉冲镇定.这些系统包括脉冲*泛函系统,*递归时滞神经网...
本项目是首部对人类深空探测活动进行系统、完整、科学的描述与分析的著作,融研究性、资料性、工具性于一体,对航天科技工作者有
JakartaTomcat是世界上使用最广的Javaservlet与JSP平台。除了作为Sun公司servlet及JSP规格的参考实现之外,在几十万个网站中也占
骇客 内容简介 本书介绍了游戏设计、动画设计的基本知识、要素等,并展示了一些设计作品,供读者参考。骇客 目录 CYBER CONNECT公司主页欢迎来到CYBE...
《绘画的捷径》内容简介:本书共14章,前半部分内容主要包括为什么画、画什么、绘画基础、有效练习、人体造型等内容,使读者有一个
在内容上,本书结合使用情景,全面、深入、细致地分析Android系统的源代码,涉及到Linux内核层、硬件抽象层(HAL)、运行时库层(
《BeginningJavaObjects中文版从概念到代码(第2版)》是关于软件对象和Java的,但并不是纯粹地介绍Java语言,而是强调如何从对象模
Thisvolumeoffersacritical,philosophicalandepistemologicalframeworktounderstandbe...