2021-2022-1 20211409 《信息安全专业导论》第8周学习总结
作业信息
作业信息2020-2021-1信息安全专业导论 https://edu.cnblogs.com/campus/besti/2021-2022-1fois
2020-2021-1信息安全专业导论第八周作业 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08
这个作业的目标
- 学习目标
- 功能设计与面向对象设计
面向对象设计过程
面向对象语言三要素
汇编、编译、解释、执行
- 功能设计与面向对象设计
- 学习任务
- 计算机科学概论第9章 并完成云班课测试
《看漫画学Python》第9,10章并完成云班课测试
本博客链接:https://www.cnblogs.com/czsf/p/15535100.html
单链表插入和删除一个节点的伪代码算法
- 计算机科学概论第9章 并完成云班课测试
教材学习内容总结
教材:
- 面向对象算法:(设计方法是用叫作对象的独立实体生成解决方案的问题求解方法,对象由数据和处理数据的操作构成。)
- 面向对象:
- 对象:与问题相关的事物或实体,属性由字段表示。对象行为的特殊算法称为方法。
- 类(对象类):一组具有相似属性和行为的对象
- 责任(由于类只对自己的行为负责,因此称类的行为为责任):
- 分类:
- 知识:类必须知道什么
行为:类必须能够做什么
- 知识:类必须知道什么
- 分类:
- 程序刻画(面向对象语言三要素):
- 封装:用类实现语言隐蔽
- 继承:允许一个类(派生类)继承另一个类(超类)的实行和行为
- 多态:消除同名操作的能力
- 设计方法:
- 头脑风暴:确定问题中的类,是一种为了生成解决问题的类的列表的集体活动。
- 过滤:合并类,确定解决问题方案中的核心类。
- 场景:确定类的行为,记录每一个类和其必须与之交互才能履行责任的类的名字,输出的类可能写在CRC卡上。(在CRC卡上,类名以大写字母开头)
- 封装(集中数据和动作,分离其逻辑属性和实现细节)是抽象的关键。
- 责任算法: 列出编写算法(也可采用自顶向下设计算法)
- 面向对象算法与自顶向下设计算法的区别:
- 面向对象算法的重点是对象和它们在问题中的交互;
自顶向下设计算法的重点为任务。 - 面向对象算法的重点是要转化的数据对象,结果生成的是对象的体系结构;
自顶向下设计算法的重点是把输入转化为输出的过程,结果是生成任务的体系结构。 - 面向对象算法的重点是名词;
自顶向下设计算法的重点是动词。 - 面向对象算法的一大优点是具有可复用性:其创建的某些类还可用于其他背景。
- 面向对象算法的重点是对象和它们在问题中的交互;
- 面向对象:
- 翻译过程:
- 编译器:一种将高级语言编写的程序翻译成机器码的程序。
要编译的语言:FORTRAN、COBOL、ALGOL - 解释器:一种翻译和执行语句序列的程序。
要解释的语言:Lisp、SNOBOL4、APL
(用要解释的语言编写的程序运行速度慢于用要编译的语言编写的程序)
- 编译器:一种将高级语言编写的程序翻译成机器码的程序。
- 程序设计语言范型:
- 命令式范型
- 面向过程的范型
面向对象的范型
- 面向过程的范型
- 声明式范型
- 函数式模型
- 逻辑编程(基于数理逻辑)
- PROLOG:第三代逻辑编程语言
- 该语言编写程序中包含三个语句:
- 声明对象及对象间关系的事实
- 定义对象及对象间关系的规则
- 询问对象及对象间关系的问题
- 常量首字母小写,变量首字母大写,通常用一个常量来询问事实真相
- 该语言编写程序中包含三个语句:
- PROLOG:第三代逻辑编程语言
- 命令式范型
- 高级程序设计语言的功能性
- 布尔表达式(标识符序列)
- 构成类型:
- 一个布尔变量
一个算数表达式加一个关系运算符,再加一个算术表达式
一个布尔表达式加一个布尔运算符,在加一个布尔表达式
- 一个布尔变量
- 构成类型:
- 数据归类:
- 数据类型:整数、实数、字符(单引号圈起)、字符串(双引号圈起)
- 声明
- 输入/输出组合结构
- 控制结构:重复、选择、子程序(伪代码提供的三种流程)
(在VB.NET和C++中可使用值参和引用参数,但在Python和Java中只能使用值参)- 嵌套逻辑
- 异步(与程序操作不同步)处理
- 布尔表达式(标识符序列)
Python:
- 类与对象:
- 定义类:
class 类名( ):
类体
pass - 创建对象:
sth = 类名( ) - 类的成员:代码实现
- 封装性:self.__sth = sth (实现变量私有,在类的外部不可访问私有变量)
使用方法(代码实现):
- 继承性:代码实现
- 多态性:代码实现
- 定义类:
- 异常处理:
- 捕获异常:
- finally实现资源释放(无论try与except是否正常执行,finally代码块都会执行):
- 自定义异常:使用class实现
- 捕获异常:
教材学习中的问题和解决过程
1.为什么说记录是被动的,但类是主动的?
解答过程:上网搜索得到答案,尽管在许多语言中记录和类是相似的,但它们的使用是不同的。一个记录通常只包含数据,并作为参数传递给其他对象代码段。类定义一个对象,其中包含数据和子程序操纵这些数据。记录由外部代码段操作,而类其内部包含用于其一个操作的构造。
2.对课本上一些概念不了解。
解答过程:上网搜索得到答案。
- CRC卡:
CRC卡是目前比较流行的面向对象分析建模方法。在CRC建模中,用户、设计者、开发人员都有参与,完成对整个面向对象工程的设计。
CRC卡是一个标准索引卡集合,包括三个部分:类名、类的职责、类的协作关系,每一张卡片表示一个类。
· 类 代表一系列对象的集合,这些对象是对系统设计的抽象建模,可以是一个人、一件物品等等,类名写在整个CRC卡的最上方。
· 职责 包括这个类对自身信息的了解,以及这些信息将如何运用。诸如,一个人,他知道他的电话号码、地址、性别等属性,并且他知道他可以说话、行走的行为能力。这个部分在CRC卡的左边。
· 协作 指代另一个类,我们通过这个类获取我们想要的信息或者相关操作。这个部分在CRC卡的右边。 - 范型:
范型亦称范式,主要指科学共同成员所共有的“研究传统”“理论框架”“理论上和方法上的信念”、科学的“模型”和具体运用的“范例”,还包括自然观或世界观等。
代码调试中的问题和解决过程
暂无
代码托管
https://gitee.com/zhao-shu-bo/czsf/blob/master/链表
https://gitee.com/zhao-shu-bo/czsf/blob/master/9
https://gitee.com/zhao-shu-bo/czsf/blob/master/10
上周考试错题总结
1.An array is a named homogeneous collection of items in which individual items are accessed by an index.
(数组是一个命名的同构项集合,其中单个项由索引访问。)
正确答案: 正确
我的作答: 错误
错因:概念不清
数组是同构项目的有名集合,可以通过单个项目在集合中的位置访问它们。项目在集合中的位置叫作索引。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | 了解Linux |
第二周 | 50/250 | 2/4 | 5/25 | 了解python |
第三周 | 200/450 | 1/5 | 20/45 | 开始学习python语言 |
第四周 | 250/700 | 4/9 | 20/65 | 学会运用代码托管 |
第五周 | 160/860 | 1/10 | 10/75 | 学习python程序流程控制 |
第六周 | 216/1076 | 1/11 | 10/83 | 学习使用机器语言与汇编语言 |
第七周 | 323/1399 | 3/14 | 10/93 | 开始学会根据伪代码自己编辑代码 |
第八周 | 411/1810 | 2/16 | 15/108 | 学习python中的类与对象 |