程序设计思想与方法.ppt_第1页
程序设计思想与方法.ppt_第2页
程序设计思想与方法.ppt_第3页
程序设计思想与方法.ppt_第4页
程序设计思想与方法.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计思想与方法,董笑菊 电子信息与电气工程学院 计算机科学与工程系,教师信息,办公地点:电院楼群3号楼327室 电话:34205060转602 E-mail 网址 /xiaoju/CT,助教,? ? 作业 请确定通过Python验证后发给助教 每个星期日晚上12点之前,课程信息,教材 John M. Zelle Python Programming: An Introduction to Computer Science 参考资料 Jeffrey Elkner, Allen B. Downey, and Chris Meyers How to Think Like a Computer Scientist: Learning with Python. /thinkCSpy/ Python学习手册_第3版,课程信息,下载python 软件的地址 / cs190c:textsoft09 python 2.5/2.6 版,成绩组成,考试 作业、大作业 平时上机(共5次) 周次:3, 6, 9, 12, 15 时间:下午12:55到15:30(三学时) 地点:计算中心?房间 出勤,7,7,7,关于课程,课程名称是“程序设计思想与方法”, 教学内容对应于近年来国际上提出的 新课程“计算思维” 计算思维应成为所有人的基本能力 与阅读, 书写, 算术能力一样!,8,8,8,计算思维 computational thinking,计算思维是计算机科学家利用计算机解决问题时的思想和方法 计算机科学是关于“计算”的学问 计算思维建立在由人或机器执行的计算过程的能力和限制之上 了解计算机的能力,并充分利用 计算机只能按照给定的指令一步步做,无跳跃 按照计算机的特点去思考,计算思维的特点,是概念化思考, 而非编程 是基本能力, 而非机械的生搬硬套 是人的思考方式, 而非计算机的 是数学思维和工程思维的互补及组合 是思想, 而非人造物 人人皆有, 处处皆是,9,计算思维的例子,问题抽象, 表示, 建模 问题难度与机器的能力 问题解决的效率, 近似解, 失误率 变难为易: 分解, 约简, 嵌入, 转换, 模拟 递归地思考 并行处理 类型检查 程序美学, 系统设计的简洁与优雅,10,计算思维的例子(续),模块化 预取和缓存 图像缓存 对最坏情况的预防, 保护, 恢复 数据丢失 同步 启发式推理 规划, 学习, 调度 时空等不可兼得要素的权衡 ,11,日常生活中的计算思维,小学算术: 长除法, 最大公约数 查字典: 线性, 二分 排队: 先来先处理 整理扑克牌: 插入排序 书包: 预取与缓存 邮递员投递路线: 尽可能只经过一次 烧菜: 并行处理 生产: 流水线 ,12,计算思维对其他学科的影响,统计学中的机器学习 计算生物学, 生物信息学 计算博弈论 计算化学, 纳米计算 计算物理学, 量子计算 计算数学, 计算几何, 计算机证明定理 工程中的计算机模拟 医学影像分析 电子商务, 计算广告学 电影特效, 计算机作曲, NBA统计分析 ,13,对本课程的定位,学习计算机科学解决问题的思想方法,应用于其他专业领域 不是程序设计语言课程! 本课程需要编程, 以加深对计算思维的理解 坏消息: 学习编程语言需要掌握非常繁琐的细节 好消息: Python语言非常简单,易学易用 也不是算法和数据结构课程! 当然会学习这方面的一些基本技术,14,计算机与程序,问题的提出,当今时代,计算机几乎无处不在: 企业管理 产品设计 气象预报 电影制作 工业控制 游戏, 写文章, 上网, 问题:计算机究竟是什么?怎么能做这么多不同的事情?,16,17,17,17,通用计算机,计算机是具有如下特征的机器: 能够存储和处理信息 输入处理输出 信息处理由程序控制 计算机程序是一个详细的逐步执行的指令序列,告诉计算机该做什么 程序可改变: 不同的程序完成不同的处理任务 人们造了各种各样的计算机, 但: 所有计算机具有相同的能力!,软件统治硬件,程序决定了计算机做什么 没有程序, 计算机只是一堆废铁 程序设计: 编写软件的过程 程序设计极具挑战性 既要具备大视野 又要关注细枝末节 为何学程序设计? 做计算机的主人 乐趣 培养问题求解能力,18,什么是计算机科学?,并非研究计算机! 正如天文学不是研究望远镜的. EWD CS要回答的基本问题: 什么是可计算的? 对此问题的回答有三种方式: 实际设计一个解决问题的算法 理论分析问题的可解性 无解的, 不是能行可解的 通过实验来研究问题,19,硬件基本知识,20,主存,CPU,输入设备,输出设备,次级存储器,硬件基本知识(续),中央处理器(CPU) 执行运算 只提供简单的运算, 如加法, 比较等 高速:每秒百万条指令 存储器存储程序和数据 CPU只能直接访问主存(RAM) 主存快但易失, 次级存储器慢但持久 输入/输出设备 人与计算机交互,21,硬件基本知识(续),提取执行周期(fetch execute cycle) 提取:从存储器取指令 解码:指令表示什么 执行:做相应的动作,22,程序设计语言,问:用什么语言告诉计算机做什么? 答:用精确无歧义的程序设计语言 精确的语法和语义,23,程序设计语言,有不同层次的程序设计语言 计算机自己的母语: 机器语言 例如: 0000010000000001. 是Intel8086能理解的一条指令. 把机器语言用助忆符表示: 汇编语言 上例即: ADD AL,1. 需要汇编器处理后机器才懂. 适合人用的语言: 高级语言 如: x = y + 1. 需要编译器或解释器翻译后机器才懂.,24,高级语言,25,2013年1月编程语言排行榜榜单(No. 8 Python) /html/2013/ITzixun_0107/107.html,高级语言,高级语言的翻译 编译 源代码编译成目标代码, 再执行 一次编译, 多次执行. 解释 源代码直接被解释执行 每次执行都要重新解释.,26,高级语言,高级语言的翻译 编译 源代码编译成目标代码, 再执行 一次编译, 多次执行.,27,高级语言,高级语言的翻译 编译 解释 源代码直接被解释执行,每次执行都要重新解释,28,Python,Python采用编译/解释混合方式 先编译成字节码, 再解释执行 安装Python

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论