计算机问题求解 – 论题1-7 - 不同的程序设计方法

Slides:



Advertisements
Similar presentations
Warming up. Heavy! Difficult! Hard! Tired! 1. Easy! 2. Fast! 3. Free!
Advertisements

桂林市 2011 年高三第二次调研考 试质量分析暨备考教学建议 桂林市教育科学研究所 李陆桂. 二调平均分与一调、 2010 广西高考英语平均分的比较 科目 类别 英语 文科文科 2010 年广西 一调 二调 与 10 年广西相差
New Strategies for the New Section Speaking in New TOEFL iBT Robin Lin, New Oriental Edu Group.
系統分析與設計 楊子青 H-1 H 、物件導向技術 n 物件導向的基本概念 – 物件、類別 – 封裝、繼承 – 同名異式 ( 多型 ) 、超荷 ( 過載 ) n 物件導向分析與設計及塑模工具 n UML 塑模工具.
軟體工程 -物件導向程式設計與UML系統分析實作
第一章 绪论.
第一章 認識程式語言.
第8章 面向对象的软件工程 8.1 软件工程的新途径 8.2 面向对象建模 8.3 对象模型 8.4 动态模型 8.5 功能模型.
新建本科院校 应用型人才培养若干问题探析 张德江.
第一章 資料結構導論 1-1 資料結構簡介 1-2 認識程式設計 1-3 演算法效能分析 1-4 物件導向程式設計與Java.
Ch02物件導向程式設計 物件導向系統分析與設計.
程序设计基础 贺辉 图书馆三楼办公室(进馆左侧上楼)
中职英语课程改革中 如何实践“以就业为导向,服务为宗旨”的办学理念
He said: What is a team? Team is not to let the other person failed, and do not let any team member fail!
第八章 信息系统开发概述.
12年國教 中正高中課程發展分享 簡菲莉
GIS教学体系探讨 ——以北京大学本科教育为例 邬 伦
第二章 UML簡介 課前指引 本章介紹什麼是UML以及利用圖形來塑模資訊系統的好處在哪裡。文中也介紹了何謂「4+1的觀點」、以及簡述各項UML圖形的使用目的。並且,我們從靜態以及動態這兩個觀點來分類、介紹各圖形的使用時機。
即兴中文讲演比赛 On-Site Speech 新型比赛项目
B500 主控制程序 B5000 Master Control Program
分析抗焦慮劑/安眠劑之使用的影響因子在重度憂鬱症及廣泛性焦慮症病人和一般大眾的處方形態
第一章 軟體工程 (Software Engineering Introduction)
Chapter 8 Liner Regression and Correlation 第八章 直线回归和相关
新世代計算機概論 第14章 程式語言.
摘要的开头: The passage mainly tells us sth.
59 中 张丽娟 学习目标: 1. 识记并理解运用 6 个单词和 5 个短语。 (source, accessible, network, access, via, create come up with, from the moment on, consist of, go down , at the.
Minimum Spanning Trees
Homework 4 an innovative design process model TEAM 7
Unit 4 I used to be afraid of the dark.
Been During the Vacation?
第1章 程式語言與Visual Basic的基礎
臺北市立大學 資訊科學系(含碩士班) 賴阿福 CS TEAM
軟體原型 (Software Prototyping)
H、物件導向技術 物件導向的基本概念 物件、類別 封裝、繼承 同名異式(多型) 、超荷(過載) 物件導向分析與設計及塑模工具 UML塑模工具.
單元3:軟體設計 3-2 順序圖(Sequence Diagrams)
An Introduction to Computer Science (計算機概論)
C++ 與 物件導向 程式設計概念簡介 魏天君 2018/12/3.
Chapter 9 Intelligence.
编译原理专题实验 2013 西安交通大学.
Formal Pivot to both Language and Intelligence in Science
邏輯設計 Logic Design 顧叔財, Room 9703, (037)381864,
Unit 1.
解读设题意图,探究阅读策略 年高考试卷题型(阅读理解)分析及对策
Abstract Data Types 抽象数据类型 Institute of Computer Software 2019/2/24
IBM SWG Overall Introduction
Unit 9 Have you ever been to a museum?
人教版小学六年级品德与社会第一单元 第一课:科技带给我们什么 协雄乡中心小学教师:白玛德西.
研究技巧與論文撰寫方法 中央大學資管系 陳彥良.
資料結構與C++程式設計進階班 課程大綱 講師:洪安.
常宝宝 北京大学计算机科学与技术系 数据结构(三) 常宝宝 北京大学计算机科学与技术系
為什麼要學 OOP?.
虚 拟 仪 器 virtual instrument
突出语篇语境,夯实词汇语法 一模试卷单选完形分析 及相应的二轮复习对策 永嘉罗浮中学 周晓媚.
Computational Thinking & Programming
关联词 Writing.
課程報告 使用開放原始碼工具實作軟體產品線方法
以阅读策略为抓手 以教师引领为提升 年温州一模阅读理解分析及对策
成才之路 · 英语 人教版 · 必修1 路漫漫其修远兮 吾将上下而求索.
Increasing the ROI of Social Media Marketing
程式語言 程式語言發展史 資料型態 程式指令 程序定義和使用.
Unit 1 School life 走进高考·文化品格渗透.
计算机问题求解 – 论题1-5 - 数据与数据结构 2018年10月16日.
名词从句(2).
管理學報告 Chapter 4 Thinking critically about Ethics 指導老師 : 任維廉 教授
立足语境,放眼词块,螺旋上升 年温州一模试卷题型分析 及相应的二轮复习对策 by Sue March 14,2013.
钱炘祺 一种面向实体浏览中属性融合的人机交互的设计与实现 Designing Human-Computer Interaction of Property Consolidation for Entity Browsing 钱炘祺
第一讲 面向对象方法学与信息系统建模.
程式語言簡介 2019/7/17 明乘中學編製.
面向对象程序设计 C++教程 西安工业大学 于帆.
健康按摩法 請開音樂.
Presentation transcript:

计算机问题求解 – 论题1-7 - 不同的程序设计方法 计算机问题求解 – 论题1-7 - 不同的程序设计方法 2018年10月30日

Part I 不同的抽象

问题1: 你听说过“历史往往有惊人的 相似之处”这句话吗?有什么 感触吗?

1919 1903 相对论、量子力学、基本粒子、宇宙学 1954 二次大战,以及无数局部战争与内战 软件危机

问题2: 抽象, 它的核 心价值 是什么? 控制复杂性 籍里柯: 梅杜莎之筏 1819; 491716cm; 巴黎卢浮宫

问题3: 在你们使用的程序设计语言 中,哪些地方体现了利用抽 象控制复杂性的思想? 过程抽象?数据抽象?

最长的一条直线

“侏罗纪”时代的语言 - Fortran The overall success of Fortran is difficult to overstate: It dramatically changed the way computers are used. This is, of course, in large part due to its being the first widely used high-level language. In spite of the inadequacies of Fortran, the momentum of the huge investment in Fortran software, among other factors, has kept it in use for nearly 60 years.

“成功悖论” – Algol 60 就凭这个称呼,Algol该算得上“成功语言”吧!

“适用至上” - COBOL 你听说过Y2K问题吗? 其实,还有两个绕不过去的名字:IBM, DoD The story of COBOL is, in a sense, the opposite of that of ALGOL 60. Although it has been used for 65 years, COBOL has had little effect on the design of subsequent languages. Perhaps the most important reason why COBOL has had little influence is that few have attempted to design a new language for business applications since it appeared. 其实,还有两个绕不过去的名字:IBM, DoD

问题4: 阅读材料的章节标题是 “Programming Paradigm”。 Paradigm是什么意思? Webster字典的解释:A model or pattern for something that may be copied 阅读材料上的解释:A programming paradigm is a way of thinking about the computer, around which other abstractions are built.

问题5: 你怎么理解阅读材料中对于 “way of thinking about computer”的解释? “离机器远/近”是指什么?

Part II 不同的抽象结果

问题6: 为什么C语言被称为 “imperative language”, 这样 的语言中你认为最突出的过程抽 象体现在何处? According to Longman Dictionary Imperative: expressing an order

问题7: 你能说说C语言中如果体现数 据抽象吗? 如何理解“数据类型”?

从数据类型到抽象数据类型 整型数 (integer) 对计算机中表示的整数进行抽象 抽象对象:固定长度的二进码 抽象模型:数学中的整数(子集) 实例化:语言中的变量 允许的操作:语言的语义确定 队列 (queue) 对物理世界中的对象进行抽象 抽象对象:“先进先出”的“序结构” 抽象模型:抽象数据类型 实例化:“创建”一个实例 允许的操作:本身是抽象数据类型定义的组成部分,也是“全部”,例如:empty, front, add, remove, … For a taste: void remove(Quere q) Precondition: empty(q) is false; Postcondition: paired with add keeping the status of queue unchanged

Object-Oriented: the Idea 模拟物理世界中的“排队等候处理…” 服务申请 选择队列 接受服务 customer 受理客户入排队请求 根据cashier状态输送客户 维护队列 发送状态信息 处理客户服务 Checkout queue cashier

问题8: 你注意到这句话吗?它是否能反映 面向对象方法为什么会流行,并替 代传统的imperative方法? 严格地说,现在流行的是增加了对支持面向对象程序设计机制的imperative languages, 而不是“pure”面向对象语言。

问题9: Encapsulation和Inheritance是 Object-Oriented Programming的 重要概念,你能以前面的例子为背 景解释它们是如何体现通过抽象控 制复杂性的思想的吗?

C++一般被认为是imperative 语言增加了对Object-Oriented 的支持机制而设计的。你能明 确指出哪些是“增加”的吗? 问题10: C++一般被认为是imperative 语言增加了对Object-Oriented 的支持机制而设计的。你能明 确指出哪些是“增加”的吗? 回答这个问题的关键是什么是Object-Oriented最核心的features: abstract data type, inheritance, and dynamic binding.

问题11: 与imperative language相对的是 declarative language。你能根据 书上对函数式与逻辑式程序设计的 简短描述说说为什么将这类语言称 为“declarative”吗?

算法即函数:函数式语言 这也可以看作函数sum-salaries的递归定义。 数据的形式和“程序”(函数)是一样的 - list

从“前提”到“结论” 在logic programming中,“推理”和“计算”是统一的。 Prolog是通过一个“虚拟机”(推理引擎)来实现的。 它不仅要决定如何做,还要决定作什么。也就是说,程序员不仅要考虑程序的行为,还得考虑interpreter的行为。

问题12: 谁都可以设计一个程序设计语言,但能流行的总有它的道理! artificial language constructed in 1887 by L.L. Zamenhof, a Polish oculist, and intended for use as an international second language. 谁都可以设计一个程序设计语言,但能流行的总有它的道理!

A Final Remark So-called “Turing complete” language

Beyond the Final… 客户提的要求 项目经理理解的 分析师设计的 程序员实现的 商务代表描述的 项目文档反映的 实际安装功能 用户账单体现的 后续技术支持 用户实际想的

课外作业 1. 用你现在使用的语言设计并实现抽象数据类型“复数”, 允许的操作包括:加减乘除、抽取复数的两个部分、 由两 个浮点值(常量、变量或者表达式)构造一个复数。(你能说 出仅用C的成分与可以用C++的差别吗?) 2. 前面引用了一幅程序设计语言“世系图”。除了课堂上提 到的,你还能在图中发现什么引起你注意的现象,并能发表 一点观点吗?(这张图出处如下:Robert Sebesta: Concepts of Programming Languages, 11th ed., Pearson 2016, p.59) 3.在网上查一下:什么是scripting language, 它们和C++ 这样的程序设计语言有什么不同?