And we're data junkies, so we like to get a lot of data before we make a big decision like that.
我们是数据控,所以一般先收集很多数据,在做重大决定的时候。
We're talking about like, if you didn't, even if you had all your data on your computer backed up on hard drive,
如果你没有将你电脑里的数据备份到硬盘里,
Now these ideas of classes, object-oriented programming, data abstraction, are about 40 years old, they're not new ideas.
面向对象编程的概念,数据抽象的概念,都是40年前就有的老东西了。
This is useful especially when we get to details like forensics and looking at data on a hard drive, - 'cause if you don't know how much store-- how many bits are composing your file, you're never gonna recover that data or be able to access what you're looking for.
这是很有用的,尤其是在法庭上,查看硬盘驱动器里的数据时,如果你连-,文件有多少比特都不知道,你如何去恢复数据,获取你想要的信息呢。
And to the extent these portray an unrealistic or unfair or biased perception of the world we could construct stereotypes that are faithful to the data we're getting but the data is not representative.
因为媒体,没有真实,公平,不偏不倚地反映世界,我们的刻板印象,就会根据这些信息来形成,但这些信息并不能以一概全。
A low-level language, we used to call this assembly programming, you're down at the level of, your primitives are literally moving pieces of data from one location of memory to another, through a very simple operation.
一个低级的语言,我们曾经将其称为假设编程,你们只是处于用基本要素,把一些数据碎片,从记忆存储器的一个地方,通过简单的操作来转到另外一个地方。
And we're going to use this object-oriented programming, typically to create something called data abstractions.
在接下来的几天,你会明白我们这里说的具体含义,它的一个同义词。
And the second thing we're going to need, is we're going to need a way to give instructions to the computer to manipulate that data.
我们需要的第二件事情是,我们需要一种,能给予计算机指令,以操作数据的方式。
Now what you're seeing here then is the beginning of complex data structures.
现在你们学习到的是复杂数据结构的,一个开始,好消息是他们之间有一个。
So we're to assume we can get to any piece of data, any instruction in constant time, and the second assumption we're going to make is that the basic primitive steps take constant time, same amount of time to compute. Again, not completely true, but it's a good model, so arithmetic operations, comparisons, things of that sort, we're all going to assume are basically in that in that particular model.
因此如果我们假设在恒定的时间内,我们可以取得任何一块数据,任何一种数据结构的话,我们要做的第二个假设就是,基本的原始操作计算花费的时间是恒定的,这个假设也不是完全正确的,但这个模型其实挺不错的,因此算法操作,比较,这一类的事情,我们在这个特定的模型中都假设是基本的,操作,花费的时间是恒定相同的。
Well basically what we're doing is we're giving ourselves the ability to create data types the same way that we have some built-ins, so we have things like int, float, string, these are built-in data types.
就是要赋值我们自己创建,和内置的数据类型,相同的数据类型的能力,我们有一些内置的数据类型,如int,float,string等,如果你考虑下这些数据类型。
In order to create any kinds of expressions, we're going to need values. Primitive data elements.
因此下一节课,Python的一些简单介绍,我们需要值或者基础的数据类型l来创建。
Scheme And I happen to like Lisp and Scheme, it's a great language when you're trying to deal with problems where you have arbitrarily structured data sets.
而且我很偶然的喜欢上了Lisp和,这些是当你要试图解决你,曾经很武断的设置数据,的地方的问题时很棒的语言。
If we're going to write programs, we need at least two things: we need some representation for fundamental data.
如果我们要去写程序,我们需要至少两件事情:,我们需要一些能代表基础数据的东西。
But one of the teaching fellas also passed long to us recently, a little real world example of what happens when you're not mindful of various data types and you're not mindful of the imprecision that's inherent in representing data in a computer, at least using a language like C and low level primitives like floats and even doubles.
最近有个助教告诉我们,一个现实世界中的例子,当你不注意各种各样的数据类型,也不注意在计算机中表示数据时,其内在的不精确性,至少在用像C语言,和float甚至double型数据时,那将会发生什么?
We want to create data types and functions, or we're going to call them methods, that are specifically aimed at manipulating those kinds of objects.
它们是特定的,用来操作那些对象的,我们的目标基本上来说,就是会去看看怎么去构建,能利用这种模块话。
And it's a topic I want to pick up on today, we're going to do for the next few lectures, and it's a topic I want to spend some time on because this idea of capturing data and methods, the term we're going to use for it, but data and functions that belong to that data, things that can be used to manipulate them, is a really powerful one.
我们会在今天讲这个话题,在后面几节课还会讲这个,这是个我愿意花点时间,在上面的话题因为这是个,捕获数据和方法的思想,我们用这个术语来形容它,数据中包括了数据和函数等,能用来操作它们的东西,真的是很强大的工具,我们真正要讲的东西是,我们要学会如何把信息。
What we're really doing, or I shouldn't say what we're really doing, a basic piece of what we're doing, when we talk about classes or objects, is we're doing something that Professor Guttag mentioned, we're defining an abstract data type.
或者我不应该,说我们真正要做的,当我谈到类或者对象的时候,我们在做的基本的东西,如Guttag教授提到的,就是定义一个抽象数据类型,那么这到底是什么意思呢?
应用推荐