Now these ideas of classes, object-oriented programming, data abstraction, are about 40 years old, they're not new ideas.
面向对象编程的概念,数据抽象的概念,都是40年前就有的老东西了。
So there's no programming. And in fact, we're not even going to ask you to hand it in.
实际上,我们甚至不会,让你把结果交上来。
So, an alternative to that that is incredibly common in just the programming world and in industry is to actually not write programs on your own personal computer but to actually write and run them on a server, someplace where the software is all standardized.
那么,在编程界和工业界普遍,使用的一个解决方案是,不在你自己的电脑上写程序,而是在服务器上编程运行,服务器上的软件都是标准化的。
I was deciding between political science at the time and computer science because I have always been fascinated by cities and at some point want to maybe potentially go into government I'm still not quite sure if I have more effect there or more effect in programming.
我那时要在政治学和,计算机科学,中做出选择,因为,我一直为城市着迷,我潜意识里有些想去政府工作,我并不确定我以后在,政治上更有成就还是在编程上更有成就。
And today nobody advocates a programming language that does not support it in some sort of way.
今天没有人会推荐一种,不支持面向对象编程的语言。
OK. Now, fortunately we're not going to start with Turing's six primitives, this would be really painful programming, because they're down at the level of, "take this value and write it onto this tape."
好了,现在,幸好我们能开始讲述,图灵的六个基本类型了,这会是非常痛苦的编程,因为它们只在这个阶段上,“拿到这个结果并写在这一卷磁盘上“
Some other object-oriented programming languages do not provide that pointer.
其他的面相对象编程的语言,没有提供这个指针。
Pseudo code. Now, you're all linguistic majors, pseudo means false, this sounds like code that ain't going to run, and that's not the intent of the term. When I say pseudo code, what I mean is, I'm going to write a description of the steps, but not in a particular programming language.
伪代码,基于你们都是学语言的,伪代码意味着不正确,这听起来就像是没法运行的代码,这可不是我们学这个的目的,当我说到伪代码的时候,我的意思是要对步骤进行一个描述,而不是某种特定的编程语言。
Dynamic programming is not the only time we do that.
我们在其他算法中也会用到这一点。
Because that's not a programming problem.
因为这并不是一个编程问题。
It's not true, by the way, of all programming languages. In fact, Professor Guttag already talked about that, in some languages lists take a time linear with the length to get to it.
顺便说一句这在大部分,编程语言中做不到,实际上Guttag教授已经说过这一点了,在一些语言中取得数组,要花费时间是线性长度的。
And there is no programming language that is better well actually, that's not quite true, there are some better at doing certain kinds of things but there's nothing that you can do in C that you can't do in Fortran.
没有一种编程语言是更优秀的,当然实际上,这并不是完全对的,在做某些事儿时一些语言会更好用,但是没有事情是你能在C语言中做,而不能在Fortran中做的。
If you've done a lot prior programming, this is probably not the best course for you, and if you're in that category, I would please encourage you to talk to John or I after class about what your goals are, what kind of experience you have, and how we might find you a course that better meets your goals.
如果你做过很多编程工作,这门课也许不适合你,如果你属于这一部分人的话,我会鼓励你下课以后找我,或者John谈谈你的目标何在,你有过什么经验,还有我们怎么才能给你,找到更适合你目标的课程。
应用推荐