程序设计思想与方法 绪论
程序设计思想与方法 绪论
教师信息 ·主讲 陆朝俊(电信学院计算机科学与工程系) 邮箱:1u-cj@cs.sjtu.edu.cn 资料:Etp://Etp.cs.sjtu.edu.cn:990/1u-cj ftp://public.sjtu.edu.cn 登录用户/口令:1ucj/pub1ic 办公室:电院楼群3-525 ·助教 Lu Chaojun,SJTU 2
Lu Chaojun, SJTU 2 教师信息 • 主讲 陆朝俊(电信学院计算机科学与工程系) 邮箱: lu-cj@cs.sjtu.edu.cn 资料: ftp://ftp.cs.sjtu.edu.cn:990/lu-cj ftp://public.sjtu.edu.cn 登录用户/口令:lucj/public 办公室: 电院楼群3-525 • 助教
教材和参考书 ·教材 -很遗憾,暂无合适的中文版教材 -目前使用:Python Programming:An Introduction to Computer Science..(电子版) 。 参考书 How to Think Like a Computer Scientist-Learning with Python.(电子版) Lu Chaojun,SJTU 3
Lu Chaojun, SJTU 3 教材和参考书 • 教材 – 很遗憾,暂无合适的中文版教材 – 目前使用: Python Programming: An Introduction to Computer Science. (电子版) • 参考书 – How to Think Like a Computer Scientist—Learning with Python.(电子版) Lu Chaojun, SJTU
关于课程名称 ·程序设计思想与方法”:对应于近年来国 外提出的新课程一“计算思维”. ·计算思维(computational thinking)是计算 机科学家利用计算机(计算过程)解决问题 时的思想和方法 -计算机科学(CS)是关于“计算”的学问. 一计算:并非大家平时所说的数学计算! CS提供了一套思想工具,可用来建立问题的 解法和科学过程的模型 Lu Chaojun,SJTU 4
Lu Chaojun, SJTU 4 关于课程名称 • “程序设计思想与方法”:对应于近年来国 外提出的新课程—“计算思维” . • 计算思维(computational thinking)是计算 机科学家利用计算机(计算过程)解决问题 时的思想和方法. – 计算机科学(CS)是关于“计算”的学问. – 计算:并非大家平时所说的数学计算! – CS提供了一套思想工具,可用来建立问题的 解法和科学过程的模型
真的有计算思维吗? ·人们在解决不同问题时有不同的思考方式 -数学思维:解数学问题 - 工程思维:工程设计 一形象思维:创作诗词 0 计算思维建立在由计算机执行的计算过程的能 力和限制之上. ·由于计算机的广泛应用,计算思维应成为人们的 基本能力. -与阅读,书写,算术能力一样! Lu Chaojun,SJTU 5
Lu Chaojun, SJTU 5 真的有计算思维吗? • 人们在解决不同问题时有不同的思考方式 – 数学思维:解数学问题 – 工程思维:工程设计 – 形象思维:创作诗词 – ...... • 计算思维建立在由计算机执行的计算过程的能 力和限制之上. • 由于计算机的广泛应用,计算思维应成为人们的 基本能力. – 与阅读,书写,算术能力一样!
计算思维的特点 ·是概念化思考,而非编程 ·是基本思考能力,而非机械的套用 ·是人在思考,而非计算机 与数学思维和工程思维相结合 ·是思想,而非人造物品 ·人人皆有,处处皆是 Lu Chaojun,SJTU 6
计算思维的特点 • 是概念化思考,而非编程 • 是基本思考能力,而非机械的套用 • 是人在思考,而非计算机 • 与数学思维和工程思维相结合 • 是思想,而非人造物品 • 人人皆有,处处皆是 Lu Chaojun, SJTU 6
计算思维的例子 ·问题的抽象,表示,建模 化难为易:分解,约简,嵌入,转换,模拟… 问题解法的效率,近似解,失误率.… ·结构化与模块化的思考 ·递归地思考 ·并行地处理,同步 。 问题难度与机器的能力 ·程序美学,系统设计的简洁与优雅 Lu Chaojun,SJTU 7
计算思维的例子 • 问题的抽象,表示,建模 • 化难为易:分解,约简,嵌入,转换,模拟... • 问题解法的效率,近似解,失误率… • 结构化与模块化的思考 • 递归地思考 • 并行地处理,同步 • 问题难度与机器的能力 • 程序美学,系统设计的简洁与优雅 Lu Chaojun, SJTU 7
计算思维的例子(续) ·预取和缓存 ·对最坏情况的预防,保护,恢复 ·启发式推理 ·规划,学习,调度 ·时空等不可兼得要素的权衡 Lu Chaojun,SJTU 8
计算思维的例子(续) • 预取和缓存 • 对最坏情况的预防,保护,恢复 • 启发式推理 • 规划,学习,调度 • 时空等不可兼得要素的权衡 • …… Lu Chaojun, SJTU 8
日常生活中的计算思维 ·小学算术:长除法,最大公约数 ·查字典:线性,二分 。排队:先来先处理 。整理扑克牌:插入排序 ·书包:预取与缓存 邮递员投递路线:尽可能只经过一次 ·烧菜:并行处理 ·工厂:流水线并行 Lu Chaojun,SJTU 9
日常生活中的计算思维 • 小学算术:长除法,最大公约数 • 查字典:线性,二分 • 排队:先来先处理 • 整理扑克牌:插入排序 • 书包:预取与缓存 • 邮递员投递路线:尽可能只经过一次 • 烧菜:并行处理 • 工厂:流水线并行 • …… Lu Chaojun, SJTU 9
计算思维对其他学科的影响 ·计算数学,计算几何,自动定理证明 ·计算生物学,生物信息学 算法博弈论 ·计算化学 ·计算物理学 ·人工智能,机器学习 ·医学影像技术 电子商务 ·计算机艺术:电影特效,计算机作曲绘画书法 Lu Chaojun,SJTU 10
计算思维对其他学科的影响 • 计算数学,计算几何,自动定理证明 • 计算生物学,生物信息学 • 算法博弈论 • 计算化学 • 计算物理学 • 人工智能,机器学习 • 医学影像技术 • 电子商务 • 计算机艺术:电影特效,计算机作曲绘画书法 • …… Lu Chaojun, SJTU 10