Professional English Questions
一、English interview ?
专业知识点+专业词汇+将答案转换成英语
从本质入手吧,从形推到语言。
经过中间的翻译很容易导致不流利。
二、Introduction to software engineering
一、Software Engineering Overview
1.1 Software crisis
Software crisis is a series of problems encountered in the process of software development and maintenance. The early development measures do not pay attention to documents, so it is difficult to maintain the software to meet the new needs.Therefore, there are many problems, such as low software quality, difficult to maintain software, difficult to get user needs, and difficult to control development cost and progress.
软件危机是软件开发与维护过程中遇到的一系列问题,早期的开发方法不注重于文档材料,所以导致很难维护软件去适应新的需求。因此产生了很多问题,比如软件质量低下、软件难以维护、用户需求难以确定、开发成本与进度难以估计。
1.2 how to slove the software crisis
首先,正确认识软件,软件与程序不同,软件是由程序、数据和文档组成;其次,使用正确的技术和方法去开发软件;最后,使用合适的软件工具会使你事半功倍。
First of all,it is important to konw the true defination of software,software is different from program and a software consists of program data and documents;In addition,it is significant to use right technology and method to develop software;Last but not least,Using the right software tools will greatly reduce your workload.
1.3 Modify requirements during development
众所周知,在开发软件之前确定好需求非常重要,因为如果在开发的过程中再修改需求,那么将需要修改大量的文件和代码,比如需求规格说明书、总体设计文档、详细设计文档等等;另外,修改的难度也会不断增大,因为很多文档之间有相关关系。
As we all know, it is very important to determine the requirements before developing the software, because if the requirements are modified during the development process, a large number of documents and codes will need to be changed, such as requirements specifications, overall design documents, detailed design documents, etc; In addition, the difficulty of modification will continue to increase, because there are lots of relationships between many documents. increase workload。
1.4 Software life cycle
Problem definition:What kinds of problems we should slove.
feasibility study:Judge whether there is a feasible way to solve the problem
requirement analysis:to analyze the functions of the software
overall design:to determine the module of the software and the relationship between each module
detailed design:to design the algorithm of each module
Coding and testing: Use high-level programming language to write each module and test each module to find errors and bugs
Comprehensive test:Test the software to meet the requirements
software maintenance:mainten the software to meet the needs of users;
one is the corrective maintenance to detect and correct the errors in the software,second is the adaptive maintenance,which modify the software to meet the change of running environment ;third is the perfective maintenance,which maintain the software to make it more perfect;last is the preventive maintenance,which parepare for the future maintenance.
1.5 life cycle model(mɑːdl)
-
Waterfall model
开发的各个阶段就像瀑布一样从上到下,上一阶段完成之后才能开始下一阶段,每一阶段都必须完成规定文档并且对文档进行评审。但是他的缺点就是难以获取用户准确的需求。
Each stage of development is like a waterfall from top to bottom. After the previous stage is completed, the next stage can be started. In each stage, the specific documents must be completed and reviewed. But its disadvantage is that it is difficult to get the accurate needs of users.its advantage is that it can keep the quantity of the software and force programmer use standard measures to develop software. -
Rapid prototyping model
it is similar for waterfall model but the difference between the two is the way to get users requirments,waterfall model use the documents to get necessary information,but this model can create a prototype that people can use to get accurate needs. As we all know it is useful way to get needs by creating the prototype.But the structure of the prototype we create in a little time may be not suitable for this software. -
Incremental model
we can divide the software into different modules and we can quickly develop and complete several modules and submit them to users,so users have enough time to learn the software,but its disadvantage is that it is difficult to integrate these modules into the whole software architecture.
我们可以很快的开发完成几个模块并提交给用户 -
Spiral model
Creating prototype is a effective way to decrease risk,therefore the spiral model creates prototypes to estimate risk before the starting of each stage,the whole process of development is similial to waterfall model and the more laps, the higher the risk;it is more suitable for large projects, but it has higher requirements for developers.
建立模型是一种有效的方法去减少风险,所以螺旋模型在每个开发阶段前都创建了模型评估风险,整个开发过程与瀑布模型类似,圈数越多风险越高。他比较适用于大型项目,但对开发人员要求较高。 -
Fountain model 喷泉模型是面向对象方法学的经典模型,喷泉这个词体现了面向对象软件开发过程中的无缝和迭代的特点,圆圈之间的交叠表示开发过程的交叠,我们可以很容易的从一个开发阶段回跳到其他阶段。
Fountain model is a classic model of object-oriented methodology. The word fountain indicate the features of no limits and iterative in the process of object-oriented software development. The overlap between circles indicates the overlap of development process. We can easily jump back from one development stage to other stages. -
V模型 V-model
v-model可以提高软件开发的效率和有效性,是我们熟知的瀑布模型的一种改进,由于早期的错误可能要等到后期的测试阶段才能发现,所以带来严重的后果。 v-model就是在这点改进了瀑布模型,在软件开发的早期,开发活动和测试活动几乎同时的开始,这两个并行的动态的过程就会极大的较少bug和error出现的几率。在v-model中,我认为一个关键词就是parallel,说起来简单,却是v-model的核心。例如,做详细设计的时候我们可以做单元测试的计划。
V-model can improve the efficiency of software development. It is an improvement of the well-known waterfall model. Because early errors allways be found in the later stage of test , it will cause some serious consequences. V-model improves the waterfall model at this point. In the early stage of software development, development activities and testing activities start almost at the same time, and these two parallel dynamic processes will greatly reduce the probability of bugs and errors. In V-model, I think a key word is parallel. It is simple to say, but it is the core of V-model. For example, when doing detailed design, we can make unit test plans. -
MVC模型 MVC model
MVC:MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。
Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
View(视图) - 视图代表数据的可视化,相当于在界面上展示我们的数据。
Controller(控制器) - 控制器作用于模型和视图上。它控制数据的流向,控制不同数据更新不同的java bean,并在数据变化的时候更新视图,它能够使视图与模型分离开。
represent 代表
Data visualization 数据可视化
show 展示
Interface 界面
update 更新
data flow 数据流向
二、feasibility study
2.1 the process of feasibility study
可行性分析的主要目的就是判断是否有好的方法去开发软件,他的详细步骤包括1. 复查系统目标。2. 研究正在使用的系统。3. 导出新系统的DFD旧系统的DFD和数据流程图。4. 重复以上步骤,直到没有问题。5. 分析技术、操作、经济可行性。
The main purpose of feasibility analysis is to judge whether there is a good measueres to develop software. The process of the feasibility study are as follows ,the first is Review system objectives. the second is Study the system being used. the third is Export DFD of new system and DFD and data flow chart of old system. the next is Repeat the above steps until there is no problem. Last step is Analyze the feasibility from three angles technical, operational and economic feasibility.
2.2 DFD
data flow difgram: 描述数据是如何在系统中被处理和流动的情况。DFS包含四种符号,分别是正方形代表数据的源点和终点,原型代表对数据的处理,还有数据存储和数据流。我么可以将DFD分为3个等级通过功能的完善性,从上到下分别是顶级数据流图、功能数据流图和详细数据流图。is a tool to describe how data is processed and flowing in the system.DFS contains four symbols: a square represents the source and destination of data, a prototype represents the processing of data the other is data storage and data flow.We can divide DFD into three levels. Through the perfection of functions, there are top-level data flow diagram, functional data flow diagram and detailed data flow diagram from top to bottom.
data dictionary:Define all of data in the system
三、requirement analysis
3.1 the process of ra
such as:
functional requirement 功能需求
Performance requirements 性能需求
Reliability and availability requirements 可用性和可靠性需求
Interface requirements 接口需求 data format 数据格式 formulate 制定
Error handling requirements 出错处理需求
analyze 分析
Data requirements 数据要求
data elements 数据元素
data model 数据模型
logical relationship 逻辑关系
Graphic tools 图形工具
warniers
Hierarchical Block Diagram 层次方框图
logical model 逻辑模型
DFD、E-R model、state model、data dictionary
data redundancy 数据冗余
Normalized data 规范化数据
interview 访谈
talk 交流
information interest
E-R model
data object 数据对象
attribute 属性
contact 联系
relationships 关系
One to many 一对多
one to one
Many to many 多对多
Three paradigms 三范式
State transition diagram 状态转换图
state event transformation cause
Behavior model 行为模型
状态 事件 事件可以引起状态的转换。
1 需求分析有几个步骤,第一 分析需求,如接口需求。。;第二,分析数据要求,可以使用软件工具描述数据,如层次方框图;第三、导出逻辑模型,如数据字典、DFD、E-R图、状态图等
2 描述数据对象的逻辑联系,它包含几部分,如entry代表数据对象,属性、联系;一个实体有多个属性,在实体之间有很多联系,如1对1,1对多,多对多;这是一个有用的工具在数据库中。
四、 overall design
模块化好处:
五、 detailed design
Sequential structure 顺序结构
Select structure 选择结构
Circular statement 循环结构
Single entry and single outlet 单入口单出口
Program flow chart 程序流程图
Box diagram 盒图
PAD PDL
control flow 控制流
condition 条件
四、 testing
common 常见 …是一种常见的测试方法
software test 软件测试
Programming language 程序设计语言
testing method 测试方法
选择编程语言部分
High-level programing language
types
object-oriented 面向对象
Process-oriented 面向过程
function call 函数调用
C# C++ JAVA visual basic python
C
1、面向过程:就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
2、面向对象语言:识认性,系统中的基本构件可识认为一组可识别的离散对象,对象具有唯一的静态类型和多个可能的动态类型,在基本层次关系的不同类中共享数据和操作。
function 函数
object 对象
attributes 属性
methods 方法
simulation 模拟
面向对象创建了很多对象,对象包含属性元素,面向对象与我们的思维习惯类似,所以更简单的使用它去解决问题。
compile 编译
link 链接
Link modules and library functions 库函数
Load memory 装入内存
运行一个程序的过程
Interpretive language 解释型语言
Compiled language 编译型语言
Cross platform 跨平台
machine language 机器语言
compiler 编译器
depend on 依靠
execute 执行
effeciency 效率
程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。
程序不需要编译,程序在运行时才翻译成机器语言,每执行 一次都要翻译一次。因此效率比较低。在运行程序的时候才翻译,专门有 一个解释器去进行翻译,每个语句都是执行的时候才翻译。效率比较低, 依赖解释器,跨平台性好.
Java s characterristic
easy to learn
between Interpretive language Compiled language
object-oriented 面向对象
cross plantform 跨平台
JVM 虚拟机
Garbage collection mechanism 垃圾回收机制
容易学习,介于两者之间,将程序编译成字节码,用JVM翻译其成为机器码;是面向对象语言;跨平台;垃圾回收机制。
怎样去收集垃圾、何时去收集垃圾、什么垃圾可被收集。
面向对象的特点
Thinking habits 模拟人的思维习惯
class 类
Parent class 父类
Sub class 子类
inherit 继承
inheritence 继承
multiplex 复用
encapsulate 封装
private data 私人数据
public method 公共方法
Reusability 可重用性好
Independence 独立性
overloading 重载
object model 对象模型
functional model 功能模型
dynamic model 动态模型
reuse 重用
1 模拟人的思维习惯,更简单的使用它去解决问题。
2 这个世界是由类组成的;类有自己的属性方法;我们可以定义子类父类,子类继承父类方法和属性。大大减少工作量;封装,使用公共方法访问私有数据。
3 高可重用性,类似人类思维,易于维护,修改私人数据,不影响其他模块。独立性好,易于测试。
4 使用相同的函数名字,但是函数的参数是不同的。
write and read 读写
Execution efficiency 执行效率
Modular structure 模块化结构
easy to learn and use 易于学习
easy to develop maintain
error bug
sentence 语句
syntax 语法
Conditional statement 条件语句
Judgment statement 判断语句
Circular statement 循环语句
Operation order 运算次序
测试部分
testing plan 测试计划
Small scale test 小规模测试
Big scale test 大规模测试
high reliability 高可靠性
Exhaustive test 穷举测试
Black box test
white box test
Program interface 程序接口 between
inner logic 内部逻辑
External logic 外部逻辑
Implementation of internal code 代码实现
unit test
integration testing 集成测试
System test 系统测试
Acceptance test 验收测试
alpha test
beta test
五、 Object-oriented
polymorphic 多态
inherit 继承
encapsulation 封装
abstract 抽象
class 类
object 对象
example 实例
method 方法
overload
integration testing: First, unit test each module, and then load and test each module with some meaures, such as top-up method.
首先对各个模块进行单元测试,然后,采用某种方法比如自顶向上的方法对各个模块进行装入,并且测试。
speed of progress 进度
Spend a lot of time and work
a series of instructions
life cycle 生命周期
order 顺序
consequence 后果
serious 严重的
goal 目标
take steps 采取措施
Physical storage mode 物理存储方式
This major stands in the tide of the times 这个专业站在了时代的浪潮
use knowledge to do creat many things to change the world it make me pride
Overcome many difficulties and finally succeed
There is a better way 可能有更好的方法
Consider other approaches 考虑一下其他方法
Access array 存取数组
With… relevant 与。。。相关
Stack leak 堆栈泄露
Repeated calculation 重复计算
Meet a condition 满足某个条件
signal communication 通信
常见句式
the kind of language
1 常见开头语
…is a classic … in the
… is one of the most popular
… is a very significant …in…
there are a lots of models/algorithm,such as what impress me most is that,then i wanna introduce the …
in the … we can …
是一个经典的模型在软件开发
是一个最受欢迎的算法在
是一个非常重要的数据结构在
这里有很多模型/算法,令我印象最深可的是,之后我想介绍一下…
在… ,我们可以怎样
1.1 问答并给出几种建议
As we all konw it is very significant for us 。。。。。to。。。。。,
But how to choose rignt hings? there are many useful measures.
first of all,
In addition,
the next is,
last but not least,
1.2 问你几个步骤
it is necessary for us to understand the step of 。。。,the next i will introduce these steps ,the steps are as follows。
num one is the n,
num two is the ;
the next is the ;
1.3 出现问题
people usually pay attention to the …but ignore the 。。。which cause a sitation that it is 。。。,in addition ,people dont pay attition to the 。。。,as we all kown,using will 。。。;for example,
人们经常关注。。反而疏忽了。。,这样就导致出现一种情况。。。,另外人们也不关注。。。,正如我们所值,这样会有很多好处,例如。。。。
1.4 定义
it is 。。。
the dinfination of 。。
。。 is the flow of 。。。
is the 。。。 of 。。。
it have 。。。to。。。
there are 。。。
the 。。。of 。。。is。。。
1.5 相关关系
the realationship between .。。 and 。。 is that
。。。is related to 。。。
。。。is simlilar to 。。。
。。。is diffrenent form 。。。
the difference between。。。and。。。is that 。。。
并行关系: doing 。。。when you are doing 。。。
比较关系: 。。。is more 。。。than 。。。
随着随着: With the increase of the number of layers, the accuracy of the model also decreases
1.6 常见动词
use indicate imitate map develop cause bring do (pay attention to) etc
1.7 使用名词加定语从句修饰
the 。。。that we use 。。。to 。。。
the 。。。whice is 。。。
the 。。。found in the 。。。
1.7 表示因果原因
therefore so then
DataStructure
一、 Introduction
1.1 time and space complexity
There is a better way to
Consider other approaches to
sentence 语句
represent 代表
execution time 执行时间
Problem scale 问题规模
Extra space overhead 时间开销
Temporary space 临时空间
用语句执行次数代表程序执行时间,语句执行次数与问题规模相关,所以可以使用问题规模描述执行时间。
评估时间开销在算法的运行过程中。
High level programming language :
discard Pointer but use the reference
Compiled language 编译型语言
Interpretative language 解释型语言
1.2 linear table
Linked Storage 链式存储
Sequential storage 顺序存储
Continuous space 连续空间
Discrete area 离散区域
Save space 节省空间
waste 浪费
Sequential list and linked list 顺序表 链表
index 索引
pointer 指针
Visit one by one
point 指向 address 地址
Successor 后继
precursor 前驱
Single linked list 单链表
Double linked list
Circular double linked list 循环双链表
Circular Single linked list
线性表有两种不同存储方式,链式和顺序;顺序存储将数据存储在连续空间;链式存储存储数据在不同的离散区域中。顺序表可以使用使索引访问特定数据,但是链表只能使用指针一个一个访问数据。
1.3 stack queue
linear table 线性表 Linear table with restricted operation
access 访问
insert 插入
delete 删除
in the one end 在一端
top
bottom
fifo
filo
False overflow 假溢出
First press in the data and then take it out
栈和队列是操作受限的线性表,我们可以在一段访问数据、插入数据和删除数据。
1.4 tree
tree 树
Binary tree 二叉树
recursive 递归
Parent node 父节点
Child node 孩子节点
root 根
Full binary tree 满二叉树
Complete binary tree 完全二叉树
branch 分支
layer 层
Left subtree 左子树
Right subtree 右子树
Preorder traversal 先序遍历
Middle order traversal 中序
Postorder traversal 后续
level traversal 层次
1 树是一个递归数据结构,树有一个根节点,这个根节点也是父节点,每个父节点可以有多个子节点。每一个子节点也可以有他们自己的子节点。
2 二叉树与树类似,但是the difference is that 二叉树only有
3 满二叉树所有分支是满的,完全二叉树除了最后一层。
4 有多种遍历方法 如 先序 中序 等使用递归的方法,我可以先介绍一下先序遍历首先访问根节点,如果其左子树不会空,然后访问左子树。日过右子树不为空,访问右子树。首先访问第一层,然后访问第二层以这种方式知道所有节点被访问。
1.5 graph
BFS
DFS
Adjacency node 邻接节点
1.6 sort
bubble sort
compare 比较
adjacent 相邻的
two 两个
data elements
row 列 行
From front to back 从前到后
successively 依次
suit 符合
switch 交换
Ordered sequence 有序序列
disOrdered sequence 无序序列
position 位置
compare with 比较
冒泡排序,我们可以从前到后依次比较相邻的两个元素,如果两个数据元素不符合排序的顺序,那么交换他们。直到找到一个最大或最小的元素。在n次后我们可以得到,一个有序序列。
插入排序,我们可以从无序序列中取一个元素然后比较数据在有序序列中,并且找到位置它可以插入,然后插入。我们可以得到一个新的有序序列。
选择排序:每一轮我们可以选出一个最大或最小的元素,在n论之后,我们可以得到一个有序序列,我们可以选择一个暂时空间存储最大的元素,然后依次从前往后。
DS
代码如下(示例):
1.7 find
Half search 折半查找
Binary search tree 二叉搜索树
Search algorithm 查找算法
AVL 平衡二叉树
1 首先,我们需要有序的序列,然后我们可以访问中间元素,如果key大于中间元素之后我们可以找特定的元素在左区域,if …
2 二叉搜索树与二叉树类似,但是差异是is that 左孩子节点值小于父节点,右孩子节点大于父节点。我们可以使用他实现查找算法
AI
一、 deep learning
CNN
convolution 卷积
Pooling 池化
layers 层数
Full connection 全连接层
decrease the quantities of caculation
neural network 神经网络
深读学士是最受欢迎的一种领域,深度学习与机器学习类似,but the 差异是使用神经网络作为函数取处理数据。网络包含多个神经元,每个神经元有多个输入。
二、 machine learining
linear regression 线性回归
分类:
Bayesian classification
SVM classification
Decision tree classification
Integrated learning
Weak classifier
Strong Classifier
Clustering problem
K-means
classification algorithm
regression algorithm
math model
mathematical model 数学模型
a large number of 大量
greatly
使用大量的数据去训练模型,我们可以使用这些模型去判断问题,这可以大大提高准确率。
computer network
cache 缓存
DNS
procotocol 协议
domain name 域名
IP 地址
Reliable transmission 可靠传输
implement 实现
TCPs three connection
project management
Determine project team members 确定项目组成员
Determine project content 确定项目内容
Control project progress 控制项目进度
Control project cost 控制项目成本
Don’t stop communicating with your members
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
2.读入数据
代码如下(示例):
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
该处使用的url网络请求的数据。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。