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