一、计算思维与程序设计

1、计算思维

①第3种人类思维特征

- 逻辑思维:推理和演绎,以数学为代表,A->B B->C A->C
- 实证思维:实验和验证,以物理为代表,引力波<-实验
- 计算思维:设计和构造,计算机为代表,汉诺塔递归

②抽象和自动化

- 计算思维:Computational Thinking
- 抽象问题的计算过程,利用计算机自动化求解
- 计算思维是基于计算机的思维方式

③计数求和:计算1-100的计数和

a.逻辑思维

b.计算思维

④圆周率的计算

a.逻辑思维

b.计算思维

⑤汉诺塔问题

⑥天气预报

⑦量化分析

⑧抽象问题的计算过程,利用计算机自动化求解

- 计算思维基于计算机强大的算力及海量数据
- 抽象计算过程,关注设计和构造,而非因果
- 以计算机程序设计为实现的主要手段

⑨编程是将计算思维变成现实的手段

二、计算生态与Python语言

1、从开源运动说起…

开源思想深入演化和发展,形成了计算生态

计算生态以开源项目为组织形式,充分利用“共识原则”和“社会利他”组织人员,在竞争发展、相互依存和迅速更迭中完成信息技术的更新换代,形成了技术的自我演化路径。

没有顶层设计、以功能为单位、具备三个特点

- 竞争发展
- 相互依存
- 迅速更迭

2、计算生态与Python语言

- 以开源项目为代表的大量第三方库
Python语言提供 >15万个第三方库

- 库的建设经过野蛮生长和自然选择
同一个功能,Python语言2个以上第三方库

- 库之间相互关联使用,依存发展
Python库间广泛联系,逐级封装

- 社区庞大,新技术更迭迅速
AlphaGo深度学习算法采用Python语言开源

3、计算生态的价值

创新:跟随创新、集成创新、原始创新

- 加速科技类应用创新的重要支撑
- 发展科技产品商业价值的重要模式
- 国家科技体系安全和稳固的基础

4、计算生态的运用

刀耕火种 -> 站在巨人的肩膀上

- 编程的起点不是算法而是系统
- 编程如同搭积木,利用计算生态为主要模式
- 编程的目标是快速解决问题

三、用户体验与软件产品

1、用户体验

实现功能 -> 关注体验

- 用户体验指用户对产品建立的主观感受和认识
- 关心功能实现,更要关心用户体验,才能做出好产品
- 编程只是手段,不是目的,程序最终为人类服务

2、提高用户体验的方法

①方法1:进度展示

- 如果程序需要计算时间,可能产生等待,请增加进度展示
- 如果程序有若干步骤,需要提示用户,请增加进度展示
- 如果程序可能存在大量次数的循环,请增加进度展示

②方法2:异常处理

- 当获得用户输入,对合规性需要检查,需要异常处理
- 当读写文件时,对结果进行判断,需要异常处理
- 当进行输入输出时,对运算结果进行判断,需要异常处理

③其他类方法

- 打印输出:特定位置,输出程序运行的过程信息
- 日志文件:对程序异常及用户使用进行定期记录
- 帮助信息:给用户多种方式提供帮助信息

软件程序 -> 软件产品

用户体验是程序到产品的关键环节

四、基本的程序设计模式

1、从IPO开始…

- I:Input 输入,程序的输入
- P:Process 处理,程序的主要逻辑
- O:Output 输出,程序的输出

- 确定IPO:明确计算部分及功能边界
- 编写程序:将计算求解的设计变成现实
- 调试程序:确保程序按照正确逻辑能够正确运行

2、自顶向下设计

3、模块化设计

- 通过函数或对象封装将程序划分为模块及模块间的表达
- 具体包括:主程序、子程序和子程序间关系
- 分而治之:一种分而治之、分层抽象、体系化的设计思想

- 紧耦合:两个部分之间交流很多,无法独立存在
- 松耦合:两个部分之间交流较少,可以独立存在
- 模块内部紧耦合、模块之间松耦合

4、配置化设计

- 引擎+配置:程序执行和配置分离,将可选参数配置化
- 将程序开发变成配置文件编写,扩展功能而不修改程序
- 关键在于接口设计,清晰明了、灵活可扩展

5、应用开发的四个步骤

①产品定义:

对应用需求充分理解和明确定义
产品定义,而不仅是功能定义,要考虑商业模式

②系统架构:

以系统方式思考产品的技术实现
系统架构,关注数据流、模块化、体系架构

③设计与实现:

结合架构完成关键设计及系统实现
结合可扩展性、灵活性等进行设计优化

④用户体验:

从用户角度思考应用效果
用户至上,体验优先,以用户为中心


单元小结

Python程序设计思维

- 计算思维:抽象计算过程和自动化执行
- 计算生态:竞争发展、相互依存、快速更迭
- 用户体验:进度展示、异常处理等
- IPO、自顶向下、模块化、配置化、应用开发的四个步骤

Python语言程序设计----【第8周 程序设计方法学】之8.2 Python程序设计思维相关推荐

  1. python数据结构题目_《数据结构与算法Python语言描述》习题第二章第三题(python版)...

    ADT Rational: #定义有理数的抽象数据类型 Rational(self, int num, int den) #构造有理数num/den +(self, Rational r2) #求出本 ...

  2. Python程序设计(13)-----程序设计方法学

    复习之前学过的内容 Python程序设计(6)-----基本数据类型 Python程序设计(7)-----字符串类型及其操作 Python程序设计(8)-----程序的控制结构 Python程序设计( ...

  3. python语言控制结构是指_python程序的三种控制结构

    程序的三种控制结构 什么是控制结构? """ 程序有三种基本结构组成:顺序结构.分支结构.循环结构.任何程序都是由这三种基本结构组成. 顺序结构是程序按照线性顺序依次执行 ...

  4. 下列关于python语言中缩进的说法正确的是_关于Python程序中与“缩进”有关的说法中,以下选项中正确的是 _________ 。_学小易找答案...

    [单选题]表达式 'x' or 'y' or [] 的返回值为______. [判断题]( )中国与金砖国家贸易互补性强. [判断题]( ).中国是世界上最大的纺织品生产国和出口国,约占世界纺织品贸易 ...

  5. python中国地图程序设计_神级程序员教你用Python如何画一个中国地图!(好好玩)...

    为什么是Python 先来聊聊为什么做数据分析一定要用 Python 或 R 语言.编程语言这么多种, Java , PHP 都很成熟,但是为什么在最近热火的数据分析领域,很多人选择用 Python ...

  6. python语言学习零基础教学视频_零基础学Python语言CAP全套课程

    零基础学Python语言CAP完整版课程目录 ├─{1}–[第1周,第一单元]Python编程之基本方法 │ ├─{1}–1.1课程内容和安排介绍 │ │ ├─(1.1.1)–课程内容和安排介绍-PP ...

  7. 编程入门python语言是多大孩子学的-什么是少儿Python编程?这一篇就够啦!

    原标题:什么是少儿Python编程?这一篇就够啦! 少儿Python编程大家都了解多少呢? 由于少儿编程学习的重要性被广大家长朋友们所知,再加上近几年来我国对少儿编程教育的重视,现在很多的家长朋友们都 ...

  8. python语言是谁发明的咋读-Guido发明的python语言是哪一年正式发布的?

    Python的创始人--Guido,荷兰人,从阿姆斯特丹大学获得了数学和计算机硕士学位.Guido希望有一种语言,这种语言能够像C语言那样,能够全面调用计算机的功能接口,又可以像shell那样,可以轻 ...

  9. python语言有什么用-为什么现在很多人都使用Python语言有什么优势

    很多人觉得程序猿是高薪的代表,很多人都想学习一门编程语言,如果你想选择一种语言来入门编程,那么Python绝对是首选!其非常接近自然语言,精简了很多不必要的分号和括号,非常容易阅读理解.接下来一起看看 ...

  10. python语言有几种编程方式_零基础自学python语言,有哪几种方法?龟叔说:这套教程带你入门...

    第一我要说的是:你应该先了解python语言的起源,这句话对于自学python的小白来说,本身就是耍流氓. 我们从根源上分析这个问题,这个问题是(从零基础如何自学python编程)? 我的提取关键字: ...

最新文章

  1. torch.load No module named
  2. 深度学习核心技术精讲100篇(十七)-多标准中文分词( Multi-Criteria-CWS)
  3. 使用ffmpeg从mp4文件中提取视频流到h264文件中
  4. 流式计算框架Storm编程案例:实时给手机品牌转大写并加上时间戳后缀代码示例
  5. C#中的cookie编程
  6. 我们如何在Linkerd 2.2里设计重试
  7. 通过helm在k8s上部署spark(伪集群版)
  8. 新人开车——访问控制
  9. php yii 控件分页,Yii实现简单分页的方法
  10. Ribbon界面开发(C++)
  11. USB3.0高清视频和音频采集处理芯片——MS2131
  12. 移动魔百和M302A-ZN-S905L2_蓝牙语音正常_线刷免费固件包
  13. Pytorch:二、数据加载与数据集的划分(猫狗)
  14. can滤波 dsp_CAN dsp 28335 CAN通信使用例程,已测试,可以正常 ,欢迎交流学习 DSP program 267万源代码下载- www.pudn.com...
  15. 计算机408考试题库百度云,2017年计算机408考研真题.pdf
  16. expected at least 1 bean which qualifies as autowire candidate for this ***错误的分析
  17. 十字光标太小怎么调节、CAD梦想画图算量技巧
  18. 【心情分享】自己心中的程序员和别人眼里的程序员
  19. Linux 高性能服务器网络编程(一)
  20. [C语言]求某年某月的天数(两个方法)

热门文章

  1. 用百度人工智能进行繁体文字中文OCR识别
  2. Java编程题——判断年份是否为闰年
  3. SUMO与各类软件的联合仿真方法
  4. python读取fiddler_Python3.x+Fiddler抓取APP数据
  5. 《统计思维-程序员数学之概率统计》学习笔记
  6. 华为交换机通用配置方式方法
  7. 锐捷客户端 开机不能自动联网 无法启动DHCP Client服务
  8. HTML特殊字符转义
  9. matlab2014中GUI之菜单栏设计
  10. 2014全新增强版迅捷PDF转换器介绍