
Turkish: 
Aşağıdaki içerik
Creative altında sağlandı
Avukat lisansı.
Desteğiniz MIT'ye yardımcı olacak
OpenCourseware devam
kaliteli eğitim sunun
ücretsiz kaynaklar.
Bağış yapmak veya görüntülemek için
ek malzemeler
yüzlerce MIT kursu ziyareti
MIT OpenCourseware, de
ocw.mit.edu.
PROFESÖR JIM ERICSON:
Tamam, çalışmak.
Bir uyarı: tutturmak
emniyet kemerlerin.
Ya da söylemenin başka bir yolu,
Açacağım
Yangın hortumu bugün biraz.
Son ders sende olabilir.
bunun bir SHASS olduğunu sanıyordum
sınıf, öyle değil
felsefe sınıfı ve öyleydi
için sahne ayarlamak önemlidir
ne konuşacağız
hakkında, ama konuştuk
çok yüksek seviyeli şeyler.
Tarifler kavramı,
hesaplama kavramı, neden sen
bunu yapmak istiyorsan, ne yapıyorsun
öğreneceğim.
Bugün dalmaya gidiyoruz
nitty-gritty, fındıklar ve
temelleri cıvata
hesaplama ve
özellikle ne yapacağım
bugün konuşacağım
operatörler ve operandlar hakkında
ki biraz gerçek yaptık
son kez, özellikle nasıl
ifadeler oluşturmak için

Korean: 
이 강의의 한국어자막은 www.snow.or.kr 자원활동가들에 의해 작성되었습니다.
이 강의의 한국어자막은 www.snow.or.kr 자원활동가들에 의해 작성되었습니다. 다음 내용은 저작권으로 
보호되어 있습니다. 
MIT OCW(무료공개강좌) 는 계속해서 고품질의 교육자원을  
무료로 제공함으로써 여러분을 도와줄 것입니다. 
추가적인 MIT 코스의 자료를 보거나
기부하시려면 ocw.mit.edu을 
방문해주세요.
좋아요. 
경고의 말입니다: 안전 벨트를 매세요. 
또는 다른 말로, 저는 오늘 소방 호스를 
약간 들이대려고 합니다. 
지난 시간에, 여러분은 이 수업이 SHASS 수업이라고 생각했을 겁니다. 
이것은 철학 수업과는 다릅니다. 그리고 우리가 무엇을 말할 것인지에 대한 
기초를 닦는 것이 중요 했습니다. 그러나 
우리는 매우 높은 수준의 것을 이야기 했습니다. 
레시피의 개념, computation의 개념, 왜 여러분이 이것을 해야 하는지, 
우리가 배우려고 하는 것은 무엇인지를요. 
오늘 우리는 핵심인 computation 기초의 기본 사항으로 들어가려고 합니다. 
그리고 특히, 
오늘 하려고 하는 것은 
연산자와 피연산자입니다. 우리는 지난 시간에 조금 했습니다. 
특히 어떻게 명령문을 만드는지를요. 저는 코드를 쓰기 위한 블록을 짓는 키로써 

English: 
The following content is
provided under a Creative
Commons license.
Your support will help MIT
OpenCourseware continue to
offer high-quality educational
resources for free.
To make a donation, or view
additional materials from
hundreds of MIT courses, visit
MIT OpenCourseware, at
ocw.mit.edu.
PROFESSOR JIM ERICSON:
OK, to work.
A word of warning: fasten
your seat belts.
Or, another way of saying it is,
I'm going to open up the
fire hose a little bit today.
Last lecture, you might have
thought this was a SHASS
class, it's not like a
philosophy class, and it was
important to set the stage for
what we're going to talk
about, but we talked about
very high level things.
The notion of recipes, the
notion of computation, why you
want to do this, what you're
going to learn.
Today we're going to dive into
the nitty-gritty, the nuts and
bolts of the basics of
computation, and in
particular, what I'm going to do
today is, I'm going to talk
about operators and operands,
which we did a little bit real
last time, in particular how
to create expressions, I'm

Turkish: 
ifadeler hakkında konuşacağım
anahtar yapı taşları olarak
kod yazıyor ve ben gidiyorum
basit kümeleri tanıtmak
programlar, özellikle ben
dallanma hakkında konuşacak
şartlı maddeler ve yineleme.
Yani, yapılacak çok şey var.
TAMAM?
Öyleyse düz atlayayım
ona.
Son dersin sonunda, biz
bazı tanıtmaya başladı
yapmak istediğiniz parçaları.
Ve hatırlatmak istiyorum
Hedefimiz sizsiniz.
Tarif etmeye çalışıyoruz
süreçler.
O şeylere sahip olmak istiyoruz
yeni türler çıkarmak
bilgi.
Bu yüzden programlar yazmak istiyoruz
bunu yapmak için.
Eğer yazacaksak
programlara en az iki tane ihtiyacımız var
şeyler: biraz ihtiyacımız var
temsil
temel veriler için.
Ve geçen sefer ikiyi gördük.
bunun örnekleri.
Ve ikinci şey gidiyoruz
gerek, gidiyoruz
vermek için bir yola ihtiyaç duymak
bilgisayara talimatlar
bu verileri manipüle etmek için.
Bir açıklama yapmamız gerekiyor
Tarifin
İlkel açısından
veri, ne gördük
iki tür vardı: değil mi?

Korean: 
statement에 대해 이야기 하려고 합니다. 
그리고 프로그램의 간단한 세트를 소개할 것입니다. 
특히 branching, 
조건문, 선언문에 대해 이야기 하려고 합니다. 
그래서, 할 것이 많습니다. 
알겠죠? 
이것을 바로 시작해 봅시다. 
지난 시간 마지막에, 우리는 여러분이 원하는 것의 일부를 
소개하기 시작했습니다. 
그리고 저는 우리의 목표를 상기시키고 싶군요. 
우리는 프로세스들을 설명하고 합니다. 
우리는 새로운 정보를 추론할 것을 
가지고 싶습니다. 
그래서 우리는 그것을 할 프로그램을 쓸 것입니다. 
우리가 프로그램을 쓴다면, 우리는 적어도 
두 가지가 필요합니다: 기본적인 데이터의  
표현입니다. 
그리고 우리는 그것의 두 가지 예를 지난 시간에 보았습니다. 
그리고 우리가 필요한 두 번째 것은 데이터를 조작하기 위해 
컴퓨터에게 명령을 내리는 
방법입니다. 
우리는 그것에 레시피의 설명을 주어야 합니다.
초기 데이터의 관점에서, 우리가 본 것은 
두 가지였습니다: 그렇죠? 

English: 
going to talk about statements
as the key building blocks for
writing code, and I'm going to
introduce simple sets of
programs, in particular I'm
going to talk about branching,
conditionals, and iteration.
So, a lot to do.
OK?
So, let me jump straight
to it.
At the end of last lecture, we
started introducing some of
the pieces you want to do.
And I want to remind
you of our goal.
We're trying to describe
processes.
We want to have things that
deduce new kinds of
information.
So we want to write programs
to do that.
If we're going to write
programs, we need at least two
things: we need some
representation
for fundamental data.
And we saw last time two
examples of that.
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.
We need to give it a description
of the recipe.
In terms of primitive
data, what we saw
were two kinds: Right?

Korean: 
숫자와 문자열입니다. 
이 강의에서 조금 나중에 우리는 
세 번째 것을 소개할 것입니다. 그러나 용어를 통해 
우리가 보려고 하는 것은, 우리가 만들어 낸 데이터 구조가 얼마나 복잡하더라도, 
그리고 우리는 다양한 데이터 구조들을 만들 것입니다, 
근본적으로 그들 모두는 그들의 기본, 
그들의 원자적 단계를 가지고 있습니다. 그것은 숫자의 조합, 
문자열의 조합이 될 것입니다. 
그것은 boolean인데, 
이 강의 조금 나중에 소개할 것입니다.  
그리고 이것이 말이 됩니까? 
숫자들은 숫자적인 일을 하고, 문자열들은 
문자 정보를 표현하는 기본적인 방법입니다. 
그리고 우리는 우리가 해 나가면서 그것들을 
어떻게 조합하는지를 보려고 합니다. 
우리가 본 두 번째 것은, 모든 초기 값과 
관련 있는 타입입니다. 
그리고 이것들은 명백합니다, 그렇죠? 
문자열은 문자열입니다. 
숫자는, 다양한 것이 있습니다. 
Integer도 있고, float도 있습니다. 
우리는 나중에 몇 가지를 더 소개할 것입니다. 
그러나 이런 타입들은 중요합니다. 왜냐하면 그것들이 우리에게 
우리가 그들을 합칠 때 원하는 것에 대해 알려 주기 때문입니다. 
좋아요, 그렇지만, 저는 값과, 예, 타입을 

Turkish: 
Sayılar ve dizgiler.
Biraz sonra
ders gidiyoruz
üçüncü tür bir değer ortaya koymak,
ama ne yapacağız
dönem boyunca bakın, hayır
Bir veri ne kadar karmaşık olursa olsun
yapıyı yaratırız ve biz
çeşitli yaratacak
temel olarak veri yapıları
hepsinin kendi temelleri vardır,
İsterseniz atomik seviyeleri,
biraz olacak
sayıların kombinasyonu
dizeler ve üçüncü tür,
hangileri boole, hangisi
biraz tanıtacağım
daha sonra bu derste.
Ve bu tür yapar
doğru mu?
Sayılar sayısal yapmak için vardır
şeyler, dizeler
temel yolumuz
yazıyı temsil eden
bilgi.
Ve böylece göreceğiz
bu nasıl birleştirilir
birlikte yaşadıklarımız.
Gördüğümüz ikinci şey, gördük.
her ile ilgili
ilkel değer bir türdü.
Ve bunlar biraz
açık, doğru?
Dizeler dizgedir.
Rakamlar için, bazı vardı
varyasyonlar; tamsayılarımız vardı
yüzerdik.
Birkaç tanıştıracağız
biz gittikçe daha fazla.
Ancak bu türler önemlidir
çünkü bize bir şey söylüyorlar
ne zaman yapmak istediğimiz hakkında
onları bir araya getirmek istiyorum.

English: 
Numbers and strings.
A little later on in the
lecture we're going to
introduce a third kind of value,
but what we're going to
see throughout the term is, no
matter how complex a data
structure we create, and we're
going to create a variety of
data structures, fundamentally
all of them have their basis,
their atomic level if you like,
are going to be some
combinations of numbers, of
strings, and the third type,
which are booleans, which I'm
going to introduce a little
later on in this lecture.
And that kind of makes
sense right?
Numbers are there to do numeric
things, strings are
our fundamental way of
representing textual
information.
And so we're going to see
how to combine those
things as we go along.
Second thing we saw was, we saw
that associated with every
primitive value was a type.
And these are kind of
obvious, right?
Strings are strings.
For numbers, we had some
variations; we had integers,
we had floats.
We'll introduce a few
more as we go along.
But those types are important,
because they tell us something
about what we want to do when we
want to put them together.

Turkish: 
Tamam, ama yine de istiyorum
İkimizde bir değere sahip olduğumuz için
evet ve bir tür.
Tamam.
Onlara sahip olduktan sonra, biz
yapmaya başlamak istiyorum
onlardan kombinasyonları.
Parça koymak istiyoruz
birlikte.
Ve bunun için birleştiririz
ifadelerdeki şeyler.
Ve ifadeler olarak gördüklerimiz
oluşur
operandlar ve operatörler.
Ve yaptığımız basit şeyler
yapman gereken şeylerdi
sayısal şeylerden bekleyin.
Şimdi bir tane vurgulamak istiyorum
burada diğer nüanslar.
Hangisi ve biz gidiyoruz
Buna bazı örnekler verin,
başlangıçta az önce yazdık
ifadeleri içine
tercüman; yani doğrudan
Python'a.
Ve geçen sefer önerdiğim gibi,
tercüman aslında bir
makinenin içindeki program
Bu temelde takip ediyor
burada tarif ettiğimiz kurallar
değeri çıkarmak
yazdır.
Ve eğer doğrudan girersek
tercüman
aslında bir
eval ve bir baskı.

English: 
OK, but nonetheless, I want to
stress we have both a value,
yeah, and a type.
All right.
Once we have them, we
want to start making
combinations out of them.
We want to put pieces
together.
And for that, we combine
things in expressions.
And what we saw as expressions
are formed of
operands and operators.
And the simple things we did
were the sort of things you'd
expect from numerical things.
Now I want to stress one
other nuance here.
Which is, and we're going to
do some examples of this,
initially we just typed in
expressions into the
interpreter; that is, directly
into Python.
And as I suggested last time,
the interpreter is actually a
program inside of the machine
that is basically following
the rules we're describing here
to deduce the value and
print it up.
And if we type directly into
the interpreter, it
essentially does an
eval and a print.

Korean: 
두 가지를 가진다는 것을 강조하고 싶군요. 
좋아요. 
우리가 한 번 그것을 가지면, 우리는 그것의 
조합을 만들기 시작합니다. 
우리는 그것들을 합치고 싶습니다. 
그리고 그것을 위해, 우리는 명령문에서 그것들을 합칩니다. 
그리고 명령문에서 우리가 보는 것은 연산자와 
피연산자의 형태입니다. 
그리고 우리가 한 가장 간단한 것은 여러분이 숫자적인 것으로부터 
예상한 것이었습니다. 
이제 저는 여기서 한 가지 다른 뉘앙스를 강조하려고 합니다. 
그것은, 그리고 우리는 이것의 예제들을 해 볼 텐데, 
처음에 우리는 표현식을 인터프리터로 타이프했습니다; 
즉, 직접 파이썬으로요. 
그리고 제가 지난 시간에 주장한대로, 인터프리터는 사실 
기계 내부의 프로그램입니다. 그것은 기본적으로 값을 추론하고 
그것을 프린트하기 위해 여기서 설명하는 법칙들을 
따르고 있습니다. 
그리고 우리가 직접 인터프리터로 타이프하면, 그것은 필수적으로 
평가하고 프린트 합니다. 

English: 
It evaluates, and it prints.
Most of the time, we're going to
be doing expressions inside
of some piece of code, inside
of a script, which is the
Python word for program.
In there, I want to make this
distinction, this nuance: the
evaluator is still going to be
taking those expressions and
using its rules to get a value,
but it's not going to
print them back out.
Why?
Because typically, you're doing
that to use it somewhere
else in the program.
It's going to be stored
away in a variable.
It's going to be stuck
in a data structure.
It's going to be used
for a side effect.
So, inside of code, or inside of
a script, there's no print,
unless we make it explicit.
And that's a little bit down in
the weeds, it's a detail,
but one I want to stress.
You need to, if you want
something to be printed out
inside your code, you need to
tell the machine to do that.
OK.
So let's do some simple
examples.
We've already seen somebody's.

Korean: 
그것이 평가하고, 그리고 프린트 합니다. 
대부분, 우리는 
코드 내부의, 스크립트 내부의, 
파이썬 언어인 명령문들을 할 것입니다. 
거기서, 저는 이 차이, 이 뉘앙스를 만들고 싶습니다: 
평가자는 여전히 이 식을 사용할 것이고 값을 얻기 위해 
그것의 규칙들을 사용할 것이지만, 그것은 
프린트 하지는 않습니다.  
왜 그럴까요? 
왜냐하면 전형적으로, 여러분은 프로그램 어디에서 그것을 
사용하기 때문입니다. 
그것은 변수 안에 저장됩니다. 
그것은 데이터 구조 안에 저장됩니다. 
그것은 부작용을 위해 사용됩니다. 
그래서, 코드 안에, 또는 스트립트 안에, 프린트가 없습니다. 
여러분이 그것을 분명히 하지 않으면요. 
그리고 약간 주저 합니다, 그것은 자세합니다, 
그러나 저는 하나를 강조하고 싶습니다. 
여러분이 여러분 코드 안에서 무엇이 프린트하게 하고 싶으면, 
여러분은 기계에 그렇게 하라고 말해주어야 합니다. 
좋아요. 
그래서 몇 가지 간단한 예제들을 해 봅시다. 
우리는 이미 다른 사람의 것을 보았습니다. 

Turkish: 
Değerlendirir ve yazdırır.
Çoğu zaman
içinde ifadeler yapmak
bir parça kodun içinde
bir betiğin
Program için Python sözcüğü.
Orada bunu yapmak istiyorum
ayrım, bu nüans:
Değerlendirici hala olacak
bu ifadeleri alarak ve
Bir değer elde etmek için kurallarını kullanarak,
ama gitmeyecek
onları geri yazdırın.
Niye ya?
Çünkü genelde yapıyorsun
bir yerde kullanmak
programda başka.
Depolanacak
bir değişkende.
Sıkışmış olacak
bir veri yapısında.
Kullanılacak
yan etki için.
Yani, kodun içinde veya
Bir senaryo, baskı yok,
açık yapmazsak.
Ve bu biraz aşağı
yabani otlar, bu bir detay
ama bir tane vurgulamak istiyorum.
İstersen, istersen
basılacak bir şey
kodunuzun içinde
makineye bunu yapmasını söyle.
TAMAM.
O zaman biraz basit yapalım
örnekleri.
Çoktan birisini gördük.

Korean: 
저는 여러분에게 상기 시키고 싶군요. 예를 들어, 이와 같은 명령문을 타이프하고 싶다면, 
문법적인 형태에 주목하세요. 
이것은 명령문, 숫자입니다. 이어서 연산자, 
다른 명령문이 있습니다. 
그리고 물론 저는 거기서 좋아하는 값을 얻습니다. 
네. 
오, 여러분은 왼쪽으로 그렇게 멀리 기울고 싶지 않습니까? 
좋아요, 여러분은 공화주의자이니까, 저는 이것을 기쁘게 
약간 옮기겠습니다. 
와우, 존, 제가 정치적인 유머로 웃겼어요, 
저는 큰 문제에 빠졌습니다. 
이것이 낫습니까? 
젠장, 좋아요, 저는 이것을 더욱 자주 해야겠군요. 
좋아요, 해 봅시다, 보세요, 저는 여기 이것을 하고 싶습니다, 
저는 이것을 볼 수 없어요. 아, 저는 안도의 한숨을 들었어요, 
네, 좋습니다. 
해 봅시다. 
더 낫군요. 
좋아요. 
우리가 지난 시간에 보여 준 다른 것 중 하나는 
연산자들이 오버로드 된다는 것이었습니다. 
그리고 이것은 존과 제가 동의하지 않는 부분이었습니다. 
저는 이와 같은 것을 하지만, 그는 이것이 괜찮은 것이라고 생각합니다. 
특히 – 후아, 우리는 이런 것을 하지 않습니다, 우리는 이것을 합니다 – 
즉, 문자 열에서 숫자 곱셈의 조합을 주세요, 

English: 
I just want to remind you, if I
wanted to, for example, type
in an expression like that,
notice the syntactical form,
it's an expression, a number,
followed by an operand,
followed by another
expression.
And of course I get out the
value I'd like there.
Yes sir.
Oh, you don't like leaning
that far to the left?
OK, if you're a Republican I'll
be happy to shift this
over a little bit.
Wow, John, I got a laugh
for a political
joke, I'm in big trouble.
That better?
Oh damn, all right, I'll have
to do it even more.
OK, here we go, here we go,
you see, I'm doing it down
here, I can't see it, does
that-- ah, I hear his sighs of
relief, OK, good.
There we go.
Better.
All right.
One of the other things we
showed last time is that
operators are overloaded.
And this is where you heard
John and I disagree.
I don't happen to like
this, but he
thinks it's an ok thing.
In a particular-- if we, whoa,
we don't do that, we do this--
that is, give a combination of
a number multiplication in a

Turkish: 
Sadece sana hatırlatmak isterim, eğer istersem
örneğin yazmak istedi
böyle bir ifadede,
sözdizimsel formunu fark etmek,
bu bir ifade, sayı
ardından bir operand
ardından başka biri
ifadesi.
Ve tabii ki çıkıyorum
Ben orada isterdim değer.
Evet efendim.
Oh, eğilmekten hoşlanmıyorsun
sola doğru o kadar mı?
Tamam, eğer bir cumhuriyetçiyseniz
bunu değiştirmekten mutlu ol
biraz üzerinde.
Vay, John, güldüm
politik olarak
şaka, başım büyük belada.
Bu daha iyi?
Kahretsin, tamam, yapacağım
daha da fazlasını yapmak için.
Tamam, işte başlıyoruz, işte başlıyoruz
görüyorsun ya, aşağı yapıyorum
burada göremiyorum, görüyor
Bu ... ah, iç çekişlerini duyuyorum
rahatlama, tamam, güzel.
Oraya gidiyoruz.
Daha iyi.
Tamam.
Diğer şeylerden biri biz
son kez gösterdi ki
operatörler aşırı yüklenmiş.
Ve burası duyduğun yer.
John ve ben aynı fikirde değiliz.
Ben sevmiyorum
bu, ama o
bunun iyi bir şey olduğunu düşünüyor.
Özellikle-- eğer biz
Bunu yapmayız, bunu yapalım--
yani, bir arada ver
bir sayı çarpımı

English: 
string, this will in fact give
us back a new string with that
many replicas, if you
like, of the string
concatenated together.
All right?
And if you want to do other
things, for example, we can
take two strings and add--
whoops, sorry-- and add them
together, we will get
out, again, a
concatenation of that string.
And these will, we'll let you
work through the variations,
but these are the simple
expressions we can use.
Now, sometimes things get
a little interesting.
All right?
What's the value of
that expression?
What do you think should happen
if I evaluate that
expression?
Somebody with a hand up,
so I can see it.
What's going to happen?
STUDENT: [UNINTELLIGIBLE]
PROFESSOR JIM ERICSON:
An error?
Why?
STUDENT: [UNINTELLIGIBLE]
PROFESSOR JIM ERICSON: Great.
OK.
That means, let's check it.
It certainly is.
We bribe people.
So I, ah, by the way, John's a
Yankees fan, he throws like

Korean: 
이것은 사실 우리에게 많은 함께 이어진 문자열의 
복제한 것들과 함께 새로운 문자열을 
줄 것입니다. 
알겠죠? 
여러분이 다른 것을 하고 싶다면, 예를 들어, 
우리는 두 개의 문자열을 가지고 더할 수 있습니다 – 웁스, 미안해요 – 그리고 그것들을 함께 
더하세요, 우리는 다시, 문자열의 연속을 
얻을 것입니다. 
그리고, 우리는 여러분이 다양하게 해 보도록 할 것이지만, 
이것들은 우리가 사용할 수 있는 간단한 명령문들입니다. 
이제, 가끔씩 조금 흥미로워 집니다. 
알겠죠? 
그 명령문의 값은 무엇입니까? 
여러분은 제가 그 명령문을 평가한다면 무슨 일이 일어날 것이라고 생각합니까? 
손을 들어 보세요, 그러면 제가 찾겠습니다. 
무슨 일이 일어날까요? 
에러요? 
왜죠? 
훌륭해요. 
좋습니다. 
그것이 말하는 것을, 확인해 봅시다. 
확실히 그렇군요.  
우리는 뇌물을 받은 사람들 입니다. 
아, 그런데, 존은 양키스의 팬입니다. 
그는 Damon 처럼 던져요. 저는 레드 삭스 팬이구요, 

Turkish: 
string, bu aslında verecek
bize bununla yeni bir dize geri
birçok kopya, eğer
dize gibi
bir araya toplandı.
Tamam?
Ve başka bir şey yapmak istersen
şeyler yapabiliriz, örneğin
iki karakter al ve ekle--
ağrıyor, üzgünüm-- ve ekle
birlikte alacağız
bir kez daha
bu dizginin bitiştirilmesi.
Ve bunlar olacak, size izin vereceğiz
varyasyonları araştırmak,
ama bunlar basit
kullanabileceğimiz ifadeler.
Şimdi, bazen işler olur
biraz ilginç.
Tamam?
Değeri nedir
bu ifade?
Sence ne olmalı
bunu değerlendirirsem
ifadesi?
Eli yardım eden biri,
böylece onu görebiliyorum.
Ne olacak?
ÖĞRENCİ: [ANLAYIŞLI]
PROFESÖR JIM ERICSON:
Bir hata?
Niye ya?
ÖĞRENCİ: [ANLAYIŞLI]
PROFESÖR JIM ERICSON: Harika.
TAMAM.
Yani, kontrol edelim.
 
Bu kesinlikle.
İnsanlara rüşvet veriyoruz.
Yani, ah, bu arada, John bir
Yankees hayranı gibi atıyor

English: 
Johnny Damon, I'm a Red Sox fan,
so we'll see if I, how
about that?
And I almost hit John along
the way, great.
My third right, exactly,
what can I say?
All right, so we're into bribing
you as we go along
here, and all right?
You'll be badly overweight
by the end of the term.
Right, it's a syntactic error,
because it doesn't know how to
deal with this.
But there's an important thing
going on here, if I in fact
wanted to combine those into a
string, I should have told the
machine to do that, and I can do
that, by explicitly saying,
take that, which is a number,
and convert it into a string,
and then-- bleah, I keep
doing that-- then
add it to that string.
OK, so there's an important
point here.
We've got what's called
type conversion.
That is, if I want to combine
two things together in a
particular way, I need to make
sure that I give it the kind
of operand it expects.
So STR, which I just typed up
there, takes in parens, some

Turkish: 
Johnny Damon, ben Red Sox hayranıyım.
öyleyse görelim bakalım, nasıl
bu konuda?
Neredeyse John'u da vuruyordum.
yol, harika.
Üçüncü hakkım, tam olarak,
ne söyleyebilirim?
Tamam, rüşvet alıyoruz.
biz giderken sen
burada ve tamam mı?
Çok fazla kilolu olacaksın
dönem sonuna kadar.
Doğru, bu sözdizimsel bir hata.
çünkü nasıl yapılacağını bilmiyor
bununla ilgilen.
Fakat önemli bir şey var
aslında devam edersem, buraya gidiyor
bunları birleştirmek istedim
dize, söylemeliydim
Bunu yapmak için makine ve yapabilirim
açıkça söyleyerek,
Al, ki bu sayı
ve bir dizgeye dönüştürmek,
ve sonra-- neyse, devam ediyorum
Bunu yapıyor-- o zaman
bu dizeye ekle.
Tamam, önemli bir şey var.
buraya gelin.
Biz denilen şeyi aldık
tür dönüşümü.
Yani, birleştirmek istersem
iki şey bir arada
belirli bir şekilde yapmam gerekiyor
eminim ona bir çeşit vereyim
Operand bekliyor.
Yani az önce yazdığım STR
orada, parens alır, bazı

Korean: 
그래서 우리는 볼 것입니다, 이것은 어떻습니까? 
그리고 저는 대부분 존의 공을 쳤습니다, 좋아요.
제 세 번째는 맞아요, 정확하군요, 제가 무엇을 말할 수 있습니까?  
좋아요, 우리는 여러분이 여기서 어울리면서 여러분에게 뇌물을 주는 것으로 들어가고 있습니다, 
됐죠? 
여러분은 학기 말에 나쁘게 비만이 될 것입니다. 
네, 이것은 문법 에러입니다, 왜냐하면 
이것은 이걸 어떻게 다뤄야 하는지를 모르거든요. 
그러나 여기에 중요한 것이 있습니다. 사실 
제가 이것들을 문자열로 조합하고 싶으면, 저는 기계한테 그렇게 하라고 말했어야 합니다, 
그리고 저는 그렇게 할 수 있습니다, 명확하게 말을 해야죠, 
그것을 가져와서, 숫자를요, 그리고 그것을 문자열로 변환합니다, 
그리고 나서 – 아, 저는 그것을 계속 하고 있습니다 – 그리고 그것을 
그 문자열에 더하세요. 
좋아요, 여기 중요한 핵심이 있습니다. 
우리는 형 변환이라는 것을 했습니다. 
즉, 제가 특정한 방법으로 두 개를 조합하고 싶으면, 
저는 제가 그것을 연산자에게 줄 것인지 
확실히 해야 합니다. 
그래서 STR, 제가 거기 타이프한 것은, 괄호 안에서 가져와서, 

English: 
input, and it converts it into
a string, so that now I can
use that where I was
expecting a string.
John.
PROFESSOR JOHN GUTTAG: You've
got a static semantic error in
your syntax.
PROFESSOR JIM ERICSON:
Thank you.
And I was going to come to that
in a second, but thank
you, John, for pointing it out.
All right.
Why is it a static
semantic error?
The syntax is OK in the sense
of, it is an operand, an
operator, an operand, so
syntactically it's OK.
The semantics was what caused
the problem, because the
operator was expecting
a particular kind
of structure there.
There's a second thing going
on here that I want to
highlight, because it's
really important.
Yes indeed.
OK, there we go.
The second thing I want to
highlight is, that what's
going on, is that Python is
doing some type checking.
It caught the error, because
it checked the types of the
operands before it applied
things, and it says,
I'm going to stop.
Now, you might have said, gee,
why didn't it just assume that

Korean: 
집어 넣고, 그리고 그것을 문자열로 변환합니다, 
그래서 저는 제가 문자열로 기대 했던 곳에 그것을 사용할 수 있습니다. 
존. 
문법에 정적 의미 에러가 있군요.
문법에 정적 의미 에러가 있군요.
고마워요. 
저는 곧 그것을 하려고 했지만, 고마워요, 
존, 그것을 지적해 줘서요. 
좋아요. 
왜 이것이 정적 의미 에러 일까요? 
문법은 맞습니다, 피연산자, 
연산자, 피연산자의 관점에서요, 그래서 문법적으로 맞습니다. 
의미는 문제를 일으키는 것인데, 
연산자가 거기서 특정한 구조를 기대하고 있었기 때문입니다. 
연산자가 거기서 특정한 구조를 기대하고 있었기 때문입니다. 
여기 제가 강조하고 싶은 두 번째 것이 있습니다. 
왜냐하면 이것은 정말로 중요하기 때문입니다. 
네 정말로요. 
좋아요, 해 봅시다. 
제가 강조하고 싶은 두 번째 것은, 어떤 것이냐 하면, 
파이썬이 어떤 타입 검사를 한다는 것입니다. 
그것은 에러를 잡습니다. 왜냐하면 그것이 무엇을 적용하기 전에 
피연산자의 타입을 검사하고, 
나는 멈출거야 라고 말하기 때문입니다. 
이제, 여러분은 말할 수도 있습니다, 
왜 제가 사실 그것들을 문자열로 다루고 

Turkish: 
girdi ve onu dönüştürür.
bir dize, böylece şimdi yapabilirim
kullandığım yeri kullan
bir dize bekleniyor.
John.
PROFESÖR JOHN GUTTAG: Sizler
statik bir anlam hatası oluştu
senin sözdizimin.
PROFESÖR JIM ERICSON:
Teşekkür ederim.
Ve ben buna gelecektim
bir saniye içinde ama teşekkür ederim
Sen, John, işaret ettiğin için.
Tamam.
Neden statik
anlamsal hata?
Sözdizimi anlamında tamam
bir operand, bir
operatör, bir işlenen
sözdizimsel olarak sorun değil.
Anlambilim neden oldu
sorun, çünkü
operatör bekliyordu
belirli bir tür
orada yapı.
Devam eden ikinci bir şey var
burada istediğim
vurgula çünkü
gerçekten önemli.
Evet kesinlikle.
Tamam, işte gidiyoruz.
İstediğim ikinci şey
vurgulamak, ne olduğunu
devam ediyor, bu Python
bazı tip kontroller yapıyor.
Hatayı yakaladı, çünkü
türlerini kontrol etti
uygulanmadan önceki işlenenler
şeyler ve diyor ki
Ben duracağım.
Şimdi, söyleyebilirdin, tanrım,
neden sadece farz etmedi

Turkish: 
Aslında bunları tedavi etmek istedim
dizge olarak ve birleştir
Onları birlikte mi?
Makul bir ses gibi
yapılacak şey.
Ama bu tehlikeli bir şey.
Çünkü bunu yaparken Python
o zaman ki bir değer olurdu
başkalarına geçebilir
hesaplamanın bir parçası,
ve eğer istediğim bu değilse,
Uzun bir yol olabilirim
hesaplamada aşağı akış
Ben gerçekten biraz vurmadan önce
hiçbir anlam ifade etmiyor.
Ve nereden geldiğini takip etmek
dan gerçekten zor olabilir.
Bu yüzden aslında sahip olmak istiyorum
kadar kontrol türü
erken yapabildiğim gibi.
Ve aslında, tip altında
kontrol, farklı diller
bazen bir spektruma düşmek
zayıftan güçlü yazmaya.
Hangi temelde diyor, ne kadar
tip kontrolü yaparlar mı?
Şimdi, John'u duyacaksın
ve ileri geri gidiyorum,
Dediğim gibi eski bir zamanım.
Ben kesinlikle eski zamanım
ama aynı zamanda eski bir zamanım
Lisp programcısı.
Lisp'i seviyorum ama Lisp
kesinlikle bir kategorisinde
çok zayıf yazılmış bir dil.
Türleri kontrol etmez
onun argümanlarından hiç.
Python olduğunu söyleyemem
Tamamen güçlü ama bu
güçlü çok daha yakın
Spektrumun sonu.

English: 
I wanted to in fact treat these
as strings, and combine
them together?
Sounds like a reasonable
thing to do.
But it's a dangerous thing.
Because in doing that, Python
would then have a value that
it could pass on into some other
part of a computation,
and if it wasn't what I wanted,
I might be a long ways
downstream in the computation
before I actually hit some
result that makes no sense.
And tracing back where it came
from can be really hard.
So I actually want to have
type checking as much
as I can early on.
And in fact, under type
checking, different languages
sometimes fall on a spectrum
from weak to strong typing.
Which basically says, how much
type checking do they do?
Now, you're going to hear John
and I go back and forth a lot,
as I said I'm an old time-- well
I'm certainly old time,
but I'm also an old time
Lisp programmer.
I love Lisp, but Lisp is
certainly in the category of a
very weakly typed language.
It does not check the types
of its arguments at all.
Python is, I wouldn't say
completely strong, but it's
much closer to the strong
end of the spectrum.

Korean: 
그것들을 조합하길 원한다고 가정하지 않았습니까? 
합리적으로 들리는군요. 
그러나 이것은 위험한 것입니다. 
왜냐하면 그렇게 할 때, 파이썬은 computation의 
다른 부분으로 넘겨주는 값을 가집니다, 
그리고 그것이 제가 원하던 것이 아니면, 
저는 사실 말이 되지 않는 결과를 얻기 전에 computation에서 
다운스트림 방법을 쓸 수도 있습니다. 
그리고 그것이 어디로부터 왔는지 추적하는 것은 정말 힘들 수 있습니다. 
그래서 저는 제가 할 수 있는 한 일찍 
타입 검사를 합니다. 
그리고 사실, 타입 검사에서, 다른 언어들은 
때때로 약한 것부터 강한 스펙트럼에 떨어집니다. 
기본적으로, 타입 검사는 얼만큼 합니까? 
이제, 여러분은 존과 제가 앞 뒤로 많이 왔다 갔다 하는 것을 듣게 될 것입니다, 
제가 오래 전에 말한 대로 – 확실히 오래 전 이었지만, 
저는 또한 오랜 Lisp 프로그래머입니다. 
저는 Lisp를 좋아하지만, Lisp는 확실히 
매우 약한 타입의 언어 범위에 듭니다. 
그것은 그것의 타입을 전혀 검사하지 않습니다. 
파이썬은, 확실히 강하지만, 
스펙트럼의 강한 끝 부분에 더욱 가깝습니다. 

English: 
It's going to do a lot of type
checking for you before it
actually passes things back.
Nonetheless, I'm also going to
argue that it's probably not
as strongly typed as
we might like.
So, for example, there's
an expression.
Now, less than is just, if you
haven't used it before, it's
just the operator you'd expect,
it's comparing two
things and it's going to return
either true or false
depending on whether the first
argument is less than the
second argument.
What's going to happen here?
Again, I need a hand so I can
know where to throw candy.
I've also got on my
reading glasses
on, I can't see anything.
Anybody.
TAs don't count, they
get their own candy.
When it, yep.
STUDENT: [INAUDIBLE]
PROFESSOR JIM ERICSON:
Good question.
Sounds like a reasonable
guess, right?
How in the world am I going to
compare a string to a number?
So, see how good my aim
is, ah, not bad.
All right.
A good quest-- sorry, a
good thought, but in
fact, son of a gun.
Or as my younger son would
say, fudge knuckle.
Yeah.
All right?

Korean: 
그것은 사실 넘겨 주기 전에 
타입 검사를 많이 할 것입니다.   
그렇지만, 저는 그것이 아마 우리가 좋아하는 것처럼 
강한 타입은 아니라고 주장하고 싶군요.
예를 들어, 명령문이 있습니다.
이제, 여러분이 전에 이것을 사용한 적이 없으면, 
이것은 단지 여러분이 예산한 연산자입니다, 이것은 두 가지를 비교하고 
첫 번째 인수가 두 번째 인수 보다 작은지에 따라 
true 나 false를 리턴해 줄 것입니다. 
여기서 무슨 일이 일어납니까? 
다시 말해, 저는 도움이 필요해요, 어디에 사탕을 던질지 알 수 있도록요. 
저는 또한 돋보기를 끼고 있습니다, 저는 
아무 것도 볼 수 없어요. 
아무도요. 
조교들은 중요하지 않습니다, 그들은 그들의 사탕을 가지고 있어요. 
네. 
좋은 질문입니다. 
합리적인 추측 같아요, 그렇죠? 
세계에서 저는 어떻게 문자열을 숫자와 비교합니까? 
제 목표가 얼마나 좋은지 보세요, 아, 나쁘지 않군요. 
좋아요. 
좋은 요청입니다 – 미안해요, 좋은 생각입니다, 그런데 사실, 
골칫덩이군요. 
또는 제 아들은 이상한 손가락 이라고 할거에요. 
네. 
알겠습니까? 

Turkish: 
Çok fazla tür yapacak
ondan önce seni kontrol etmek
aslında bir şeyleri geri iletir.
Yine de ben de gidiyorum
muhtemelen olmadığını iddia
kadar güçlü
beğenebiliriz.
Yani, örneğin, orada
ifade.
Şimdi, sadece olduğundan daha az
daha önce kullanmadım, bu
Sadece beklediğiniz operatör
iki karşılaştırıyor
şeyler ve geri dönecek
doğru veya yanlış
ilk olup olmamasına bağlı olarak
argüman daha az
ikinci argüman.
Burada ne olacak?
Yine, yardıma ihtiyacım var, böylece yapabilirim.
Nereye şeker atılacağını biliyorum.
Ben de anladım
okuma gözlüğü
bir şey göremiyorum.
Herkes.
TA'lar sayılmaz
kendi şekerlerini al.
Ne zaman, evet.
ÖĞRENCİ: [GÜZEL]
PROFESÖR JIM ERICSON:
İyi soru.
Makul bir ses gibi
tahmin et
Nasıl dünyaya gidiyorum
bir dize bir sayı ile karşılaştırmak?
Peki, amacımın ne kadar iyi olduğunu görün
, ah, fena değil.
Tamam.
İyi bir arayış-- üzgünüm, bir
iyi düşünce, ama içinde
Aslında, silahın oğlu.
Ya da küçük oğlumun yapacağı gibi
Diyelim, şekerleme mafsal.
Evet.
Tamam?

Turkish: 
Peki, dünyada ne
buraya mı gidiyorsun
Burası bir yer ...
Seni bilmiyorum John.
Bence bu aslında
gerçekten iyi değil, çünkü doğru,
bu ne yapıyor
izin veriyor, üzgünüm, izin ver
geri çekil ve söyle--
daha düşük bir aşırı yük
Bu karşılaştırmanıza olanak sağlar
temelde sözlükbilim
sipariş veya bu
dahil sembollerin sıralanması
Makinenin içindeki sayılar.
Ve bu, aklımda, gerekir
bir hata olmuş.
Neden dünyada
bunu karşılaştırmak ister misin?
Sadece size bir örnek vermek için
Mesela yapabilirim
aşağıdaki: tamam
dördüncü rakam,
dize üç, dize
dört, oops, daha az değil
üçlü diziden daha.
Ve burası olduğu yer
dizeleri ve sayıları karşılaştırma
garip bir şekilde.
Peki neden sana bunu gösteriyorum?
Kısmen size göstermek için
biraz garip ama aynı zamanda
sana şeylerden birini söyle
yapmak istiyorsun

English: 
So, what in the world's
going on here?
This is a place--
I don't know about you, John,
I think this is actually
really not good, because right,
what this is doing is,
it's allowing-- sorry, let me
back up and say it-- it's got
an overload on the less-than
that allows you to compare
basically the lexicographic
ordering, or this sequence of
ordering of symbols, including
numbers inside of the machine.
And this, in my mind, should
have been an error.
Why in the world would you
want to compare that?
Just to give you an example of
that, for instance, I can do
the following: all right, the
number four is less than the
string three, whereas the string
four, oops, is not less
than the string three.
And this is a place where it's
comparing strings and numbers
in a strange way.
So why am I showing you this?
Partly to show you that it's
kind of weird, but also to
tell you that one of the things
you want to do is

Korean: 
여기서 무슨 일이 일어 나고 있습니까? 
여기는 – 저는 당신에 대해 모르겠어요, 존, 
저는 이것이 사실 좋지 않다고 생각해요, 왜냐하면 이것이 하고 있는 것은, -- 
미안해요, 다시 돌아가서 말할 게요 – 이것은 오버로드 되었어요. 
그것은 기본적으로 
사전 순으로 또는 
기계 내의 숫자를 포함하는 
기호 순서로 비교할 수 있어요. 
그리고, 제 생각에, 이것은 에러가 있을 거 같아요. 
왜 여러분은 비교를 하려고 합니까? 
그것의 예를 주겠어요, 예를 들어, 저는 다음을 할 수 있습니다: 
좋아요, 숫자 4는 문자 3 보다 작습니다, 
반면에 문자 4는, 웁스, 
문자 3 보다 작지 않습니다.
그리고 이것은 이상한 방법으로 문자열과 
숫자를 비교하는 것입니다. 
그래서 제가 이것을 왜 보여 주고 있나요? 
부분적으로는 이것이 이상하다는 것을 보여주기 위해서지만, 
또한 여러분에게 타입 지시라는 것을 

English: 
exercise what I'm going to call
some type discipline.
Meaning, when you write code,
you want to get into the habit
of A, checking out operators or
procedures to see what they
do under different
circumstances, either check
them out or read the
specifications of it, and two,
when you write your own code,
you want to be disciplined
about what types of arguments
or operands
you apply to operators.
Because this is something that
could certainly have screwed
you up if you didn't realize
it did it, and you need to
have that discipline
to make sure it's
doing the right thing.
OK.
One of the other things you're
going to see is that some of
the operators have
odd meanings.
And again, I think we looked--
Yup?
STUDENT: So, the string A is
less than three, is false
because they're comparing
like ASCII values?
PROFESSOR JIM ERICSON: Yes.
I mean, I'm sorry.
The answer is, I don't
know if it's ASCII.
John, do you know, are
they doing ASCII
encoding inside of here?
I'm assuming so.
Right.
So, in case you didn't
understand what the the
question was, basically every
symbol gets translated into a

Turkish: 
ne diyeceğim egzersizini yap
bazı tip disiplinleri.
Anlamı, kod yazarken,
alışkanlığa girmek istiyorsun
A, operatörleri kontrol etmek veya
ne görmek için prosedürler
farklı altında yapmak
Koşullar, ya kontrol
onları dışarı veya okumak
onun özellikleri ve iki,
kendi kodunu yazdığında,
disiplinli olmak istiyorsun
ne tür argümanlar hakkında
veya operand
operatörler için geçerlidir.
Çünkü bu bir şey
kesinlikle batırdı
eğer farkında değildin
o yaptı ve yapmanız gereken
bu disipline sahip olmak
emin olmak için
doğru şeyi yapmak.
TAMAM.
Diğer şeylerden biri
görecek
operatörler var
garip anlamlar.
Ve tekrar, sanırım baktık--
Evet?
ÖĞRENCİ: Yani, A dizesi
üçten az, yanlış
çünkü karşılaştırıyorlar
ASCII değerleri gibi?
PROFESÖR JIM ERICSON: Evet.
Yani özür dilerim.
Cevap, bilmiyorum
ASCII olup olmadığını biliyorum.
John, biliyor musun?
ASCII yapıyorlar
buradan kodlama mı?
Öyle sanıyorum.
Sağ.
Öyleyse, yapmazsan diye
ne olduğunu anlamak
Soru temelde her şeydi.
sembol bir

Korean: 
말해 주기 위해서입니다. 
무슨 말인가 하면, 여러분은 코드를 쓸 때, 연산자와 프로시저를 검사하는 습관에 빠집니다, 
다른 상황 하에서 그것들이 무엇을 하는지 보기 위해서요. 
그것들을 검사하거나 그것의 설명을 읽습니다. 
그리고 두 번째로, 여러분이 코드를 쓸 때, 
여러분은 여러분이 연산자에 적용하는 인수나 
피연산자의 타입이 무엇인지에 대해 지시 받고 싶어합니다. 
왜냐하면 여러분이 그것이 하는 것을 깨닫지 못하면 
이것은 여러분을 확실히 혼란스럽게 하는 것이 될 수 있기 때문입니다. 
그리고 여러분은 그것이 옳은 것을 하고 있는지 확실히 지시해야 합니다. 
좋아요. 
여러분이 볼 다른 것들 중 하나는 
이상한 의미를 가지는 연산자들입니다. 
그리고 다시, 우리가 본 것을 생각해봐요 – 네? 
그래서, 문자열 A가 3보다 작다는 것은 
ASCII 값들처럼 비교하기 때문에 틀린 것입니까? 
네. 
제가 말하는 것은, 미안합니다. 
답변은, 저는 그것이 ASCII인지 모르겠어요. 
존, 그것이 내부에서 ASCII로 
인코딩 됩니까? 
저는 그렇다고 가정하겠습니다. 
좋아요. 
그래서, 여러분이 질문이 무엇인지 이해하지 못하는 경우에, 
기본적으로 모든 기호는 기계 내부에서 문자열이나 

English: 
particular encoding, a string
of bit, if you like, inside
the machine, there's a
particular one called ASCII,
which is, if you like, an
ordering of that, and that's
what the machine's actually
comparing inside of here,
which is why in under ASCII
encoding the numbers are going
to appear after the characters,
and you get the
strange kind of thing going on.
All right.
I want a couple of other things,
just to quickly remind
you, and one of them is,
remember, the operators do
look at the types, so division,
for example nine
divided by five is one, because
this is integer
division, that is, it's the
largest number of integer
multiples of five to go into
nine, and there would be a
remainder associated with it,
which is in fact four.
And again, you've got
to be careful about
how you use the operators.
Right, having done that, we
can certainly get to more
complicated things, so for
example, suppose I look at
that expression.
Three plus four times five.
All right.
Now.
There are two possible
values here, I think.
One is 23, the other's 35.

Turkish: 
belirli kodlama, bir dize
bit, istersen, içeride
makine var bir
ASCII adında belirli bir
ki eğer istersen, bir
Bunun siparişi, ve bu
makinenin gerçekte ne
buranın içini karşılaştırarak,
bu yüzden neden ASCII altında
kodlama sayıları
karakterlerden sonra görünmek
ve sende
garip bir şey oluyor.
Tamam.
Birkaç şey daha istiyorum.
sadece hızlıca hatırlatmak için
sen, ve onlardan biri
unutmayın, operatörler
türlere bakın, böylelikle bölünme,
örneğin dokuz
beşe bölünmek birdir, çünkü
bu tamsayı
bölünme, yani
en büyük tam sayı
içine girmek için beşin katları
dokuz ve bir olurdu
onunla ilişkili kalanlar,
Bu aslında dört.
Ve yine,
dikkatli olmak
operatörleri nasıl kullandığınız.
Doğru, bunu yaptıktan sonra, biz
kesinlikle daha fazlasını alabilir
karmaşık şeyler, öyleyse
örneğin, bakalım bakalım
bu ifade.
Üç artı dört kere beş.
Tamam.
Şimdi.
İki olası
Bence buradaki değerler.
Biri 23, diğeri 35.

Korean: 
특정한 인코딩으로 변환됩니다. 
ASCII라는 특정한 것이 있는데, 
그것은 기계가 사실 여기 내부에서 비교하는 것입니다. 
ASCII 하에서 숫자로 인코딩하는 것은 
문자 후에 나타날 것입니다, 
그리고 여러분은 이상한 것을 얻게 될 것입니다. 
좋아요. 
저는 다른 것들을 몇 가지 해보고 싶습니다, 여러분에게 빠르게 상기시키기 위해, 
그것들 중 하나는, 기억하세요, 연산자는 타입을 봅니다, 
예를 들어 9 나누기 5는 1입니다 
왜냐하면 이것은 인티져(정수) 나누기이기 때문입니다. 
즉, 그것은 5에서 9로 가는 가증 큰 배수입니다. 
그리고 나머지가 있는데, 
4입니다. 
그리고 다시, 여러분은 여러분이 연산자를 어떻게 
사용하는 지에 대해 주의해야 합니다.  
좋아요, 그것을 다 했으니까, 우리는 더 복잡한 것들을 들어 갈 수 있습니다, 
그래서 예를 들어, 제가 그 명령문을 
본다고 가정해 보세요.
3 더하기 4 곱하기 5. 
좋아요. 
이제, 
여기 두 가지 가능한 값들이 있습니다. 
하나는 23이고, 다른 하나는 35입니다. 

Korean: 
왜냐하면 이것은 3 더하기 4, 곱하기 5가 될 수도 있고, 
3, 더하기 4 곱하기 5가 될 수 도 있기 때문입니다. 
그리고 물론, 여러분이 코드를 볼 때 그것은 사이에서 
멈추지 않습니다. 
그러면 제가 무엇을 하나요? 
저는 분리했습니다, 제가 덧셈을 먼저 하나요 
곱셈을 먼저 하나요? 
이 경우에 무슨 일이 일어 나는지 아는 학생 있나요? 
네, 오 저는 저기서 
던질 뻔 했어요. 
연산자의 기준 순서대로요, 저는 
곱셈을 먼저하고, 3을 더한다고 생각합니다. 
맞아요.  
저는 건네 줄 누군가가 
있으면 해요, 후아! 
저는 누군가의 머리를 때립니다. 
고마워요. 
그것을 다른 사람에게 건네주세요. 
여러분이 사탕을 원하면, 더 가까이 앉으세요, 그렇게 하면 
우리가 어울리는 것뿐만 아니라 여러분을 기억할 수 있습니다. 
좋아요.
그래서 핵심은, 여기 연산자 프로시저라는 
것이 있다는 것입니다, 이것은 신사가 말한 것이지요. 
저는 이것에 대해 더 이야기 하지 않을 것이지만, 기본적으로 
이것이 말하는 것은, 같은 모든 다른 것들로, 멱법은 
곱셈이나 나눗셈 전에 행해지고, 

English: 
Because this could be three plus
four, times five, or it
could be three, plus
four times five.
And of course, you know, when
you look at code it doesn't
pause in between them.
But what I do?
I just separated, do I do the
addition first or do the
multiplication first?
Anybody know what happens
In this case?
Yeah, way up, oh God I'm going
to have a hell of time
throwing up there, way
up at the back.
STUDENT: Standard order of
operations, I guess take the
multiplication first,
and add the three.
PROFESSOR JIM ERICSON: Right.
I'm going to try, if I don't
make it, you know, just get
somebody to pass back, whoa!
I just hit somebody
in the head.
Thank you.
Please pass it back
to that guy.
If you want candy, sit much
closer down, and that way we
can film you as well
as we go along.
Right.
So the point is, there is
something here called operator
precedence, which is what
the gentleman said.
I'm not going to say much more
about it, but basically what
it says is, with all other
things being equal, things
like exponentiation are done
before you do multiplication

Turkish: 
Çünkü bu üç artı olabilir
dört, beş kez ya da
üç olabilir, artı
dört kez beş.
Ve elbette, ne zaman biliyorsun
koduna bakıyorsun değil
aralarında durakla.
Ama ben ne yapıyorum?
Daha yeni ayrıldım mı?
ilk önce ekleme veya
önce çarpma?
Ne olacağını bilen var mı
Bu durumda?
Evet, yukarı, aman Tanrım gidiyorum
çok iyi vakit geçirmek
oraya kusmak, yol
arka tarafta.
ÖĞRENCİ: Standart sipariş
işlemleri sanırım
önce çarpma,
ve üçünü ekleyin.
PROFESÖR JIM ERICSON: Doğru.
Denemeye gidiyorum, eğer yapmazsam
Yap, bilirsin, sadece al
geri geçecek biri, o zaman!
Sadece birine çarptım
Kafada.
Teşekkür ederim.
Lütfen geri ilet
o adama
Şeker istersen, çok otur
daha yakın ve bu şekilde
seni de çekebilirim
Biz devam ederken.
Sağ.
Yani mesele şu ki, var
burada operatör adı verilen bir şey
öncelik, hangisi
Beyefendi dedi.
Daha fazla söyleyemem
bu konuda, ama temelde ne
diyor ki, diğerleri ile
şeyler eşit, şeyler
üstelleştirme gibi yapılır
çarpma işleminden önce

Korean: 
곱셈이나 나눗셈은 덧셈과 뺄셈 
같은 것 전에 행해집니다. 
그리고, 사실, 제가 다른 버전을 원하면, 
사실, 제가 이것을 옳게 한다면, 이것은 저에게 23을 줍니다. 왜냐하면 
곱셈이 먼저니까요. 제거 다른 버전을 원하면, 
저는 괄호를 사용해서 말해주어야 
합니다. 
그리고 일반적으로, 제가 말하는 것은, 
의심이 들 때는, 괄호를 사용하세요. 
좋아요. 
이제, 이것은 우리에게 명령문들을 줍니다. 
우리는 복잡한 명령문들을 가지기 시작할 수 있습니다, 여러분은 우리가 
많은 괄호들과 그 안에 모든 것들을 가질 수 있다고 
상상할 수 있습니다. 
네, 질문하세요. 
9와 5의 나머지를 계산할 때 사용한 
연산자가 무슨 의미죠? 
그것은 퍼센트 기호입니다. 
잘 안 보인다면, 폰트 크기를 
키워야겠군요. 
네, 이것은 퍼센트에요, 그래서 이 퍼센트 기호가 
여러분에게 나머지를 구해줍니다. 
좋아요. 
제가 하려고 하는 두 번째 것은, 
제가 값들을 얻을 때, 저는 그것들을 계속하고 싶습니다. 
저는 그것들에 이름을 주고 싶고, 그것들을 

English: 
or division, which are done
before you do things like
addition and subtraction.
And so, in fact, if I wanted
the other version of it, in
fact, if I do this right, it's
going to give me 23 because it
does the multiplication first,
if I wanted the other version
of it, I need to tell it that,
by using, excuse me,
parentheses.
And in general, what I
would say is, when
in doubt, use parens.
OK.
Now, that just gives
us expressions.
We can start having complex
expressions, you can imagine
we can have things are lots of
parens, and all sorts of
things in it.
Yes, question.
STUDENT: What does it mean, the
operator used, when you
were calculating the remainder
between nine and five?
PROFESSOR JIM ERICSON: It's
the percent sign.
If you can't read it, I guess
I'm going to have to blow that
font up, aren't I,
next time around.
Yeah, it's a percent, so
this percent sign will
give you the remainder.
OK.
Second thing I need to do,
though, is I need to, when I
get those values, I want
to hang on to them.
I'd like to give them a name,
so I can refer to them in

Turkish: 
veya yapılanlar
gibi şeyler yapmadan önce
toplama ve çıkarma.
Ve aslında, eğer istersem
diğer versiyonu, içinde
Aslında, bunu doğru yaparsam
bana 23 verecek çünkü o
önce çarpımı yapar,
diğer versiyonu istesem de
Bunu söylemeliyim ki,
kullanarak, afedersiniz,
parantez.
Ve genel olarak, ben ne
ne zaman diyebilirim
şüphesiz, parens kullanın.
TAMAM.
Şimdi, bu sadece verir
bize ifadeler.
Karmaşık olmaya başlayabiliriz
ifadeler, tahmin edebilirsiniz
bir sürü şey yapabiliriz
parens ve her türlü
içindeki şeyler.
Evet, soru.
ÖĞRENCİ: Bu ne anlama geliyor?
kullandığınız operatör
kalanları hesaplıyorlardı
dokuz ve beş arasında?
PROFESÖR JIM ERICSON: Bu
yüzde işareti.
Okuyamazsan, sanırım
Onu uçurmak zorunda kalacağım
yazı tipi, değil mi
bir dahaki sefere.
Evet, bu yüzde.
bu yüzde işareti
size kalanı ver.
TAMAM.
Yapmam gereken ikinci şey,
yine de ihtiyacım olduğunda
bu değerleri almak istiyorum
Onlara asmak için.
Onlara bir isim vermek istiyorum.
bu yüzden onlara başvurabilirim

Turkish: 
diğer yerler.
Ve biz de bunu gördük,
Burada sahip olduğumuz son parça
Değişken yaratma yeteneği,
hangileri var
kendi değerleri ve bu yapılır
Bir atama ifadesi kullanarak.
Yani özellikle, bu
bir atama ifadesi.
X adını yazıyor ve
bu ad için bir bağ oluştur
değerine göre
alt ifade ve aslında
Bunu, bir noktaya vurgu yapmak için
Hadi bunu yapalım.
Bu sadece bir sayı değil
Herhangi bir ifade.
Python ne yapacak, öyle mi
bu ifadeyi değerlendir
kural türlerini kullanarak
hakkında konuştuk ve sonra
için bir cilt oluşturur
bu değere x.
Ve bunu vurgulamak istiyorum, biz
ona geri döneceğim
daha sonra terimi, yani
düşünmeni istiyorum
şimdilik bunun için
makinenin bir yerinde,
orada büyük bir boşluk var
olası tüm değerleri içerir.
Sağ.
Hafif bir yalan, değil
tüm olası değerlere sahip, ancak

Korean: 
다른 곳에서 부를 수 있습니다. 
그리고 또한 우리가 볼 수 있습니다. 여기서 우리가 가지는 마지막 것은 변수들을 만들어 내는 
능력입니다. 변수들은 그들의 값을 가지고 있고, 
대입문을 사용하여 행해집니다. 
그래서 특히, 이것은 대입문 입니다. 
이름 x를 구해서 부 명령문의 값으로 
바인딩을 만듭니다. 그리고 사실 
이것을 하기 위해서, 강조하고 싶은 포인트는, 이렇게 해봅시다. 
이것은 단지 숫자가 아닙니다. 이것은 어떤 명령문입니다. 
파이썬이 할 것은 우리가 이야기 했던 법칙들을 사용해서 그 명령문을 평가합니다. 
그리고 나서 그것은 그 값으로 
x의 바인딩을 만들어 냅니다. 
그리고 저는 이것을 강조하고 싶습니다, 우리는 나중에 이것을 다시 다룰 것입니다. 
그래서 지금은 제가 여러분이 이것에 대해 생각하길 바라는 방법은, 
기계 어딘가에서, 
모든 가능한 값들을 포함하는 큰 공간이 있습니다. 
좋아요. 
약간 거짓말이에요, 모든 가능한 값들을 가질 수는 없어요, 

English: 
other places.
And so we saw that as well, the
last piece we had here is
the ability to create variables,
which have their
own values, and that's done
using an assignment statement.
So in particular, that is
an assignment statement.
It says, take the name x and
create a binding for that name
to the value of the
sub-expression and in fact to
do this, to stress a point,
let's do that.
It's not just a number,
it's any expression.
What Python will do, is it will
evaluate that expression
using the kinds of rules we
talked about, and then it
creates a binding for
x to that value.
And I want to stress this, we're
going to come back to it
later on in the term, so the
way I'd like you to think
about it for now, is that
somewhere in the machine,
there's a big space that
contains all possible values.
Right.
It's a slight lie, it doesn't
have all possible values, but

Turkish: 
kaptın bu işi.
İstersen,
entelektüel,
olası tüm değerler.
Ve bir cilt oluşturduğumda
değişken bir isim alarak
bu durumda x, içinde bir yerde saklanmış
bir masa ve ben bir
link veya bundan bir işaretçi
bu değere isim verin.
Bu bir nüanstır.
Çok daha fazlasını yapacak
ne zaman hissettiğimizi
mutasyonumuzu tanıtmak
dil, ama ben istiyorum
bu şekilde düşünmeye başla.
Belirli bir şey olarak düşünmeyin
içinde bulunduğumuz kutu
bir şeyler koymak; bir düşün
bir değere bağlantı olarak.
Örneğin, olabilirdi
başka bir ödev ifadesi,
ve bu bir bağlayıcılık yaratır
y aynı değere
ve şeylerden biri olarak
Yapabileceğim muhafazakar, ben
gibi bir açıklama olabilir
z'ye bağlı kalmak
x'in değeri
Ve kasten söyledim
bu taraftan.
Bu açıklama diyor ki
x'in değeri

English: 
you get the idea.
It has, if you like,
intellectually,
all possible values.
And when I create a binding, I'm
taking a variable name, in
this case x, stored somewhere in
a table, and I'm creating a
link or a pointer from that
name to that value.
This is a nuance.
It's going to make a lot more
sense later on when we
introduce mutation into our
language, but I want you to
start thinking of it that way.
Don't think of it as a specific
box into which we're
putting things; think of it
as a link to a value.
I could have, for example,
another assignment statement,
and that creates a binding from
y into that same value,
and one of the things as a
conservist I can do is, I
could have a statement like,
let z be bound to
the value of x.
And I said it deliberately
that way.
That statement says, get the
value of x, which is this

Korean: 
그렇지만 여러분은 생각을 할 수 있습니다. 
그것은 지적으로, 모든 
가능한 값들을 가집니다. 
그리고 제가 바인딩을 만들 때, 이 x의 경우에, 
저는 테이블 어딘가에 저장된 변수 이름을 가집니다, 
그리고 그 이름으로부터 그 값으로 핑크나 포인터를 만들 것입니다. 
이것이 뉘앙스입니다. 
이것은 우리가 다른 언어로의 변화를 소개할 때 
나중에 더욱 이해가 될 것입니다. 그렇지만 
저는 여러분이 이러한 방법으로 생각을 시작하길 바랍니다. 
그것을 우리가 무엇을 담아두는 특정한 상자로 생각하지 마세요; 
그것을 값의 링크로 생각하세요. 
예를 들어, 저는 다른 대입문을 가질 수 있습니다, 
그리고 그것은 y로부터 같은 값으로 바인딩을 만듭니다, 
그리고 conservist로써 제가 할 수 있는 그것들 중 하나는, 
저는 z가 x의 값이 되는 것과 같은 식을 가질 수 있습니다. 
그리고 그것은 고의적으로 그렇게 했습니다. 
그 식은 이 링크인 x의 값을 가져와서, 

English: 
link, and give z a pointer
to the same place.
To the value, not to x.
OK, and we'll just plant that
idea, we're going to come back
to later on, as we carry on.
OK.
So if we have variables, one
of the questions we can ask
is, what's the type
of the variable.
And the answer is, it inherits
it from its value.
OK.
Yes.
So if somewhere in my code, I
have that statement, that
assignment statement,
x now is a variable
whose value is an integer.
Unfortunately, at least in
my mind, in Python, these
variable bindings are
dynamic, or the
type, rather, is dynamic.

Korean: 
z에게 같은 곳에 포인터를 준다고 말합니다. 
값에게요, x가 아닙니다. 
좋아요, 그리고 우리는 그 생각을 하게 될 것입니다, 
우리는 계속 해 가면서, 나중에 다시 돌아 올 것입니다. 
좋아요. 
우리가 변수들을 가지면, 우리가 할 수 있는 질문 중 하나는, 
변수의 타입이 무엇인지 입니다. 
다른 질문은 그것은 그것의 값으로부터 상속합니다. 
좋아요. 
네. 
제 코드 어딘가에서, 제가 그 식, 
그 대입문을 가지면, 지금 x는 
그것의 값이 인티져인 변수 입니다. 
불행히도, 적어도 우리 마음 속에, 파이썬에서, 이러한 변수 바인딩은 
동적입니다, 또는 다소, 타입이 동적입니다. 

Turkish: 
link ve za pointer verin
aynı yere.
Değerine göre, x'e değil.
Tamam, sadece onu ekeceğiz
fikir, geri döneceğiz
sonradan devam ettikçe.
TAMAM.
Yani eğer değişkenlerimiz varsa, bir tane
sorabileceğimiz sorulardan
nedir, türü nedir
değişkenin
Ve cevap, miras kalan
onun değerinden.
TAMAM.
Evet.
Yani kodumda bir yerlerde, ben
bu ifadeye sahip
atama deyimi,
x şimdi bir değişkendir
değeri bir tamsayıdır.
Maalesef, en azından
aklımda, Python'da bunlar
değişken bağlantılar
dinamik veya
tür, dinamiktir.

Korean: 
이것이 의미하는 것은, 그것은 현재 값이 무엇인지에 따라 바뀝니다. 
또는 다른 방법으로 말하면, 나중에 제가 이것을 하는 프로그램에서 어딘가에, 
지금 x는 그것의 타입을 
INT에서 문자열로 바꿉니다. 
이제 여러분이 왜 신경 써야 합니까? 
네, 제 견해는, 저는 그것을 좋아하지 않습니다. 
특히 오버로드 된 연산자의 경우에요.  
왜냐하면 제가 인티져 값을 가지는 
특정 변수를 예상한 곳에서 
어떤 코드를 썼을 지도 모르니까요. 
나중에 코드의 어딘가에서 
그것이 문자열로 이동하면, 
저에게 있어 그것을 추적하는 것은 
정말 어려운 일이 될 것이에요.
제가 제안하고 싶은 것 중 하나는 
여러분이 여기서 좋은 스타일을 만들어야 한다는 것입니다, 그리고 특히, 
타입을 제멋대로 바꾸지 마세요. 
제가 오늘 철자를 쓸 수 는 없습니다. 

Turkish: 
Anlamı, bağlı olarak değişir
şimdiki değer ne.
Ya da farklı bir yol dedi, eğer
daha sonra bir yerde
program bunu yapıyorum, x
şimdi değişti
INT'den dizeye yazın.
Şimdi neden umursuyorsun?
Tamam, benim görüşüm
beğenmedim
Özellikle varlığında
Operatör aşırı yükü.
Çünkü yazmış olabilirim
İçinde bulunduğum bazı kodlar
bu belirli bekliyor
değişken
tamsayı bir değere sahip.
Eğer daha sonra başka bir yerde
kod dizeye kayar, ben
manipüle olmayabilir
ve gerçek değerlerin elde edilmesi,
ama istediğimi değil
gerçekten zor olacak
geri kovalamam için.
Yani yapacağım şeylerden biri
önermek gibi sen
Burada iyi bir stil geliştirmek,
ve özellikle, yok
keyfi türleri değiştirin.
Bugün heceleyemiyorum.

English: 
Meaning, it changes depending on
what the current value is.
Or said a different way, if
somewhere later on in the
program I do this, x
now has changed its
type from INT to string.
Now why should you care?
OK, my view is, I
don't like it.
Especially in the presence
of operator overload.
Because I might have written
some code in which I'm
expecting that particular
variable to
have an integer value.
If somewhere later on in the
code it shifts to string, I
might not be manipulating that
and getting actual values out,
but not what I wanted, and it's
going to be really hard
for me to chase it back.
So one of the things I would
like to suggest is that you
develop some good style here,
and in particular, don't
change types arbitrarily.
I can't spell today.

Turkish: 
Anlamı, bazen ihtiyacın var
Bunu yapmak için, ama genel olarak
var-- en azından benim görüşüme göre
ve bilmiyorum John, sen
katılıyor musun?
bunu yapmak istiyorum
Yapmak istemiyorsun
bu değişiklikler.
Bu sadece belaya yol açar
yolun aşağısında.
TAMAM.
Şimdi, değişkenlerle ilgili son şey,
ve sonra biz
itmeye başlayacağım
bu konuda
onları nerede kullanabilirsiniz?
Ve cevabı, kullanabilirsiniz
her yerde yapabileceğiniz bir değişken
değeri kullan.
Yani, herhangi bir yer yasal
değeri kullanmak için.
TAMAM.
Şimdi.
Bu sadece bize getirme tür
hız ve ekleme için yedek
birkaç ayrıntı daha.
Gerçekten ne yapmak istiyoruz
şimdi yap ama
bu şeyleri kullanmaya başla.
Öyleyse operandlar.
İfadeleri alalım, alalım
değerleri değerlendiriyoruz
uzakta, ama sonuçta
ile bir şeyler yapmak istiyoruz
Onları, şimdi başlamamız gerek.
ne olduğu hakkında konuşmak
içinde yapabileceğimiz şeyler
Python veya herhangi bir programlama
dil, onları manipüle etmek.

Korean: 
무슨 말이냐 하면, 여러분이 이것이 필요할 때, 일반적으로 – 
적어도 제 생각은 저는 그렇기 않지만, 존, 동의하나요? – 
여러분은 이것을 하길 원하지 않습니다. 
여러분은 이러한 변화를 만들길 원하지 않아요. 
그것은 문제를 일으킬 것이에요.  
좋아요. 
이제, 변수에 대한 마지막 것인데, 그리고 나서 우리는 
이것에 집어 넣길 시작할 것입니다, 마지막 것은 여러분은 어디서 그것을 사용할 수 있습니까? 
제 답변은, 여러분은 여러분이 값을 사용하길 원하는 
어디서나 변수를 사용할 수 있습니다. 
그래서, 변수를 사용하는 것은 어디서나 허용됩니다. 
좋아요. 
이제, 
이것은 우리가 가속화 하도록 도와 주고 몇 가지  
자세한 것을 더하는 것입니다. 
우리가 지금 정말 원하는 것은 이것을 
사용하길 시작하는 것 입니다. 
그래서, 연산자입니다. 
이 명령문을 가져 와서, 변수들을 가져 오고, 우리는 그것을 다른 곳에 저장할 수 있습니다,
그러나 궁극적으로 우리가 원하는 것은, 
우리는 지금 우리가 
파이썬이나 어떤 다른 프로그래밍 언어 내부에 할 수 있는 것에 대해 이야기를 시작해야 합니다. 
그것들을 조작하기 위해서요. 

English: 
Meaning, sometimes you need
to do this, but in general
there's-- at least in my view
and I don't, John, would you
agree?-- you just don't
want to do this.
You don't want to make
those changes.
It just leads to trouble
down the road.
OK.
Now, last thing about variables,
and then we're
going to start pushing
on this, is
where can you use them?
And the answer is, you can use
a variable anywhere you can
use the value.
So, any place it's legal
to use the value.
OK.
Now.
This is just sort of bringing us
back up to speed and adding
a few more details in.
What we really want to
do now though is
start using this stuff.
So, operands.
Let us take expressions, get
values out, we can store them
away in places, but ultimately
we want to do something with
them, so we need to now start
talking about what are the
things we can do inside of
Python, or any programming
language, to manipulate them.

Korean: 
그리고 그것을 위해, 우리는 문장을 가질 것입니다.  
여러분이 그것에 대해 생각하길 원한다면, 문장은 기본적으로 합법적입니다, 
그리고 제가 어디서 잘 못 사용한 것을 제외하고는 
명령문을 사용하려고 했습니다. 
그래서 파이썬의 합법적인 명령들은 해석할 수 있습니다.  
여러분은 이미 그것 들 중 몇 가지를 보았습니다.
출력, 대입, 분명히 두 명백한 식은 무언 가를
하도록 명령합니다. 
대입은 값으로 이름을 바인딩 합니다. 
출력은 그것을 화면에 찍어줍니다. 
명백히 여러분이 그것을 내놓는 방법으로 출력하면, 
우리는 입력을 가지는 방법을 예상합니다, 
우리는 곧 그 예를 보게 될 것입니다. 
그리고 우리가 다음 강의들을 하면서,  
우리는 이 문장들에 더욱 더 추가할 것입니다. 
그러나 우리가 이것을 가지고 무엇을 할 수 있을지 봅시다, 알겠죠? 
그리고 이것을 하기 위해, 저는 

English: 
And for that, we're going
to have statements.
Statements are basically, if
you want to think about it,
legal, and I was about to use
the word expression except
I've misused that elsewhere, so
legal commands that Python
can interpret.
You've already seen
a couple of them.
Print, assignment, certainly
two obvious statements,
they're commands to
do something.
Assignment is binding a name
to a value, print is saying
put it back out in the screen.
Obviously if you have print as
a way of putting things out,
we expect to have ways of
getting input in, we're going
to see an example that
in the second.
And as we go through the next
few lectures, we're going to
add in more and more of
these statements.
But let's look at what we
could do with this, OK?
And to do this, I'm going to
use some code that I've

Turkish: 
Ve bunun için gidiyoruz
ifadeleri olması.
İfadeler temelde, eğer
düşünmek istiyorsun
yasal ve kullanmak üzereydim
dışında sözcük ifadesi
Bunu başka yerlerde de yanlış kullandım.
Python’un yasal komutları
yorumlayabilir.
Sen zaten gördün
birkaçı.
Baskı, ödev, kesinlikle
iki açık ifade
onlar emir
bir şey yap.
Atama bir ismi bağlayıcı
bir değere, baskı diyor ki
ekrana geri koy.
Açıkçası olarak yazdırdıysanız
bir şeyleri ortaya çıkarmanın bir yolu,
yolumuz olmasını bekliyoruz
girdi almak, gidiyoruz
bir örnek görmek için
saniyede.
Ve bir sonraki aşamadan geçtikçe
birkaç konferans, biz gidiyoruz
daha fazla eklemek
bu bildiriler.
Ama neye bakalım bakalım
Bununla yapabilir miydi?
Ve bunu yapmak için gidiyorum
kullandığım bazı kodları kullan

Turkish: 
çoktan girilmiş.
Yani yapabileceğini umuyorum
Bunu oku ve
ayrıca broşürünüzde.
Bu oluşturduğum küçük bir dosya.
tamam ben
sıra ile başlayacak
bunlardan ve yürü
tekrardan seni tekrar davet ediyorum
bu bildiriyle ilgili yorumlar
Böylece ne takip edebilirsiniz
Yapacağız.
Tamam?
Öyleyse bakalım
Bunun ilk kısmı.
Şimdi, bu
sadece bir metin dosyası.
TAMAM.
Ve mavi renkte vurguladım
orada bir adet ben varım
ile başlayacağım.
Ve neyim var?
Bir dizi komutum var;
Bir görevim var
deyim, başka bir tane var
ödev bildirimi aldım
Bir baskı deyimi, bir
gireceğimiz girdi ifadesi
bir saniye sonra gel.
Ve ben temelde denemek istiyorum
ve bunları yapmak için kullanın
onlarla bir şey.
Not etmek istediğim ikinci şey,
küçük karma işareti veya
pound işareti, işte
bir yorumun belirlenmesi.
Peki yorum nedir?
Bu sana ya da sana
kodun okuyucusu
sana neler olduğunu söylemek
Bu kodun içinde
TAMAM?
Şimdi, açıkçası, bu yorumlar,
beyin hasarlı veya
hesaplamalı olarak zorlu
Eğer tercih edersen.

Korean: 
제가 이미 타이핑한 코드를 사용할 것입니다. 
그래서 저는 여러분이 그것을 읽을 수 있었으면 좋겠어요, 그리고 그것은 
또한 여러분의 핸드아웃에 있습니다. 
이것은 제가 만든 작은 파일입니다, 좋아요, 그리고 저는 
이것들의 순서를 가지고 시작할 것입니다. 그리고 그것들과 같이 해 갈 것입니다, 
다시 저는 여러분을 그 핸드아웃의 명령들을 시작하는 것으로 초대합니다. 
우리가 할 것이 무엇인지 따라올 수 있도록요. 
알겠죠? 
이것의 첫 번째 부분을 봅시다. 
좋아요, 이것은 텍스트 파일입니다.  
좋아요. 
그리고 저는 거기서 시작할 부분을 
파란색으로 강조했습니다. 저는 그것으로 시작할 것입니다. 
그리고 제가 무엇을 가지고 있습니까? 
저는 명령들의 순서를 가지고 있습니다; 저는 대입문을 가지고 있습니다, 
저는 다른 대입문을 가지고 있습니다,  
저는 출력식을 가지고 있습니다, 저는 입력식을 가지고 있습니다, 
우리는 곧 다시 돌아 올 거에요. 
그리고 저는 기본적으로 이것들과 무엇을 하기 위해 
이것들을 사용하길 시도하고 싶습니다.
제가 주목 할 두 번째 것은 작은 해쉬 마크 또는 
파운드 기호입니다, 그것은 comment 를 식별합니다. 
그래서 comment가 무엇이죠? 
그것은 여러분의 또는 코드를 읽는 사람의 단어들입니다. 
그것들은 여러분에게 이 코드 내부에서 무엇이 일어나는지 알려줍니다. 
알겠죠? 
이제, 이 comment는, 솔직히, 뇌가 손상되었거나  
컴퓨터적으로 도전되었습니다. 

English: 
already typed in.
So I'm hoping you can
read that, and it's
also in your handout.
This is a little file I created,
all right, and I'm
going to start with a sequence
of these things and walk them
along, again I invite you to put
comments on that handout
so that you can follow what
we're going to do.
All right?
So let's look at the
first part of this.
Right now, this is
just a text file.
OK.
And I've highlighted in blue up
there one of the pieces I'm
going to start with.
And what do I have?
I have a sequence of commands;
I've got an assignment
statement, I've got another
assignment statement, I've got
a print statement, I've got an
input statement, which we'll
come back to in a second.
And I want to basically try
and use these things to do
something with them.
Second thing I want to note is,
the little hash mark or
the pound sign, that's
identifying a comment.
So what's a comment?
It's words to you, or to the
reader of the code, that are
telling you what's going
on inside of this code.
OK?
Now, these comments, frankly,
are brain-damaged, or
computationally challenged
if you prefer.

Turkish: 
Anlamı, neden dünyada
okuyucuya şunu söylemeliyim
X'i bağlarım
üç değer mi?
Tamam?
Onları oraya koyuyorum
bir noktaya getirmek için.
Genel olarak, iyi programlama
stil yorumlarda bulunduğunu söylüyor
bu değerli olacak
okuyucu olarak size yardımcı olmakta
ne olduğunu anla
kodun içinde
Olabilir, ne olabilir?
arkasındaki sezgi
bu kod parçası.
Olabilir, ön koşullar
Giriş yapmak istiyorum.
Olabilir, açıklamaları
Yaptığın özel şeyler.
Ama bunlara sahip olmalısın
orada yorumlar.
Şimdi, bu biraz olur
bu anneliklerden birinin ve
elmalı turta ders çeşitleri.
Bilirsin, annen her zaman
sana brüksel ye demiştim
filizler çünkü
senin için iyiydi
Peki bu bir Brüksel lahanası
yorum Yap. herkes
evet gider evet
Tabii ki yorumlar.
Elbette gidiyoruz
yorum yapmak için.
Ve asla yapmazlar.
Bu yüzden sana meydan okuyorum ve ben
Profesör Guttag'ın yapabileceğini biliyor
bu, sana meydan okuyorum
Bundan bir yıl sonra geri dön ve
buraya yazdığın koda bak.
Ne olduğunu hala anlayabiliyor musun?
yapmaya mı çalışıyordun?
Bilmiyorum John, eğer
Katılıyorsun değil mi?
Eğer kodu okuyabilirseniz
yıl sonra bile sizi kodlar
kendini yazdı, bu iyi
iyi koyduğunu belirt
yorumlar, değil mi?

Korean: 
무슨 말이냐 하면, 저는 왜 읽는 사람에게 제가 
x를 값 3으로 바인딩 할 것이라는 것을 말해야 하죠? 
네? 
저는 포인터를 만들기 위해 그것들을 그곳에 집어넣습니다.
일반적으로, 좋은 프로그래밍 스타일은 여러분이 comment에 
여러분이 독자에게 코드 안에 무엇이 있는지 이해하기 쉽도록 도와주는 
귀중한 것이 될 것을 집어 넣는 것을 말합니다. 
그것은 이 코드 이면의 직관이 
될 것입니다. 
그것은 제가 입력에 가지고 싶은 전제 조건들일 수도 있습니다. 
그것은 여러분이 하는 특정한 것들에 대핸 설명들일 수도 있습니다. 
그러나 여러분은 이 comment들을 가져야 합니다. 
이제, 이것은 강의의 사과 파이와 어머니인 
상태의 하나가 되었습니다. 
여러분의 어머니는 여러분에게 항상 방울 양배추를 먹으라고 말합니다. 
그것이 여러분에게 좋으니까요. 
이것은 방울 양배추 comment 입니다. 모두 
예, 예, 예, 물론 comment입니다. 물론 
우리는 comment를 할 것입니다. 
그리고 그들은 절대 하지 않습니다. 
그래서 저의 여러분에 대한 도전입니다, 그리고 구탁 교수가 이것을 할 수 있습니다, 
저의 여러분에 대한 도전은 지금으로부터 1년 후에 돌아와서 
여기 여러분이 쓴 코드를 보는 것입니다.  
여러분이 무엇을 하려고 했는지 여전히 이해할 수 있겠습니까? 
저는 모르겠어요, 존. 여러분이 동의한다면요, 그렇죠? 
여러분이 1년 후에 그 코드를 읽을 수 있다면, 심지어 여러분이 스스로 쓴 코드를요, 
그것은 여러분이 좋은 comment를 넣었다는 좋은 신호입니다, 
그렇죠? 

English: 
Meaning, why in the world do I
have to tell the reader that
I'm binding x to the
value three?
All right?
I'm putting them in there
to make a point.
In general, good programming
style says you put in comments
that are going to be valuable
in helping you as a reader
understand what's going
on inside of the code.
It could be, what's the
intuition behind
this piece of code.
It could be, preconditions
I want to have on input.
It could be, explanations of
specific things you're doing.
But you need to have those
comments there.
Now, this becomes a little bit
of one of those motherhood and
apple pie kinds of lectures.
You know, your mother always
told you to eat brussels
sprouts because it
was good for you.
Well this is a brussels sprouts
comment. everybody
goes yeah, yeah, yeah,
comments, of course.
Of course we're going
to do comments.
And they never do.
So my challenge to you, and I
know Professor Guttag can do
this, my challenge to you is, a
year from now, come back and
look at code you wrote here.
Can you still understand what it
was you were trying to do?
I don't know, John, if
you'd agree, right?
If you can read the code a
year later, even code you
wrote yourself, it's a good
sign that you put good
comments in, right?

Turkish: 
İkinci iyi parça
Burada stilin
değişken isimlerinin seçimi.
Bunlar berbat.
Kasıtlı.
TAMAM?
Sadece basit şeyler kullanıyorum
x, y ve z gibi çünkü ben
sadece yapmak istiyorum
geçmek
eğer istersen ders.
Ancak genel olarak, seçim
değişken adı harika bir yoldur
kodunuzu yorumlama
Değişken isimleri kullan
bu mantıklı.
Bu küçük problem seti
sıfır yaptın.
Bir kaç tane okudun
değerlerin sen
Muhtemelen onları uzak tuttu.
Benim iddiaya göre basit kullandın
x ve y gibi isimler.
Çok daha iyi bir isim olurdu
adı, soyadı, olduğu gibi
anlatılacak değişkenin adı
sen ne deniyordun
orada yakalamak için.
TAMAM.
Söylemek istediğim diğer parça
değişken isimleri hakkında
Bu değişken seçeneğine sahibim
isim, kullanabilirim ama
aslında birkaç şey var
Açısından kullanamam
değişken isimleri.
Yani, bunlar önemli bir yol
Belgeleme, ama var
bazı şeyler hariç.

English: 
Second good piece
of style here is
choice of variable names.
These are lousy.
Deliberately.
OK?
I'm just using simple things
like x and y and z because I
want to make it, just
get through the
lecture if you like.
But in general, the choice of
variable name is a great way
of commenting your code.
Use variable names
that make sense.
That little problem set
zero that you did.
You read in a couple
of values, you
probably stored them away.
My bet is, you used simple
names like x and y.
A much better name would have
been firstname, lastname, as
the name of the variable to tell
you what you were trying
to capture there.
OK.
The other piece I want to say
about variable names is, once
I have that choice of variable
name, I can use it, but in
fact there are a few things that
I can't use in terms of
variable names.
So, these are an important way
of documenting, but there're
some things excluded.

Korean: 
여기 두 번째 좋은 스타일은 변수 이름 선택입니다. 
이것은 엉망입니다. 
의도적으로요. 
알겠죠? 
저는 x와 y와 z와 같은 간단한 것을 사용할 것입니다. 왜냐하면 
저는 강의를 하면서 그것을 
만들고 싶어요. 
그러나 일반적으로, 변수 이름 선택은 여러분의 코드를 쓰는 
훌륭한 방법입니다. 
말이 되는 변수 이름을 사용하세요. 
그 작은 문제 세트 0이 여러분이 한 것입니다. 
여러분은 값들을 읽을 수 있습니다, 
여러분은 아마 그것들을 저장해 두었을 것입니다. 제 생각으로는 여러분이 x와 y와 같은 간단한 이름을 사용했을 것 같아요. 
더 좋은 이름은 여러분에게 여러분이 무엇을 하려고 했는지 말해주는 
변수의 이름으로써, 성, 이름과  
같은 것입니다.
좋아요. 
제가 변수 이름에 대해 말하려고 한 다른 부분은, 
제가 변수 이름을 한 번 선택하면, 저는 그것을 사용할 수 있습니다, 
그러나 사실 변수 이름의 관점에서 제가 사용할 수 없는 
몇 가지가 있습니다. 
이것은 기록의 중요한 방법입니다, 그러나
배제된 몇 가지가 있습니다. 

Korean: 
그리고 특히, 파이썬이 배제되어야 하는 것을 
사용 하는 키 워드도 있습니다.
그것을 강조하고 싶군요. 제
가 말한 대로, 지금 이것은 단지 텍스트 파일입니다. 
저는 이것을 저장할 것입니다 – 네, 그 방법이 아니에요, 
저는 이렇게 저장할 것입니다 – 아래에 적은 문자 또는 접미사로요, 
파이썬 파일로 만들기 위해 py로 하겠습니다.
 네, 그리고 저는 이미 알고 있지만 그것을 할 것입니다, 
그리고 몇 가지 환상적인 색을 얻게 됩니다. 
그러나 이것은 중요합니다, 알겠죠? 
제가 지금 하는 것에 주목하세요. 
Comment는 빨간색으로 나타납니다. 
저는 그것들을 볼 수 있어요.  
제가 여기서 강조할 키워드가 있습니다, 
저는 무슨 색인지 모르겠어요, 
오렌지 인가요? 
함수는 보라색입니다, 문자열은 초록색입니다, 
그리고 대입문은 검정색입니다.
print 는 키워드입니다. 
그것은 파이썬이 무엇을 하도록 하는 명령입니다. 결

Turkish: 
Ve özellikle, var
Python’un bazı anahtar kelimeleri
o kullanacak
dışlanacak.
Şunu vurgulayayım.
Dediğim gibi, şimdi
sadece metin dosyası.
Bunu kurtaracağım--
evet, öyle değil, gidiyorum
Bunu saklamak için--
alt simge veya sonek
yerine py yapmak
bir Python dosyası.
Evet ve biliyorum zaten
orada ama ben yapacağım
ve biraz harika oluyorum
renkler.
Ama bunlar önemli, tamam mı?
Neye sahip olduğumu fark et.
şimdi orada.
Yorumlar kırmızı olarak görünüyor.
Bunları görebiliyorum.
Ben bir anahtar kelime var.
doğru vurgulamak olacak
burada, olan,
Ne bilmiyorum
Bu renk turuncu mu?
Morda bir işlev var.
yeşil bir dize var ve
siyah ben atama var
ifadeleri.
Bu baskı bir anahtar kelimedir.
Python için bir komut
bir şey yapmak.

English: 
And in particular, there are
some key words that Python is
going to use that have
to be excluded.
Let me highlight that.
As I said, right now that's
just text file.
I'm going to save this away--
yeah, not that way, I'm going
to save this away-- with the
subscript, or the suffix
rather, py to make
it a Python file.
Yeah, and I know it's already
there but I'm going to do it,
and I get some wonderful
colors.
But these are important, OK?
So notice what I have
up there now.
Comments appear in red.
I can see those.
There's a keyword, which I'm
going to highlight right up
here, print, which is in,
I don't know what
that color is, orange?
There's a function in purple,
there's a string in green, and
in black I have the assignment
statements.
That print is a keyword.
It's a command to Python
to do something.

Turkish: 
Sonuç olarak kullanamıyorum
değişken ismi olarak.
Tamam, düşün
bir saniye için.
Eğer yazdırmayı bir olarak kullanmak istersem
değişken adı, nasıl alırım
karar vermek için sistem, yapmak
Değeri olarak yazdırmak istiyorum
bir şey mi istiyorum yoksa
komut olarak yazdırmak?
Yani bunlardan bir dizi var
Bu engellendi ve ben--
John, sanırım var
ne, yirmi sekiz mi?
Bunun gibi bir şey,
TA, doğru mu?
Yirmi sekiz anahtar kelime
engellendi mi?
Onları olarak buluruz
devam ediyoruz--
TAMAM.
Bunu şimdi yaptıktan sonra yapabilirim.
devam et ve bunu çalıştır,
ve aslında buraya kadar gidersem
koş, göreceksiniz ki ikisine de sahibim
modülü kontrol etmek için bir seçenek,
Yine de bu durumda ben sadece
koşacağım.
Oh, ne olduğuna dikkat et.
Bu dizi boyunca koştu
özellikle talimatlar
x'i üç değerine bağladı,
ve sonra x kere x aldı,
çarpı x değeri ile çarpıldı
x, elbette dokuz olan
bunu x değerine bağlı,
ve sonra çıktı
değer ve şimdi oturuyor
burada bir giriş bekliyor.
Ne yaptığını fark ettin.
o küçük çıktı, doğru
buraya kadar bir numara gir dedim
ve bu ne
yazdırıldı, böylece bir
Numara ve onu yazdırır.

Korean: 
과적으로, 저는 그것을 변수 이름으로 사용할 수 없습니다. 
좋아요, 그것에 대해 잠깐 생각해 보세요. 
제가 print를 변수 이름으로 사용하길 원하면, 
어떻게 시스템이 결정하도록 할 수 있나요, 
제가 무언가의 값으로써 프린트하길 원하거나 또는 명령문으로써 프린트하길 원하면요? 
그래서 차단 된 것들의 순서가 있습니다, 그리고 저는 – 
존, 제 생각에 무엇이 있는 거 같은데, 28? 
그와 같은 것일 거에요, 조교들, 맞나요? 
28 키워드는 차단되었나요? 
우리는 우리가 해 나가면서 찾을 것입니다. 
좋아요. 
지금 이것을 다 했으니까, 저는 간단히 앞으로 가서 이것을 실행할 수 있습니다, 
그리고 사실 제가 여기서 실행하려면,  
여러분은 모듈을 검사할 옵션 둘을 볼 것입니다, 그러나 이 경우엔 
그냥 실행할 것입니다. 
오, 무엇이 일어나는지 주목하세요. 
명령문의 순서로 실행합니다, 특히 그것은 x와 값 3을 묶어 줍니다,
그리고 나서 x 곱하기 x를 가져와서  
x 를 곱한 x의 값을 가져옵니다, 그것은 물론 9입니다, x 값이에요, 
그리고 나서 그 값을 찍어줍니다, 
그러면 이제 여기 앉아서 입력을 기다립니다. 
여러분은 그것이 무엇을 했는지 주목하세요, 그것은 그 작은 것을 출력했습니다, 
여기서 숫자를 쳐서 이것이 프린트된 것입니다, 
그래서 저는 숫자를 칠 수 있고 그것이 프린트 됩니다. 

English: 
As a consequence, I can't use
it as a variable name.
All right, think about
it for a second.
If I wanted to use print as a
variable name, how do I get
the system to decide gee, do
I want print as a value for
something, or do I want
print as a command?
So there's a sequence of these
that are blocked out, and I--
John, I think there are
what, twenty-eight?
Something like that,
TAs, is that right?
Twenty-eight keywords
that are blocked?
We'll find them as
we go along--
OK.
Having done this now, I can
simply go ahead and run this,
and in fact if I go up here to
run, you'll see I've got both
an option to check the module,
though in this case I'm just
going to run it.
Oh, notice what happened.
It ran through that sequence of
instructions, in particular
it bound x to the value three,
and then it took x times x,
got the value of x multipied by
x, which of course is nine,
bound that to the value of x,
and then it printed out the
value, and now it's sitting
here waiting for an input.
You notice what it did, it
printed out that little, right
up here I'd said enter a number
and that's what it's
printed out, so I can enter a
number and it prints it out.

Turkish: 
Harika.
Tekrar çalıştıralım.
Aslında bunun için yapabilirim.
eğer şanslıysam, kullan
İşe yaramadı F5, izin ver
tekrar dene., işte başlıyoruz.
Bu modülü çalıştıracağız.
TAMAM.
Vay.
Ne oldu?
Bir numara gir dedim.
Yapmadım
Ona bir dize verdim.
Ve yine de aldı.
Ve yazdırdım.
Peki, bu yerlerden biri
nereye gelmek istiyorum
bu vurgulamaya geri dön
işler ne yapar?
Benim deyim olsa bile
özellikle bir numara girin
Burada ham girdi sadece bir
karakter ve davranır
bir dize olarak.
Ve sonra tekrar yazdırır.
Öyleyse aslında yapmak istedim
eminim bu bir rakamdı, ben
gibi bir şey yapmalıydım
deneyin ve dönüştürün
bir numaraya, elbette ki
burada başarısız oldu veya bir kontrol koy
nerede olduğunu söylemek için.
Yani sana hatırlatmanın bir yolu,
Dikkatli olmalıyım
şey türleri hakkında
koyduğum
TAMAM.

Korean: 
좋아요.
다시 실행 해 봅시다. 
사실 그것을 위해, 저는 운 좋게도, F5 기능을 사용할 수 있습니다, 
그것은 작동하지 않았습니다, 다시 해 볼게요, 여기 해 봅시다. 
우리는 그 모듈을 실행할 것입니다. 
좋아요. 
후아. 
무슨 일이 일어났죠? 
저는 숫자를 입력하라고 했습니다. 
저는 그렇게 하지 않았어요. 
저는 그것에 문자열을 주었어요. 
그리고 그것은 여전히 그것을 가져옵니다. 
그리고 프린트되었어요. 
자, 이것은 그것들이 무엇을 하는지 강조하는 것으로 돌아오길 
바라는 곳 중 하나이죠? 
제 식이 숫자를 입력하더라고, 특히,  
여기 입력은 단지 문자 세트를 가져와서 그것을 
문자열로 취급합니다.
그리고 나서 그것을 찍어줍니다. 
그래서 사실 제가 이것이 숫자였다는 것을 확실히 하고 싶었다면, 
저는 그것을 숫자로 변환했어야 합니다, 
물론 여기서 실패했지만 어디에서 말하는지 
검사하는 것을 입력하세요. 
그래서 이것은 여러분에게 상기시키는 방법입니다,   
저는 제가 입력한 것의 타입에 대해 주의해야 합니다.
좋아요. 

English: 
Great.
Let's run it again.
Actually for that, I can just
use, if I'm lucky, function
F5, which didn't work, so let me
try it again., here we go.
We're going to run that module.
OK.
Whoa.
What happened?
I said enter a number.
I didn't.
I gave it a string.
And it still took it.
And printed it up.
Well, this is one of the places
where I want to come
back to that highlighting
of what do things do?
Even though my statement said
enter a number, in particular,
raw input here simply takes in a
set of characters and treats
it as a string.
And then prints it back out.
So if in fact I wanted to make
sure this was a number, I
should have done something like
either try and convert it
to a number, which of course
failed here, or put in a check
to say where it is.
So it's a way of reminding you,
I've got to be careful
about the types of things
that I put in.
OK.

Turkish: 
Bu hala sıkıcı, öyleyse hadi
gaz pedalına basmak.
Şimdi sahip olduğum şey
Aşağıdaki: Yazabilirim
ifadeleri, kombinasyonlarını yapmak
değerleri çıkarmak için şeyler
onları saklayabilir, ben
onları yazdırabilir.
Fakat tam anlamıyla yapabileceğim her şey
bu aşamada ne yazdığımız
düz bir çizgi olurdu
program, yani bir program
hangi içinde yaptığımız
dizisini yürütmek
talimatları tek tek.
Sadece aşağı yürü
liste. İşte biz buyuz
Sadece orada yaptım, değil mi?
Daha yeni yürüdük
liste. Bu çok sıkıcı.
Aslında, biraz iyi yapabilirsin
ne olduğunu kanıtlamak için şeyler
yapabileceğiniz işlevlerin sınıfı
düz çizgi ile hesaplamak
programlar ve ne görüyorsanız
yaptın, değil
özellikle ilginç.
TAMAM.
Geri dönüp düşünelim
tariflerimiz hakkında.
Bizim olarak ne kullanıyoruz
burada motivasyon var.
Gerçek tariflerde bile sen
gibi şeyler var
Gerekirse şeker ekleyin.

Korean: 
이것은 여전히 지루하네요, 가속 페달을 밟아 봅시다. 
제가 지금 하는 것은 다음과 같습니다: 저는 명령문을 쓸 수 있고, 
값을 얻기 위해 그것들을 조합하고, 저장해서, 
프린트 할 수 있습니다. 
그러나 이 단계에서 문자 그래도 제가 할 수 있는 모든 것은 
직선의 프로그램이라는 것을 쓰는 것입니다, 즉, 
우리가 하나씩 순서대로 실행하는
프로그램을 말합니다. 
단지 그 리스트를 따라 걸으세요. 
그것은 우리가 거기서 한 것입니다, 그렇죠? 
우리는 그 리스트를 따라 걸었습니다. 
이것은 지루합니다. 
사실, 여러분은 여러분이 직선 프로그램으로 계산 할 수 있는 
함수의 클래스가 무엇인지 입증하기 위해 좋은 것들을 할 수 있습니다. 
그리고 여러분이 한다면, 여러분이 보는 것은 
특별히 흥미롭지 않습니다. 
좋아요. 
돌아가서 우리의 레시피에 대해 생각해 봅시다. 
우리가 여기서 무엇을 우리의 동기로 사용했나요? 
실제 레시피에서도, 여러분은, 
필요하다면, 설탕을 추가하는 것과 같은 것을 가집니다. 

English: 
This is still boring, so let's
step on the accelerator.
What I have now is the
following: I can write
expressions, do combinations of
things to get out values, I
can store them away, I
can print them up.
But literally all I can do at
this stage is write what we
would call a straight-line
program, that is, a program in
which we execute in which we
execute the sequence of
instructions one by one.
Simply walk down that
list. That's what we
just did there, right?
We just walked through that
list. This is boring.
In fact, you can do some nice
things to prove what is the
class of functions you can
compute with straight-line
programs, and what you'd see if
you did that is, it's not
particularly interesting.
OK.
Let's go back and think
about our recipes.
What we use as our
motivation here.
Even in real recipes, you
have things like,
if needed, add sugar.

Korean: 
그것이 결정입니다. 
그것은 조건문 입니다. 
그것은 branch입니다. 
그것이 맞다면, 그것을 하세요. 
다시 말해, 다른 것을 하세요. 
이것에 실제로 더하기 위해, 우리는 branch 프로그램을 
가져야 합니다. 
제가 말하는 것은 즉, branch 프로그램은 
어떤 세트에 기반하여 명령문의 순서를 바꿀 수 
있는 것입니다. 
그리고 그 테스트는 보통 변수의 값입니다. 
좋아요. 
그리고 이것은 전체적으로 더욱 흥미로워집니다. 
그래서 작은 예제를 봅시다, 이것은, 잠시만요, 
우리가 여기 내부의 제어 흐름으로써 가지길 원하는 것뿐 만 
아니라 문법을 소개해 줍니다. 

Turkish: 
Bu bir karar.
Bu bir şartlı.
Bu bir dal.
Bir şey varsa diyor ki
doğrudur, bir şeyler yap.
Aksi takdirde, bir şey yap
farklı.
Yani buna gerçekten eklemek için, biz
dallanma ihtiyacı
programları. Bununla ne demek istedim?
bir dallanma programı
değiştirebilecek bir şey
dayalı talimatların sırası
biraz test. Ve bu test
genellikle bir değişkenin değeri.
TAMAM.
Ve bunlar çok olsun
daha ilginç.
O halde biraz bakalım
örnek ve bu olacak
afedersiniz, ikisi de bize izin veriyor
sözdizimini de tanıtmak
sahip olmak istediğimiz gibi
akışı olarak
buradan içini kontrol et.

English: 
That's a decision.
That's a conditional.
That's a branch.
That says, if something
is true, do something.
Otherwise, do something
different.
So to really add to this, we
need to have branching
programs. What I mean by that
is, a branching program is
something that can change the
order of instructions based on
some test. And that test is
usually a value of a variable.
OK.
And these get a whole lot
more interesting.
So let's look at a little
example, and this is going to,
excuse me, both allow us
introduce the syntax as well
as what we want to have
as the flow of
control inside of here.

Korean: 
그래서 여기로 돌아가서 그 부분을 comment 하겠습니다, 
그리고 이 부분을 uncomment 해 봅시다. 
저는 코드를 약간 쓸 것입니다. 
이것은 짝수나 홀수로 프린트 될 것입니다, 제가 어떤 값을 넣었는지에 따라서요, 
이 경우에, x는 짝수나 홀수입니다. 
그것에 대해 생각해 보세요. 
이것이 특정한 값을 가진다면, 저는 한 가지를 하고 있습니다; 
다시 말해, 저는 다른 것을 하고 싶습니다. 
그리고 이것의 문법을 봅시다. 
이것은 우리가 볼 조건문의 
첫 번째입니다. 
형태를 주목하세요. 
저는 저기로 올라 가겠습니다. 
여기 첫 번째 문장은 대입문 입니다. 
저는 x에 어떤 값을 줄 것입니다. 
우리는 다른 것을 할 수 있습니다. 
그리고 나서, 여기 구조에 대해 주목하세요. 
다음 세 문장입니다. 
먼저, IF는 키워드 입니다. 말이 되죠. 
저기서 여러분이 볼 수 있듯이, 다음에 어떤 명령문이 나오고 
콜론이 나옵니다. 
그리고 사실, 그 콜론은 중요해요, 

English: 
So let me go back up here, and
I'm going to comment out that
region, and let's uncomment
this region.
I want to write a little
piece of code.
It's going to print out even or
odd, depending on whether
the value I put in, which is x
in this case, is even or odd.
Think about that.
That says, if this thing has
some particular value, I want
to do one thing; otherwise,
I want to
do something different.
And let's look at the
syntax of this.
This is the first of the
conditionals that
we're going to see.
Notice the format.
I'm going to go up there.
The first statement right
here, that's just an
assignment statement, I'm
giving some value to x.
We could make it something
different.
And then, notice the
structure here.
The next three statements.
First of all, IF is a keyword.
which makes sense.
It is followed, as you can see
there, by some expression,
followed by a colon.
And in fact, that colon is
important, so let me stress

Turkish: 
Bu yüzden buraya geri döneyim ve
Bunu yorumlayacağım
bölge ve haydi rahatsız edelim
bu bölge.
Biraz yazmak istiyorum
kod parçası.
Hatta yazdırmak için gidiyor
garip, bağlı olup olmadığına bağlı olarak
koyduğum değer, ki x
Bu durumda, hatta veya garip.
Bunu bir düşün.
Diyor ki, eğer bu şey varsa
belirli bir değer istiyorum
bir şey yapmak; aksi takdirde,
İstiyorum
farklı bir şey yap.
Ve bakalım
bunun sözdizimi.
Bu ilk
şartlı
göreceğiz
Biçime dikkat edin.
Ben oraya gideceğim.
İlk ifade doğru
burada, sadece
ödev bildirimi, ben
x'e bir değer vermek.
Bir şey yapabiliriz
farklı.
Ve sonra, dikkat edin
burada yapı.
Sonraki üç ifade.
Her şeyden önce, IF bir anahtar kelimedir.
Bu mantıklı.
Görüldüğü gibi takip edilir
orada, bir ifadeyle,
ardından bir kolon var.
Ve aslında, bu kolon
önemli, bu yüzden stres yapmama izin ver

Korean: 
여기서 이것을 강조하고 싶군요. 
콜론은 중요합니다. 
이것은 명령문 블록의 시작을 정의합니다.  
네.
테스트에 기반합니다. 
보통 변수의 값입니다. 
좋아요, 제가 있는 곳으로 돌아가 봅시다. 
저는 코드에서 살펴 볼 것입니다. 
그 콜론이 말하는 것은, 저는 제가 블록으로 다루고 싶은 
명령문의 순서를 시작하려고 합니다. 
그래서 그것은 명령문의 블록을 식별합니다. 
그리고 특히, 콜론은 시작이고, 
캐리지 리턴이 끝입니다. 
이제 그것이 무엇을 말하죠?  
저는 여기 많은 단어들을 하고 있습니다, 이것을 
약간 더 낫게 해 봅시다.
 그 코드는 다음을 말해 줍니다: IF는, 제가 명령문을 가지면, 
저는 그것을 평가할 것이라는 것을 말합니다. 

English: 
this over here.
The colon is important It's
defining the beginning of a
block of instructions.
Yes sir.
STUDENT: [UNINTELLIGIBLE]
PROFESSOR JIM ERICSON: Based on
a test. Usually the value
of a variable.
OK, so let me go back
to where I am.
I'm looking at that
piece of code.
What that colon is saying is,
I'm about to begin a sequence
of instructions that I want
to treat as a block.
So it identifies a block
of instructions.
It's, and in particular, the
colon is the start, and the
carriage return is the end.
Now what in the world
does that mean?
I'm doing a lot of words here,
let me try and say this a
little bit better.
That code says the following:
the IF says, I've got an
expression, I'm going
to evaluate it.

Turkish: 
bu buraya.
Kolon önemlidir
başlangıcını tanımlamak
talimat bloğu.
Evet efendim.
ÖĞRENCİ: [ANLAYIŞLI]
PROFESÖR JIM ERICSON: Dayalı
Bir test. Genellikle değer
Bir değişkenin
Tamam, bırak gideyim
olduğum yere.
Ona bakıyorum
kod parçası.
Bu kolonun söylediği şey,
Bir diziye başlamak üzereyim
istediğim talimatları
bir blok gibi davranmak için.
Yani bir bloğu tanımlar
talimatların.
Bu ve özellikle
kolon başlangıçtır ve
satır başı sondur.
Şimdi dünyada ne
bu demek oluyor?
Burada çok kelime yapıyorum.
deneyeyim ve bunu söyleyeyim
biraz daha iyi.
Bu kod aşağıdakileri söylüyor:
EĞER diyor ki, ben bir
İfade, gidiyorum
değerlendirmek için.

Korean: 
그 값이 옳으면, 저는 어떤 일들을 합니다. 
그리고 그 일들은 여기 이것, 들여 쓴 명령문의 
순서에 의해 식별됩니다.
다음에 콜론이 나오지만 그 전에 저는 들여 쓰기의 관점에서 같은 곳으로 
돌아갑니다. 
그 테스트가 옳지 않으면, 저는 이 명령문을 스킵 합니다, 
그리고 두 번째 다른 키워드가 있습니다, 다음에 콜론이 나오고, 
그것은 저에게 제가 그것이 틀린 경우에 무엇을  
원하는지 말해줍니다. 
그래서 사실 제가 이것을 실행하면, 아, 저장하세요, 
그러면 홀수를 프린트합니다. 
그래서, 여기 무슨 일이 일어나죠? 
자, 코드를 봅시다. 
네? X는 처음에 15여야 합니다. 
저는 IF로 들어 가겠습니다. 
IF는 다음 명령문을 평가하라고 말합니다. 
그 다음 명령문에서, 저는 사실 제가 여기 인티져 곱셈과 
나눗셈을 하는 사실의 
이점을 갖습니다. 
좋아요, 나누기는, x가 인티져이고 2는 인티져입니다, 
그것은 무엇을 합니까? 
x가 짝수이면, 2 로 나눈 x는 사실 x의 절반이 될 것입니다, 

Turkish: 
Bu değer doğruysa istiyorum
bir şeyler yapmak için.
Ve bu şeyler kümesi
dizisi ile tanımlanır
girintili komutlar,
buradaki tam burada
kolon ama ben almadan önce
aynı yere geri dön
Girinti şartları.
Bu test doğru değilse, istiyorum
bu talimatı atlamak için
ve ikinci bir anahtar kelime var
başka, iki nokta üst üste
Bu bana bir şey söylüyor
İçinde yapmak istiyorum
yanlış olması durumunda.
Aslında bunu çalıştırırsam,
ah, ve onu kurtar ve
garip basar.
Peki, burada ne oldu?
Peki, koda bakalım.
Sağ? x başlangıçta
onbeşe bağlı.
IF'ye ulaşıyorum.
IF diyor ki, değerlendir
sonraki ifade.
Bir sonraki ifadede, ben
aslında faydalanmak
tamsayı yapıyorum gerçeği
çarpma ve
burada bölün.
Doğru, bu bölünme, eğer x ise
bir tam sayı ve iki bir
tamsayı
yapacağım?
Eğer x eşitse, x ikiye bölünür
aslında olacak

English: 
If that value is true, I want
to do a set of things.
And that set of things is
identified by the sequence of
commands that are indented in,
this one right here, following
the colon but before I get
back to the same place in
terms of the indentation.
If that test is not true, I want
to skip this instruction,
and there's a second keyword
else, followed by a colon, and
that tells me the thing
I want to do in the
case that it's false.
So in fact if I run this,
ah, and save it, and
it prints out odd.
So, what happened here?
Well, let's look at the code.
Right? x is initially
bound to fifteen.
I get to the IF.
The IF says, evaluate that
next expression.
In that next expression, I'm
actually taking advantage of
the fact that I'm doing integer
multiplication and
division here.
Right, that divide is, if x is
an integer and two is an
integer, what's it
going to do?
If x was even, x divided by two
is going to be actually

Turkish: 
x'in yarısı değil mi?
X tek ise, tam sayı
bölünme bana verecek
iki katın sayısı
Bu x içine artı bir
kalan ben
atmak için.
Her iki durumda da, bunu alıyorum
değer ve çarparak geri
iki, eğer geri dönersem
orijinal numaraysa
garip, geri dönmeyeceğim
Orijinal numara, böylece yapabilirim
sadece görmek için kontrol edin
onlar aynı.
Tamam, bu yüzden biraz nüans
orada kullanıyorum.
Yani, ilk şey IF
Yapar, diyor ki diyor ki,
bu ifadeyi değerlendirmek ve
doğruysa, bir sonraki
şey, sonra olan şey
kolon
Bu durumda doğru değil, öyleyse
aşağı atlayacak ve
basılı şeyi değerlendirmek
garip.
TAMAM.
Ne evet.
 
ÖĞRENCİ: [GÜZEL]
PROFESÖR JIM ERICSON:
Teşekkür ederim.
Birisinin olacağını umuyordum
bu soruyu sor.
Asıl soru, eğer yapmazsan
duyuyorum neden iki tane var?
eşit işaretler?
Sanki yapıyorum gibi
bu değil mi?
Herkes se se -% uFFFD
neden ben sadece
Eşittir işareti kullanın?
Bir şey olup olmadığını bilmek istiyorum
bir şeye eşit.
Evet.
ÖĞRENCİ: [GÜZEL]
PROFESÖR JIM ERICSON:
Kesinlikle.

Korean: 
그렇죠? 
x가 홀수이면, 그 인티져 나눗셈은 저에게 2의 배수의 수를 줍니다, 
x로 들어가서, 나머지를 더합니다, 
그것은 제가 버릴 것입니다. 
두 경우에, 저는 값을 가져와서 2를 곱합니다, 
원래 수가 짝수이면, 홀수이면, 저는 원래 수로 돌아갈 수 없을 것입니다, 
그래서 저는 그것이 같은지 
검사할 수 있습니다. 
좋아요, 그래서 저기서 제가 사용할 작은 뉘앙스가 있습니다. 
그래서, IF가 하는 첫 번째 것은, 그 명령문을 평가하는 것입니다. 
그것이 옳으면, 다음 것을 합니다, 
콜론 다음 것을 것. 
그것이 옳지 않으면, 스킵 하고 내려 가서 
홀수를 출력한 것을 평가합니다. 
네. 
그래요. 
고마워요. 
저는 누군가가 그 질문을 해주길 바랬어요. 
질문은, 제가 들을 수 없으면, 
왜 제가 두 등부호를 가져야 하죠? 
그것은 제가 이것을 하는 것과 같습니다, 그렇죠? 
누군가는 se--%uFFFD 를 갖습니다, 왜 제가 등부호를 사용하지 않나요? 
저는 그것이 무엇과 같은지 알고 싶어요. 
네. 
절대적으로요. 

English: 
the half of x, right?
If x is odd, that integer
division is going to give me
the number of multiples of two,
that go into x, plus a
remainder, which I'm going
to throw away.
In either case, I take that
value and multiply back by
two, if it was even I get back
the original number, if it was
odd, I'm not going to get back
the original number, so I can
just check to see if
they're the same.
OK, so a little nuance
that I'm using there.
So, the first thing that IF
does, bleah that IF says is,
evaluate that expression and
if it's true, do the next
thing, the thing after
the colon.
In this case it's not true, so
it's going to skip down and
evaluate the thing printed
up the odd.
OK.
What-- yes.
STUDENT: [INAUDIBLE]
PROFESSOR JIM ERICSON:
Thank you.
I was hoping somebody would
ask that question.
The question was, if you didn't
hear, why do I have two
equal signs?
It's like I'm doing
this, right?
Anybody have a se--%uFFFD
why don't I just
use an equal sign?
I want to know if something's
equal to something.
Yeah.
STUDENT: [INAUDIBLE]
PROFESSOR JIM ERICSON:
Absolutely.

English: 
The equal sign is
going to bind--
Nice catch.
John, this is so much
fun, throwing candy.
I've got to say, we've got
to do this more often--
Right.
Let me, let me get
to the point.
What does an equal sign do?
It is an assignment.
It says, take this thing on the
left and use it as a name
to bind to the value
on the right.
It's not what I want here.
Having already chosen to use
equal as an assignment, I need
something else to
do comparison.
And that's why I use
double equals.
Those two equal signs are
saying, is this thing equal
to, in value, the thing
on the other side?
OK.
Now, having done that, again I
want to stress this idea and
I'm going to write it out one
more time, that there's a
particular format here.
So we have if, and that is
followed by, I'm going to use
angle braces here just to
indicates something goes in
here, some test followed
by a colon.

Korean: 
등부호는 바인드 할 것입니다. – 좋은 지적이에요. 
존, 이것은 더욱 재미있군요, 사탕을 던질게요. 
저는 우리가 이것을 더욱 자주 해야 한다고 생각해요 – 좋아요. 
핵심으로 들어가 봅시다. 
등부호는 무엇을 합니까? 
그것은 대입을 합니다. 
왼쪽에 이것을 가지고 오른쪽에 값으로 바인드 하기 위해 
이름으로 그것을 사용합니다. 
그것은 여기 제가 원하는 것이 아닙니다. 
이미 대입으로 등부호를 사용했기 때문에, 
저는 비교할 다른 것이 필요합니다.  
그리고 그것은 제가 등부호 두 개를 사용하는 이유입니다. 
이 두 등부호는 값에서, 
이것이 다른 쪽의 것과 같은 것입니까? 
좋아요. 
이제, 이것을 다 했으니, 다시 저는 이 생각을 강조하고 싶군요. 
그리고 이것을 더욱 자주 쓸 것입니다. 
여기 특정한 포맷이 있습니다. 
그래서 우리가 IF를 가지고, 그것이 다음에 나오면, 저는 여기 중괄호를 사용할 것입니다, 
여기에 오는 것을 나타내기 위해서요, 
콜론 다음에 나오는 테스트를요. 

Turkish: 
Eşittir işareti
bağlanacak
İyi yakaladın.
John, bu çok
eğlenceli, şeker atma.
Söylemeliyim ki biz aldık.
bunu daha sık yapmak ...
Sağ.
Bırak gideyim, bırak gideyim
diyeceğim şey şu ki.
Eşittir işareti ne yapar?
Bu bir ödev.
Bu şeyi aldığın yazıyor
sola ve bir isim olarak kullanın
değerine bağlamak
sağda.
Burada istediğim bu değil.
Zaten kullanmayı seçtiniz
ödev olarak eşit, ihtiyacım var
başka bir şey
karşılaştırma yap.
Ve bu yüzden kullanıyorum
çift ​​eşittir.
Bu iki eşit işaret
söyleyerek, bu şey eşit mi
değer olarak, şey
diğer tarafta?
TAMAM.
Now, having done that, again I
want to stress this idea and
I'm going to write it out one
more time, that there's a
particular format here.
So we have if, and that is
followed by, I'm going to use
angle braces here just to
indicates something goes in
here, some test followed
by a colon.

English: 
That is followed by a block
of instructions.
And we have an ELSE, followed by
a colon in some other block
of instructions.
And I want you to get used to
this, that colon is important,
it identifies the start, and
then the set of indented
things identify all the things
at the same level, and when we
reset back to the previous
level, that's when we go back
to where we were.
OK.
Now, that's a nice simple little
test, let's look at a
couple of other examples
to get a sense of
what this will do.
OK, let me comment this out,
and let's look at this next
little piece of code.
All right.
I'm binding a z to be some
value, and then I'm
going to run this.

Korean: 
그것은 명령문의 블록 다음에 나옵니다. 
그리고 우리는 다른 명령문의 블록에서 콜론 다음에 나오는 
ELSE를 가집니다. 
그리고 저는 여러분이 이것에 익숙해 졌으면 합니다, 그 콜론은 중요해요, 
그것은 시작을 식별합니다. 그리고 나서 들여 쓴 것들이 같은 단계에서 
모든 다른 것들을 식별합니다, 그리고 우리가 전 단계로 
다시 돌아 왔을 때, 그것은 우리가 있는 곳으로 
돌아 온 때입니다. 
좋아요. 
이제, 이것은 좋은 간단한 작은 테스트입니다, 
이것이 무엇을 하는지 느낌을 가지기 위해 다른 예들을 몇 가지 보겠습니다. 
좋아요, 이것을 comment 해 보겠습니다, 그리고 이 다음 
작은 코드를 봅시다. 
좋아요. 
저는 z를 어떤 값으로 바인딩 할 것입니다, 
그리고 나서 이것을 실행할 것입니다. 

Turkish: 
That is followed by a block
of instructions.
And we have an ELSE, followed by
a colon in some other block
of instructions.
And I want you to get used to
this, that colon is important,
it identifies the start, and
then the set of indented
things identify all the things
at the same level, and when we
reset back to the previous
level, that's when we go back
to where we were.
TAMAM.
Now, that's a nice simple little
test, let's look at a
couple of other examples
to get a sense of
what this will do.
OK, let me comment this out,
and let's look at this next
little piece of code.
Tamam.
I'm binding az to be some
value, and then I'm
going to run this.

English: 
Well, let's just run it
and see what it does.
Nothing.
OK, so why?
Well, let's look at it.
I'm doing a test there to say,
if the string x is less than
the value of b, and x does not
appear before b as strings,
then I was going to do, oh, a
couple of things, because
they're at the same
block level.
Given that that wasn't
true, it did nothing.
Now, wait a minute, you say,
where's the ELSE clause?
And the answer is,
I don't need one.
All right, if this is purely a
test of, if this is true do
this otherwise I don't care, I
don't need the ELSE clause in
there to identify it.
All right?
Second thing I want to look at
is, suppose I compare that the
one below it.
Oops, that I don't want to do.
Comment that out, and let's
uncomment this.
Yeah, I've still got a binding
for z and I'm giving it the
same test, but notice now I've
got the two same commands but

Turkish: 
Well, let's just run it
ve ne yaptığını görün.
Hiçbir şey değil.
OK, so why?
Well, let's look at it.
I'm doing a test there to say,
if the string x is less than
the value of b, and x does not
appear before b as strings,
then I was going to do, oh, a
couple of things, because
they're at the same
block level.
Given that that wasn't
true, it did nothing.
Now, wait a minute, you say,
where's the ELSE clause?
And the answer is,
I don't need one.
All right, if this is purely a
test of, if this is true do
this otherwise I don't care, I
don't need the ELSE clause in
there to identify it.
All right?
Second thing I want to look at
is, suppose I compare that the
one below it.
Oops, that I don't want to do.
Comment that out, and let's
uncomment this.
Yeah, I've still got a binding
for z and I'm giving it the
same test, but notice now I've
got the two same commands but

Korean: 
자, 이것을 실행하고 그것이 무엇인지 봅시다. 
아무 것도 아니군요. 
좋아요, 왜 그렇죠? 
자, 그것을 봅시다. 
저는 테스트를 할 것입니다. 문자열 x가 b의 값 보다 작으면, 
그리고 x가 문자열로써 b 전에 나타나지 않으면, 
저는 오, 몇 가지를 할 것입니다. 
왜냐하면 그것들은 같은 블록 단계에 있으니까요. 
그것이 옳지 않다는 것을 고려해 볼 때, 그것은 아무 것도 아닙니다. 
이제, 잠깐 기다리세요, 여러분은 ELSE 절은 어디 있죠? 라고 말할 수 있습니다. 
그리고 답은, 저는 그것이 필요하지 않습니다. 
좋아요, 이것이 순수하게 테스트이면, 이것이 제가 신경 쓰지 않으면 옳다면, 
저는 거기서 그것을 식별하기 위해 ELSE 절이 
필요합니다.   
알겠죠?
제가 보고 싶은 두 번째 것은, 
제가 그것을 그 아래 것과 비교한다고 가정해 보세요. 
웁스, 제가 하려던 게 아니네요. 
그것을 comment 하세요, 이것을 uncomment 합시다. 
네, 저는 여전히 z의 바인딩을 갖습니다. 그리고 저는 그것을 같은 테스트에 줄 것이지만, 
지금은 제가 두 같은 명령문을 갖지만 그것들이 다른 들여 쓰기를 갖는 다는 것에 

Turkish: 
they have different
indentation.
In this case, in fact I do
get a different behavior.
Niye ya?
Because that block identifies a
set of things that I'm going
to do if the test is true.
If the test was not true, notice
that that last command
for print Mon is now back at the
same level as the IF, so
what this says is the IF does
the test, having done the
test, it decides I'm not going
to do anything in the block
below it, I'm going to skip
down therefore to the next
instruction at the same level
as the IF, which gets me to
the second print statement.
TAMAM.
So now we're seeing some of
these variations, let's see
what else can we do here.
So let me just to try something
a little more
interesting, and then we'll
get to writing some simple
programs. So I'm going to
comment those out, and let's
go down to this piece of
code, and uncomment it.
Ooh yes, that was brilliant.
Let's try this again.

Korean: 
주목하세요. 
이 경우에, 사실 저는 다른 행동을 합니다.  
왜죠? 그 볼록이 
제가 테스트가 옳은지 하려는 것을 
식별하기 때문입니다. 
테스트가 옳지 않으면 Mon을 프린트하는 
그 마지막 명령문이 이제 IF로써 같은 단계에서 뒤에 있다는 것에 주목하세요, 
그래서 이것은 IF가 테스트하는 것입니다. 테스트를 다 하면,  
그것은 제가 그 아래 블록에서 아무것도 하지 않을 것이라는 것을 결정합니다, 
그러므로 저는 아래로 스킵 해서 
IF로써 같은 단계의 다음 명령문으로 갑니다, 그것은 저에게 
두 번째 프린트 문을 줍니다. 
좋아요. 
이제 우리는 이 다른 것들을 보고 있습니다, 우리가 여기서 할 수 있는 
다른 것들이 무엇인지 봅시다. 
약간 더 흥미로운 것을 해 봅시다. 그리고 나서 
우리는 간단한 프로그램을 써 볼 것입니다.  
그래서 저는 이것들을 comment 할 것이고, 이 코드 아래로 내려가 봅시다, 
그리고 이것을 uncomment 합니다. 
오 네, 이것은 훌륭했습니다. 
이것을 다시 해 봅시다.

English: 
they have different
indentation.
In this case, in fact I do
get a different behavior.
Why?
Because that block identifies a
set of things that I'm going
to do if the test is true.
If the test was not true, notice
that that last command
for print Mon is now back at the
same level as the IF, so
what this says is the IF does
the test, having done the
test, it decides I'm not going
to do anything in the block
below it, I'm going to skip
down therefore to the next
instruction at the same level
as the IF, which gets me to
the second print statement.
OK.
So now we're seeing some of
these variations, let's see
what else can we do here.
So let me just to try something
a little more
interesting, and then we'll
get to writing some simple
programs. So I'm going to
comment those out, and let's
go down to this piece of
code, and uncomment it.
Ooh yes, that was brilliant.
Let's try this again.

Korean: 
그리고 그것을 uncomment하고 그것을 다시 uncomment 해 봅시다. 
좋아요, 그래서 여기 가장 작은 3의 값을 프린트 할 
작은 코드가 있습니다. 
그리고 이것이 보여주는 것은 IF들이 끼워 넣어 질 수 있다는 것에 주목하세요. 
좋아요, 그것은 제가 그것을 보면, IF x 가 y 이면 이라고 말할 것입니다 – 
미안해요, IF x 가 y 보다 작으면 입니다, 그러면 x가 z 보다 작은지 검사하세요, 
그리고 그것이 옳으면, 가장 작은 x를 
출력하세요. 
그리고 그것의 구조에 주목하세요, 그것이 옳지 않으면 
저는 다음 ELSE로 갈 것입니다, 그리고 가장 작은 z를 출력할 것입니다. 
첫 번째 테스트가 옳지 않았으면, 저는 전체 블록을 스킵 할 것입니다 
그리고 아래로 내려가서 가장 작은 y를 출력할 것입니다. 
그래서 끼워 넣은 것에 주목하세요, 저는 그 테스트들이 실제 어떻게   
일어 나는지를 통해 제 길을 갑니다.
좋아요, 이것을 런 해보고 무슨 일이 일어 나는지 봅시다. 
좋아요. Y는 가장 작습니다. 
네. 
이 코드가 맞습니까? 
그것은 잠정적인 것 인가요?  
네.

English: 
And uncomment that, and
uncomment it again.
Right, so here's a little piece
of code that's going to
print out the smallest
value of three.
And notice what this
is showing is that
the IFs can be nested.
All right, it's so if I looked
at it, it's going to say that
IF x is y-- sorry, IF x is less
than y, THEN check to see
IF x is less than z, and if
that's true, print out x is
the smallest. And notice the
structure of it, if it's not
true I'm going to go to that
next ELSE, and print out that
z is smallest. If the first test
wasn't true, I'm going to
skip that whole block and just
go down and print out that y
was smallest. So notice the
nesting, I can flow my way
through how those tests are
actually going to take place.
All right, so let's run this
and see what happens.
Great. y is smallest. OK.
Is that code correct?
Is that a tentative
hand back there?
Yeah.

Turkish: 
And uncomment that, and
uncomment it again.
Right, so here's a little piece
of code that's going to
print out the smallest
value of three.
And notice what this
is showing is that
the IFs can be nested.
All right, it's so if I looked
at it, it's going to say that
IF x is y-- sorry, IF x is less
than y, THEN check to see
IF x is less than z, and if
that's true, print out x is
the smallest. And notice the
structure of it, if it's not
true I'm going to go to that
next ELSE, and print out that
z is smallest. If the first test
wasn't true, I'm going to
skip that whole block and just
go down and print out that y
was smallest. So notice the
nesting, I can flow my way
through how those tests are
actually going to take place.
All right, so let's run this
and see what happens.
Great. y is smallest. TAMAM.
Is that code correct?
Is that a tentative
hand back there?
Evet.

English: 
STUDENT: Let me compare
y to [INAUDIBLE]
PROFESSOR JIM ERICSON: Yeah,
it's not doing all of the
comparisons.
All right, and let's just check
this out, because I want
to make a point of this, let's
go back and do the following.
Let's take y, change it to
thirteen, let's run it, hmm.
So what did I miss here?
Two important points.
First one, when I write a piece
of code, especially code
that has branches in it, when
I design test cases for that
piece of code, I should try and
have a specific test case
for each possible path
through the code.
And by just doing that, I just
spotted, there's a bug here.
And the bug was in my thinking,
I did not look for
all of the tests.
So the way I can fix that, is,
let me comment that out, and

Turkish: 
STUDENT: Let me compare
y to [INAUDIBLE]
PROFESSOR JIM ERICSON: Yeah,
it's not doing all of the
comparisons.
All right, and let's just check
this out, because I want
to make a point of this, let's
go back and do the following.
Let's take y, change it to
thirteen, let's run it, hmm.
So what did I miss here?
Two important points.
First one, when I write a piece
of code, especially code
that has branches in it, when
I design test cases for that
piece of code, I should try and
have a specific test case
for each possible path
through the code.
And by just doing that, I just
spotted, there's a bug here.
And the bug was in my thinking,
I did not look for
all of the tests.
So the way I can fix that, is,
let me comment that out, and

Korean: 
y와 비교해 보면 ...
네, 그것은 모든 비교를 
하지 않습니다. 
좋아요, 그리고 이것을 확인해 봅시다, 왜냐하면 
이것의 핵심을 하고 싶으니까요, 올라 가서 다음을 해 봅시다.
Y를 가져와서, 그것을 13으로 바꿉시다. 런 해 봅시다, 음. 
제가 여기서 무엇을 빠트렸나요? 
두 가지 중요한 핵심이 있습니다.
첫 번째는, 제가 코드를 쓸 때, 특히 그것에 복제된 코드에서, 
제가 코드를 위해 테스트 경우를 설계할 때, 저는 코드를 통한 각 가능한 경로를 위한 
특정한 테스트 경우를 가지고 
시도해야 합니다. 
그리고 그렇게 함으로써, 저는 알아 내고, 여기 버그가 있습니다. 
그리고 버그는 제 생각에 있습니다, 저는 모든 테스트를 위해 
보지 않습니다. 
그래서 제가 그것을 고치는 방법은, 그것을 comment 합니다, 

Turkish: 
keep doing that, comment that
out, let's uncomment this,
notice the structure here.
I now have multiple tests.
So actually, let's just run
it and then we'll talk
about what it does.
I run this, yeah, I have a
syntax error, yes indeed,
because I forgot to comment that
one out, all right, and
cue, we'll try it again.
Ah-ha!
And let's quickly look at
the structure of this.
This now has, gee, a funny
thing, it says IF x is less
than y AND x is less than
z, then do something.
And then it has a strange thing
called ELIF, which is
simply short for else/if in a
second test. So the way to
think about this in terms of
flow is, it starts with that
if and it says, check both
of those things.
And that fact that both of those
things is the fact that

Korean: 
그리고 그것을 계속합니다, 그것을 comment 합니다, 이것을 uncomment 합니다, 에 대해 이야기 할 것입니다.  
여기 구조에 주목하세요. 
저는 이제 많은 테스트를 가지고 있습니다. 
그래서 사실, 그것을 그냥 실행하고 나서 우리는 그것이 무엇 인지에 대해 
이야기 할 것입니다.  
저는 이것을 실행합니다, 네, 저는 문법 오류가 있어야, 네 정말로요, 
왜냐하면 제가 그 comment 하나를 잊어버렸네요, 
그리고 단서는, 우리는 그것을 다시 해 볼 것입니다. 
아하! 
그리고 이것의 구조를 빠르게 봅시다. 
이것은 이제 재미있는 것을 가집니다. IF x 가 y 보다 작고 
AND x 가 z 보다 작으면, 무언 가를 합니다. 
그리고 나서 그것은 ELIF 라는 이상한 것을 가집니다. 그것은 두 번째 테스트에서 
else/if 를 위한 간단한 것입니다. 
그래서 흐름의 관점에서 이것을 생각하는 방법은, 
IF로 시작하고, 두 가지를 다 검사합니다. 
그리고 두 가지라는 사실은 

English: 
keep doing that, comment that
out, let's uncomment this,
notice the structure here.
I now have multiple tests.
So actually, let's just run
it and then we'll talk
about what it does.
I run this, yeah, I have a
syntax error, yes indeed,
because I forgot to comment that
one out, all right, and
cue, we'll try it again.
Ah-ha!
And let's quickly look at
the structure of this.
This now has, gee, a funny
thing, it says IF x is less
than y AND x is less than
z, then do something.
And then it has a strange thing
called ELIF, which is
simply short for else/if in a
second test. So the way to
think about this in terms of
flow is, it starts with that
if and it says, check both
of those things.
And that fact that both of those
things is the fact that

Turkish: 
we're using Boolean
combination here.
It is to say, we can take any
logical expressions, combine
them together with AND, OR,
or NOT to make a complex
expression, and use the value of
that expression as my test.
And that's literally what I've
done there, right, I've got x
less than y, that's a test, it
returns a Boolean, which by
the way is the other type, at
least I would include here, it
has only two values, which are
true and false, and what that
code says, if x is less than y,
AND, logically, whatever I
put up there, x is less than
z, then the combination is
true, and therefore I'm
going to do something.
So AND is if both arguments are
true it's true, OR is if
either argument it's true it's
true, NOT is if the argument
is not true it's true, and then
the last piece, as I said
is, I can now have a sequence
of things I want to do.
So if this is true do something
else, otherwise test

Korean: 
우리가 여기 Boolean 조합을 사용할 것이라는 것입니다. 
우리는 어떤 논리적인 명령문을 가지고 그것을 
AND, OR, NOT 으로 조합할 수 있습니다. 더 복잡한 명령문을 만들기 위해서요,
그리고 제 테스트로써 그 명령문의 값을 사용합니다. 
그리고 그것은 문자 그대로 제가 거기서 했다는 것입니다, 좋아요, 저는 y 보다 작은 x를 갖습니다, 
그것이 테스트 입니다, 
그것은 오직 두 값을 가집니다, 
true 와 false 이죠, 그리고 그 코드가 말하는 것은, 
x가 y 보다 작으면, AND, 논리적으로, 
제가 거기에 무엇을 집어 넣든, x는 z 보다 작습니다, 그러면 그 조합은 옳습니다, 
그러므로 저는 그것을 할 것입니다. 
그래서 AND는 두 인자가 모두 옳으면 옳고, 
OR는 두 인자 중 하나가 옳으면 옳고, NOT은 인자가 옳지 않으면 옳습니다, 
그리고 나서 마지막 것은, 저는 이제 제가 하고 싶은 것의 
순서를 가질 수 있습니다. 
그래서 이것이 다른 무엇을 하는 옳은 것이면, 

English: 
we're using Boolean
combination here.
It is to say, we can take any
logical expressions, combine
them together with AND, OR,
or NOT to make a complex
expression, and use the value of
that expression as my test.
And that's literally what I've
done there, right, I've got x
less than y, that's a test, it
returns a Boolean, which by
the way is the other type, at
least I would include here, it
has only two values, which are
true and false, and what that
code says, if x is less than y,
AND, logically, whatever I
put up there, x is less than
z, then the combination is
true, and therefore I'm
going to do something.
So AND is if both arguments are
true it's true, OR is if
either argument it's true it's
true, NOT is if the argument
is not true it's true, and then
the last piece, as I said
is, I can now have a sequence
of things I want to do.
So if this is true do something
else, otherwise test

Turkish: 
and see if this is true, do
something else, as many as I
like followed by the end.
And ELSE, it says, here's
what I want to do.
TAMAM.
Şimdi.
Having added this in, I have
branching instructions.
I have simple branching
programs. These are still
awfully simple.
TAMAM?
And they're awfully simple
because, all I can do now, is
decide whether to execute some
piece of code or another.
Said a different way, in the
case of the straight-line
programs, how long would it
take to run a program?
Well, basically, however many
instructions I have, because
I've got to do each
one in order.
With simple branching, how long
is it going to take to
run a piece of code?
Well at most, I'm going to
execute each instruction once.
All right?
Because the IFs are saying, if
it's true do this, otherwise
skip on it.
Therefore, for simple branching
programs, the length
of time, the complexity
the code, is what
we would call constant.
That is, it's at most the length
of the actual number of
instructions.
It doesn't depend
on the input.

Korean: 
그렇지 않으면 테스트를 하고 이것이 옳은지 봅니다, 다른 것을 해요, 
마지막에 오는 가능한 많이요. 
그리고 ELSE는, 여기서 제가 하길 원하는 것입니다. 
좋아요. 
이제, 
이것에 더했으니, 저는 branching 명령문들을 가집니다. 
저는 간단한 branching 프로그램을 가지고 있습니다. 
이것들은 여전히 정말 간단합니다. 
알겠죠? 
그리고 그들은 정말 간단해요 왜냐하면, 제가 지금 할 수 있는 모든 것은 
어떤 코드나 다른 것을 실행할지 결정하는 것이거든요. 
다른 방법으로 말하면, 직선 프로그램의 경우에, 
그것은 프로그램을 실행 하는데 얼마나 걸리죠? 
자, 기본적으로, 제가 많은 명령문을 가지고 있다 하더라도, 왜냐하면 
저는 각 하나를 순서대로 하기 때문입니다. 
간단한 branching과 함께, 그것은 
코드를 실행 하는데 얼마나 걸릴까요? 
많아 봐야, 각 명령문을 하나씩 실행할 것입니다. 
알겠죠? 
왜냐하면 IF들이 그것이 옳으면 이것을 하고, 
그렇지 않으면 스킵 하라고 말하니까요. 
그러므로 간단한 branching 프로그램을 위해, 시간의 길이, 
코드의 복잡성은 정수입니다. 
즉, 그것은 기껏해야 명령문들의 실제 수의 
길이입니다. 
그것은 입력에 의존하지 않습니다. 

English: 
and see if this is true, do
something else, as many as I
like followed by the end.
And ELSE, it says, here's
what I want to do.
OK.
Now.
Having added this in, I have
branching instructions.
I have simple branching
programs. These are still
awfully simple.
OK?
And they're awfully simple
because, all I can do now, is
decide whether to execute some
piece of code or another.
Said a different way, in the
case of the straight-line
programs, how long would it
take to run a program?
Well, basically, however many
instructions I have, because
I've got to do each
one in order.
With simple branching, how long
is it going to take to
run a piece of code?
Well at most, I'm going to
execute each instruction once.
All right?
Because the IFs are saying, if
it's true do this, otherwise
skip on it.
Therefore, for simple branching
programs, the length
of time, the complexity
the code, is what
we would call constant.
That is, it's at most the length
of the actual number of
instructions.
It doesn't depend
on the input.

Turkish: 
Real simple programs.
Let's take another
simple example.
Suppose I want to compute
the average age
of all the MIT faculty.
There's about a thousand
of us.
However I do that, I know that
should inherently take more
time than it takes to compute
the average age of all the
EECS faculty.
There's only 125 of us.
And that should take more time
than what it takes to compute
the average of John's and my
ages, instructors in 600,
because there's only
two of us.
All right, those pieces of
code inherently involved
something that does depend on
the size of the input, or on
the particular input.
And that is a preface to an
idea of computational
complexity we're going
to come back to.
One of the things we want to
help you do is identify the
different classes of algorithms,
what their costs
are, and how you can map
problems into the most
efficient class to do
the computation.
TAMAM.
Şimdi.
Think for a second about
computing the average age of
the faculty.
You can already kind of
see what I want to do.
I, somehow if, I want to walk
through some sequence of data

Korean: 
정말 간단한 프로그램이죠.  
다른 간단한 예를 해 봅시다. 
제가 모든 MIT 교수진의 평균 나이를 계산하고 
싶다고 가정해 보세요. 
약 우리 천 명이 있어요. 
제가 그것을 한다고 하더라도, 저는 그것이 선천적으로 시간이 
더 많이 걸린다는 것을 압니다. 모든 EECS 교수진의 평균 나이를  
계산하는 것보다요. 
단 우리 125명이 있어요. 
그리고 그것은 존과 내 나이와, 600 명의 강사의 평균을 구하는 것 보다 
더 시간이 오래 걸릴 것입니다. 
왜냐하면 두 명 밖에 없으니까요. 
좋아요, 이 코드는 선천적으로 
입력의 크기나 특정한 입력에 의존하는 것을 
포함합니다. 
그리고 이것은 우리가 돌아 올 컴퓨터적 복잡성의 생각에 
대한 서문입니다. 
우리가 여러분을 돕고 싶은 것 중 하나는 다른 알고리즘들의 
클래스를 식별하는 것입니다. 그들의 비용은 무엇인지, 
문제들을 더 효율적인 computation을 하는 클래스로 
어떻게 보여주는지를요.  
좋아요. 
이제, 
교수진의 평균 나이를 계산하는 것에 대해 
잠깐 생각해 봅시다. 
여러분은 이미 제가 무엇을 원하는지 볼 수 있어요. 
저는 다소, 제가 자료 구조들의 순서를 따라 걷고 싶으면,

English: 
Real simple programs.
Let's take another
simple example.
Suppose I want to compute
the average age
of all the MIT faculty.
There's about a thousand
of us.
However I do that, I know that
should inherently take more
time than it takes to compute
the average age of all the
EECS faculty.
There's only 125 of us.
And that should take more time
than what it takes to compute
the average of John's and my
ages, instructors in 600,
because there's only
two of us.
All right, those pieces of
code inherently involved
something that does depend on
the size of the input, or on
the particular input.
And that is a preface to an
idea of computational
complexity we're going
to come back to.
One of the things we want to
help you do is identify the
different classes of algorithms,
what their costs
are, and how you can map
problems into the most
efficient class to do
the computation.
OK.
Now.
Think for a second about
computing the average age of
the faculty.
You can already kind of
see what I want to do.
I, somehow if, I want to walk
through some sequence of data

Korean: 
 모으거나 같은 것을 하거나, 나이를 더합니다. 
제가 총 나이를 얻고 교수진 수로 
나눌 때 까지요. 
제가 그것을 위한 코드를 어떻게 쓸 수 있죠? 
자, 우리의 레시피의 시작점으로 
돌아갑니다. 
그리고 저는 여러분이 기억하지 못한다는 것을 확신해요, 
그러나 제가 제 레시피에 가지고 있는 것 중 하나는 뻣뻣해 질 때까지 흰자를 섞는 것입니다. 
좋아요. 
그 때 까지라는 것은 중요한 단어에요. 
그것은 사실 테스트를 정의합니다. 
그것을 제가 원하는 것으로 더욱 자연스럽게 이끄는 잘 알아 들을 수 없는 
영어로 바꾸어 말해 봅시다. 
달걀 흰자가 뻣뻣하지 않으면, 그것들을 섞으세요. 
그것은 다른 구조입니다. 
그 안에 테스트를 가지면, 
그 때까지 무엇을 하세요, 그러나 저는 그것을 계속하길 원합니다. 
그리고 그것을 위해, 우리는 한 가지 마지막 것을 더해야 합니다. 
그것은 반복문 입니다. 
또는 루프입니다. 
우리는 이것의 다양한 것들을 볼 것입니다. 우리는 조금 나중에 
순환이라는 것을 볼 것이지만, 
지금은 우리가 어떻게 
반복문을 하는지 이야기 해 봅시다. 

Turkish: 
structures, gathering up or
doing the same thing, adding
ages in until I get a total
age and then divide by the
number faculty.
How do I write a piece
of code for that?
Well, let's go back
up to our original
starting point of recipes.
And I'm sure you don't remember,
but one of the
things I had in my recipe, is
beat egg whites until stiff.
TAMAM.
That until is an
important word.
It's actually defining a test.
Let me rephrase it into
garbled English that'll lead
more naturally into what I
want to do.
While the egg whites are
not stiff, beat them.
That is a different
kind of structure.
It has a test in it, which is
that while, while something is
true, do something, but I
want to keep doing it.
And so for that, we need
to add one last thing.
Which is iteration.
Or loops.
We're going to see variations of
this, we're going to see a
variation of it called
recursion, a little later on,
but for now we're just going
to talk about how do we do
iterations.

English: 
structures, gathering up or
doing the same thing, adding
ages in until I get a total
age and then divide by the
number faculty.
How do I write a piece
of code for that?
Well, let's go back
up to our original
starting point of recipes.
And I'm sure you don't remember,
but one of the
things I had in my recipe, is
beat egg whites until stiff.
OK.
That until is an
important word.
It's actually defining a test.
Let me rephrase it into
garbled English that'll lead
more naturally into what I
want to do.
While the egg whites are
not stiff, beat them.
That is a different
kind of structure.
It has a test in it, which is
that while, while something is
true, do something, but I
want to keep doing it.
And so for that, we need
to add one last thing.
Which is iteration.
Or loops.
We're going to see variations of
this, we're going to see a
variation of it called
recursion, a little later on,
but for now we're just going
to talk about how do we do
iterations.

Turkish: 
And I want to show you an
example of this, to lead to
both the syntax, and
to the semantics.
And let me comment that out,
and let's go to this one.
Tamam.
What does this piece
of code say?
Not, what does it do, but
what does it say.
Well, the first three statements
are just assignment
statements.
I'm binding x, y, and iters
left to some values.
And then notice the structure, I
got a keyword WHILE, there's
that color identifying it, and
in parentheses I have a test.
I'm expecting the value that
test to be a Boolean.
Followed by a colon.
The colon's identifying
a block of code.
And what this is
saying is, gee.
Check to see if the variable
iters left has a value
greater than zero.
If it does, then execute
each of the
instructions in that block.
So I'm going to have an
assignment of y, I'm going to
have an assignment of iters
left, I've got a comment that
I had borrowed in order to do
some debugging, and then what
do I want it to do?

Korean: 
그리고 저는 여러분이게 이것의 예를 보여주고 싶어요, 
문법과 의미 모두에 이르는 것을요. 
그리고 그것을 comment 해 봅시다, 그리고 이것을 해 봅시다. 
좋아요. 
이 코드가 무엇을 말하죠? 
그것이 하는 것이 아니라 그것이 말하는거요. 
자, 첫 세 식은 단지 
대입문 입니다. 
저는 x와 y와 iters 을 어떤 값으로 왼쪽으로 바인딩합니다. 
그리고 나서 구조에 주목하세요, 저는 WHILE 키워드를 가집니다, 
그것을 식별하는 색이 있어요, 그리고 괄호 속에서 저는 테스트를 할 것입니다. 
저는 Boolean이 되는 테스트를 하는 값을 기대합니다.  
콜론 다음에 옵니다.  
콜론은 코드의 블록을 식별합니다. 
그리고 이것이 말하는 것은요. 
왼쪽 변수 iters가 0 보다 큰 값을 가지는지 
확인하세요. 
그렇다면, 그 블록에서 각 명령문들을 
실행하세요.
그래서 저는 y를 대입할 것입니다, 
저는 왼쪽 iters를 대입할 것입니다. 
저는 디버깅하기 위해 빌린 comment를 가집니다, 
그리고 나서 제가 그것이 무엇을 하길 원하나요? 

English: 
And I want to show you an
example of this, to lead to
both the syntax, and
to the semantics.
And let me comment that out,
and let's go to this one.
All right.
What does this piece
of code say?
Not, what does it do, but
what does it say.
Well, the first three statements
are just assignment
statements.
I'm binding x, y, and iters
left to some values.
And then notice the structure, I
got a keyword WHILE, there's
that color identifying it, and
in parentheses I have a test.
I'm expecting the value that
test to be a Boolean.
Followed by a colon.
The colon's identifying
a block of code.
And what this is
saying is, gee.
Check to see if the variable
iters left has a value
greater than zero.
If it does, then execute
each of the
instructions in that block.
So I'm going to have an
assignment of y, I'm going to
have an assignment of iters
left, I've got a comment that
I had borrowed in order to do
some debugging, and then what
do I want it to do?

English: 
I want it to go back around to
the test. Once again, say, is
that test true?
If it is true, execute the
sequence of instructions.
So in fact we can block this
out and see what it does.
If I make a little chart here,
I've got x, y, and iters left.
x starts off as I think I set
it up as, here I can't even
read it, is x is three, y is
zero, iters left is three.
I can hand-simulate it.
It says, is the value of iters
left greater than zero?
Yes it is.
So, execute those two
instructions.
It says, take value of y and
value of x, add them together,
and create that as the
new value of y.
All right.
That's the assigned statement.
It says, take iters left,
subtract one from it, and bind
that as the new value
of iters left.
Having reached the end of the
block, go back up and check
the test. Is iters left
greater than zero?
Yes it is.
So, evaluate the same sequence
of instructions again. y plus
x is six, that's my new value
of y, two minus one is one,

Turkish: 
I want it to go back around to
the test. Once again, say, is
that test true?
If it is true, execute the
sequence of instructions.
So in fact we can block this
out and see what it does.
If I make a little chart here,
I've got x, y, and iters left.
x starts off as I think I set
it up as, here I can't even
read it, is x is three, y is
zero, iters left is three.
I can hand-simulate it.
It says, is the value of iters
left greater than zero?
Yes it is.
So, execute those two
instructions.
It says, take value of y and
value of x, add them together,
and create that as the
new value of y.
Tamam.
That's the assigned statement.
 
It says, take iters left,
subtract one from it, and bind
that as the new value
of iters left.
Having reached the end of the
block, go back up and check
the test. Is iters left
greater than zero?
Yes it is.
So, evaluate the same sequence
of instructions again. y plus
x is six, that's my new value
of y, two minus one is one,

Korean: 
저는 그것이 테스트 주변으로 돌아 가길 원합니다. 
다시 한번, 그 테스트가 옳습니까? 
그것이 옳으면, 명령문들의 순서를 실행하세요. 
그래서 사실 우리는 이것을 블록 짓고 그것이 무엇을 하는지 볼 수 있습니다. 
제가 여기 작은 차트를 가지고 있으면, 저는 왼쪽에 x와 y와 iters 를 가집니다. 
제 생각에 그렇게 되면 x가 시작합니다, 
여기서 저는 읽을 수 없는데, x가 3이고, y가 0이고 iters가 3입니다. 
저는 그것을 시뮬레이션 할 수 있어요. 
왼쪽 iters의 값이 0 보다 큽니까? 
네 그렇습니다. 
그래서, 두 명령문을 실행합니다. 
Y와 x의 값을 가지고, 둘을 더하세요, 
그리고 그것을 새로운 변수 y로 만드세요. 
좋아요. 
그것이 대입입니다. 
왼쪽 iters를 가지고, 
그것으로부터 하나를 빼서, 새로운 변수 왼쪽 iters로 바인드합니다. 
블록의 마지막에 다다르면, 돌아가서 
테스트를 검사하세요. 
왼쪽 iters의 값이 0 보다 큽니까?  
네 그렇습니다. 
그래서, 다시 명령문들을 같은 순서로 평가하세요. Y 더하기 x는 6입니다, 
그것이 새로운 값 y 입니다, 2 빼기 1은 1입니다, 

Korean: 
그것이 새로운 왼쪽 iters의 값입니다, 돌아 가세요. 
왼쪽 iters의 값이 0 보다 큽니까?
네 그렇습니다. 
그래서, 한 번 더 합니다, 신이시여 감사합니다 제가 47을 예로 들지 않았으니까요. 
X 더하기 y 를 하고 왼쪽 iters로 부터 하나를 빼세요, 다시 테스트로 돌아갑니다. 
왼쪽 iters의 값이 0 보다 큽니까? 
아니요 그렇지 않습니다.
그러므로 코드 블록의 나머지는 스킵 하고 
다음 명령문으로 갑니다, 그것은, 아, y를 프린트 하세요. 
사실, 우리가 이것을 테스트하는 것은 골칫덩이에요. 
간단한 제곱 프로시저를 가지세요, 
좋아요, 이것은 인티져를 제곱해 줍니다. 그것이 이것이 하는 것이에요. 
그러나 구조에 주목하세요. 
이제 저는 루프를 만들 능력을 가집니다, 
즉, 제가 계속 하면서 같은 코드를 다시  
사용하기 위해서요. 
그리고 이것을 더하세요, 
이제, 제가 쓸 수 있는 코드가 많습니다. 
제가 이것에 강조 하고 싶은 다른 것에 주목하세요. 
알겠죠? 
첫 번째는, 그 테스트는 포함해야 합니다 – 
그래서는 안되지만 거의 항상 포함합니다 – 

English: 
that's my new value of iters
left, go back up.
Is iters left greater
than zero?
Yes it is.
So once more, thank God I didn't
take 47 as an example,
x plus y, subtract one from
iters left, go back up to the
test. Is iters left's value
greater than zero?
No, it is not.
Therefore, skip the rest of that
block of code and go to
the next instruction, which
is, ah, print out y.
In fact, if we test this,
son of a gun.
Got a simple square
procedure,.
Right, It's just squaring an
integer, is what it's doing.
But notice the structure.
Now I have the ability to create
a loop, that is, to
reuse the same pieces of
code over and over
again as I go around.
And this adds, now, a lot
of power to the kinds
of code I can write.
Notice some other things I want
to highlight on this.
All right?
The first one is, that test
has to involve-- shouldn't
have to, but almost always is
going to involve-- the value

Turkish: 
that's my new value of iters
left, go back up.
Is iters left greater
than zero?
Yes it is.
So once more, thank God I didn't
take 47 as an example,
x plus y, subtract one from
iters left, go back up to the
test. Is iters left's value
greater than zero?
No, it is not.
Therefore, skip the rest of that
block of code and go to
the next instruction, which
is, ah, print out y.
In fact, if we test this,
son of a gun.
Got a simple square
procedure,.
Right, It's just squaring an
integer, is what it's doing.
But notice the structure.
Now I have the ability to create
a loop, that is, to
reuse the same pieces of
code over and over
again as I go around.
And this adds, now, a lot
of power to the kinds
of code I can write.
Notice some other things I want
to highlight on this.
All right?
The first one is, that test
has to involve-- shouldn't
have to, but almost always is
going to involve-- the value

Korean: 
어떤 변수의 값을요. 
제가 코드 내부의 어떤 변수의 값을 변화시키고 싶지 
않으면 어떡하죠? 
또는 다른 말로, 제가 이것을 했으면요? 
그것을 Comment 하세요. 
제가 이 것을 실행하면 어떻게 될까요? 
네. 
이것은 무한히 계속 됩니다. 
절대적으로요, 그렇죠? 
그것은 무한한 루프를 돕니다 – 
저는 이 끝을 맞출 수 있다고 생각해요, 아, 아니죠, 할 수 없어요, 끔찍한 목표에요 – 
좋아요, 
다시 해봐요, 제가 여기서 하려는 핵심은 – 신이시여 감사해요 
우리는 이 강의의 끝 무렵에 왔어요, 제 혀가 떨어지고 있습니다 -- 
제가 여기서 하려는 핵심은 그 테스트는 변하고 있는 어떤 루프 변수를 
포함해야 한다는 것입니다. 
그렇지 않으면 테스트는 항상 옳을 것입니다, 
우리는 여기서 떨어질 것이지만, 이것은 제가 그것을 하면 무한히 루프를 돕니다. 
좋아요. 
두 번째 질문입니다: 또는 이것을 말하는 더 좋은 방법, 
그리고 여러분이 여기서 보고 싶은 일반적인 포맷은 변수 이름을 포함하는 테스트입니다. 
그것은 루프 밖에서 초기화되어야 합니다. 
그리고 루프 내부가 바뀌어야 합니다, 

English: 
of some variable.
What if I don't change the value
of that variable inside
of the code?
Or, another way of saying it
is, what if I did this?
Comment it up.
What happens if I
run this sucker?
STUDENT: [INAUDIBLE]
PROFESSOR JIM ERICSON: Yeah.
It'll go forever.
Absolutely, right?
It's going to loop into
an infinite loop--
I think I can hit this close,
ah, no I can't, boy what a
terrible aim--
All right, what has
[UNINTELLIGIBLE PHRASE] try
again, the point I'm trying to
make here-- thank God we're at
the end of this lecture, my
tongue is falling apart-- the
point I'm trying to make is,
that test needs to involve
some loop variable
that is changing.
Otherwise the test is always
going to be true, we're going
to go off here, but this would
loop forever if I did that.
All right.
Second question: or maybe a
better way of saying this, and
the general format you're likely
to see here is, a test
involving a variable name,
which must be initialized
outside of the loop, and which
interior to the loop gets

Turkish: 
of some variable.
What if I don't change the value
of that variable inside
of the code?
Or, another way of saying it
is, what if I did this?
Comment it up.
What happens if I
run this sucker?
STUDENT: [INAUDIBLE]
PROFESSOR JIM ERICSON: Yeah.
It'll go forever.
Absolutely, right?
It's going to loop into
an infinite loop--
I think I can hit this close,
ah, no I can't, boy what a
terrible aim--
All right, what has
[UNINTELLIGIBLE PHRASE] try
again, the point I'm trying to
make here-- thank God we're at
the end of this lecture, my
tongue is falling apart-- the
point I'm trying to make is,
that test needs to involve
some loop variable
that is changing.
Otherwise the test is always
going to be true, we're going
to go off here, but this would
loop forever if I did that.
Tamam.
Second question: or maybe a
better way of saying this, and
the general format you're likely
to see here is, a test
involving a variable name,
which must be initialized
outside of the loop, and which
interior to the loop gets

Turkish: 
changed, so that the test
is going to change.
Here's the second question.
What value of inputs, what
values of x will this run
correctly for?
Probably should be
integers, right?
Otherwise, this is going to be
doing something strange, but
all integers?
All right, suppose I do this.
It's my last example.
Yeah, how about that, right?
We knew this was trying to do
squaring, so intellectually we
know we can square -4, it
ought to be 16, but what
happens here?
Double fudge knuckle.
All right?
It's going to run through the
loop, accumulating the
answers, but because I'm
subtracting, it's just going
to keep making x more and more
negative as it goes along,
again it's off into
an infinite loop.
Which is a way of reminding you
that I need to think as I
write the code about what are
my expectations from the
input, and how might
I enforce them.
In this case, I probably want
to make sure I use absolute
value of x before
I carry it on.

English: 
changed, so that the test
is going to change.
Here's the second question.
What value of inputs, what
values of x will this run
correctly for?
Probably should be
integers, right?
Otherwise, this is going to be
doing something strange, but
all integers?
All right, suppose I do this.
It's my last example.
Yeah, how about that, right?
We knew this was trying to do
squaring, so intellectually we
know we can square -4, it
ought to be 16, but what
happens here?
Double fudge knuckle.
All right?
It's going to run through the
loop, accumulating the
answers, but because I'm
subtracting, it's just going
to keep making x more and more
negative as it goes along,
again it's off into
an infinite loop.
Which is a way of reminding you
that I need to think as I
write the code about what are
my expectations from the
input, and how might
I enforce them.
In this case, I probably want
to make sure I use absolute
value of x before
I carry it on.

Korean: 
그러면 테스트가 바뀔 것입니다. 
여기 두 번째 질문입니다. 
이것은 입력의 값, x의 값들을 위해  
옳게 실행할 것입니까? 
아마도 인티져일 것입니다, 그렇죠? 
그렇지 않으면, 이것은 이상한 것을 할 것이에요, 
그러나 모든 인티져들은요? 
좋아요, 제가 이것을 한다고 가정해 보세요. 
저의 마지막 예제입니다. 
네, 이것은 어떻습니까, 네? 
우리는 이것이 제곱을 한다는 것을 알고 있습니다, 그래서 지적으로 
우리는 -4를 제곱할 수 있습니다. 그것은 16이 되어야 해요, 
그런데 여기서 무슨 일이 일어나죠? 
두 배의 이상한 손가락이에요. 
그렇죠? 
그것은 루프를 통해 실행할 것입니다, 그리고 답을 축적합니다, 
그런데 제가 뺄 것이기 때문에, 그것은 계속 하면서 
x를 더욱 더 음수로 만듭니다, 다시  
무한 루프로 들어갑니다. 
제가 입력으로부터 예상하는 것에 대해 코드를 쓸 때 생각해야 하는 것, 
그리고 제가 그것들에게 강요해야 하는 것을 
여러분에게 상기시키는 방법입니다. 
이 경우에, 저는 아마 제가 그것을 계속 하기 전에 
x의 절대 값을 사용하는 것을 확실히 하고 싶습니다. 

English: 
Yes ma'am.
STUDENT: [UNINTELLIGIBLE]
PROFESSOR JIM ERICSON: You're
absolutely right, because I
bind iters left to, um, yeah.
Yes.
Thank you.
Boy, two candy for you.
You caught me making an error.
Yes.
The point is, it's not going to
work, and she caught both
of them, impressive, it's not
going to work because iters
left is already negative, it's
just going to skip the whole
loop, and I'm in trouble, so
thank you for catching that.
All right.
I was going to do one more
example, but I've run you up
to the end of the time.
I'll leave the example on the
handout, it shows you another
version that we'll come
back to next time.
The key thing to notice is, I
now have the ability to create
iterations, which extends
well I can do.
And we'll see you next time.

Korean: 
네.
학생은 절대적으로 맞습니다, 왜냐하면 제가 
iters를 바인드 했으니까요, 음, 
네. 
고마워요. 
사탕 두 개를 주겠어요. 
제가 에러를 만든 것을 잡았군요. 
네. 
핵심은 이것은 작동하지 않을 것입니다. 
그리고 이 학생이 그것을 잡아냈어요, 인상적이군요, 
왼쪽 iters가 이미 음수이기 때문에 그것은 작동하지 않을 것입니다, 
그것은 전체 루프를 스킵할 거에요. 그러면 저는 문제에 빠지겠죠, 잡아 줘서 고마워요. 
좋아요. 저는 예를 한 가지 더 하려고 했는데 마칠 시간이군요. 
예는 핸드아웃에 있을 겁니다, 그것은 
여러분에게 우리가 
다음 시간에 할 
다른 버전을 보여줍니다. 
주목할 핵심은, 저는 지금 반복문을 만들 능력이 있어요, 
그것은 제가 할 수 있는 것을 확장하는 것입니다. 
그리고 다음 시간에 봅시다.

Turkish: 
Yes ma'am.
STUDENT: [UNINTELLIGIBLE]
PROFESSOR JIM ERICSON: You're
absolutely right, because I
bind iters left to, um, yeah.
Evet.
Teşekkür ederim.
 
Boy, two candy for you.
You caught me making an error.
Evet.
The point is, it's not going to
work, and she caught both
of them, impressive, it's not
going to work because iters
left is already negative, it's
just going to skip the whole
loop, and I'm in trouble, so
thank you for catching that.
Tamam.
I was going to do one more
example, but I've run you up
to the end of the time.
I'll leave the example on the
handout, it shows you another
version that we'll come
back to next time.
The key thing to notice is, I
now have the ability to create
iterations, which extends
well I can do.
And we'll see you next time.
 
