
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: Hello, and
welcome to 6.01.
I'm Denny Freeman.
I'm the lecturer.
One thing you should know about
today is that there's a
single hand-out.
You should have picked
it up on your way in.
It's available at either
of the two doors.
What I want to do today in this
first lecture is mostly
focus on content.
But before I do that, since
6.01 is a little bit of an
unusual course, I want to give
you a little bit of an
overview and tell you a little
bit about the administration

Italian: 
 Il seguente contenuto viene fornito sotto una creatività 
 Licenza Commons. 
 Il tuo supporto aiuterà MIT OpenCourseWare a continuare 
 offrire risorse educative di alta qualità gratuitamente. 
 Per fare una donazione o visualizzare materiale aggiuntivo da 
 centinaia di corsi MIT, visita MIT OpenCourseWare all'indirizzo 
 ocw.mit.edu. 
 PROFESSORE: Buongiorno e benvenuti alla 6.01. 
 Sono Denny Freeman. 
 Sono il docente. 
 Una cosa che dovresti sapere oggi è che c'è un file 
 mano unica. 
 Avresti dovuto prenderlo mentre entravi. 
 È disponibile in una delle due porte. 
 Quello che voglio fare oggi in questa prima conferenza è principalmente 
 concentrarsi sui contenuti. 
 Ma prima di farlo, dal momento che 6.01 è un po 'un file 
 corso insolito, voglio darti un po 'di un 
 panoramica e parlarti un po 'dell'amministrazione 

Arabic: 
 
المحتوى التالي هو
المقدمة بموجب الإبداعي
رخصة المشاع
دعمكم سوف يساعد معهد ماساتشوستس للتكنولوجيا
تواصل OpenCourseWare
تقديم جودة عالية التعليمية
الموارد مجانا.
للتبرع أو عرض
مواد إضافية من
المئات من دورات معهد ماساتشوستس للتكنولوجيا ، زيارة
معهد ماساتشوستس للتكنولوجيا OpenCourseWare في
ocw.mit.edu.
 
الأستاذ: مرحبا ، و
مرحبا بكم في 6.01.
أنا ديني فريمان.
أنا المحاضر.
شيء واحد يجب أن تعرفه
اليوم هو أن هناك
يد واحدة خارج.
يجب أن اخترت
الامر في طريقك في.
إنه متاح في أي منهما
من البابين.
 
ما أريد القيام به اليوم في هذا
المحاضرة الأولى هي في الغالب
التركيز على المحتوى.
ولكن قبل أن أفعل ذلك ، منذ ذلك الحين
6.01 قليلا من
بالطبع غير عادي ، أريد أن أعطي
أنت قليلا من
نظرة عامة واقول لكم قليلا
قليلا عن الإدارة

Italian: 
 del corso. 
 6.01 riguarda principalmente le modalità di ragionamento. 
 Ciò che vorremmo che ottenessi da questo corso sono i modi per farlo 
 pensa all'ingegneria. 
 Vogliamo parlare di come progetti, come costruisci, 
 come si costruisce, come si esegue il debug di sistemi complicati? 
 Questo è ciò che fanno gli ingegneri e siamo molto bravi. 
 E noi vogliamo renderti molto bravo. 
 Siamo molto bravi in ​​questo. 
 E lo sai dalla tua comune esperienza quotidiana. 
 I laptop sono incredibili. 
 Durante il corso, lo vedrai 
 i laptop incorporano cose dal più piccolo, più piccolo 
 livello, cose così piccole che non puoi vederle. 
 Sono microscopici. 
 I singoli transistor non sono cose che puoi vedere. 
 Sviluppiamo strumenti speciali anche per te 

English: 
of the course.
6.01 is mostly about
modes of reasoning.
What we would like you to get
out of this course is ways to
think about engineering.
We want to talk about how do you
design, how do you build,
how do you construct, how do you
debug complicated systems?
That's what engineers do, and
we're very good at it.
And we want to make you
very good at it.
We're very good at it.
And you know that from your
common, everyday experience.
Laptops are incredible.
As we go through the course,
you're going to see that
laptops incorporate things
from the tiniest, tiniest
level, things so small that
you can't see them.
They're microscopic.
The individual transistors are
not things that you can see.
We develop special tools for
you even to be able to

Arabic: 
الدورة.
 
6.01 هو في الغالب حول
طرق التفكير.
ما نود منك أن تحصل عليه
من هذه الدورة هو طرق ل
التفكير في الهندسة.
نريد التحدث عن كيف حالك؟
تصميم ، كيف يمكنك بناء ،
كيف يمكنك بناء ، كيف لك
تصحيح النظم المعقدة؟
هذا ما يفعله المهندسون و
نحن جيدون جدا في ذلك.
ونحن نريد أن نجعلك
جيد جدا في ذلك.
نحن جيدون جدا في ذلك.
وأنت تعرف ذلك من حسابك
تجربة شائعة يومية
أجهزة الكمبيوتر المحمولة لا تصدق.
ونحن نمضي في الدورة ،
أنت ذاهب لرؤية ذلك
أجهزة الكمبيوتر المحمولة دمج الأشياء
من الأصغر ، الأصغر
المستوى ، أشياء صغيرة جدا بحيث
لا يمكنك رؤيتهم.
انهم المجهرية.
الترانزستورات الفردية هي
ليس الأشياء التي يمكنك رؤيتها.
نحن نطور أدوات خاصة ل
أنت حتى تكون قادرة على

Italian: 
 visualizzali. 
 Eppure, ne raggruppiamo miliardi in un sistema 
 che funziona in modo relativamente affidabile. 
 Ora, mi rendo conto che sto uscendo su un arto perché quando dici 
 cose del genere, poi le cose falliscono sempre. 
 Ma esco su un ramo e dico, per la maggior parte, il 
 i sistemi che costruiamo sono molto affidabili. 
 Vorremmo che tu sapessi come pensi di realizzare un tale file 
 sistema complicato e rendendolo affidabile. 
 Vogliamo parlarvi di come modellereste le cose. 
 Come ottieni informazioni? 
 Come si ottiene la prevedibilità? 
 Come fai a capire come funzionerà qualcosa prima 
 l'hai costruito? 
 Se sei limitato a provare come funzionano le cose 
 effettivamente a costruirlo, passi molto tempo 
 costruire cose che non ce la fanno mai. 
 Vogliamo evitare che - dove possiamo - 
 fare un modello, analizzare il modello, fare una previsione 
 dal modello e utilizzando tale previsione per costruire un migliore 

Arabic: 
تصور لهم.
وحتى الآن ، نحن تكتل
مليارات منهم في النظام
هذا يعمل نسبيا
بثقة.
الآن ، أنا أدرك أنني أخرج
أحد الأطراف لأنه عندما تقول
أشياء من هذا القبيل ، إذن
الامور تفشل دائما.
لكنني سأخرج على أحد الأطراف و
يقول ، بالنسبة للجزء الاكبر ، و
النظم التي نبنيها
موثوقة جدا.
نود منك أن تعرف كيف أنت
التفكير في صنع مثل هذا
نظام معقد و
مما يجعلها موثوقة.
نريد أن نخبرك بكيفية ذلك
هل نموذج الأشياء.
كيف تكتسب بصيرة؟
كيف يمكنك الحصول على القدرة على التنبؤ؟
كيف يمكنك معرفة كيف
شيء سوف يعمل من قبل
لقد بنيت عليه؟
إذا كنت تقتصر على المحاولة
كيف تعمل الأشياء
في الواقع بناء عليه ،
تقضي الكثير من الوقت
بناء الأشياء التي
لا تجعله أبدا.
نحن نريد تجنب ذلك عن طريق
-- حيث يمكننا --
صنع نموذج ، تحليل
نموذج ، مما يجعل التنبؤ
من النموذج ، واستخدام ذلك
التنبؤ لبناء أفضل

English: 
visualize them.
And yet, we conglomerate
billions of them into a system
that works relatively
reliably.
Now, I realize I'm going out on
a limb because when you say
things like that, then
things always fail.
But I'll go out on a limb and
say, for the most part, the
systems we construct
are very reliable.
We'd like you to know how you
think about making such a
complicated system and
making it reliable.
We want to tell you about how
you would model things.
How do you gain insight?
How do you get predictability?
How do you figure out how
something will work before
you've built it?
If you're limited to trying
out how things work by
actually constructing it,
you spend a lot of time
constructing things that
never make it.
We want to avoid that by
-- where we can --
making a model, analyzing the
model, making a prediction
from the model, and using that
prediction to build a better

English: 
system on the first try.
We want to tell you about how
to augment the physical
behavior of a system by putting
computation in it.
That's a very powerful technique
that is increasingly
common in anything from a
microwave to a refrigerator.
We'd like you to know
the principles
by which to do that.
And we'd like you to be able
to build systems that are
robust to failure.
That's a newer idea.
It's something that people
are very good at.
If we try to do something,
and we make a mistake, we
know how to fix it.
And often, the fix works.
We're less good at doing that
in constructing artificial
systems, in engineering
systems.
And we'd like to talk
about principles by
which we can do that.
So the goal of 6.01 is, then,
really to convey a distinct

Arabic: 
النظام في المحاولة الأولى.
 
نريد أن نخبرك بكيفية ذلك
لزيادة المادية
سلوك النظام عن طريق وضع
حساب في ذلك.
هذه تقنية قوية للغاية
هذا بشكل متزايد
شائع في أي شيء من
الميكروويف إلى الثلاجة.
نود منك أن تعرف
المبادئ
التي للقيام بذلك.
ونود منك أن تكون قادرة
لبناء النظم التي هي
قوي للفشل.
هذه فكرة أحدث.
إنه شيء الناس
جيدة جدا في.
إذا حاولنا القيام بشيء ما ،
ونحن نخطئ ، نحن
تعرف كيفية اصلاحها.
وغالبا ما يعمل الإصلاح.
نحن أقل جودة في القيام بذلك
في بناء الاصطناعي
النظم ، في الهندسة
الأنظمة.
ونود التحدث
حول المبادئ من قبل
التي يمكننا أن نفعل ذلك.
إذن الهدف من 6.01 هو ، إذن ،
حقا أن أنقل متميزة

Italian: 
 sistema al primo tentativo. 
 Vogliamo parlarti di come aumentare il fisico 
 comportamento di un sistema inserendovi il calcolo. 
 Questa è una tecnica molto potente che è sempre più 
 comune in qualsiasi cosa, dal microonde al frigorifero. 
 Ci piacerebbe che tu conoscessi i principi 
 con cui farlo. 
 E vorremmo che tu fossi in grado di creare sistemi che lo siano 
 robusto fino al fallimento. 
 È un'idea nuova. 
 È qualcosa in cui le persone sono molto brave. 
 Se proviamo a fare qualcosa e commettiamo un errore, noi 
 sapere come risolverlo. 
 E spesso, la correzione funziona. 
 Siamo meno bravi a farlo nella costruzione artificiale 
 sistemi, nei sistemi di ingegneria. 
 E vorremmo parlare di principi di 
 cosa che possiamo fare. 
 Quindi l'obiettivo di 6.01 è, quindi, davvero quello di trasmettere un'immagine distinta 

English: 
perspective about how
we engineer systems.
Now, having said that, this is
not a philosophy course.
We are not going to make lists
of things to do if you want it
to be robust.
We're going to learn
to do things by
actually making systems.
This is an introductory
engineering course.
And so you're going
to build things.
The idea is going to be that in
constructing those things,
we've written the exercises so
that some of those important
themes become transparent.
So the idea is -- this is
introductory engineering.
You'll all make things.
You'll all get things to work,
and in the process of doing
that, learn something about the
bigger view of how quality
engineering happens.
So despite the fact that we're
really about modes of
reasoning, that will be
grounded in content.

Arabic: 
منظور حول كيف
نحن مهندس النظم.
الآن ، بعد قولي هذا ، هذا هو
ليس بالطبع الفلسفة.
لن نقوم بعمل قوائم
من الأشياء التي يجب القيام بها إذا كنت تريد ذلك
أن تكون قوية.
سوف نتعلم
لفعل الأشياء من قبل
فعلا صنع النظم.
هذا هو تمهيدية
بالطبع الهندسة.
و أنت ذاهب
لبناء الأشياء.
الفكرة ستكون في ذلك
بناء تلك الأشياء ،
لقد كتبنا التدريبات لذلك
أن بعض هؤلاء المهمين
المواضيع تصبح شفافة.
وبالتالي فإن الفكرة هي - هذا هو
الهندسة التمهيدية.
سوف تصنع جميع الأشياء.
ستحصل على أشياء للعمل ،
وفي عملية القيام به
ذلك ، تعلم شيئا عن
رؤية أكبر لكيفية الجودة
يحدث الهندسة.
 
لذلك على الرغم من أننا
حقا عن أوضاع
المنطق ، وهذا سيكون
ترتكز على المحتوى.

Italian: 
 prospettiva su come progettiamo i sistemi. 
 Detto questo, questo non è un corso di filosofia. 
 Non faremo elenchi di cose da fare se lo desideri 
 essere robusto. 
 Impareremo a fare le cose entro 
 realizzando sistemi. 
 Questo è un corso introduttivo di ingegneria. 
 E così costruirai cose. 
 L'idea sarà che nel costruire quelle cose, 
 abbiamo scritto gli esercizi in modo che alcuni di quelli importanti 
 i temi diventano trasparenti. 
 Quindi l'idea è: questa è ingegneria introduttiva. 
 Farai tutti le cose. 
 Farai funzionare tutti le cose, e in procinto di farlo 
 che, impara qualcosa sulla visione più ampia di come la qualità 
 l'ingegneria avviene. 
 Quindi, nonostante il fatto che stiamo davvero parlando di modalità di 
 ragionamento, che sarà fondato sul contenuto. 

English: 
We selected the content very
broadly from across EECS.
EECS is an enormous endeavor.
We can't possibly introduce
everything
about EECS in one subject.
That's ridiculous.
However, we wanted to
give you a variety.
We wanted to give you a sense
of the variety of tasks that
you can use, that you can apply
the same techniques to.
So we want to introduce modes
of reasoning, and then show
you explicitly how you can use
those modes of reasoning in a
variety of contexts.
So we've chosen four, and we've
organized the course
around four modules.
First module is software
engineering, then signals and
systems, then circuits, then
probability and planning.
Even so, even having chosen
just four out of the vast
number of things we could have
chosen, there's no way we can
tell you adequately--
we can't give you an adequate
introduction to any of those
things either.
What we've chosen to do instead
is focus on key

Arabic: 
اخترنا المحتوى جدا
على نطاق واسع من جميع أنحاء EECS.
EECS هو مسعى هائل.
لا يمكننا تقديم
كل شىء
حول EECS في موضوع واحد.
هذا كلام سخيف.
ومع ذلك ، أردنا أن
أعطيك مجموعة متنوعة.
أردنا أن نقدم لك شعورا
مجموعة متنوعة من المهام التي
يمكنك استخدام ، والتي يمكنك تطبيقها
نفس التقنيات ل.
لذلك نحن نريد أن نقدم وسائط
من التفكير ، ومن ثم تظهر
أنت صراحة كيف يمكنك استخدامها
تلك الأساليب من التفكير في
مجموعة متنوعة من السياقات.
لذلك اخترنا أربعة ، ولقد اخترنا
نظمت الدورة
حوالي أربع وحدات.
الوحدة الأولى هي البرمجيات
الهندسة ، ثم الإشارات و
الأنظمة ، ثم الدوائر ، ثم
الاحتمال والتخطيط.
رغم ذلك ، حتى بعد أن اختار
فقط أربعة من الشاسعة
عدد الأشياء التي يمكن أن تكون لدينا
المختار ، لا توجد طريقة ممكنة
اقول لك بشكل كاف
لا يمكننا أن نقدم لك ما يكفي
مقدمة لأي من هؤلاء
الأشياء أيضا.
ما اخترنا القيام به بدلا من ذلك
هو التركيز على المفتاح

Italian: 
 Abbiamo selezionato i contenuti in modo molto ampio da tutta l'EECS. 
 L'EECS è uno sforzo enorme. 
 Non possiamo assolutamente presentare tutto 
 su EECS in un argomento. 
 È ridicolo. 
 Tuttavia, volevamo offrirti una varietà. 
 Volevamo darti un'idea della varietà di compiti che 
 puoi usare, a cui puoi applicare le stesse tecniche. 
 Quindi vogliamo introdurre modalità di ragionamento e poi mostrare 
 tu esplicitamente come puoi usare queste modalità di ragionamento in a 
 varietà di contesti. 
 Quindi ne abbiamo scelti quattro e abbiamo organizzato il corso 
 circa quattro moduli. 
 Il primo modulo è l'ingegneria del software, quindi i segnali e 
 sistemi, quindi circuiti, quindi probabilità e pianificazione. 
 Anche così, anche avendo scelto solo quattro del vasto 
 numero di cose che avremmo potuto scegliere, non è possibile 
 dirti adeguatamente 
 non possiamo darti un'adeguata introduzione a nessuno di questi 
 neanche le cose. 
 Quello che abbiamo scelto di fare invece è concentrarci sulla chiave 

Arabic: 
مفاهيم ممثلة
من العلامات النجمية.
الفكرة ستكون نحن
اختيار واحد أو شيئين و
التركيز حقا على تلك بعمق
حتى تحصل على شامل
فهم ليس فقط كيف
التي تناسبها ، على سبيل المثال ،
سياق البرنامج
الهندسة ، ولكن أيضا كيف ذلك
مفهوم تشعب في
مناطق أخرى.
لاحظ أنني حاولت أن تختار
النجوم حتى هم
ضرب دوائر متعددة.
هذا ما نحن عليه
أحاول أن أفعل.
نحن نحاول ليس فقط
تقديم فكرة لك ، ولكن
كما تبين لك كيف يربط
لأفكار أخرى.
 
إذن الفكرة هي التركيز
على عدد قليل ، نأمل ، جدا
التطبيقات المختارة جيدا أن
سوف تثبت مجموعة متنوعة من
تقنيات قوية.
 
شعارنا ، الطريقة التي نعتزم بها
للذهاب حول تدريس هذا
الاشياء ، هي الممارسة ،
النظرية ، الممارسة.

English: 
concepts represented
by the asterisks.
The idea is going to be we
choose one or two things and
really focus on those deeply
so you get a thorough
understanding not only of how
that fits within, for example,
the context of software
engineering, but also how that
concept ramifies into
other areas.
Notice that I tried to choose
the stars so they
hit multiple circles.
That's what we're
trying to do.
We're trying to not only
introduce an idea to you, but
also show you how it connects
to other ideas.
So the idea, then, is to focus
on a few, we hope, very
well-chosen applications that
will demonstrate a variety of
powerful techniques.
Our mantra, the way we intend
to go about teaching this
stuff, is practice,
theory, practice.

Italian: 
 concetti rappresentati dagli asterischi. 
 L'idea sarà di scegliere una o due cose e 
 concentrati davvero su quelli in profondità in modo da ottenere un approfondimento 
 capire non solo come questo si adatta, ad esempio, 
 il contesto dell'ingegneria del software, ma anche come quello 
 il concetto si ramifica in altre aree. 
 Notare che ho provato a scegliere le stelle così loro 
 colpire più cerchi. 
 È quello che stiamo cercando di fare. 
 Stiamo cercando non solo di presentarti un'idea, ma 
 mostrarti anche come si collega ad altre idee. 
 Quindi l'idea, quindi, è di concentrarsi su alcuni, speriamo, molto 
 applicazioni ben scelte che dimostreranno una varietà di 
 tecniche potenti. 
 Il nostro mantra, il modo in cui intendiamo insegnare questo 
 roba, è pratica, teoria, pratica. 

English: 
There's an enormous educational
literature that says--
whether you like it or not--
people learn better when
they're doing things.
You have a lot of experience
with that.
You have a lot of experience
on the other side, too.
I'll try to forget the other
side, or at least try to wipe
it from your brain momentarily
to focus on your more
fundamental modes of learning.
When you were a kid and you
were learning your first
language, you didn't learn all
the rules of grammar first.
You didn't learn all the letters
of the alphabet first.
You didn't learn about
conjugating verbs first.
You learned a little
bit about language.
You started to use it.
You ran into problems.
You learned a little more
about language.
You learned to go from words
like "feed me" to higher level
concepts, like "Hey,
what's for dinner?"
So the idea is that you learned
it in an iterative

Arabic: 
هناك التعليمية هائلة
الأدب الذي يقول--
شئت ام ابيت--
الناس يتعلمون بشكل أفضل متى
إنهم يفعلون أشياء.
لديك الكثير من الخبرة
مع ذلك.
لديك الكثير من الخبرة
على الجانب الآخر أيضا.
سأحاول نسيان الآخر
الجانب ، أو على الأقل محاولة المسح
من عقلك لحظات
للتركيز على أكثر الخاص بك
طرق التعلم الأساسية.
عندما كنت طفلا وأنت
كانوا يتعلمون الأول الخاص بك
اللغة ، أنت لم تتعلم كل شيء
قواعد القواعد الأولى.
أنت لم تتعلم كل الحروف
الأبجدية الأولى.
أنت لم تتعلم عن
تصريف الأفعال أولاً.
لقد تعلمت قليلا
قليلا عن اللغة.
لقد بدأت في استخدامه.
واجهت مشاكل.
لقد تعلمت أكثر من ذلك بقليل
عن اللغة.
تعلمت أن تذهب من الكلمات
مثل "تطعمني" إلى مستوى أعلى
مفاهيم ، مثل "يا ،
ماذا يوجد للعشاء؟"
وبالتالي فإن الفكرة هي أنك تعلمت
في تكرارية

Italian: 
 C'è un enorme educativo 
 letteratura che dice ... 
 che ti piaccia o no-- 
 le persone imparano meglio quando fanno le cose. 
 Hai molta esperienza con questo. 
 Hai molta esperienza anche dall'altra parte. 
 Proverò a dimenticare l'altro lato, o almeno cercherò di cancellare 
 dal tuo cervello momentaneamente per concentrarti sul tuo di più 
 modalità fondamentali di apprendimento. 
 Quando eri un bambino e stavi imparando il tuo primo 
 lingua, prima non hai imparato tutte le regole grammaticali. 
 Prima non hai imparato tutte le lettere dell'alfabeto. 
 Prima non hai imparato a coniugare i verbi. 
 Hai imparato un po 'sulla lingua. 
 Hai iniziato a usarlo. 
 Hai avuto problemi. 
 Hai imparato un po 'di più sulla lingua. 
 Hai imparato a passare da parole come "nutrimi" a un livello superiore 
 concetti, come "Ehi, cosa c'è per cena?" 
 Quindi l'idea è che tu l'abbia imparato in modo iterativo 

Arabic: 
عملية حيث تعلمت بعض
الاشياء ، جربتها ، علمت
بعض الأشياء الأخرى ، جربته.
وبنيت.
هناك أدب هائل
في التعليم الذي يقول هذا
بالضبط كيف نحن دائما
تعلم كل شيء.
وهذا هو الطريق هكذا
يركز بالطبع.
ما سنفعله هو ، على سبيل المثال ،
لهذا اليوم ، ونحن سوف
تعلم قليلا عن
هندسة البرمجيات.
ثم ، سنفعل جلستين معملين
اين انت فعلا
محاولة استخدام الأشياء
نحن نتكلم عن.
ثم ، سوف نعود للمحاضرة
وسيكون لدينا بعض
المزيد من النظريات حول كيف
سوف تفعل البرمجة.
وبعد ذلك ، يمكنك العودة إلى
مختبر والقيام ببعض الأشياء.
والأمل في ذلك
سياق ملموس ، سيكون لديك
تقدير أعمق
من الأفكار التي
نحن نحاول أن أنقل.
 
لذلك اسمحوا لي أن أقول لك قليلا
قليلا عن الوحدات الأربع
التي اخترناها.
الدورة ستكون
نظمت على أربع وحدات.
كل وحدة سوف يستغرق حوالي
ربع الدورة.
أول شيء سننظر إليه
هي هندسة البرمجيات.

Italian: 
 processo in cui hai imparato qualcosa, provato, imparato 
 altre cose, provalo. 
 Ed è cresciuto. 
 C'è un'enorme letteratura sull'istruzione che dice che è così 
 esattamente come impariamo sempre tutto. 
 Ed è così che è focalizzato questo corso. 
 Quello che faremo è, ad esempio, per oggi, lo faremo 
 imparare un po 'di ingegneria del software. 
 Quindi, faremo due sessioni di laboratorio in cui tu effettivamente 
 cerca di usare le cose di cui parliamo. 
 Poi, torneremo alla conferenza e ne avremo un po ' 
 più teoria su come faresti la programmazione. 
 E poi, torni al laboratorio e fai altre cose. 
 E la speranza è che da questo contesto tangibile, avrai 
 un più profondo apprezzamento delle idee che 
 stiamo cercando di trasmettere. 
 Quindi lasciate che vi parli un po 'dei quattro moduli 
 che abbiamo scelto. 
 Il corso sarà organizzato su quattro moduli. 
 Ogni modulo durerà circa un quarto del corso. 
 La prima cosa che vedremo è l'ingegneria del software. 

English: 
process where you learned some
stuff, tried it out, learned
some more stuff, tried it out.
And it built up.
There's an enormous literature
in education that says that's
exactly how we always
learn everything.
And so that's the way this
course is focused.
What we will do is, for example,
for today, we'll
learn a little bit about
software engineering.
Then, we'll do two lab sessions
where you actually
try to use the things
we talk about.
Then, we'll come back to lecture
and we'll have some
more theory about how you
would do programming.
And then, you go back to the
lab and do some more stuff.
And the hope is that by this
tangible context, you'll have
a deeper appreciation
of the ideas that
we're trying to convey.
So let me tell you a little
bit about the four modules
that we've chosen.
The course is going to be
organized on four modules.
Each module will take about
one fourth of the course.
First thing we'll look at
is software engineering.

Arabic: 
كما قلت ، ليس لدينا وقت
للتركيز على ، أو حتى المسح ،
كل الأفكار الكبيرة في
هندسة البرمجيات.
انها كبيرة جدا.
لذلك سوف نركز بشكل ضيق
على واحد أو شيئين.
نود منك أن تعرف عنها
التجريد و نمطية
لأن هذا هو مثل
فكرة مهمة في
بناء النظم الكبيرة.
لذلك سوف
يكون تركيزنا.
في محاضرة اليوم ، سنبدأ
نتحدث عن وحدات
والتجريد في
النطاق الصغير.
كيف تؤثر على
الأشياء التي تكتبها
تعليمات إلى جهاز كمبيوتر؟
ولكن بحلول الأسبوع المقبل ، نحن ذاهبون
أن نتحدث عن كله
نطاق أكبر.
بحلول الأسبوع المقبل ، نحن ذاهبون إلى
نتحدث عن البناء
وحدات البرمجيات في
مستوى أعلى بكثير.
على وجه الخصوص ، سنتحدث عن
شيء نحن سوف
استدعاء آلة الدولة.

English: 
As I said, we don't have time
to focus on, or even survey,
all of the big ideas in
software engineering.
It's far too big.
So we're going to focus narrowly
on one or two things.
We'd like you to know about
abstraction and modularity
because that's such an
important idea in the
construction of big systems.
So that's going to
be our focus.
In today's lecture, we'll begin
talking about modularity
and abstraction at
the small scale.
How does it affect the
things you type as
instructions to a computer?
But by next week, we're going
to be talking about a whole
bigger scale.
By next week, we're going to
talk about constructing
software modules at a
much higher level.
In particular, we'll talk about
something that we'll
call a state machine.

Italian: 
 Come ho detto, non abbiamo tempo per concentrarci, o addirittura sondare, 
 tutte le grandi idee nell'ingegneria del software. 
 È troppo grande. 
 Quindi ci concentreremo strettamente su una o due cose. 
 Vorremmo farti conoscere l'astrazione e la modularità 
 perché è un'idea così importante in 
 costruzione di grandi impianti. 
 Quindi questo sarà il nostro obiettivo. 
 Nella lezione di oggi inizieremo a parlare di modularità 
 e astrazione su piccola scala. 
 In che modo influisce sulle cose che digiti 
 istruzioni a un computer? 
 Ma entro la prossima settimana parleremo di un tutto 
 scala più grande. 
 Entro la prossima settimana parleremo della costruzione 
 moduli software a un livello molto più alto. 
 In particolare, parleremo di qualcosa che faremo 
 chiamare una macchina a stati. 

English: 
A state machine is a thing
that works in steps.
On every step, the state machine
gets a new input.
Then, based on that input and
its memory of what's come
before, the state machine
decides to do something.
It generates an output.
And then, the process repeats.
We will see that that kind
of an abstraction --
state machines --
there's a way to think about
state machines that is
compositional that you can think
of as a hierarchy, just
as you can think of low-level
hierarchies within a language.
I'll say a lot more
about that today.
So the idea will be that once
you've composed a state
machine, you'll be able to join
two state machines and
have its behavior look just
like one state machine.
That's a way to get a more
complicated behavior by
constructing two simpler
behaviors.
That's what we want.
We want to learn tools that
let us compose complex

Arabic: 
آلة الدولة هي شيء
الذي يعمل في خطوات.
في كل خطوة ، آلة الدولة
يحصل على مدخلات جديدة.
ثم ، استنادا إلى هذا الإدخال و
ذاكرته لما يأتي
من قبل ، آلة الدولة
تقرر أن تفعل شيئا.
انه يولد الانتاج.
وبعد ذلك ، تتكرر العملية.
 
سوف نرى هذا النوع
التجريد -
آلات الدولة -
هناك طريقة للتفكير
آلات الدولة التي هي
التركيبية التي يمكنك التفكير
من التسلسل الهرمي ، فقط
كما يمكنك التفكير في المستوى المنخفض
التسلسلات الهرمية داخل اللغة.
سأقول أكثر من ذلك بكثير
عن ذلك اليوم.
وبالتالي فإن الفكرة ستكون ذلك مرة واحدة
لقد تتكون دولة
آلة ، سوف تكون قادرة على الانضمام
آلات الدولة و
يكون سلوكها تبدو فقط
مثل آلة دولة واحدة.
هذه طريقة للحصول على المزيد
سلوك معقد بواسطة
بناء اثنين أكثر بساطة
السلوكيات.
هذا ما نريده.
نحن نريد أن نتعلم الأدوات التي
دعونا نؤلف معقدة

Italian: 
 Una macchina a stati è una cosa che funziona a fasi. 
 Ad ogni passo, la macchina a stati riceve un nuovo input. 
 Quindi, in base a quell'input e alla sua memoria di ciò che è accaduto 
 prima, la macchina a stati decide di fare qualcosa. 
 Genera un output. 
 E poi, il processo si ripete. 
 Vedremo che quel tipo di astrazione - 
 macchine a stati - 
 c'è un modo di pensare alle macchine a stati che è 
 compositivo che puoi pensare come una gerarchia, giusto 
 come puoi pensare a gerarchie di basso livello all'interno di una lingua. 
 Oggi ne parlerò molto di più. 
 Quindi l'idea sarà quella una volta che avrai composto uno stato 
 machine, sarai in grado di unire due macchine a stati e 
 fare in modo che il suo comportamento assomigli a una macchina a stati. 
 Questo è un modo per ottenere un comportamento più complicato 
 costruire due comportamenti più semplici. 
 È quello che vogliamo. 
 Vogliamo imparare strumenti che ci permettano di comporre complessi 

Italian: 
 comportamenti da comportamenti semplici. 
 E il modello tangibile di ciò sarà il robot. 
 Vedremo come scrivere un programma che controlli un robot 
 come macchina a stati. 
 Non è certamente l'unico modo per controllare un robot. 
 E probabilmente non è il modo in cui la penseresti prima se 
 hai seguito un corso di programmazione e qualcuno ha detto 
 a te, vai a programmare il robot per fare qualcosa. 
 Quello che vedremo è che è un modo molto potente di pensare 
 proprio per questo motivo di modularità. 
 Il punto più grande che faremo nel pensare a questo 
 primo modulo è l'idea di, come si fa 
 rendere i sistemi modulari? 
 Come utilizzi l'astrazione per semplificare l'attività di progettazione? 
 E in particolare, ci concentreremo su qualcosa 
 che chiameremo PCAP. 
 Quando pensi a un sistema, ci penseremo sempre 
 in termini di, quali sono i primitivi? 

English: 
behaviors out of simple
behaviors.
And the tangible model of
that will be the robot.
We will see how to write a
program that controls a robot
as a state machine.
That's certainly not the only
way you could control a robot.
And it's probably not the way
you would first think of it if
you took one course in
programming and somebody said
to you, go program the robot
to do something.
What we will see is that it's
a very powerful way to think
about it for exactly this
reason of modularity.
The bigger point that we will
make in thinking about this
first module is the idea
of, how do you
make systems modular?
How do you use abstraction to
simplify the design task?
And in particular, we will
focus on something
that we'll call PCAP.
When you think about a system,
we will always think about it
in terms of, what are
the primitives?

Arabic: 
سلوكيات بسيطة
السلوكيات.
والنموذج المادي لل
سيكون هذا الروبوت.
سوف نرى كيفية كتابة
البرنامج الذي يتحكم في الروبوت
كآلة الدولة.
هذا بالتأكيد ليس الوحيد
الطريقة التي يمكن أن تتحكم في الروبوت.
وربما ليس هو الطريق
سوف تفكر في الأمر أولاً إذا
كنت أخذت دورة واحدة في
البرمجة وقال شخص ما
لك ، اذهب برنامج الروبوت
لفعل شيء ما.
ما سنراه هو أنه
طريقة قوية جدا للتفكير
عن ذلك بالضبط لهذا
سبب الوحدة.
النقطة الأكبر التي سنقوم بها
جعل في التفكير في هذا
الوحدة الأولى هي الفكرة
كيف حالك؟
جعل أنظمة وحدات؟
كيف تستخدم التجريد ل
تبسيط مهمة التصميم؟
وعلى وجه الخصوص ، ونحن سوف
التركيز على شيء ما
أننا سوف ندعو PCAP.
عندما تفكر في نظام ،
سوف نفكر دائما في ذلك
من حيث ، ما هي
البدائية؟

English: 
How do you combine them?
How do you abstract a
bigger behavior from
those smaller behaviors?
And what are the patterns that
are important to capture?
So the bigger point is this idea
of PCAP, which we will
then revisit in every
subsequent module.
OK, second module is on
signals and systems.
That's also an enormous area.
So we only have time
to do one thing.
The thing that we will do is we
will think about discrete
time feedback.
How do you make a system that's
cognizant of what it's
done so that it, in the future,
can do things with
awareness of how it got there?
A good example is robotic
steering.
So the idea is going to be, OK,
think about what you do
when you're driving a car.

Arabic: 
كيف تجمعهم؟
كيف مجردة أ
سلوك أكبر من
تلك السلوكيات الأصغر؟
وما هي الأنماط التي
هي مهمة لالتقاط؟
وبالتالي فإن النقطة الأكبر هي هذه الفكرة
من PCAP ، ونحن سوف
ثم إعادة النظر في كل
وحدة لاحقة.
حسنا ، الوحدة الثانية في وضع التشغيل
إشارات وأنظمة.
هذا أيضا مجال هائل.
لذلك لدينا فقط الوقت
لفعل شيء واحد.
الشيء الذي سنفعله هو نحن
سوف نفكر في منفصلة
ردود الفعل الوقت.
كيف تصنع نظاما
تدرك ما هو عليه
فعلت ذلك ، في المستقبل ،
يمكن أن تفعل أشياء مع
الوعي كيف وصلت إلى هناك؟
مثال جيد هو الروبوتية
توجيه.
وبالتالي فإن الفكرة ستكون ، حسنا ،
فكر فيما تفعله
عندما تقود سيارة.

Italian: 
 Come li combini? 
 Come astrarre un comportamento più grande da 
 quei comportamenti minori? 
 E quali sono i modelli che è importante catturare? 
 Quindi il punto più importante è questa idea di PCAP, che faremo 
 quindi rivisitare in ogni modulo successivo. 
 OK, il secondo modulo è su segnali e sistemi. 
 Questa è anche un'area enorme. 
 Quindi abbiamo solo tempo per fare una cosa. 
 La cosa che faremo è pensare alla discrezione 
 feedback temporale. 
 Come si crea un sistema che sappia di cosa si tratta 
 fatto in modo che, in futuro, possa fare cose con 
 consapevolezza di come ci sia arrivato? 
 Un buon esempio è lo sterzo robotico. 
 Quindi l'idea sarà, OK, pensa a quello che fai 
 quando guidi una macchina. 

Arabic: 
والتفكير في كيف
سيقول الروبوت ل
افعل نفس الشيء
إليك قيادة ساذجة
الخوارزمية.
أنا لا أوصي به ، لكنه كذلك
تستخدم على نطاق واسع في بوسطن ،
على ما يبدو.
[ضحك]
أجد نفسي على يمين
حيث أود أن أكون.
اذا ماذا يجب أن أفعل؟
انعطف لليسار.
ما زلت على يمين
حيث أود أن أكون.
ماذا يجب أن أفعل؟
انعطف لليسار.
يا!
أنا بالضبط حيث يجب أن أكون.
ماذا يجب أن أفعل؟
اتجه للأمام مباشرة.
أوه ، هذه فكرة سيئة.
وما سنراه هو ذلك
يبحث الأبرياء تماما
الخوارزميات يمكن أن يكون رهيب
أداء.
ما سنفعله هو محاولة لجعل
مجردة من ذلك.
سنحاول صنع نموذج.
سنحاول التقاط ذلك في
الرياضيات حتى لا نحتاج إلى
بناء عليه لرؤية
سلوك سيء.
سنقوم بعمل نموذج.

English: 
And think about how you
would tell a robot to
do that same thing.
Here's a naive driving
algorithm.
I don't recommend it, but it's
widely used in Boston,
apparently.
[LAUGHTER]
I find myself to the right of
where I would like to be.
So what should I do?
Turn left.
I'm still to the right of
where I'd like to be.
What should I do?
Turn left.
Oh!
I'm exactly where I should be.
What should I do?
Go straight ahead.
Oh, that's a bad idea.
And what we'll see is that
perfectly innocent looking
algorithms can have horrendous
performance.
What we'll do is try to make
an abstraction of that.
We'll try to make a model.
We'll try to capture that in
math so that we don't need to
build it to see the
bad behavior.
We'll make a model.

Italian: 
 E pensa a come diresti a un robot 
 fai la stessa cosa. 
 Ecco un algoritmo di guida ingenuo. 
 Non lo consiglio, ma è ampiamente utilizzato a Boston, 
 apparentemente. 
 [RISATA] 
 Mi trovo alla destra di dove vorrei essere. 
 Quindi cosa dovrei fare? 
 Gira a sinistra. 
 Sono ancora alla destra di dove vorrei essere. 
 Cosa dovrei fare? 
 Gira a sinistra. 
 Oh! 
 Sono esattamente dove dovrei essere. 
 Cosa dovrei fare? 
 Vai dritto. 
 Oh, è una cattiva idea. 
 E quello che vedremo è quell'aspetto perfettamente innocente 
 gli algoritmi possono avere prestazioni orrende. 
 Quello che faremo è provare a fare un'astrazione. 
 Proveremo a fare un modello. 
 Cercheremo di catturarlo in matematica in modo che non sia necessario 
 costruirlo per vedere il cattivo comportamento. 
 Faremo un modello. 

Arabic: 
سوف نستخدم النموذج للتنبؤ
أن تلك الخوارزمية ينتن.
ولكن الأهم من ذلك ، سوف نستخدم
النموذج لمعرفة
الخوارزمية التي سوف تعمل بشكل أفضل.
في الواقع ، سنكون قادرين على ذلك
التوصل إلى حدود على كيف
حسنا مثل وحدة تحكم
يمكن أن تعمل ربما.
وبالتالي فإن التركيز في هذه الوحدة هو
ستكون ، كيف تجعل
نموذج للتنبؤ السلوك؟
كيف يمكنك تحليل النموذج
بحيث يمكنك تصميم أ
نظام أفضل؟
وبعد ذلك ، كيف يمكنك استخدام
نموذج والتحليل لجعل
نظام حسن التصرف؟
 
الوحدة الثالثة
على الدوائر.
مرة أخرى ، الدوائر ضخمة.
ليس لدينا وقت للحديث
عن كل الدوائر.
سنفعل أشياء بسيطة جدا.
سنركز اهتمامنا على
كيف تضيف حسي
القدرة على بالفعل
نظام معقد.
الفكرة ستكون ل
ابدأ بروبوت -
أعتقد أن هذا أكثر إشراقا -

Italian: 
 Useremo il modello per prevedere che quell'algoritmo fa schifo. 
 Ma ancora più importante, useremo il modello per capire un file 
 algoritmo che funzionerà meglio. 
 In effetti, saremo anche in grado di stabilire dei limiti su come 
 beh, un simile controller potrebbe funzionare. 
 Quindi l'obiettivo di questo modulo sarà come creare un file 
 modello per prevedere il comportamento? 
 Come si analizza il modello in modo da poter progettare un file 
 sistema migliore? 
 E poi, come usi il modello e l'analisi per fare 
 un sistema ben educato? 
 Il terzo modulo è sui circuiti. 
 Ancora una volta, i circuiti sono enormi. 
 Non abbiamo tempo per parlare di tutti i circuiti. 
 Faremo cose molto semplici. 
 Focalizzeremo la nostra attenzione su come aggiungere un sensoriale 
 capacità di un sistema già complicato. 
 L'idea sarà quella di iniziare con un robot ... 
 Immagino che questo sia più luminoso 

English: 
We'll use the model to predict
that that algorithm stinks.
But more importantly, we'll use
the model to figure out an
algorithm that'll work better.
In fact, we'll even be able to
come up with bounds on how
well such a controller
could possibly work.
So the focus in this module is
going to be, how do you make a
model to predict behavior?
How do you analyze the model
so that you can design a
better system?
And then, how do you use the
model and the analysis to make
a well-behaved system?
The third module
is on circuits.
Again, circuits is huge.
We don't have time to talk
about all of circuits.
We'll do very simple things.
We'll focus our attention on
how you would add a sensory
capability to an already
complicated system.
The idea is going to be to
start with a robot--
I guess this is brighter--

Arabic: 
نبدأ مع الروبوتات لدينا والتصميم
رأس للروبوت.
الروبوت يأتي من المصنع
مع أجهزة استشعار السونار.
أجهزة الاستشعار سونار هي
هذه الاشياء.
هناك ثمانية منهم.
يقولون لك كيف بعيدا
شيء يعكس
الموجات فوق الصوتية هي.
لأنها تأتي من المصنع ،
الروبوتات لا تستطيع الشعور بالضوء.
ما عليك القيام به هو إضافة
مجسات الضوء.
الهدف هو جعل النظام
لتعديل الروبوت بحيث
الروبوت يتتبع الضوء.
هذا هدف بسيط للغاية.
والطريقة التي سنقوم بها هي
زيادة الروبوت مع
استشعار بسيط هنا ، وأظهر
أكثر قليلا مكبرة هنا.
والفكرة هي أن هذا
هو محرك ليغو.
سيحول محرك LEGO هذا
بالنسبة للمرفق.
هذا هو عنق رئيس الروبوت.

Italian: 
 inizia con i nostri robot e progetta una testa per il robot. 
 Il robot proviene dalla fabbrica con sensori sonar. 
 I sensori sonar sono queste cose. 
 Ce ne sono otto. 
 Ti dicono quanto sia lontano qualcosa che riflette il 
 l'onda ultrasonica è. 
 Quando escono dalla fabbrica, i robot non possono percepire la luce. 
 Quello che farai è aggiungere sensori di luce. 
 L'obiettivo è creare un sistema per modificare il robot in questo modo 
 il robot segue la luce. 
 Questo è un obiettivo molto semplice. 
 E il modo in cui lo faremo è aumentare il robot con un file 
 sensore semplice qui, mostrato un po 'più ingrandito qui. 
 L'idea è che questo sia un motore LEGO. 
 Il motore LEGO girerà questo rispetto all'attacco. 
 Quello è il collo della testa del robot. 

English: 
start with our robots and design
a head for the robot.
The robot comes from the factory
with sonar sensors.
The sonar sensors are
these things.
There's eight of them.
They tell you how far away
something that reflects the
ultrasonic wave is.
As they come from the factory,
the robots can't sense light.
What you'll do is add
light sensors.
The goal is to make a system
to modify the robot so that
the robot tracks light.
That's a very simple goal.
And the way we'll that is to
augment the robot with a
simple sensor here, showed a
little more magnified here.
The idea is that this
is a LEGO motor.
The LEGO motor will turn this
relative to the attachment.
That's the robot head's neck.

English: 
So the robot will be
able to do this.
And the robot will have eyes.
These are photosensors,
photoresistors, actually.
So the idea is going to be
that there's information
available in those sensors for
figuring out where light is so
that you can track it.
Your job will be to
build a circuit--
that that's this thing--
that connects via cables--
these red cables and
yellow cables--
connects via cables
over to this head.
We'll give you the head.
Your job will be to make the
circuit that converts the
signal from the photoresistor--
which is in proportion
to light--
and figures out how to turn the
motor to get the head to
face the light and then ship
that information down to the
robot to let the robot turn its
wheels to get the body.
So it's kind of like the light
comes on bright over here.
The robot looks at it and says,
oh, yeah, that's where I
want to be.

Arabic: 
لذلك سوف يكون الروبوت
قادرة على القيام بذلك.
وسوف يكون الروبوت عيون.
هذه هي محولات ضوئية ،
مقاوم للضوء ، في الواقع.
وبالتالي فإن الفكرة ستكون
أن هناك معلومات
المتاحة في تلك المجسات ل
معرفة أين هو ضوء ذلك
أنه يمكنك تتبع ذلك.
عملك سيكون ل
بناء دائرة -
هذا هذا الشيء -
الذي يتصل عبر الكابلات -
هذه الكابلات الحمراء و
الكابلات الصفراء
يربط عبر الكابلات
الى هذا الرأس.
سوف نعطيك الرأس.
عملك سيكون لجعل
الدائرة التي تحول
إشارة من photoresistor--
وهو في نسبة
إلى النور--
والأرقام حول كيفية تحويل
محرك للحصول على الرأس ل
مواجهة الضوء ثم السفينة
هذه المعلومات وصولا الى
روبوت للسماح للروبوت بدوره لها
عجلات للحصول على الجسم.
لذلك هو نوع من مثل الضوء
يأتي مشرق هنا.
ينظر الروبوت إليه ويقول:
أوه ، نعم ، هذا هو المكان الذي أنا فيه
تريد أن تكون.

Italian: 
 Quindi il robot sarà in grado di farlo. 
 E il robot avrà gli occhi. 
 Questi sono fotosensori, fotoresistori, in realtà. 
 Quindi l'idea sarà che ci siano informazioni 
 disponibile in quei sensori per capire dov'è la luce 
 che puoi seguirlo. 
 Il tuo compito sarà costruire un circuito 
 che è questa cosa ... 
 che si collega tramite cavi-- 
 questi cavi rossi e cavi gialli 
 si collega tramite cavi a questa testa. 
 Ti daremo la testa. 
 Il tuo compito sarà realizzare il circuito che converte il file 
 segnale dalla fotoresistenza - 
 che è proporzionale alla luce 
 e capisce come girare il motore per portare la testa 
 affrontare la luce e poi inviare le informazioni al file 
 robot per far girare le ruote al robot per prendere il corpo. 
 Quindi è un po 'come se la luce si accendesse intensamente qui. 
 Il robot lo guarda e dice, oh, sì, è lì che io 
 voler essere. 

Italian: 
 Quindi l'idea nel terzo modulo è incorporare 
 nuove capacità di rilevamento nel robot. 
 Il modulo finale riguarda la probabilità e la pianificazione. 
 E l'idea è imparare a creare sistemi 
 resistenti all'incertezza e che possono essere implementati 
 piani complicati, a cui anche loro sono robusti 
 incertezza. 
 Quindi ci sono un certo numero di cose che faremo, incluso 
 creare mappe di spazi che il robot non comprende, 
 dicendo al robot come localizzarsi, come se 
 si è svegliato all'improvviso in un ambiente, poteva capire 
 dov'è, come fare un piano. 
 E ad esempio, ti mostrerò il tipo di sistema che noi 
 costruirà. 
 Qui l'idea è che abbiamo un robot. 
 Il robot sa dove si trova. 

English: 
So that's the idea in the third
module is to incorporate
new sensing capabilities
into the robot.
The final module is on
probability and planning.
And the idea there is to learn
about how you make systems
that are robust to uncertainty
and that can implement
complicated plans, that they,
too, are robust to
uncertainty.
So there's a number of things
that we will do, including
creating maps of spaces that the
robot doesn't understand,
telling the robot how to
localize itself, how if it
woke up suddenly in an
environment, it could figure
out where it is, how
to make a plan.
And as an example, I'll show you
the kind of system that we
will construct.
Here, the idea is that
we have a robot.
The robot knows where it is.

Arabic: 
هذه هي الفكرة في الثالث
الوحدة النمطية هي لدمج
قدرات الاستشعار الجديدة
في الروبوت.
الوحدة النهائية في وضع التشغيل
الاحتمال والتخطيط.
والفكرة هناك هي أن نتعلم
حول كيف تصنع النظم
التي هي قوية لعدم اليقين
ويمكن أن تنفذ
خطط معقدة ، أنهم ،
أيضا ، قوية ل
عدم اليقين.
لذلك هناك عدد من الأشياء
التي سنفعلها ، بما في ذلك
إنشاء خرائط للمساحات التي
الروبوت لا يفهم ،
إخبار الروبوت كيف
توطين نفسها ، كيف لو كان
استيقظت فجأة في
البيئة ، يمكن أن الرقم
أين هو ، كيف
لوضع خطة.
وكمثال ، سأريك
هذا النوع من النظام الذي نحن
سوف بناء.
هنا ، الفكرة هي ذلك
لدينا روبوت.
الروبوت يعرف أين هو.

Italian: 
 Immagina che ci sia un GPS al suo interno. 
 Non c'è, ma immagina che ci sia. 
 Quindi il robot sa dove si trova e sa dove si trova 
 vuole andare. 
 Questa è la stella. 
 Ma non ha idea del tipo di ostacoli che si frappongono. 
 Quindi, se fossi un autista robotico a Boston, lo sai 
 che hai iniziato a casa e vuoi finire al MIT. 
 Ma ci sono questi fastidiosi ostacoli, si chiamano 
 persone, che dovresti, almeno in linea di principio, perdere. 
 Quindi questa è l'idea. 
 Quindi so dove sono. 
 Sono il robot. 
 So dove sono 
 So dove voglio essere. 
 E riassumerò queste informazioni qui. 
 Dove sono è viola. 
 Dove voglio essere è l'oro. 
 E ho un piano. 
 È blu. 
 Il mio piano è molto semplice. 
 Non so niente di diverso da quello in cui mi trovo 
 Waltham e io vogliamo andare a Cambridge. 
 Quindi esplora est. 
 Quindi immagino che sia il modo migliore per farlo 

English: 
Imagine there's a GPS in it.
There isn't, but imagine
there is.
So the robot knows where it
is, and it knows where it
wants to go.
That's the star.
But it has no idea what kind of
obstacles are in the way.
So if you were a robotic driver
in Boston, you know
that you started out at home and
you want to end up in MIT.
But there's these annoying
obstacles, they're called
people, that you should, in
principle at least, miss.
So that's kind of the idea.
So I know where I am.
I'm the robot.
I know where I am.
I know where I want to be.
And I'm going to summarize
that information here.
Where I am is purple.
Where I want to be is gold.
And I have a plan.
That's blue.
My plan's very simple.
I don't know anything about
anything other than I'm in
Waltham and I want to
go to Cambridge.
So blast east.
So I imagine that the
best way to do there

Arabic: 
تخيل أن هناك GPS في ذلك.
لا يوجد ولكن تخيل
يوجد.
لذلك يعرف الروبوت أين
هو ، ويعرف أين هو
يريد الذهاب.
هذا هو النجم.
ولكن ليس لديها فكرة عن أي نوع من
العقبات في الطريق.
إذا كنت سائقًا آليًا
في بوسطن ، أنت تعرف
أنك بدأت في المنزل و
تريد أن ينتهي في معهد ماساتشوستس للتكنولوجيا.
ولكن هناك هذه مزعج
العقبات ، يطلق عليهم
الناس ، التي يجب عليك ، في
مبدأ على الأقل ، ملكة جمال.
هذا هو نوع من الفكرة.
لذلك أنا أعرف أين أنا.
أنا الروبوت.
أنا أعرف أين أنا.
أنا أعرف أين أريد أن أكون.
وانا ذاهب الى تلخيص
هذه المعلومات هنا.
أين أنا أرجواني.
حيث أريد أن أكون الذهب.
ولدي خطة.
هذا أزرق.
خطتي بسيطة جدا.
أنا لا أعرف أي شيء عنه
أي شيء آخر غير أنا في
والثام وأنا أريد أن
اذهب إلى كامبريدج.
لذلك الانفجار الشرق.
 
لذلك أتصور أن
أفضل طريقة للقيام هناك

Arabic: 
هو خط مستقيم.
حسناً ، الآن ماذا سأفعل
القيام به هو تشغيل الروبوت.
الروبوت لديه الآن
جعلت خطوة واحدة.
وقلت لك من قبل
هذه مجسات سونار.
من أجهزة الاستشعار السونار ، و
لقد تعلم الروبوت الآن ذلك
يبدو أن هناك شيء ما
مما يعكس في كل من هذه
نقاط سوداء.
حصلت على انعكاس من
النقاط السوداء ،
من أجهزة استشعار السونار.
وهذا يعني أن هناك ربما
الجدار هناك ، أو شخص ، أو
شيء ، من حيث المبدأ ،
يجب أن أتجنب.
 
والنقاط الحمراء تمثل ، حسنا ،
العقبة قريبة جدا أنا
حقا لا يمكن الوصول إلى هناك.
لذلك أنا مستبعد من الأحمر
البقع لأنني كبير جدا.
يبدو البقع السوداء
أن تكون عقبة.
البقع الحمراء ويبدو أن
حيث لا أستطيع الملاءمة.
ما زلت أريد أن أذهب من
حيث أنا ، الأرجواني ، إلى أين أنا
تريد أن تكون الذهب.

Italian: 
 è una linea retta. 
 OK, quindi ora quello che farò è accendere il robot. 
 Il robot ha ora fatto un passo. 
 E ti ho già parlato di questi sensori sonar. 
 Dai sensori sonar, il robot lo ha imparato ora 
 sembra che ci sia qualcosa che riflette in ognuno di questi 
 punti neri. 
 Ha ottenuto un riflesso dai punti neri, 
 dai sensori sonar. 
 Ciò significa che probabilmente c'è un muro lì, o una persona, o 
 qualcosa che, in linea di principio, dovrei evitare. 
 E i punti rossi rappresentano, OK, l'ostacolo è così vicino 
 davvero non posso arrivarci. 
 Quindi sono escluso dalle macchie rosse perché sono troppo grande. 
 Le macchie nere sembrano essere un ostacolo. 
 Le macchie rosse sembrano essere dove non riesco ad adattarmi. 
 Voglio ancora andare da dove sono, viola, a dove sono 
 voglio essere, oro. 

English: 
is a straight line.
OK, so now what I'm going to
do is turn on the robot.
The robot has now
made one step.
And I told you before about
these sonar sensors.
From the sonar sensors, the
robot has learned now that
there seems to be something
reflecting at each of these
black dots.
It got a reflection from
the black dots,
from the sonar sensors.
That means there's probably a
wall there, or a person, or
something that, in principle,
I should avoid.
And the red dots represent, OK,
the obstacle is so close I
really can't get there.
So I'm excluded from the red
spots because I'm too big.
The black spots seem
to be an obstacle.
The red spots seem to be
where I can't fit.
I still want to go from the
where I am, purple, to where I
want to be, gold.

English: 
So what I do is I compute
the new plan.
OK then, I start to take
a step along that plan.
And as I'm stepping along, OK,
so now, I think that I can't
go from where I started
over to here.
I have to go around
this wall that I
didn't know about initially.
So now I just start driving.
And it looks fine, right?
I'm getting there, right?
Now, I know I can go
straight down here.
Oh, wait a minute.
There's another wall.
OK, what do I do now?
So as the robot goes along, it
didn't know when it started
what kinds of obstacles
it would encounter.
But as it's driving,
it learned.
Oh, that didn't work.
Start over!
So the idea is that this robot
is executing a very
complicated plan.
The plan has, in fact,
many sub-plans.
And the sub-plans all
involve uncertainty.

Arabic: 
فما أقوم به هو حسابي
الخطة الجديدة.
حسنا ، بعد ذلك ، أبدأ في اتخاذ
خطوة على طول هذه الخطة.
وبينما أتقدم ، حسناً ،
الآن ، أعتقد أنني لا أستطيع ذلك
اذهب من حيث بدأت
الى هنا.
يجب أن أتجول
هذا الجدار الذي أنا
لم أكن أعرف في البداية.
حتى الآن أنا فقط بدأت القيادة.
ويبدو بخير ، أليس كذلك؟
أنا الوصول إلى هناك ، أليس كذلك؟
الآن ، أنا أعلم أنني أستطيع أن أذهب
مباشرة إلى أسفل هنا.
أوه ، انتظر لحظة.
هناك جدار آخر.
حسنًا ، ماذا أفعل الآن؟
لذلك كما يسير الروبوت ، فإنه
لا أعرف متى بدأت
ما أنواع العقبات
سوف تواجه.
ولكن لأنه يقود ،
لقد تعلمت.
أوه ، هذا لم ينجح.
ابدأ من جديد!
وبالتالي فإن الفكرة هي أن هذا الروبوت
ينفذ جدا
خطة معقدة.
الخطة لديها ، في الواقع ،
العديد من الخطط الفرعية.
والخطط الفرعية جميع
تنطوي على عدم اليقين.

Italian: 
 Quindi quello che faccio è calcolare il nuovo piano. 
 Ok allora, inizio a fare un passo lungo quel piano. 
 E mentre vado avanti, OK, quindi ora penso di non poterlo fare 
 vai da dove ho iniziato a qui. 
 Devo aggirare questo muro che io 
 inizialmente non sapevo. 
 Quindi ora comincio a guidare. 
 E sembra a posto, giusto? 
 Ci sto arrivando, vero? 
 Ora, so che posso andare direttamente qui. 
 Oh, aspetta un attimo. 
 C'è un altro muro. 
 OK, cosa faccio adesso? 
 Quindi, mentre il robot procede, non sa quando è iniziato 
 che tipo di ostacoli incontrerebbe. 
 Ma mentre guida, ha imparato. 
 Oh, non ha funzionato. 
 Ricominciare! 
 Quindi l'idea è che questo robot stia eseguendo un'operazione molto 
 piano complicato. 
 Il piano ha, infatti, molti sottoprogetti. 
 E tutti i sotto-piani implicano incertezza. 

English: 
It didn't know where the walls
were when it started.
And when it's all done, it's
going to have figured out
where the walls were and--
provided there's a way--
presumably find the way to
negotiate the maze and get to
the destination.
So the idea, then, is that if
you were asked to write a
conventional kind of program for
solving that, it might be
kind of hard because
of the number of
contingencies involved.
What we will do is break down
the problem and figure out
simple and elegant ways
to deal not only with
uncertainty, but how do you
make complex plans.
So as I said, our primary
pedagogy is going to be
practice, theory, practice.
And so that ramifies in how
the course is organized.
So this is a quick map of some
of the aspects of the course.

Arabic: 
لم يعرف أين الجدران
كانت عندما بدأت.
وعندما يتم كل ذلك ،
سوف احسب
حيث كانت الجدران و--
شريطة أن يكون هناك طريقة -
يفترض العثور على الطريق ل
التفاوض في المتاهة والوصول إلى
الوجهة.
إذاً ، الفكرة هي أنه إذا
طلب منك أن تكتب
النوع التقليدي من البرنامج ل
حل ذلك ، قد يكون
نوع من الصعب ل
من عدد
حالات الطوارئ المعنية.
ما سنفعله هو الانهيار
المشكلة ومعرفة
طرق بسيطة وأنيقة
للتعامل ليس فقط مع
عدم اليقين ، ولكن كيف لك
وضع خطط معقدة.
 
هكذا قلت ، لدينا الابتدائية
علم أصول التدريس سيكون
الممارسة ، النظرية ، الممارسة.
وهكذا تشعب في كيف
يتم تنظيم الدورة.
هذه خريطة سريعة للبعض
من جوانب الدورة.

Italian: 
 Non sapeva dove fossero i muri quando è iniziato. 
 E quando tutto sarà finito, avrà capito 
 dove erano i muri e ... 
 ammesso che ci sia un modo ... 
 presumibilmente trova il modo per affrontare il labirinto e raggiungerlo 
 la destinazione. 
 Quindi l'idea è che se ti fosse chiesto di scrivere un file 
 tipo convenzionale di programma per risolverlo, potrebbe essere 
 un po 'difficile a causa del numero di 
 imprevisti coinvolti. 
 Quello che faremo è abbattere il problema e capire 
 modi semplici ed eleganti per affrontare non solo 
 incertezza, ma come si fanno piani complessi. 
 Quindi, come ho detto, la nostra pedagogia principale sarà 
 pratica, teoria, pratica. 
 E questo si ramifica nell'organizzazione del corso. 
 Quindi questa è una rapida mappa di alcuni aspetti del corso. 

Italian: 
 Quindi avremo lezioni settimanali. 
 È una lezione non intensiva. 
 In totale, ci sono solo 13 lezioni. 
 Ci incontreremo una volta alla settimana qui per una conferenza. 
 Ci sono letture. 
 Ci sono letture voluminose. 
 Ci sono letture su ogni argomento di cui parleremo. 
 E le letture erano specifiche 
 progettato per questo corso. 
 Consiglio vivamente di diventare 
 familiarità con le letture. 
 Se hai una domanda dopo la lezione, probabilmente è lì. 
 Probabilmente è spiegato. 
 Faremo problemi con i tutor online. 
 Ti abbiamo inviato un'e-mail se ti sei pre-registrato al corso. 
 Quindi potresti già saperlo. 
 L'idea sarà che ci sono modi in cui puoi farlo 
 prepararsi al corso facendo esercizi al computer. 
 E useremo anche gli stessi tipi di esercizi in tutti 
 delle sessioni di classe. 
 Avremo due tipi di esperienze di laboratorio. 
 Oltre alla lezione, gli altri due eventi a cui devi partecipare 

Arabic: 
لذلك سيكون لدينا محاضرات أسبوعية.
انها محاضرة غير مكثفة.
في المجموع ، هناك فقط
13 محاضرة.
سنلتقي مرة واحدة في الأسبوع
هنا للمحاضرة.
هناك قراءات.
هناك قراءات ضخمة.
هناك قراءات عن كل
الموضوع الذي سنتحدث عنه.
وكانت القراءات
على وجه التحديد
مصممة لهذه الدورة.
أنصح بشدة
أن تصبح
دراية القراءات.
إذا كان لديك سؤال بعد
محاضرة ، ربما هناك.
ربما أوضح.
 
سنفعل على الانترنت
مشاكل المعلم.
لقد أرسلنا لك رسالة بريد إلكتروني إذا كنت
مسجلة مسبقا للدورة.
لذلك قد بالفعل
تعرف عن هذا.
الفكرة ستكون ذلك
هناك طرق يمكنك
الاستعداد للدورة عن طريق العمل
تمارين الكمبيوتر.
ونحن سوف تستخدم أيضا تلك نفسها
أنواع التدريبات في كل شيء
من جلسات الفصل.
سيكون لدينا نوعين
من التجارب المعملية.
إلى جانب المحاضرة ، والآخران
الأحداث التي لديك لحضور

English: 
So we'll have weekly lectures.
It's lecture unintensive.
In total, there's only
13 lectures.
We'll meet once a week
here for lecture.
There's readings.
There's voluminous readings.
There's readings about every
topic that we will talk about.
And the readings were
specifically
designed for this course.
I highly recommend
that you become
familiar with the readings.
If you have a question after
lecture, it's probably there.
It's probably explained.
We will do online
tutor problems.
We sent you an email if you
pre-registered for the course.
So you may already
know about this.
The idea is going to be that
there's ways that you can
prepare for the course by doing
computer exercises.
And we will also use those same
kinds of exercises in all
of the class sessions.
We will have two kinds
of lab experiences.
Besides lecture, the other two
events that you have to attend

Italian: 
 sono un laboratorio di software e un laboratorio di progettazione. 
 Questa è la parte pratica. 
 Quindi, dopo aver imparato un po 'sulla teoria andando 
 a lezione, facendo la lettura, poi vai al 
 lab e provare alcune cose. 
 Chiamiamo il primo laboratorio laboratorio software. 
 È un breve laboratorio. 
 È un'ora e mezza. 
 Lavori individualmente. 
 Provi le cose. 
 Scrivi piccoli programmi. 
 Il courseware può controllare il programma per vedere se è a posto. 
 E soprattutto, gli esercizi nel laboratorio del software sono dovuti 
 durante il laboratorio software. 
 Ma a volte ci saranno cose extra dovute 
 uno o due giorni dopo. 
 Le date di scadenza sono scritte molto chiaramente 
 negli esercizi del tutor. 
 Una volta alla settimana c'è un laboratorio di progettazione. 
 È una sessione di tre ore in cui lavori con un partner. 
 Il motivo del partner è che l'intento ... 
 la differenza tra i laboratori di progettazione e il software 
 labs è che i laboratori di progettazione ti chiedono di risolvere un po 'di più 

Arabic: 
هي مختبر البرمجيات
ومعمل التصميم.
هذا هو الجزء الممارسة.
حتى بعد أن تعلمت قليلا
قليلا عن نظرية عن طريق الذهاب
لإلقاء محاضرة ، عن طريق القيام
القراءة ، ثم تذهب إلى
مختبر وجرب بعض الأشياء.
نحن نسمي المختبر الأول
مختبر البرمجيات.
إنه مختبر قصير.
إنها ساعة ونصف.
أنت تعمل بشكل فردي.
يمكنك تجربة الأشياء.
تكتب برامج صغيرة.
يمكن أن تحقق المناهج التعليمية
برنامج لمعرفة ما إذا كان كل شيء على مايرام.
وفي المقام الأول ، التدريبات
في مختبر البرمجيات ومن المقرر
خلال مختبر البرمجيات.
ولكن في بعض الأحيان ، هناك سوف
أن تكون الأشياء الإضافية بسبب
بعد يوم أو يومين.
تواريخ الاستحقاق هي جدا
مكتوبة بوضوح
في تمارين المعلم.
مرة واحدة في الأسبوع ، هناك
مختبر التصميم.
هذه جلسة لمدة ثلاث ساعات في
التي تعمل مع شريك.
سبب الشريك
هو أن النية--
الفرق بين
مختبرات التصميم والبرنامج
المختبرات هي أن مختبرات التصميم تسأل
لك حل أكثر قليلا

English: 
are a software lab
and a design lab.
That's the practice part.
So after you learned a little
bit about the theory by going
to lecture, by doing the
reading, then you go to the
lab and try some things out.
We call the first lab
a software lab.
It's a short lab.
It's an hour and a half.
You work individually.
You try things out.
You write little programs.
The courseware can check the
program to see if it's OK.
And primarily, the exercises
in the software lab are due
during the software lab.
But on occasion, there will
be extra things due
a day or two later.
The due dates are very
clearly written
in the tutor exercises.
Once a week, there's
a design lab.
That's a three hour session in
which you work with a partner.
The reason for the partner
is that the intent--
the difference between the
design labs and the software
labs is that the design labs ask
you to solve slightly more

Italian: 
 domande aperte, il tipo di domanda che potresti fare tu 
 non ho idea di cosa stiamo chiedendo. 
 A tempo indeterminato, il tipo di cosa che ti verrà chiesto di fare 
 dopo la laurea. 
 Progetta il sistema. 
 Cosa intendi per progettare il sistema? 
 Quindi l'idea è che lavorare con un partner ti darà un 
 secondo, fonte immediata di aiuto e un po 'di più 
 fiducia se nessuno di voi conosce la soluzione in modo che tu 
 alza la mano e dì, non ne ho la più pallida idea 
 cosa sta succedendo qui. 
 Quindi l'idea è che una volta alla settimana facciamo un laboratorio di software 
 individualmente. 
 Una volta alla settimana, facciamo un laboratorio di progettazione, un po 'più aperto 
 con i partner. 
 Ci sono un po 'di compiti scritti, quattro in totale. 
 Non è molto rispetto ad altri soggetti. 
 È principalmente pratica. 
 C'è un nano-quiz, solo per aiutarti a tenere il passo da fare 
 sicuro di non restare troppo indietro. 
 I primi 15 minuti di ogni laboratorio di progettazione 
 inizia con un nano-quiz. 

English: 
open-ended questions, the kind
of question that you might
have no clue what
we're asking.
Open-ended, the kind of thing
that you will be asked to do
after you graduate.
Design the system.
What do you mean, design
the system?
So the idea is that working with
a partner will give you a
second, immediate source of
help and a little more
confidence if neither of you
knows the solution so that you
raise your hand and say,
I don't have a clue
what's going on here.
So the idea is that once a
week we do a software lab
individually.
Once a week, we do a design lab,
a little more open-ended
with partners.
There's a little bit of written
homework, four total.
It's not much compared
to other subjects.
It's mostly practice.
There's a nano-quiz, just to
help you keep pace to make
sure that you don't get
too far behind.
The first 15 minutes
of every design lab
starts with a nano-quiz.

Arabic: 
أسئلة مفتوحة ، من النوع
السؤال الذي قد
ليس لديهم أدنى فكرة عما
نحن نسأل.
مفتوح العضوية ، وهذا النوع من الشيء
التي سوف يطلب منك القيام به
بعد التخرج.
تصميم النظام.
ماذا تقصد ، التصميم
النظام؟
 
وبالتالي فإن الفكرة هي أن العمل مع
شريك سوف اعطيكم
الثاني ، مصدر فوري لل
مساعدة وأكثر من ذلك بقليل
الثقة إذا لم يكن أحد منكم
يعرف الحل حتى يتسنى لك
ارفع يدك وقل ،
ليس لدي أدنى فكرة
ماذا يجري هنا.
وبالتالي فإن الفكرة هي أن مرة واحدة في
الأسبوع نفعل مختبر البرمجيات
بشكل فردي.
مرة واحدة في الأسبوع ، نقوم بعمل مختبر للتصميم ،
أكثر قليلا مفتوحة العضوية
مع الشركاء.
هناك القليل من الكتابة
الواجبات المنزلية ، أربعة المجموع.
انها ليست مقارنة بكثير
لمواضيع أخرى.
انها في الغالب ممارسة.
هناك مسابقة نانو ، فقط ل
تساعدك على مواكبة لجعل
تأكد من أنك لا تحصل عليه
بعيدا جدا وراء.
أول 15 دقيقة
من كل مختبر التصميم
يبدأ مع مسابقة نانو.

Arabic: 
وتهدف مسابقات نانو ل
أن تكون بسيطة إذا كنت قد اشتعلت
يصل ، إذا كنت حتى الآن.
وبالتالي فإن الفكرة هي أن تذهب إلى
مختبر التصميم ، أول شيء
أنت تفعل قليلا ، 15
دقيقة نانو مسابقة.
يستخدم اختبار نانو المعلم الكثير
مثل المعلم الواجبات المنزلية ،
يشبه المعلم بيثون.
وهذا هو المقصود
أن تكون بسيطة.
ولكن هذا يعني يرجى الحصول عليها
إلى مختبر التصميم في الوقت المحدد.
مسابقات نانو
يديرها البرنامج.
يبدأ الساعة عندما
يبدأ مختبر التصميم.
انها مهلة 15 دقيقة في وقت لاحق.
لذلك إذا أتيت متأخرة 10 دقائق ،
سيكون لديك 5 دقائق
لفعل شيء ما
خططنا لإعطاء
أنت 15 دقيقة ل.
 
سيكون لدينا أيضا الامتحانات
والمقابلات.
المقابلات تهدف إلى
كن محادثة فردية
حول كيف ذهبت المختبرات.
 
وسيكون لدينا اثنين من منتصف المدة
ونهائي.

Italian: 
 I nano-quiz sono pensati per essere semplici se li hai presi 
 up, se sei aggiornato. 
 Quindi l'idea è che tu vada al laboratorio di progettazione, la prima cosa 
 quello che fai è un piccolo nano-quiz di 15 minuti. 
 Il nano-quiz utilizza un tutor molto simile al tutor dei compiti, 
 proprio come il tutor di Python. 
 Ed è pensato per essere semplice. 
 Ma significa che per favore vai al laboratorio di progettazione in tempo. 
 I nano-quiz sono gestiti dal software. 
 Inizia l'ora in cui inizia il laboratorio di progettazione. 
 Scade 15 minuti dopo. 
 Quindi, se arrivi con 10 minuti di ritardo, avrai 5 minuti 
 fare qualcosa che avevamo programmato di dare 
 15 minuti per. 
 Avremo anche esami e colloqui. 
 Le interviste sono pensate per essere una conversazione a tu per tu 
 su come sono andati i laboratori. 
 E avremo due tempi intermedi e una finale. 

English: 
The nano-quizzes are intended to
be simple if you've caught
up, if you're up to date.
So the idea is that you go to
design lab, the first thing
you do is a little, 15
minute nano-quiz.
The nano-quiz uses a tutor much
like the homework tutor,
much like the Python tutor.
And it's intended
to be simple.
But it does mean please get
to the design lab on time.
The nano-quizzes are
administered by the software.
It starts the hour when
the design lab starts.
It times out 15 minutes later.
So if you come 10 minutes late,
you will have 5 minutes
to do something that
we planned to give
you 15 minutes for.
We will also have exams
and interviews.
The interviews are intended to
be a one-on-one conversation
about how the labs went.
And we will have two mid-terms
and a final.

Italian: 
 Quindi questo è il tipo di logistica. 
 L'idea alla base della logistica è pratica, teoria, pratica. 
 Vieni ai laboratori. 
 Prova le cose. 
 Assicurati di aver capito. 
 Sviluppa un piccolo codice. 
 Inseriscilo. 
 Vedi se funziona. 
 Se funziona, sei in cima alle cose. 
 Sei pronto per ottenere il prossimo lotto di informazioni dal file 
 conferenza e letture. 
 OK, andiamo avanti e parliamo della tecnica 
 materiale nel primo modulo del corso, in 
 il modulo software. 
 Iniziamo il corso parlando di ingegneria del software per 
 due ragioni. 
 Ci piacerebbe che tu sapessi dell'ingegneria del software. 
 È una parte incredibilmente importante del nostro dipartimento. 
 È una parte incredibilmente importante dell'ingegneria di 
 assolutamente qualsiasi sistema, qualsiasi sistema moderno. 
 Ma vorremmo anche che lo sapessi perché fornisce un file 
 un modo molto comodo per pensare: è un modo conveniente 
 linguaggio per pensare ai problemi di progettazione, all'ingegneria 

Arabic: 
لذلك هذا نوع من
اللوجستية.
الفكرة وراء الخدمات اللوجستية
الممارسة ، النظرية ، الممارسة.
تعال إلى المختبرات.
جرب الأشياء خارج.
تأكد من أنك تفهم.
تطوير رمز صغير.
اكتبه في.
معرفة ما اذا كان يعمل.
إذا كان يعمل ، أنت
على رأس الأشياء.
أنت جاهز للحصول على التالي
دفعة من المعلومات من
محاضرة وقراءات.
حسنا ، دعنا نذهب ، ودعونا
نتحدث عن التقنية
المواد في الوحدة الأولى
بالطبع ، في
وحدة البرمجيات.
نحن ركل المسار قبالة الحديث
حول هندسة البرمجيات ل
سببان.
نود منك أن تعرف عنها
هندسة البرمجيات.
انها مهمة بشكل لا يصدق
جزء من قسمنا.
انها مهمة بشكل لا يصدق
جزء من هندسة
بالتأكيد أي نظام ،
أي نظام حديث.
لكننا نود أيضًا أن تعرف
حول هذا الموضوع لأنه يوفر
طريقة مريحة للغاية للتفكير
عن - انها مريحة
لغة للتفكير في
قضايا التصميم ، والهندسة

English: 
So that's kind of
the logistics.
The idea behind the logistics is
practice, theory, practice.
Come to the labs.
Try things out.
Make sure you understand.
Develop a little code.
Type it in.
See if it works.
If it works, you're
on top of things.
You're ready to get the next
batch of information from the
lecture and readings.
OK, let's go on, and let's
talk about the technical
material in the first module
of the course, in
the software module.
We kick the course off talking
about software engineering for
two reasons.
We'd like you to know about
software engineering.
It's an incredibly important
part of our department.
It's an incredibly important
part of the engineering of
absolutely any system,
any modern system.
But we'd also like you to know
about it because it provides a
very convenient way to think
about-- it's a convenient
language to think about the
design issues, the engineering

Italian: 
 problemi in tutte le altre parti della classe. 
 Quindi è un ottimo punto di partenza. 
 Quindi quello che farò oggi è parlare di alcuni di questi 
 idee più semplici sull'astrazione e la modularità in 
 quello che considero il livello di granularità più basso. 
 Come pensi dell'astrazione e della modularità in 
 la micro scala, all'individuo 
 linee di scala di codice? 
 Come ho detto prima, man mano che progrediamo, guarderemo 
 modularità e astrazione su scala superiore. 
 Ma dobbiamo iniziare da qualche parte. 
 E inizieremo pensando a come stai 
 pensa all'astrazione e alla modularità su scala micro? 
 Nota speciale sulla programmazione. 
 Quindi quello che stiamo cercando di fare è, nelle prime due settimane, 

Arabic: 
القضايا في كل الآخر
أجزاء من الفصل.
لذلك هو جيد جدا
مكان للبدء.
 
إذن ما سأفعله اليوم هو الكلام
عن بعض جدا
أبسط الأفكار حول التجريد
والوحدة في
ما أعتقد أنه من أدنى
مستوى التفاصيل.
كيف تفكر
التجريد و نمطية في
النطاق الصغير ، في
الفرد
خطوط مقياس رمز؟
كما قلت سابقًا ،
ونحن نتقدم ، أنظر
نمطية والتجريد
على نطاق واسع.
ولكن علينا أن نبدأ
مكان ما.
وسوف نبدأ
التفكير ، كيف حالك
التفكير في التجريد و
نمطية على نطاق صغير؟
ملاحظة خاصة حول
برمجة.
إذن ما نحاول القيام به هو ،
في الأسبوعين الأولين ،

English: 
issues in all the other
parts of the class.
So it's a very good
place to start.
So what I will do today is talk
about some of the very
simplest ideas about abstraction
and modularity in
what I think of as the lowest
level of granularity.
How do you think about
abstraction and modularity at
the micro scale, at
the individual
lines of code scale?
As I said earlier, we will,
as we progress, look at
modularity and abstraction
at the higher scale.
But we have to start
somewhere.
And we're going to start by
thinking about, how do you
think about abstraction and
modularity at the micro scale?
Special note about
programming.
So what we are trying to do is,
in the first two weeks,

Italian: 
 portare tutti a un certo livello di sicurezza del software, 
 dove ti senti a tuo agio. 
 Quindi le prime due settimane di questo corso hanno lo scopo di farti 
 comodo con la programmazione. 
 Non presumiamo che tu abbia fatto una programmazione estesa prima. 
 Vogliamo che tu ti senta a tuo agio 
 che non sei dietro. 
 E questo è il fulcro degli esercizi delle prime due settimane. 
 Se hai poco o nessun background precedente, se tu 
 sono scomodi, per favore fai gli esercizi del tutor Python. 
 Se non hai - 
 se non hai molta esperienza di programmazione, se 
 ti senti a disagio con l'aspettativa che puoi fare 
 programmazione, fallo prima. 
 Ciò ha la priorità su tutti gli altri incarichi durante 
 le prime due settimane. 
 In particolare, se ti senti a disagio, eseguiremo un file 

Arabic: 
منحدر الجميع تصل إلى مستوى ما
أمن البرمجيات ،
حيث تشعر بالراحة
لذلك أول أسبوعين من هذا
يهدف بالطبع لتجعلك
مريح مع البرمجة.
نحن لا نفترض أنك فعلت
برمجة واسعة من قبل.
 
نريد منك أن تصبح
مريح
أنك لست وراء.
وهذا هو محور
تمارين الأسبوعين الأولين.
إذا كان لديك القليل أو لا
الخلفية السابقة ، إذا كنت
غير مريحة ، يرجى القيام به
تمارين المعلم بايثون.
إذا كنت لا تملك --
إذا لم يكن لديك الكثير من
تجربة البرمجة ، إذا
أنت غير مرتاح مع
توقع أنه يمكنك القيام به
البرمجة ، افعل ذلك أولاً.
يأخذ الأولوية على كل
مهام أخرى خلال
الأسبوعين الأولين.
على وجه الخصوص ، إذا كنت
غير مريح ، وسوف نقوم بتشغيل

English: 
ramp everybody up to some level
of software security,
where you feel comfortable.
So the first two weeks of this
course is intended to make you
comfortable with programming.
We don't assume you've done
extensive programming before.
We want you to become
comfortable
that you're not behind.
And that's the focus of the
first two weeks' exercises.
If you have little or no
previous background, if you
are uncomfortable, please do
the Python tutor exercises.
If you have not --
if you do not have a lot of
experience programming, if
you're uncomfortable with the
expectation that you can do
programming, do that first.
That takes priority over all the
other assignments during
the first two weeks.
In particular, if you're
uncomfortable, we will run a

Italian: 
 domenica sessione speciale di aiuto di Python. 
 E se partecipi, puoi ottenere un'estensione gratuita. 
 L'idea è completare gli esercizi del tutor a cui è destinato 
 ti fanno sentire a tuo agio che hai il software 
 sfondo per finire il resto del corso. 
 Fallo prima. 
 Perdoneremo di essere rimasti indietro in altre cose in modo che tu 
 sentirsi a proprio agio con la programmazione. 
 Se, dopo due settimane, ti senti ancora a disagio, 
 abbiamo un accordo con 6.00, la classe di programmazione Python, quella 
 ti permetteranno di cambiare la tua registrazione 
 dal 6.01 al 6.00. 
 Ma questo scade il giorno di San Valentino. 
 [RISATA] 
 Quindi devi prendere una decisione prima di San Valentino se 
 desideri utilizzare questa opzione. 

English: 
special Python help
session on Sunday.
And if you attend that, you
can get a free extension.
The idea is completing the tutor
exercises is intended to
make you feel comfortable that
you have the software
background to finish the
rest of the course.
Do that first.
We will forgive falling behind
in other things so that you
feel comfortable with
programming.
If, at the end of two weeks, you
still feel uncomfortable,
we have a deal with 6.00, the
Python programming class, that
they will allow you to switch
your registration
from 6.01 to 6.00.
But that expires Valentine's
Day.
[LAUGHTER]
So you have to make up your mind
before Valentine's Day if
you'd like to use that option.

Arabic: 
مساعدة بيثون الخاصة
جلسة يوم الاحد.
وإذا حضرت ذلك ، أنت
يمكن الحصول على تمديد مجانا.
 
الفكرة هي استكمال المعلم
تمارين تهدف إلى
تجعلك تشعر بالراحة ذلك
لديك البرنامج
خلفية لإنهاء
بقية الدورة.
افعل ذلك أولاً.
ونحن سوف يغفر الوقوع وراء
في أشياء أخرى بحيث أنت
تشعر بالراحة مع
برمجة.
إذا ، في نهاية أسبوعين ، أنت
لا تزال تشعر بعدم الارتياح ،
لدينا صفقة مع 6.00 ، و
بيثون فئة البرمجة ، ذلك
سوف تسمح لك بالتبديل
تسجيلك
من 6.01 إلى 6.00.
ولكن هذا ينتهي الحب
يوم.
[ضحك]
لذلك عليك أن تجعل عقلك
قبل عيد الحب إذا
تريد استخدام هذا الخيار.

Italian: 
 Quindi l'idea è che vorremmo che tu ti sentissi a tuo agio 
 programmazione. 
 Se non hai programmato prima, fai il 
 Esercizi per tutor di Python. 
 Vai al laboratorio del software. 
 Vai al laboratorio di progettazione, ma lavora sugli esercizi del tutor. 
 Lo staff ti aiuterà con loro. 
 Puoi andare in ufficio. 
 Ci sono orari di ufficio elencati nella home page. 
 Dovresti cercare di metterti a tuo agio e dovresti 
 prova a impostare come obiettivo - 
 Starò a mio agio prima di San Valentino. 
 E se non lo sei, parlane con un membro dello staff. 
 OK, quindi cosa voglio che tu sappia sulla programmazione? 
 Bene, useremo Python. 
 Abbiamo selezionato Python perché è molto semplice e perché 
 ci permette di illustrare alcune idee molto importanti in 
 ingegneria del software in un contesto molto semplice. 
 Questa è la ragione. 

English: 
So the idea is we'd like you
to be comfortable with
programming.
If you haven't programmed
before, do the
Python tutor exercises.
Go to software lab.
Go to design lab, but work
on the tutor exercises.
The staff will help
you with them.
You can go to office hours.
There's office hours listed
on the home page.
You should try to become
comfortable, and you should
try to set as your goal --
I'm going to be comfortable
before Valentine's Day.
And if you're not, talk to a
staff member about that.
OK, so what do I want you to
know about programming?
Well, we're going
to use Python.
We selected Python because it's
very simple and because
it lets us illustrate some
very important ideas in
software engineering in
a very simple context.
That's the reason.

Arabic: 
وبالتالي فإن الفكرة هي أننا نود مثلك
أن تكون مريحة مع
برمجة.
إذا لم تكن مبرمجة
قبل ذلك
تمارين بيثون المعلم.
الذهاب إلى مختبر البرمجيات.
الذهاب إلى مختبر التصميم ، ولكن العمل
على تمارين المعلم.
الموظفين سوف تساعد
أنت معهم.
يمكنك الذهاب إلى ساعات العمل.
هناك ساعات مكتب المدرجة
على الصفحة الرئيسية.
يجب أن تحاول أن تصبح
مريح ، ويجب عليك
محاولة لتعيين هدفك -
سأكون مريحة
قبل عيد الحب.
وإذا لم تكن كذلك ، فتحدث إلى
موظف عن ذلك.
 
حسناً ، ماذا أريدك أن تفعل؟
تعرف عن البرمجة؟
حسنا ، نحن ذاهبون
لاستخدام بيثون.
اخترنا بيثون لأنه
بسيط جدا ولأن
يتيح لنا توضيح بعض
أفكار مهمة جدا في
هندسة البرمجيات في
سياق بسيط جدا.
هذا هو السبب.

Italian: 
 Uno dei motivi per cui è semplice è che è un file 
 interprete. 
 Dopo qualche inizializzazione, il comportamento di Python è quello di cadere 
 in un loop interprete. 
 Il loop dell'interprete è, chiedi all'utente cosa vorrebbe che io fossi 
 da fare, leggere ciò che l'utente digita, capire cosa sono 
 parlando, e stampa il risultato, ripeti ... 
 molto semplice. 
 Ciò significa che puoi imparare facendo. 
 Questo è uno dei punti del laboratorio software di oggi. 
 Puoi semplicemente avvicinarti a un computer, 
 digita la parola pitone 
 quello che digiti è in rosso. 
 Digita la parola "pitone". Ti chiederà, quindi questo 
 chevron, che dice, vorrei che me lo dicessi 
 qualcosa da fare. 
 Non ho nulla da fare. 

Arabic: 
أحد الأسباب وراء ذلك
بسيط هو أنه
مترجم.
 
بعد بعض التهيئة ، و
سلوك بيثون هو السقوط
في حلقة مترجم.
حلقة المترجم هي ، اطلب من
المستخدم ما يود لي
للقيام ، وقراءة ما أنواع المستخدمين ،
معرفة ما هم عليه
نتحدث عن والطباعة
النتيجة ، كرر--
بسيط جدا.
ما يعنيه ذلك هو أنك
يمكن أن تتعلم عن طريق العمل.
 
هذه واحدة من نقاط
مختبر البرمجيات اليوم.
يمكنك ببساطة المشي
يصل إلى جهاز كمبيوتر ،
اكتب كلمة بيثون
ما تكتبه باللون الأحمر.
اكتب كلمة "بيثون". هذا
سوف يطالبك ، لذلك هذا
شيفرون ، وهذا يقول ، كنت
مثلك أن تقول لي
شيئا لفعله.
ليس لدي ما افعله.

English: 
One of the reasons that it's
simple is that it's an
interpreter.
After some initialization, the
behavior of Python is to fall
into an interpreter loop.
The interpreter loop is, ask the
user what he would like me
to do, read what the user types,
figure out what they're
talking about, and print
the result, repeat--
very simple.
What that means is that you
can learn by doing.
That's one of the points of
today's software lab.
You can simply walk
up to a computer,
type the word python--
what you type is in red.
Type the word "python." It
will prompt you, so this
chevron, that says, I'd
like you to tell me
something to do.
I have nothing to do.

Italian: 
 Se digiti "2", Python cerca di interpretarlo. 
 In questo caso particolare, Python dice, oh, capisco. 
 Questo è un elemento di dati primitivo. 
 È un numero intero. 
 Questa persona vuole che io comprenda un numero intero. 
 E così farà eco 2, indicando che ti pensa 
 voglio che comprenda un numero intero semplice. 
 Allo stesso modo, se digiti 5.7, dice, oh, ho capito. 
 È un galleggiante. 
 La persona vuole che io ricordi un file 
 numero in virgola mobile. 
 E similmente farà eco al galleggiante. 
 Ora, ovviamente, non esiste una rappresentazione esatta per 
 galleggia, giusto? 
 Ce ne sono troppi, giusto? 
 Ce ne sono molti. 
 Ci sono anche più float di quanti siano gli int, giusto? 
 Quindi ha un'approssimazione. 
 Quindi stamperà la sua approssimazione al float 
 a cui pensa che ti interessi. 

English: 
If you type "2," Python tries
to interpret that.
In this particular case,
Python says, oh, I see.
That's a primitive data item.
That's an integer.
This person wants me to
understand an integer.
And so it will echo 2,
indicating that it thinks you
want it to understand
a simple integer.
Similarly, if you type 5.7,
it says, oh, I got that.
That's a float.
The person wants me
to remember a
floating point number.
And it will similarly
echo the float.
Now, of course, there's no
exact representation for
floats, right?
There's too many
of them, right?
There's a lot of them.
There's even more floats than
there are ints, right?
So it has an approximation.
So it will print its
approximation to the float
that it thinks you are
interested in.

Arabic: 
إذا قمت بكتابة "2" ، تحاول بيثون
لتفسير ذلك.
في هذه الحالة بالذات ،
بيثون يقول ، أوه ، أنا أرى.
هذا عنصر بيانات بدائي.
هذا عدد صحيح.
هذا الشخص يريدني
فهم عدد صحيح.
وهكذا سوف يردد صدى 2 ،
مشيرا إلى أنه يعتقد لك
تريد أن تفهم
عدد صحيح بسيط.
 
وبالمثل ، إذا قمت بكتابة 5.7 ،
تقول ، أوه ، حصلت على ذلك.
هذا تعويم.
الشخص يريدني
لنتذكر
رقم النقطة العائمة.
وسوف بالمثل
صدى تعويم.
الآن ، بالطبع ، لا يوجد
التمثيل الدقيق ل
يطفو ، أليس كذلك؟
هناك الكثير
منهم ، أليس كذلك؟
هناك الكثير منهم.
هناك حتى يطفو أكثر من
هناك النمل ، أليس كذلك؟
لذلك لديه تقريب.
لذلك سوف تطبع لها
تقريب لتعويم
أنه يعتقد أنك
مهتم ب.
 

Arabic: 
إذا كتبت سلسلة ، "مرحبًا"
سيقول ، أوه ، البيانات البدائية
هيكل ، سلسلة.
وسوف تطبع
هذه السلسلة.
وبالتالي فإن الفكرة هي واحدة من
ملامح بيثون التي تجعل
من السهل أن تتعلم حقيقة
انه مترجم.
يمكنك اللعب حولها.
يمكنك التعلم عن طريق العمل.
الآن ، بالطبع ، إذا كان فقط
الشيء الذي فعلته كان بيانات بسيطة
الهياكل ، فإنه
لا يكون مفيدا جدا.
 
وبالتالي فإن الشيء التالي أكثر تعقيدا
ما يمكن القيام به هو التفكير
مجموعات.
إذا قمت بكتابة "2 + 3" ، فإنه
يقول ، أوه ، حصلت عليه.
هذا الشخص مهتم
في مزيج.
يجب أن الجمع بين زائد
مشغل اثنين من النمل ، 2 و 3.
أوه ، وإذا فعلت ذلك ، إذا كنت كذلك
الجمع من قبل المشغل زائد
اثنين وثلاثة ، سأحصل على 5.
لذلك يطبع 5.
هذه هي الطريقة التي تعرف ذلك
يفسر "2 + 3" إلى 5.

English: 
If you type a string, "Hello,"
it'll say, oh, primitive data
structure, string.
And it'll print out
that string.
So the idea is one of the
features of Python that makes
it easy to learn is the fact
that it's interpreter based.
You can play around.
You can learn by doing.
Now, of course, if the only
thing it did was simple data
structures, it would
not be very useful.
So the next more complex thing
that it can do is think about
combinations.
If you type "2 + 3," it
says, oh, I got it.
This person's interested
in a combination.
I should combine by the plus
operator two ints, 2 and 3.
Oh, and if I do that, if I
combine by the plus operator
two and three, I'll get 5.
So it prints 5.
So that's a way you know that
it interprets "2 + 3" as 5.

Italian: 
 Se digiti una stringa, "Hello", dirà, oh, dati primitivi 
 struttura, stringa. 
 E stamperà quella stringa. 
 Quindi l'idea è una delle caratteristiche di Python che fa 
 è facile da imparare è il fatto che è basato sull'interprete. 
 Puoi giocare. 
 Puoi imparare facendo. 
 Ora, ovviamente, se l'unica cosa che ha fatto sono stati semplici dati 
 strutture, non sarebbe molto utile. 
 Quindi la prossima cosa più complessa che può fare è pensare 
 combinazioni. 
 Se digiti "2 + 3", dice, oh, ho capito. 
 Questa persona è interessata a una combinazione. 
 Dovrei combinare con l'operatore più due int, 2 e 3. 
 Oh, e se lo faccio, se combino con l'operatore più 
 due e tre, ne ottengo 5. 
 Quindi stampa 5. 
 Quindi è un modo in cui sai che interpreta "2 + 3" come 5. 

Italian: 
 Allo stesso modo qui, tranne che ho tipi misti. 
 "5.7 + 3", dice, oh, questo utente vuole che applichi il 
 più operatore su un float e un int. 
 OK, bene aggiornerò l'int a un float. 
 Farò la versione float e otterrò questo, che è il suo 
 rappresentazione di 8.7. 
 Quindi l'idea è che prima cercherà di interpretare cosa 
 stai dicendo come un semplice tipo di dati. 
 Se funziona, stampa il risultato per dirti di cosa si tratta 
 pensa che stia succedendo. 
 Quindi proverà a interpretarlo come un'espressione. 
 E a volte, le espressioni non hanno senso. 
 In particolare, se provi ad aggiungere un int a una stringa, è 
 sta per dire, eh? 
 E nel corso delle prime due settimane, lo speriamo 
 acquisisci familiarità con l'interpretazione 
 questo tipo di pasticcio. 
 Questo è il tentativo di Python di dirti cosa stava cercando di fare 

English: 
Similarly here, except
I've mixed types.
"5.7 + 3," it says, oh, this
user wants me to apply the
plus operator on a
float and an int.
OK, well I'll upgrade
the int to a float.
I'll do the float version, and
I'll get this, which is its
representation of 8.7.
So the idea is that it will
first try to interpret what
you're saying as a
simple data type.
If that works, it prints the
result to tell you what it
thinks is going on.
It then will try to interpret
it as an expression.
And sometimes, the expressions
won't makes sense.
In particular, if you try to add
an int to a string, it's
going to say, huh?
And over the course of the first
two weeks, we hope that
you get familiar with
interpreting
this kind of mess.
That's Python's attempt to tell
you what it was trying to

Arabic: 
بالمثل هنا ، باستثناء
لقد أنواع مختلطة.
"5.7 + 3" ، هذا ، يقول ، هذا
المستخدم يريد مني تطبيق
زائد المشغل على
تطفو و int.
حسنا ، حسنا سأقوم بالترقية
الباحث عن تعويم.
سأفعل نسخة تعويم ، و
سأحصل على هذا ، والذي هو
تمثيل 8.7.
وبالتالي فإن الفكرة هي أنها سوف
أول محاولة لتفسير ما
أنت تقول ك
نوع البيانات البسيطة.
إذا كان هذا يعمل ، فإنه يطبع
نتيجة لأخبرك ما عليه
يعتقد يجري.
ثم سيحاول التفسير
ذلك كتعبير.
وأحيانا ، التعبيرات
لن يكون له معنى.
على وجه الخصوص ، إذا حاولت إضافة
كثافة العمليات إلى سلسلة ، هو
سوف أقول ، هاه؟
وعلى مدار الأول
أسبوعين ، نأمل ذلك
تتعرف على
تفسير
هذا النوع من الفوضى.
هذا هو محاولة بيثون أن أقول
أنت ما كان يحاول

Arabic: 
القيام به نيابة عنك ولا يمكن
معرفة ما
أنت تتكلم عن.
 
حسنا ، كان ذلك بسيطا.
لكنه يوضح بالفعل
هذا شيء جدا
المهم ، وهذا هو
فكرة تكوين.
هكذا تعمل بايثون
حقيقة أنه عندما قمت بإضافة 3 إلى
2 خرج 5 ، ما كنا
به كان يؤلف
معقد--
حسنا ، يحتمل أن تكون معقدة
(كان ذلك بسيطًا جدًا) -
يحتمل أن تكون معقدة
التعبيرات والحد منها
إلى بنية بيانات واحدة.
 
وهذا يعني ذلك ، في بعض
بمعنى ، هذه العملية ، 3
مرات 8 ، يمكن التفكير فيه
بالضبط نفس الشيء كما لو
كتب المستخدم في 24.

English: 
do on your behalf and can't
figure out what
you're talking about.
OK, so that was simple.
But it already illustrates
something that's very
important, and that's the
idea of a composition.
So the way Python works, the
fact that when you added 3 to
2 it came out 5, what we were
doing was composing
complicated--
well, potentially complicated
(that was pretty simple) --
potentially complicated
expressions and reducing them
to a single data structure.
And so that means that, in some
sense, this operation, 3
times 8, can be thought of as
exactly the same as if the
user had typed in 24.

Italian: 
 fare per tuo conto e non riesco a capire cosa 
 tu stai parlando di. 
 OK, quindi era semplice. 
 Ma illustra già qualcosa di molto 
 importante, e questa è l'idea di una composizione. 
 Quindi il modo in cui funziona Python, il fatto che quando hai aggiunto 3 a 
 2 è uscito 5, quello che stavamo facendo era comporre 
 complicato-- 
 beh, potenzialmente complicato (era piuttosto semplice) - 
 espressioni potenzialmente complicate e riducendole 
 a una singola struttura dati. 
 E questo significa che, in un certo senso, questa operazione, 3 
 per 8, può essere pensato esattamente come se il file 
 l'utente aveva digitato 24. 

Italian: 
 Ogni volta che puoi sostituire un'espressione complessa a 
 cosa più semplice, diciamo che il sistema è compositivo. 
 È un'idea molto potente. 
 Anche se è semplice, è un'idea molto potente. 
 Ed è un'idea che conoscete tutti. 
 L'hai già visto in algebra, in aritmetica. 
 Quindi, nelle espressioni aritmetiche, puoi pensare a come il file 
 la somma di due numeri interi è un int. 
 Questa è una chiusura. 
 È una sorta di combinazione che crea il sistema 
 compositivo e che fornisce uno strato di 
 pensiero gerarchico in modo che, nella tua testa, anche se 
 dice 3 per 8, non è più necessario ricordarlo. 
 Puoi dire, oh, per qualsiasi scopo che segue, potrei 
 altrettanto bene pensare a 3 x 8 come a 
 numero intero singolo, 24. 
 Fa parte di molti altri tipi di sistemi, ad esempio, 

Arabic: 
كلما استطعت أن تحل محلها
لتعبير معقد
شيء أبسط ، نقول أن
النظام هو التركيبية.
هذه فكرة قوية جدا.
على الرغم من أنها بسيطة ، إنها كذلك
فكرة قوية جدا.
إنها فكرة ذلك
جميعكم تعرفون.
لقد رأيته من قبل في
الجبر ، في الحساب.
لذلك في التعبيرات الحسابية ،
يمكنك التفكير في كيفية
مجموع اثنين من الأعداد الصحيحة هو كثافة العمليات.
 
هذا إغلاق.
هذا هو نوع من مزيج
هذا يجعل النظام
التركيبية وذاك
يوفر طبقة من
التفكير الهرمي بحيث ،
في رأسك ، على الرغم من ذلك
يقول 3 مرات 8 ، لا تحتاج
لنتذكر ذلك بعد الآن.
يمكنك القول ، أوه ، لأي
الأغراض التي تتبع ، وأنا قد
مجرد التفكير كذلك
3 مرات 8 بأنها
عدد صحيح واحد ، 24.
انها جزء من أنواع أخرى كثيرة
النظم ، على سبيل المثال ،

English: 
Whenever you can substitute
for a complex expression a
simpler thing, we say that the
system is compositional.
That's a very powerful idea.
Even though it's simple, it's
a very powerful idea.
And it's an idea that
you all know.
You've seen it before in
algebra, in arithmetic.
So in arithmetic expressions,
you can think about how the
sum of two integers is an int.
That's a closure.
That's a kind of a combination
that makes the system
compositional and that
provides a layer of
hierarchical thinking so that,
in your head, even though it
says 3 times 8, you don't need
to remember that anymore.
You can say, oh, for any
purposes that follow, I might
just as well think of
3 times 8 as being a
single integer, 24.
It's part of many other kinds
of systems, for example,

English: 
natural language.
The simplest example in natural
language is that you
can think about "Apples
are good as snacks".
"Apples" is a noun.
It's a plural noun.
Or you could substitute "Apples
and oranges", and it
makes complete sense within
that same structure.
So "Apples and oranges
are good as snacks".
The combination of "apples" and
"oranges" works in every
way from the point of view of
the grammar in the same way
that a simple noun,
"apples," worked.
What we would like to do is use
that idea as the starting
point for a more general
compositional system.
And a good way to think about
that is by way of names.
What if we had some sequence of
operations that we think is

Italian: 
 linguaggio naturale. 
 L'esempio più semplice in linguaggio naturale sei tu 
 può pensare a "Le mele sono buone come snack". 
 "Apples" è un sostantivo. 
 È un sostantivo plurale. 
 Oppure potresti sostituire "Mele e arance", e così via 
 ha perfettamente senso all'interno della stessa struttura. 
 Quindi "Le mele e le arance sono buone come snack". 
 La combinazione di "mele" e "arance" funziona in ogni 
 modo dal punto di vista della grammatica allo stesso modo 
 che un semplice sostantivo, "mele", ha funzionato. 
 Quello che vorremmo fare è usare quell'idea come inizio 
 punto per un sistema compositivo più generale. 
 E un buon modo per pensarci è attraverso i nomi. 
 E se avessimo una sequenza di operazioni che pensiamo sia 

Arabic: 
لغة طبيعية.
أبسط مثال في الطبيعي
اللغة هي أنك
يمكن التفكير في "التفاح
جيدة مثل الوجبات الخفيفة ".
"التفاح" هو الاسم.
انها اسم الجمع.
أو يمكنك استبدال "التفاح
والبرتقال "، وذلك
المنطقي الكامل في الداخل
نفس الهيكل.
لذلك "التفاح والبرتقال
جيدة مثل الوجبات الخفيفة ".
مزيج من "التفاح" و
"البرتقال" يعمل في كل
الطريق من وجهة نظر
القواعد بنفس الطريقة
هذا اسم بسيط ،
"التفاح" ، عملت.
ما نود القيام به هو استخدام
تلك الفكرة كبداية
نقطة لأكثر عمومية
نظام التركيب.
 
وطريقة جيدة للتفكير
هذا عن طريق الأسماء.
ماذا لو كان لدينا بعض تسلسل
العمليات التي نعتقد أنها

Italian: 
 particolarmente importante in modo che vorremmo in qualche modo 
 canonizzalo in modo che, successivamente, possiamo usarlo 
 sequenza di operazioni facilmente? 
 Python fornisce un modo molto semplice per farlo. 
 Ogni linguaggio di programmazione lo fa. 
 Non è unico per Python. 
 Ma l'idea è: 
 quindi ecco un esempio. 
 "2 volte 2" - 
 Quadrato 2 e ottengo 4. "3 x 3" - 
 Sto quadrando 3 e ottengo 9. 
 "8 più 4 per 8 più 4", sto quadrando "8 più 4". 
 "8 più 4", beh, posso pensare che sia 12. 
 Sto quadrando 12, ottengo 144. 
 La cosa che sto cercando di illustrare è il concetto 
 di squadratura. 
 La quadratura è una sequenza di operazioni che vorrei 
 per poter canonizzare come una singola entità in modo che, in 
 programmi successivi, mi viene in mente la squadratura 
 operazione come una singola operazione solo 
 come penso ai tempi. 

Arabic: 
أهمية خاصة بحيث
نود أن بطريقة أو بأخرى
تطويب ذلك ،
في وقت لاحق ، يمكننا استخدام ذلك
تسلسل العمليات بسهولة؟
يوفر بايثون جدا
طريقة بسيطة للقيام بذلك.
كل البرمجة
اللغة لا.
انها ليست فريدة من نوعها لبيثون.
لكن الفكرة هي -
لذلك هنا مثال.
"2 مرات 2" -
أنا تربيع 2 واحصل
4. "3 مرات 3" -
أنا تربيع 3 و
أنا أحصل على 9.
"8 زائد 4 مرات 8 زائد 4" ،
أنا تربيع "8 زائد 4".
"8 زائد 4" ، حسنا ، أستطيع
التفكير في ذلك إلى 12.
أنا تربيع 12 ، أنا
الحصول على 144.
الشيء الذي أحاول القيام به
توضيح أن هناك فكرة
من التربيع.
التربيع هو سلسلة من
العمليات التي أود
لتكون قادرة على تطهير باعتبارها
كيان واحد بحيث ، في
برامج لاحقة ، أستطيع
التفكير في التربيع
العملية باعتبارها واحدة
العملية فقط
كما أعتقد مرات.

English: 
particularly important so that
we would like to somehow
canonize that so that,
subsequently, we can use that
sequence of operations easily?
Python provides a very
simple way to do it.
Every programming
language does.
It's not unique to Python.
But the idea is --
so here's an example.
"2 times 2" --
I'm squaring 2 and get
4. "3 times 3" --
I'm squaring 3, and
I'm getting 9.
"8 plus 4 times 8 plus 4",
I'm squaring "8 plus 4".
"8 plus 4", well, I can
think of that as 12.
I'm squaring 12, I'm
getting 144.
The thing I'm trying to
illustrate there is the notion
of squaring.
Squaring is a sequence of
operations that I would like
to be able to canonize as a
single entity so that, in
subsequent programs, I can
think of the squaring
operation as a single
operation just
like I think of times.

Italian: 
 Il modo in cui lo diciamo in Python è "definire il quadrato di x come 
 return x quadrato ". 
 Quindi, fatta quella definizione, posso dire "quadrato" 
 di 6 "e la risposta è 36. 
 OK, questo è un piccolo passo. 
 Ma illustra un punto molto importante, l'idea 
 essendo che Python fornisce una struttura compositiva. 
 Ed è gerarchico. 
 Dopo aver definito il quadrato, posso usare il quadrato proprio come se fosse 
 erano un operatore primitivo. 
 E posso usare square per definire operazioni di livello superiore. 
 Quindi, ad esempio, cosa succederebbe se fossi interessato a fare un sacco di 
 somme di quadrati? 
 Dì che sono Pitagora, giusto? 
 Quindi potrei voler aggiungere il quadrato di 2 e il quadrato di 
 4 per ottenere 20 o il quadrato di 3 con il 

English: 
The way we say that in Python
is "define square of x to be
return x squared".
Then, having made that
definition, I can say "square
of 6", and the answer is 36.
OK, this is a very small step.
But it illustrates a very
important point, the idea
being that Python provides
a compositional facility.
And it's hierarchical.
Having defined square, I can use
square just as though it
were a primitive operator.
And I can use square to define
higher level operations.
So for example, what if I were
interested in doing lots of
sums of squares?
Say I'm Pythagoreas, right?
So I might want to add the
square of 2 and the square of
4 to get 20, or the square
of 3 with the

Arabic: 
الطريقة التي نقول ذلك في بيثون
هو "تحديد مربع س ليكون
عودة س تربيع ".
 
ثم ، بعد أن فعلت ذلك
تعريف ، أستطيع أن أقول "مربع
من 6 "، والجواب هو 36.
حسنًا ، هذه خطوة صغيرة جدًا.
لكنه يوضح جدا
نقطة مهمة ، الفكرة
كون ذلك يوفر بيثون
منشأة التركيبية.
 
وانها هرمية.
 
بعد تحديد مربع ، يمكنني استخدامها
مربع كما لو كان
كان عامل بدائي.
ويمكنني أن استخدم المربع لتحديد
عمليات أعلى مستوى.
لذلك على سبيل المثال ، ماذا لو كنت
المهتمين في القيام بالكثير من
مبالغ المربعات؟
قل أنا فيثاغورس ، أليس كذلك؟
لذلك قد ترغب في إضافة
مربع 2 و مربع
4 للحصول على 20 ، أو مربع
من 3 مع

English: 
square of 4 to get 25.
Using that simple idea of
composition, we can write a
new program, sumOfSquares.
sumOfSquares takes two
arguments, x and y.
And it returns the square of
x and the square of y.
SumOfSquares doesn't
care about how
you compute the square.
It trusts that square knows
how to do that.
So the work is smaller.
The idea is that square
takes care of
squaring single numbers.
sumOfSquares doesn't have to
know how to square numbers.
It just needs to know how to
make a sum of squares.
So what we've done is we've
broken a task, which was not
very complicated, but the whole
idea is hierarchical.
We've taken a problem and broken
it into two pieces.
We factored the problem into
how do you do a square, and

Italian: 
 quadrato di 4 per ottenere 25. 
 Usando questa semplice idea di composizione, possiamo scrivere un file 
 nuovo programma, sumOfSquares. 
 sumOfSquares accetta due argomenti, x e y. 
 E restituisce il quadrato di xe il quadrato di y. 
 SumOfSquares non si preoccupa di come 
 si calcola il quadrato. 
 Si fida che il quadrato sappia come farlo. 
 Quindi il lavoro è più piccolo. 
 L'idea è che la piazza si occupi di 
 quadratura di numeri singoli. 
 sumOfSquares non deve sapere come quadrare i numeri. 
 Ha solo bisogno di sapere come fare una somma di quadrati. 
 Quindi quello che abbiamo fatto è aver interrotto un compito, che non lo era 
 molto complicato, ma l'intera idea è gerarchica. 
 Abbiamo risolto un problema e l'abbiamo suddiviso in due parti. 
 Abbiamo preso in considerazione il problema in come si fa un quadrato e 

Arabic: 
مربع من 4 للحصول على 25.
باستخدام هذه الفكرة البسيطة
تكوين ، يمكننا كتابة
برنامج جديد ، sumOfSquares.
sumOfSquares يأخذ اثنين
الحجج ، س وص.
ويعود مربع
س ومربع ذ.
SumOfSquares لا
يهتم كيف
أنت تحسب المربع.
انها تثق في أن مربع يعرف
كيف يتم فعل ذلك.
وبالتالي فإن العمل أصغر.
والفكرة هي تلك الساحة
يعتني
تربيع الأرقام الفردية.
sumOfSquares ليس من الضروري أن
معرفة كيفية تربيع الأرقام.
انها تحتاج فقط لمعرفة كيفية
اصنع مجموع المربعات.
لذلك ما قمنا به هو أننا
كسر مهمة ، والتي لم تكن كذلك
معقدة للغاية ، ولكن كله
الفكرة هرمية.
لقد اتخذنا مشكلة وكسر
الى قطعتين.
نحن في مشكلة في
كيف يمكنك أن تفعل مربع ، و

Arabic: 
كيف يمكنك جمع المربعات.
 
والفكرة ، إذن ، هي أن هذا
الهيكل الهرمي هو
وسيلة لبناء مجمع
أنظمة من أجزاء أبسط.
 
هذه هي فكرة كيف أنت
سوف بناء البرامج التي هي
التركيبية.
 
يوفر بايثون أيضا أداة
لصنع قوائم ، لصنع
هياكل البيانات التي
هي التركيبية.
 
الأكثر بدائية هي قائمة.
في بيثون ، يمكنك ذلك
تحديد قائمة.
فيما يلي قائمة بالأعداد الصحيحة.
هكذا تقول القائمة ، بداية
قائمة ، نهاية
قائمة ، عناصر القائمة.
So there's five elements
in the list, the
integers 1, 2, 3, 4, 5.

English: 
how do you sum squares.
And the idea, then, is that this
hierarchical structure is
a way of building complex
systems out of simpler parts.
So that's the idea of how you
would build programs that are
compositional.
Python also provides a utility
for making lists, for making
data structures that
are compositional.
The most primitive is a list.
So in Python, you can
specify a list.
Here's a list of integers.
So the list says, beginning
list, end of
list, elements of list.
So there's five elements
in the list, the
integers 1, 2, 3, 4, 5.

Italian: 
 come si sommano i quadrati. 
 E l'idea, quindi, è che questa struttura gerarchica lo sia 
 un modo per costruire sistemi complessi partendo da parti più semplici. 
 Quindi questa è l'idea di come costruiresti i programmi che sono 
 compositivo. 
 Python fornisce anche un'utilità per creare elenchi, per creare file 
 strutture di dati che sono compositive. 
 Il più primitivo è un elenco. 
 Quindi in Python puoi specificare un elenco. 
 Ecco un elenco di numeri interi. 
 Quindi l'elenco dice, elenco di inizio, fine di 
 elenco, elementi di elenco. 
 Quindi ci sono cinque elementi nell'elenco, il file 
 numeri interi 1, 2, 3, 4, 5. 

Arabic: 
 
Python doesn't care what the
elements of a list are.
We'll see in a minute that
that's really important.
But for the time being, the
simplest thing that you can
imagine is a heterogeneous
قائمة.
It's not critical that the list
contain just integers.
Here's a list that contains
an int, a string,
an int, and a string.
Python doesn't care.
It's a list that has
four elements.
The first element's an int.
The second element's a
string, et cetera.
Here's an even more
complex example.
Here's a list of lists.
 
How many elements are
in that list?
ثلاثة.
How many elements are
in that list?
So the idea is that you can
build more complex data
structures out of simple ones.

English: 
Python doesn't care what the
elements of a list are.
We'll see in a minute that
that's really important.
But for the time being, the
simplest thing that you can
imagine is a heterogeneous
list.
It's not critical that the list
contain just integers.
Here's a list that contains
an int, a string,
an int, and a string.
Python doesn't care.
It's a list that has
four elements.
The first element's an int.
The second element's a
string, et cetera.
Here's an even more
complex example.
Here's a list of lists.
How many elements are
in that list?
Three.
How many elements are
in that list?
So the idea is that you can
build more complex data
structures out of simple ones.

Italian: 
 A Python non interessa quali sono gli elementi di una lista. 
 Vedremo tra un minuto che è davvero importante. 
 Ma per il momento, la cosa più semplice che puoi 
 immaginare è un elenco eterogeneo. 
 Non è fondamentale che l'elenco contenga solo numeri interi. 
 Ecco un elenco che contiene un int, una stringa, 
 un int e una stringa. 
 A Python non importa. 
 È un elenco che ha quattro elementi. 
 Il primo elemento è un int. 
 Il secondo elemento è una stringa, eccetera. 
 Ecco un esempio ancora più complesso. 
 Ecco un elenco di elenchi. 
 Quanti elementi ci sono in quella lista? 
 Tre. 
 Quanti elementi ci sono in quella lista? 
 Quindi l'idea è che puoi creare dati più complessi 
 strutture di quelle semplici. 

Arabic: 
That's the idea of compositional
factoring
applied to data.
 
Just like it was important when
we were thinking about
procedures, to associate
names with procedures--
that's what "def" did--
we can also think about
associating names with data
structures.
And that's what we use something
that Python calls a
variable for.
So I can say "b is 3".
And that associates the data
item, 3, with the label, b.
I can say, "x is 5 times 2.2".
Python will figure out
what I mean by the
expression on the right.
It'll figure out that I'm
composing by using the star
operator, which is multiply, an
integer and a float, which
will give me a float.

English: 
That's the idea of compositional
factoring
applied to data.
Just like it was important when
we were thinking about
procedures, to associate
names with procedures--
that's what "def" did--
we can also think about
associating names with data
structures.
And that's what we use something
that Python calls a
variable for.
So I can say "b is 3".
And that associates the data
item, 3, with the label, b.
I can say, "x is 5 times 2.2".
Python will figure out
what I mean by the
expression on the right.
It'll figure out that I'm
composing by using the star
operator, which is multiply, an
integer and a float, which
will give me a float.

Italian: 
 Questa è l'idea della scomposizione compositiva 
 applicato ai dati. 
 Proprio come era importante quando stavamo pensando 
 procedure, per associare nomi a procedure: 
 ecco cosa ha fatto "def" - 
 possiamo anche pensare di associare i nomi ai dati 
 strutture. 
 Ed è quello che usiamo qualcosa che Python chiama a 
 variabile per. 
 Quindi posso dire "b è 3". 
 E questo associa l'elemento di dati, 3, con l'etichetta, b. 
 Posso dire: "x è 5 per 2,2". 
 Python capirà cosa intendo per 
 espressione a destra. 
 Capirà che sto componendo usando la stella 
 operatore, che è moltiplicare, un intero e un float, che 
 mi darà un galleggiante. 

Italian: 
 La risposta sarà un numero in virgola mobile. 
 E assegnerà un'etichetta, x, a quel numero in virgola mobile. 
 Puoi avere una lista più complicata, un dato 
 struttura e associare il nome y ad esso. 
 Quindi, dopo aver associato il nome y, ottieni molti dei file 
 stessi vantaggi dell'associazione di un nome a una struttura dati 
 che abbiamo ottenuto in precedenza associando un file 
 nome con un'operazione. 
 Quindi possiamo dire, y (0). 
 E ciò significa, quali sono gli elementi zero di 
 struttura dei dati, eh? 
 Quindi l'elemento zero della struttura dati, 
 y, è una lista, [1, 2, 3]. 
 Python ha alcune notazioni funky. 
 L'elemento -1 è l'ultimo. 
 Quindi il -1 ° elemento di y è [7, 8, 9]. 
 Ed è completamente gerarchico. 

Arabic: 
The answer to that's going to
be a floating point number.
And it will assign a label, x,
to that floating point number.
You can have a more complicated
list, a data
structure, and associate
the name y with it.
Then, having associated the name
y, you get many of the
same benefits of associating a
name with a data structure
that we got previously
in associating a
name with an operation.
So we can say, y(0).
And what that means is, what's
the zero-th elements of the
data structure, y?
So the zero-th element of
the data structure,
y, is a list, [1, 2, 3].
 
Python has some funky
notations.
The -1 element is
the last one.
So the -1th element
of y is [7, 8, 9].
 
And it's completely
hierarchical.

English: 
The answer to that's going to
be a floating point number.
And it will assign a label, x,
to that floating point number.
You can have a more complicated
list, a data
structure, and associate
the name y with it.
Then, having associated the name
y, you get many of the
same benefits of associating a
name with a data structure
that we got previously
in associating a
name with an operation.
So we can say, y(0).
And what that means is, what's
the zero-th elements of the
data structure, y?
So the zero-th element of
the data structure,
y, is a list, [1, 2, 3].
Python has some funky
notations.
The -1 element is
the last one.
So the -1th element
of y is [7, 8, 9].
And it's completely
hierarchical.

Italian: 
 Se chiedo l'elemento -1 di y, ottengo [7, 8, 9]. 
 Ma poi, se chiedessi il primo elemento di quello 
 risultato, ottengo 8. 
 ok? 
 È tutto chiaro? 
 OK, solo per assicurarmi che tutto sia chiaro, voglio 
 Fai una domanda. 
 Ma per dare il via all'idea di lavorare insieme, mi piacerebbe che tu 
 pensare a questa domanda con il tuo vicino. 
 Quindi, prima di pensare a questa domanda, tutti si alzano in piedi. 
 Presentati al tuo vicino. 

English: 
If I asked for the -1 element
of y, I get [7, 8, 9].
But then, if I asked for the
first element of that
result, I get 8.
OK?
Everything is clear?
OK, just to make sure everything
is clear, I want to
ask you a question.
But to kick off the idea of
working together, I'd like you
to think about this question
with your neighbor.
So before thinking about this
question, everybody stand up.
Introduce yourself
to your neighbor.

Arabic: 
If I asked for the -1 element
of y, I get [7, 8, 9].
But then, if I asked for the
first element of that
result, I get 8.
حسنا؟
Everything is clear?
 
OK, just to make sure everything
is clear, I want to
ask you a question.
But to kick off the idea of
working together, I'd like you
to think about this question
with your neighbor.
So before thinking about this
question, everybody stand up.
Introduce yourself
to your neighbor.

Italian: 
 [PAROLE DEL PUBBLICO] 
 Quindi ora, vorrei che ciascuno di voi discutesse con il vostro vicino di casa 
 elenco che è meglio rappresentato da quale dei seguenti 
 cifre, 1, 2, 3, 4 o 5 o nessuna delle precedenti. 
 E tra 30 secondi, chiederò a tutti di aumentare un 
 mano con un numero di dita che indica la risposta giusta. 

English: 
[AUDIENCE TALKS]
So now, I'd like you to each
discuss with your neighbor the
list that is best represented
by which of the following
figures, 1, 2, 3, 4, or 5,
or none of the above.
And in 30 seconds, I'm going
to ask everybody to raise a
hand with a number of fingers
indicating the right answer.

Arabic: 
[AUDIENCE TALKS]
So now, I'd like you to each
discuss with your neighbor the
list that is best represented
by which of the following
figures, 1, 2, 3, 4, or 5,
or none of the above.
And in 30 seconds, I'm going
to ask everybody to raise a
hand with a number of fingers
indicating the right answer.

English: 
You're allowed to talk.
That's the whole point
of having a partner.

Arabic: 
You're allowed to talk.
That's the whole point
of having a partner.

Italian: 
 Ti è permesso parlare. 
 Questo è il punto centrale dell'avere un partner. 

Italian: 
 [PAROLE DEL PUBBLICO] 
 OK. 
 Vorrei che ora tutti alzassero la mano. 
 Alza il numero di dita che mostrano la risposta. 
 E voglio fare i conti. 
 Fantastico! 
 Lo capiscono tutti. 
 OK, allora quale ti piace? 
 AUDIENCE: 3. 
 PROFESSORE: 3 - 

English: 
[AUDIENCE TALKS]
OK.
I'd like everybody now
to raise their hand.
Put up the number of fingers
that show the answer.
And I want to tally.
Fantastic!
Everybody gets it.
OK, so which one do you like?
AUDIENCE: 3.
PROFESSOR: 3 --

Arabic: 
[AUDIENCE TALKS]
حسنا.
 
I'd like everybody now
to raise their hand.
Put up the number of fingers
that show the answer.
And I want to tally.
 
رائع!
Everybody gets it.
OK, so which one do you like?
AUDIENCE: 3.
PROFESSOR: 3 --

Arabic: 
why do you like three.
Somebody explain this to me?
It just looks good?
Its pattern recognition.
What's good about 3?
AUDIENCE: It shows
the compositional
element of the list.
PROFESSOR: Compositional?
What is the compositional
element in the pictures?
 
What represents what?
OK, 'a' represents a.
هذا سهل جدا ، أليس كذلك؟
So that takes care of the
bulk of the figures.
What's the blue lines
represent?
 
Someone else?
I didn't quite understand.
AUDIENCE: The angles represent
like a list.
PROFESSOR: They represent
a list.
Where is the list
on the figures?
AUDIENCE: The vertex?
PROFESSOR: The vertex.
The vertices are lists.
So in 3 --

Italian: 
 perché ti piacciono tre. 
 Qualcuno me lo spiega? 
 Sembra solo buono? 
 Il suo riconoscimento del modello. 
 Cosa c'è di buono in 3? 
 AUDIENCE: Mostra la composizione 
 elemento della lista. 
 PROFESSORE: Composizionale? 
 Qual è l'elemento compositivo nelle immagini? 
 Cosa rappresenta cosa? 
 OK, "a" rappresenta a. 
 È abbastanza facile, vero? 
 Quindi questo si prende cura della maggior parte delle cifre. 
 Cosa rappresentano le linee blu? 
 Qualcun altro? 
 Non ho capito bene. 
 AUDIENCE: Gli angoli rappresentano come un elenco. 
 PROFESSORE: Rappresentano un elenco. 
 Dov'è l'elenco sulle cifre? 
 PUBBLICO: Il vertice? 
 PROFESSORE: Il vertice. 
 I vertici sono elenchi. 
 Quindi in 3 - 

English: 
why do you like three.
Somebody explain this to me?
It just looks good?
Its pattern recognition.
What's good about 3?
AUDIENCE: It shows
the compositional
element of the list.
PROFESSOR: Compositional?
What is the compositional
element in the pictures?
What represents what?
OK, 'a' represents a.
That's pretty easy, right?
So that takes care of the
bulk of the figures.
What's the blue lines
represent?
Someone else?
I didn't quite understand.
AUDIENCE: The angles represent
like a list.
PROFESSOR: They represent
a list.
Where is the list
on the figures?
AUDIENCE: The vertex?
PROFESSOR: The vertex.
The vertices are lists.
So in 3 --

English: 
at the highest level, we have a
list that's composed of how
many elements?
2.
The first element
of that list is?
AUDIENCE: a.
PROFESSOR: And the second
element of that list is?
AUDIENCE: Another list.
PROFESSOR: Another list.
That's the hierarchical
part, right?
That second list has
how many elements?
AUDIENCE: 2.
PROFESSOR: Fine,
good, recurse.
You got it.
What is the list represented
by number 2?
A single list with
five elements.
Square bracket, a, comma, b,
comma, c, comma, d, comma, e,
square bracket, right?
What is the list represented
by that one?
AUDIENCE: Not a list.
PROFESSOR: Agh!
It's not a list!
What is it?
Who knows?
AUDIENCE: Looking
at the variable
names, it defines them.
You have variables.
You have a variable a, that
defines a list that contains

Arabic: 
at the highest level, we have a
list that's composed of how
many elements?
2.
The first element
of that list is?
AUDIENCE: a.
PROFESSOR: And the second
element of that list is?
AUDIENCE: Another list.
PROFESSOR: Another list.
That's the hierarchical
part, right?
That second list has
how many elements?
AUDIENCE: 2.
PROFESSOR: Fine,
good, recurse.
لك ذالك.
What is the list represented
by number 2?
 
A single list with
five elements.
Square bracket, a, comma, b,
comma, c, comma, d, comma, e,
square bracket, right?
What is the list represented
by that one?
AUDIENCE: Not a list.
PROFESSOR: Agh!
It's not a list!
ما هذا؟
من تعرف؟
AUDIENCE: Looking
at the variable
names, it defines them.
You have variables.
You have a variable a, that
defines a list that contains

Italian: 
 al livello più alto, abbiamo un elenco composto da come 
 molti elementi? 
 2. 
 Il primo elemento di quella lista è? 
 AUDIENCE: a. 
 PROFESSORE: E il secondo elemento di quella lista è? 
 PUBBLICO: Un altro elenco. 
 PROFESSORE: Un altro elenco. 
 Questa è la parte gerarchica, giusto? 
 Quanti elementi ha la seconda lista? 
 AUDIENCE: 2. 
 PROFESSORE: Bene, bene, ricorso. 
 Avete capito bene. 
 Qual è l'elenco rappresentato dal numero 2? 
 Un unico elenco con cinque elementi. 
 Parentesi quadre, a, virgola, b, virgola, c, virgola, d, virgola, e, 
 parentesi quadra, giusto? 
 Qual è l'elenco rappresentato da quello? 
 PUBBLICO: Non una lista. 
 PROFESSORE: Agh! 
 Non è un elenco! 
 Che cos'è? 
 Chissà? 
 PUBBLICO: Guardando la variabile 
 nomi, li definisce. 
 Hai variabili. 
 Hai una variabile a, che definisce un elenco che contiene 

Arabic: 
b, and the variable, c, that
defines another list that
contains d.
PROFESSOR: So we could
make that a variable.
If we said a is a variable that
comprises b and c, then
we have the problem of how
we're going to associate
variables and elements into
this list, right?
So the weird thing about
this one and, let's
see, that one's weird.
This one's also kind of weird.
This one's weird because we're
giving names to lists in a
fashion that's not showed
up here, right?
That's not to say you couldn't
invent a meaning.
It's just that it doesn't
map very well to that
representation.
Similarly over here, we seem to
be giving the name b to the
element a, and then the name
c to the element b.
What on earth are you
talking about?
It's not clear what we're
doing their either.
So the point is to get you
thinking about the abstract
representation of lists and how
that maps into a complex
data structure.

Italian: 
 b, e la variabile, c, che definisce un altro elenco che 
 contiene d. 
 PROFESSORE: Quindi potremmo renderla una variabile. 
 Se dicessimo che a è una variabile che comprende be c, allora 
 abbiamo il problema di come ci assoceremo 
 variabili ed elementi in questo elenco, giusto? 
 Quindi la cosa strana di questo e, andiamo 
 vedi, quello è strano. 
 Anche questo è un po 'strano. 
 Questo è strano perché diamo nomi agli elenchi in un file 
 la moda che non si vede qui, giusto? 
 Questo non vuol dire che non potresti inventare un significato. 
 È solo che non si adatta molto bene a quello 
 rappresentazione. 
 Allo stesso modo qui, sembra che stiamo dando il nome b al 
 elemento a, e quindi il nome c per l'elemento b. 
 Di cosa diavolo stai parlando? 
 Non è chiaro nemmeno cosa stiamo facendo loro. 
 Quindi il punto è farti pensare all'astratto 
 rappresentazione di elenchi e come si mappa in un complesso 
 struttura dati. 

English: 
b, and the variable, c, that
defines another list that
contains d.
PROFESSOR: So we could
make that a variable.
If we said a is a variable that
comprises b and c, then
we have the problem of how
we're going to associate
variables and elements into
this list, right?
So the weird thing about
this one and, let's
see, that one's weird.
This one's also kind of weird.
This one's weird because we're
giving names to lists in a
fashion that's not showed
up here, right?
That's not to say you couldn't
invent a meaning.
It's just that it doesn't
map very well to that
representation.
Similarly over here, we seem to
be giving the name b to the
element a, and then the name
c to the element b.
What on earth are you
talking about?
It's not clear what we're
doing their either.
So the point is to get you
thinking about the abstract
representation of lists and how
that maps into a complex
data structure.

Arabic: 
That was the whole point.
OK, so we've talked about,
then, four things so far.
How do you think about
operations in a
hierarchical fashion.
And the idea was composition.
We think about composing simple
operations to make
bigger, compound operations.
That's a way of saying, there's
this set of operations
that I want to call foo.
So every time I do this
complicated thing that has
three pages of code,
that's one foo.
And that's a way that we can
then combined foos in some
other horribly complicated
way to make big foos.
So the idea is composition.
That's the first idea.
The second is associating a name
with that composition.
That's what "def" does--
define name, name of a
sub-routine.
So we thought about composing
operations,
associating names with them.

Italian: 
 Questo era il punto. 
 OK, quindi abbiamo parlato di quattro cose finora. 
 Come pensi alle operazioni in un file 
 moda gerarchica. 
 E l'idea era la composizione. 
 Pensiamo a comporre semplici operazioni da compiere 
 operazioni più grandi e composte. 
 È un modo per dire, c'è questo insieme di operazioni 
 che voglio chiamare foo. 
 Quindi ogni volta che faccio questa cosa complicata che ha 
 tre pagine di codice, questo è un foo. 
 E questo è un modo in cui possiamo combinare i foo in alcuni 
 altro modo orribilmente complicato per fare grandi foos. 
 Quindi l'idea è la composizione. 
 Questa è la prima idea. 
 Il secondo è associare un nome a quella composizione. 
 Questo è ciò che fa "def": definire il nome, il nome di un file 
 sottoprogramma. 
 Quindi abbiamo pensato di comporre operazioni, 
 associando nomi a loro. 

English: 
That was the whole point.
OK, so we've talked about,
then, four things so far.
How do you think about
operations in a
hierarchical fashion.
And the idea was composition.
We think about composing simple
operations to make
bigger, compound operations.
That's a way of saying, there's
this set of operations
that I want to call foo.
So every time I do this
complicated thing that has
three pages of code,
that's one foo.
And that's a way that we can
then combined foos in some
other horribly complicated
way to make big foos.
So the idea is composition.
That's the first idea.
The second is associating a name
with that composition.
That's what "def" does--
define name, name of a
sub-routine.
So we thought about composing
operations,
associating names with them.

Italian: 
 Abbiamo composto i dati in termini di elenchi e abbiamo associato i nomi 
 con quelle liste in termini di variabili. 
 La prossima cosa a cui vogliamo pensare è un ordine superiore 
 costruire dove vorremmo conglomerare in un unico dato 
 strutturare sia i dati che le procedure. 
 Python ha un concetto chiamato classe che ci consente di farlo. 
 In Python, crei una nuova classe dicendo a Python 
 prompt, voglio una nuova classe chiamata Studente. 
 E poi, sotto Studente, c'è questa cosa che faremo 
 chiama un attributo. 
 Un attributo di una classe è semplicemente un elemento di dati associato 
 con la classe. 
 E un metodo ... 
 un metodo è solo una procedura che è 
 associati alla classe. 
 Quindi c'è questa classe di un singolo elemento chiamata Student che ha 

English: 
We composed data in terms of
lists, and we associated names
with those lists in terms
of variables.
The next thing we want to think
about is a higher order
construct where we would like to
conglomerate into one data
structure both data
and procedures.
Python has a concept called a
class that lets us do that.
In Python, you make a new class
by saying to the Python
prompt, I want a new class
called Student.
And then, under Student, there
is this thing which we will
call an attribute.
An attribute to a class is
simply a data item associated
with the class.
And a method--
a method is just a
procedure that is
associated with the class.
So there's this single item
class called Student that has

Arabic: 
We composed data in terms of
lists, and we associated names
with those lists in terms
of variables.
The next thing we want to think
about is a higher order
construct where we would like to
conglomerate into one data
structure both data
and procedures.
Python has a concept called a
class that lets us do that.
In Python, you make a new class
by saying to the Python
prompt, I want a new class
called Student.
And then, under Student, there
is this thing which we will
call an attribute.
An attribute to a class is
simply a data item associated
with the class.
And a method--
a method is just a
procedure that is
associated with the class.
So there's this single item
class called Student that has

Italian: 
 un dato, il suo attributo, la scuola e uno 
 procedura, che è il metodo calcolaFinalGrade. 
 Quindi, questo è il tipo di struttura dati che potresti 
 immagina che un registrar avrebbe. 
 È un modo per associarsi. 
 Quindi l'idea qui è che tutti qui siano studenti. 
 Hanno tutti una scuola. 
 E hanno tutti un modo per calcolare il voto finale. 
 Questa è una visione molto ristretta che forse un registrar avrebbe. 
 Quindi le classi, dopo averle definite, possiamo quindi utilizzare il 
 class per definire un'istanza. 
 Quindi un'istanza è una struttura dati che eredita tutto 
 la struttura dalla classe ma fornisce anche un meccanismo 
 per avere dati specifici associati all'istanza. 

English: 
one piece of data, its
attribute, school, and one
procedure, which is the method
calculateFinalGrade.
So then, this is the kind of
data structure you might
imagine that a registrar
would have.
It's a way to associate.
So the idea here is that
everybody here is a student.
They all have a school.
And they all have a way of
calculating their final grade.
That's a very narrow view that
maybe a registrar would have.
So classes, having defined
them, we can then use the
class to define an instance.
So an instance is a data
structure that inherits all of
the structure from the class but
also provides a mechanism
for having specific data
associated with the instance.

Arabic: 
one piece of data, its
attribute, school, and one
procedure, which is the method
calculateFinalGrade.
So then, this is the kind of
data structure you might
imagine that a registrar
would have.
It's a way to associate.
So the idea here is that
everybody here is a student.
They all have a school.
And they all have a way of
calculating their final grade.
That's a very narrow view that
maybe a registrar would have.
So classes, having defined
them, we can then use the
class to define an instance.
So an instance is a data
structure that inherits all of
the structure from the class but
also provides a mechanism
for having specific data
associated with the instance.

Italian: 
 Quindi in Python dico che Mary è una studentessa. 
 Menzionando il nome della classe e mettendo tra parentesi 
 su di esso, dico, dammi un'istanza dello studente. 
 Quindi ora, Mary è un nome associato a un'istanza di 
 la classe, studente. 
 John è allo stesso modo un'istanza della classe, Student. 
 Quindi sia Mary che John hanno scuole. 
 In effetti, sono entrambi la stessa cosa. 
 La scuola di Mary e la scuola di John sono entrambe del MIT. 
 Ma posso estendere l'istanza di Mary per includerne una nuova 
 attributo, il numero di sezione, in modo che il numero di sezione di Mary 
 è 3 e il numero di sezione di John è 4. 
 Quindi questo fornisce un modo ... 
 è un concetto di ordine superiore. 
 Abbiamo pensato a un modo per aggregare le operazioni in 

Arabic: 
So in Python, I say
Mary is a student.
By mentioning the name of the
class and putting parenthesis
on it, I say, give me an
instance of the student.
So now, Mary is a name
associated with an instance of
the class, Student.
John is similarly an instance
of the class, Student.
So both Mary and John
have schools.
In fact, they're
both the same.
The school of Mary and the
school of John are both MIT.
But I can extend the instance
of Mary to include a new
attribute, the section number,
so that Mary's section number
is 3 and John's section
number is 4.
So this provides a way--
it's a higher-order concept.
We thought of a way to aggregate
operations into

English: 
So in Python, I say
Mary is a student.
By mentioning the name of the
class and putting parenthesis
on it, I say, give me an
instance of the student.
So now, Mary is a name
associated with an instance of
the class, Student.
John is similarly an instance
of the class, Student.
So both Mary and John
have schools.
In fact, they're
both the same.
The school of Mary and the
school of John are both MIT.
But I can extend the instance
of Mary to include a new
attribute, the section number,
so that Mary's section number
is 3 and John's section
number is 4.
So this provides a way--
it's a higher-order concept.
We thought of a way to aggregate
operations into

English: 
complicated operation, data
into complicated data.
Classes aggregate data
and operations.
Classes allow us to create
a structure and
then generate instances.
And then the instances have
access to those features that
were defined in the class, but
also have the ability to
define their own unique
attributes and methods.
You can also use a class
to define a subclass.
So here, I'm defining the
subclass, Student601.
All Student601s are members
of the class, Student.
The reverse is not true.
So all Student601 entities
inherit everything that a
Student has.
But all 601 students share
some other things.
Besides having a school which
all students have, 601
students also have a lecture
day, a lecture time, and a
method for calculating
tutor scores.

Arabic: 
complicated operation, data
into complicated data.
Classes aggregate data
and operations.
Classes allow us to create
a structure and
then generate instances.
And then the instances have
access to those features that
were defined in the class, but
also have the ability to
define their own unique
attributes and methods.
You can also use a class
to define a subclass.
So here, I'm defining the
subclass, Student601.
All Student601s are members
of the class, Student.
The reverse is not true.
So all Student601 entities
inherit everything that a
Student has.
But all 601 students share
some other things.
Besides having a school which
all students have, 601
students also have a lecture
day, a lecture time, and a
method for calculating
tutor scores.
 

Italian: 
 operazione complicata, dati in dati complicati. 
 Le classi aggregano dati e operazioni. 
 Le classi ci permettono di creare una struttura e 
 quindi genera istanze. 
 E poi le istanze hanno accesso a quelle funzionalità che 
 sono stati definiti nella classe, ma hanno anche la capacità di 
 definire i propri attributi e metodi unici. 
 È inoltre possibile utilizzare una classe per definire una sottoclasse. 
 Quindi qui, sto definendo la sottoclasse, Student601. 
 Tutti gli Student601 sono membri della classe, Student. 
 Non è vero il contrario. 
 Quindi tutte le entità Student601 ereditano tutto ciò che a 
 Lo studente ha. 
 Ma tutti i 601 studenti condividono altre cose. 
 Oltre ad avere una scuola che hanno tutti gli studenti, 601 
 gli studenti hanno anche un giorno di lezione, un orario di lezione e a 
 metodo per il calcolo dei punteggi dei tutor. 

Arabic: 
Not all students have a method
for calculating tutor scores.
But members of the class
Student601 do.
 
So this, again, represents a
way of organizing data and
operations in a way that makes
it easier to compose higher,
bigger, more complex
structures.
 
The final thing that I want
to talk about today is the
specific, gory details for how
Python manages the association
between names and entities.
We've already seen
two of those.
Naming operations is via "def."
And it gives rise to
the name of a procedure.
Variables are ways of naming
data structures.
Now, we've seen a way
of naming classes.

English: 
Not all students have a method
for calculating tutor scores.
But members of the class
Student601 do.
So this, again, represents a
way of organizing data and
operations in a way that makes
it easier to compose higher,
bigger, more complex
structures.
The final thing that I want
to talk about today is the
specific, gory details for how
Python manages the association
between names and entities.
We've already seen
two of those.
Naming operations is via "def."
And it gives rise to
the name of a procedure.
Variables are ways of naming
data structures.
Now, we've seen a way
of naming classes.

Italian: 
 Non tutti gli studenti hanno un metodo per calcolare i punteggi dei tutor. 
 Ma i membri della classe Student601 lo fanno. 
 Quindi questo, ancora una volta, rappresenta un modo di organizzare i dati e 
 operazioni in modo da rendere più facile comporre più alte, 
 strutture più grandi e complesse. 
 L'ultima cosa di cui voglio parlare oggi è il file 
 dettagli specifici e cruenti su come Python gestisce l'associazione 
 tra nomi ed entità. 
 Ne abbiamo già visti due. 
 Le operazioni di denominazione avvengono tramite "def." E dà origine a 
 il nome di una procedura. 
 Le variabili sono modi per denominare le strutture di dati. 
 Ora, abbiamo visto un modo per denominare le classi. 

English: 
And in fact, it's helpful
if you understand.
So Python associates names and
entities in a very simple,
straightforward fashion.
And if you know the ground
rules, it makes it very easy
to deal with.
And if you don't know the ground
rules, it makes it very
hard to deal with.
So what's the ground rules?
Here's the gory details.
So Python associates names with
values in what Python
calls a binding environment.
An environment is just a
list that associates
a name and an entity.
So if you were to type b
equals 3 what Python is
actually doing is it's building
this environment.
When you type b equals 3, it
adds to the environment a
name, b, and associates that
name with the integer, 3.

Arabic: 
And in fact, it's helpful
if you understand.
So Python associates names and
entities in a very simple,
straightforward fashion.
And if you know the ground
rules, it makes it very easy
to deal with.
And if you don't know the ground
rules, it makes it very
hard to deal with.
So what's the ground rules?
Here's the gory details.
So Python associates names with
values in what Python
calls a binding environment.
An environment is just a
list that associates
a name and an entity.
So if you were to type b
equals 3 what Python is
actually doing is it's building
this environment.
When you type b equals 3, it
adds to the environment a
name, b, and associates that
name with the integer, 3.

Italian: 
 E in effetti, è utile se capisci. 
 Quindi Python associa nomi ed entità in modo molto semplice, 
 moda semplice. 
 E se conosci le regole di base, è molto facile 
 avere a che fare con. 
 E se non conosci le regole di base, lo rende molto 
 difficile da affrontare. 
 Allora quali sono le regole di base? 
 Ecco i dettagli cruenti. 
 Quindi Python associa i nomi ai valori in ciò che Python 
 chiama un ambiente vincolante. 
 Un ambiente è solo una lista che associa 
 un nome e un'entità. 
 Quindi, se dovessi digitare b è uguale a 3, cos'è Python 
 in realtà sta costruendo questo ambiente. 
 Quando digiti b è uguale a 3, aggiunge all'ambiente a 
 name, b, e associa quel nome all'intero, 3. 

Arabic: 
When you type x equals 2.2, it
adds a name, x, and associates
it with the float, 2.2.
When you say foo is minus 506
times 2, it makes the name,
foo, and associates it with
an int, minus 1012.
Then, if you ask Python about
b, the rule is look it up in
the environment and type the
thing that b refers to.
So when you type "b," what
Python really does is it goes
to the environment.
It says, do I have some entity
called "b?" Well, yes I do.
It happens to be an int, 3.
So it prints 3.
 
If you ask, what is "a?"
Python says, OK, in my
environment, do I have some
name, "a?" It doesn't find it.
So it prints out this cryptic
message that basically says,

English: 
When you type x equals 2.2, it
adds a name, x, and associates
it with the float, 2.2.
When you say foo is minus 506
times 2, it makes the name,
foo, and associates it with
an int, minus 1012.
Then, if you ask Python about
b, the rule is look it up in
the environment and type the
thing that b refers to.
So when you type "b," what
Python really does is it goes
to the environment.
It says, do I have some entity
called "b?" Well, yes I do.
It happens to be an int, 3.
So it prints 3.
If you ask, what is "a?"
Python says, OK, in my
environment, do I have some
name, "a?" It doesn't find it.
So it prints out this cryptic
message that basically says,

Italian: 
 Quando digiti x è uguale a 2.2, aggiunge un nome, x e associati 
 con il galleggiante, 2.2. 
 Quando dici che foo è meno 506 per 2, fa il nome, 
 foo e lo associa a un int, meno 1012. 
 Quindi, se chiedi a Python di b, la regola è cercarlo in 
 l'ambiente e digitare la cosa a cui b si riferisce. 
 Quindi quando digiti "b", ciò che Python fa veramente è che va 
 per l'ambiente. 
 Dice, ho qualche entità chiamata "b?" Ebbene, si lo voglio. 
 Sembra essere un int, 3. 
 Quindi stampa 3. 
 Se chiedi, cos'è "a?" Python dice, OK, nel mio 
 ambiente, ho qualche nome, "a?" Non lo trova. 
 Quindi stampa questo messaggio criptico che in pratica dice, 

English: 
sorry, guys, I can't find
something called "a" in the
current environment.
That's the key to the way Python
does all name bindings.
So in general, there's
a global environment.
You start typing to Python.
It just starts adding and
modifying the bindings in the
binding environment.
So if you type a equals 3 and
then type "a," it'll find 3.
If you then type "b=a+2," it
evaluates the right-hand side
relative to the current
environment.
So it first looks here.
And it says, do I have something
called "a?" Ah, yes.
It's an integer, 3.
Substitute that.
Do I know what 2 is?
Oh yeah, that's just an int.
Do I know what plus is?
Oh yeah, that's the thing
that combines two ints.
So it decides that a plus 2--

Italian: 
 scusate ragazzi, non riesco a trovare qualcosa chiamato "a" in 
 ambiente attuale. 
 Questa è la chiave del modo in cui Python esegue tutte le associazioni di nomi. 
 Quindi, in generale, c'è un ambiente globale. 
 Inizi a digitare in Python. 
 Inizia solo ad aggiungere e modificare le associazioni nel file 
 ambiente vincolante. 
 Quindi, se digiti a è uguale a 3 e poi digiti "a", troverà 3. 
 Se poi digiti "b = a + 2", valuta il lato destro 
 rispetto all'ambiente attuale. 
 Quindi prima guarda qui. 
 E dice, ho qualcosa chiamato "a?" Ah sì. 
 È un numero intero, 3. 
 Sostituiscilo. 
 So cos'è 2? 
 Oh sì, è solo un int. 
 So cos'è il plus? 
 Oh sì, questa è la cosa che combina due int. 
 Quindi decide che un plus 2-- 

Arabic: 
sorry, guys, I can't find
something called "a" in the
current environment.
That's the key to the way Python
does all name bindings.
So in general, there's
a global environment.
You start typing to Python.
It just starts adding and
modifying the bindings in the
binding environment.
So if you type a equals 3 and
then type "a," it'll find 3.
If you then type "b=a+2," it
evaluates the right-hand side
relative to the current
environment.
So it first looks here.
And it says, do I have something
called "a?" Ah, yes.
It's an integer, 3.
Substitute that.
Do I know what 2 is?
Oh yeah, that's just an int.
Do I know what plus is?
Oh yeah, that's the thing
that combines two ints.
So it decides that a plus 2--

Italian: 
 valuta un più 2 nell'ambiente corrente. 
 Ottiene 5. 
 E dice, oh, sto cercando di fare un nuovo uguale, un nuovo 
 associazione, una nuova variabile. 
 Fai il nome, b, punta a questo valutato nella corrente 
 ambiente. 
 Quindi b viene associato a int 5. 
 Quindi, se faccio questa riga, valuta b più 1 in 
 ambiente attuale. 
 b è 5 nell'ambiente corrente. 
 Aggiunge 1. 
 Ottiene 6. 
 E poi, dice, associa questa cosa, 6, con b. 
 Quindi sovrascrive b, che era stato associato a 5, e b è 
 ora vincolato a 6. 
 ok? 
 Quindi l'intera cosa, il modo in cui tratta le variabili, il modo 
 Python associa un nome a un valore in una variabile, is 
 valutare il lato destro in base alla corrente 

Arabic: 
it evaluates a plus 2 in the
current environment.
It gets 5.
And it says, oh, I'm trying
to do a new equals, a new
association, a new variable.
Make the name, b, points to this
evaluated in the current
environment.
So b gets associated
with int 5.
 
Then, if I do this line, it
evaluates b plus 1 in the
current environment.
 
b is 5 in the current
environment.
It adds 1.
It gets 6.
And then, it says, associate
this thing, 6, with b.
So it overwrites the b, which
had been bound to 5, and b is
now bound to 6.
حسنا؟
So the whole thing, the way it
treats variables, the way
Python associates a name with
a value in a variable, is
evaluate the right-hand side
according to the current

English: 
it evaluates a plus 2 in the
current environment.
It gets 5.
And it says, oh, I'm trying
to do a new equals, a new
association, a new variable.
Make the name, b, points to this
evaluated in the current
environment.
So b gets associated
with int 5.
Then, if I do this line, it
evaluates b plus 1 in the
current environment.
b is 5 in the current
environment.
It adds 1.
It gets 6.
And then, it says, associate
this thing, 6, with b.
So it overwrites the b, which
had been bound to 5, and b is
now bound to 6.
OK?
So the whole thing, the way it
treats variables, the way
Python associates a name with
a value in a variable, is
evaluate the right-hand side
according to the current

Arabic: 
environment.
Then, change the current
environment to
reflect the new binding.
What it does in the case of
sub-routines is very similar.
 
So here's an illustration of the
local environment that is
generated by this
piece of code.
When I say a equals 2, it
generates a name in the local
environment, a.
It evaluates the right-hand
side and finds 2.
So it makes a binding in the
local environment where the
name, a, is associated
with the integer, 2.
Then, I say define square of
x to be return x squared.
 
That's more complicated.
Python says, oh, I'm defining
a new operation.
 
It's a procedure.

English: 
environment.
Then, change the current
environment to
reflect the new binding.
What it does in the case of
sub-routines is very similar.
So here's an illustration of the
local environment that is
generated by this
piece of code.
When I say a equals 2, it
generates a name in the local
environment, a.
It evaluates the right-hand
side and finds 2.
So it makes a binding in the
local environment where the
name, a, is associated
with the integer, 2.
Then, I say define square of
x to be return x squared.
That's more complicated.
Python says, oh, I'm defining
a new operation.
It's a procedure.

Italian: 
 ambiente. 
 Quindi, cambia l'ambiente corrente in 
 riflettere la nuova rilegatura. 
 Quello che fa nel caso delle sub-routine è molto simile. 
 Quindi ecco un'illustrazione dell'ambiente locale che è 
 generato da questo pezzo di codice. 
 Quando dico a è uguale a 2, viene generato un nome nel locale 
 ambiente, a. 
 Valuta il lato destro e trova 2. 
 Quindi crea un legame nell'ambiente locale in cui il file 
 nome, a, è associato all'intero, 2. 
 Quindi, dico definire quadrato di x come restituire x quadrato. 
 È più complicato. 
 Python dice, oh, sto definendo una nuova operazione. 
 È una procedura. 

Italian: 
 La procedura ha un argomento formale, x. 
 Ha un corpo, ritorna x volte x. 
 Dovrò ricordare tutte quelle cose. 
 Quindi sto cercando di definire una nuova procedura chiamata square. 
 Farà una rilegatura per il quadrato. 
 Quindi in futuro, se qualcuno dice la parola quadrato, lo farà 
 scoprilo, oh, piazza me lo ricordo. 
 quadrato, è una procedura. 
 Proprio come l'associazione per una variabile potrebbe essere un int, il 
 binding per una procedura è il nome della procedura. 
 Quindi, nella procedura, che è un'altra struttura di dati 
 fuori dall'ambiente, deve ricordare il formale 
 parametri-- 
 in questo caso, x-- 
 e il corpo. 
 E allo scopo di risolvere cosa fare il 

English: 
The procedure has a formal
argument, x.
It has a body, return
x times x.
I'm going to have to remember
all of that stuff.
So I'm trying to define a new
procedure called square.
It's going to make a
binding for square.
So in the future, if somebody
says the word square, it'll
find out, oh, square I
remember that one.
square, it's a procedure.
Just like the binding for a
variable might be an int, the
binding for a procedure is the
name of the procedure.
Then, in the procedure, which
is some other data structure
outside the environment, it's
got to remember the formal
parameters--
in this case, x--
and the body.
And for the purpose of
resolving what do the

Arabic: 
The procedure has a formal
argument, x.
It has a body, return
x times x.
I'm going to have to remember
all of that stuff.
 
So I'm trying to define a new
procedure called square.
It's going to make a
binding for square.
So in the future, if somebody
says the word square, it'll
find out, oh, square I
remember that one.
square, it's a procedure.
 
Just like the binding for a
variable might be an int, the
binding for a procedure is the
name of the procedure.
Then, in the procedure, which
is some other data structure
outside the environment, it's
got to remember the formal
parameters--
in this case, x--
and the body.
 
And for the purpose of
resolving what do the

Italian: 
 le variabili significano, ha bisogno di ricordare qual era l'associazione 
 ambiente in cui è stata definita questa sub-routine. 
 Quindi questa è questa freccia. 
 Quindi questa sequenza dice, crea un nuovo quadrato di rilegatura, punta a 
 una procedura. 
 La procedura ha l'argomento formale, x. 
 Ha il ritorno del corpo x volte x. 
 E ha la rilegatura. 
 Proviene dall'ambiente, E1, l'ambiente attuale. 
 OK, è tutto chiaro? 
 Quindi l'idea è che l'ambiente associ i nomi 
 con le cose. 
 La cosa potrebbe essere un elemento di dati o 
 potrebbe essere una procedura. 
 Quindi, quando chiami una procedura, ne crea una nuova 
 ambiente. 
 Allora cosa succede, quindi, quando provo a valutare un modulo, quadrato 
 di un più 2? 

English: 
variables mean, it needs to
remember what was the binding
environment in which this
sub-routine was defined.
So that's this arrow.
So this sequence says, make a
new binding square, points to
a procedure.
The procedure has the
formal argument, x.
It has the body return
x times x.
And it has the binding.
It came from the environment,
E1, the current environment.
OK, is everybody clear?
So the idea is that the
environment associates names
with things.
The thing could be
a data item, or
it could be a procedure.
Then, when you call a procedure,
it makes a new
environment.
So what happens, then, when I
try to evaluate a form, square
of a plus 2?

Arabic: 
variables mean, it needs to
remember what was the binding
environment in which this
sub-routine was defined.
So that's this arrow.
So this sequence says, make a
new binding square, points to
a procedure.
The procedure has the
formal argument, x.
It has the body return
x times x.
And it has the binding.
It came from the environment,
E1, the current environment.
OK, is everybody clear?
So the idea is that the
environment associates names
with things.
The thing could be
a data item, or
it could be a procedure.
 
Then, when you call a procedure,
it makes a new
environment.
So what happens, then, when I
try to evaluate a form, square
of a plus 2?

English: 
What Python does is it says,
OK, I need to figure
out what square is.
So it looks it up in the
environment, and it finds out
that square is a procedure.
Fine, I know how to deal
with procedures.
So then, it figures out this
procedure has a formal
argument, x.
Oh, OK, if I'm going to run this
procedure, I'm going to
have to know what x means.
So Python makes a new
environment--
here, it's labelled E2, separate
from the global
environment, E1.
It makes a new environment
that will
associate x with something.
Doesn't know what it is yet, it
just knows that this square
is a procedure that takes
a formal argument, x.
So Python makes a new
environment, E2, with x
pointing to something.
Then, Python evaluates the
argument a plus 2 in the
environment E1.
You called square of a plus 2
in the environment of E1.

Italian: 
 Quello che fa Python è che dice, OK, ho bisogno di capire 
 scopri cos'è il quadrato. 
 Quindi lo cerca nell'ambiente e lo scopre 
 quel quadrato è una procedura. 
 Bene, so come affrontare le procedure. 
 Quindi, scopre che questa procedura ha un formale 
 argomento, x. 
 Oh, OK, se ho intenzione di eseguire questa procedura, lo farò 
 devi sapere cosa significa x. 
 Quindi Python crea un nuovo ambiente ... 
 qui, è etichettato E2, separato dal globale 
 ambiente, E1. 
 Crea un nuovo ambiente che lo farà 
 associare x a qualcosa. 
 Non sa ancora cosa sia, sa solo che questa piazza 
 è una procedura che accetta un argomento formale, x. 
 Quindi Python crea un nuovo ambiente, E2, con x 
 indicando qualcosa. 
 Quindi, Python valuta l'argomento a più 2 in 
 ambiente E1. 
 Hai chiamato quadrato di più 2 nell'ambiente di E1. 

Arabic: 
What Python does is it says,
OK, I need to figure
out what square is.
So it looks it up in the
environment, and it finds out
that square is a procedure.
Fine, I know how to deal
with procedures.
So then, it figures out this
procedure has a formal
argument, x.
Oh, OK, if I'm going to run this
procedure, I'm going to
have to know what x means.
So Python makes a new
environment--
here, it's labelled E2, separate
from the global
environment, E1.
It makes a new environment
ذلك سوف
associate x with something.
Doesn't know what it is yet, it
just knows that this square
is a procedure that takes
a formal argument, x.
So Python makes a new
environment, E2, with x
pointing to something.
Then, Python evaluates the
argument a plus 2 in the
environment E1.
 
You called square of a plus 2
in the environment of E1.

English: 
So it figures out what did
you mean by a plus 3.
Well, you were in the
environment E1.
So it means whatever a plus 3
would have meant if he had
just typed a plus 3 in
that environment.
So you evaluate a plus
3 in the environment
E1, and you get 5.
So then, this new environment,
E2, that is set up for this
procedure, square, associates
5 with x.
Now it's ready to
run the body.
So now, it runs this procedure,
return x times x.
But now, what it's trying to
resolve its variables, it
looks it up in E2.
So it says, I want to do
the procedure, the
body, x times x.
I need to know what x is, and
I need to know it twice.

Italian: 
 Quindi capisce cosa intendevi per più 3. 
 Bene, eri nell'ambiente E1. 
 Quindi significa qualunque cosa avrebbe significato un più 3 se lo avesse fatto 
 ho appena digitato un più 3 in quell'ambiente. 
 Quindi valuti un plus 3 nell'ambiente 
 E1 e ottieni 5. 
 Quindi, questo nuovo ambiente, E2, è impostato per questo 
 procedura, quadrato, associa 5 a x. 
 Ora è pronto per eseguire il corpo. 
 Quindi ora esegue questa procedura, restituisce x volte x. 
 Ma ora, quello che sta cercando di risolvere le sue variabili, è 
 lo cerca in E2. 
 Quindi dice, voglio fare la procedura, il file 
 corpo, x volte x. 
 Devo sapere cos'è x e devo saperlo due volte. 

Arabic: 
So it figures out what did
you mean by a plus 3.
Well, you were in the
environment E1.
So it means whatever a plus 3
would have meant if he had
just typed a plus 3 in
that environment.
So you evaluate a plus
3 in the environment
E1, and you get 5.
 
So then, this new environment,
E2, that is set up for this
procedure, square, associates
5 with x.
 
Now it's ready to
run the body.
So now, it runs this procedure,
return x times x.
But now, what it's trying to
resolve its variables, it
looks it up in E2.
So it says, I want to do
the procedure, the
body, x times x.
I need to know what x is, and
I need to know it twice.

English: 
Look up what x means, but I
will look it up in my E2
environment that was built
specifically for this procedure.
And fortunately, there's
an x there.
So it finds out that x is 5.
It multiplies 5 times 5.
It gets the answer is 25.
It returns 25.
And then, it destroys this
environment, E2, because it
was only necessary for the time
when it was running the
procedure body.
Is that clear?
OK, so a slightly more difficult
example illustrates
what happens whenever everything
is not defined in
the current local environment.
What if I type define
biz of a?
Well, I create a new name in
the local environment that
points to a procedure.
The procedure has a formal
parameter, a, and a body that
returns a plus b.

Italian: 
 Cerca cosa significa x, ma lo cercherò nel mio E2 
 l'ambiente che è stato costruito 
 specificamente per questa procedura. 
 E fortunatamente c'è una x lì. 
 Quindi scopre che x è 5. 
 Si moltiplica 5 per 5. 
 Ottiene la risposta è 25. 
 Restituisce 25. 
 E poi, distrugge questo ambiente, E2, perché 
 era necessario solo per il momento in cui era in esecuzione il file 
 corpo della procedura. 
 È chiaro? 
 OK, quindi illustra un esempio leggermente più difficile 
 cosa succede ogni volta che tutto non è definito in 
 l'attuale ambiente locale. 
 E se digito definire biz di a? 
 Bene, creo un nuovo nome nell'ambiente locale che 
 indica una procedura. 
 La procedura ha un parametro formale, a, e un corpo quello 
 restituisce un più b. 

Arabic: 
Look up what x means, but I
will look it up in my E2
environment that was built
specifically for this procedure.
And fortunately, there's
an x there.
So it finds out that x is 5.
It multiplies 5 times 5.
It gets the answer is 25.
It returns 25.
And then, it destroys this
environment, E2, because it
was only necessary for the time
when it was running the
procedure body.
هل هذا واضح؟
 
OK, so a slightly more difficult
example illustrates
what happens whenever everything
is not defined in
the current local environment.
What if I type define
biz of a?
Well, I create a new name in
the local environment that
points to a procedure.
The procedure has a formal
parameter, a, and a body that
returns a plus b.

Arabic: 
The procedure also was defined
within the environment E1,
which I'll keep track of.
 
Then, if I say b equals 6, that
makes a new binding in
the global environment,
b equals 6.
Then, if I try to run biz
of 2, look up biz.
Oh, that's a procedure,
formal parameter, a.
Make an environment,
has an a in it.
What should I put in a?
Evaluate the argument, 2.
OK, a is 2.
Put two here.
Now, I'm ready to
run the body.
Run the body in the
environment, E2.
When I run return a plus
b in E2, I have to
first figure out a.
Well, that's easy. a is 2.
Then, I have to figure out b.
What's b?
 
AUDIENCE: 6?
PROFESSOR: 6.

Italian: 
 La procedura è stata definita anche all'interno dell'ambiente E1, 
 di cui terrò traccia. 
 Quindi, se dico che b è uguale a 6, si crea un nuovo collegamento 
 l'ambiente globale, b è uguale a 6. 
 Quindi, se provo a eseguire biz di 2, cerca biz. 
 Oh, questa è una procedura, un parametro formale, a. 
 Crea un ambiente, ha una in esso. 
 Cosa devo mettere in un? 
 Valuta l'argomento, 2. 
 OK, a è 2. 
 Mettine due qui. 
 Ora sono pronto per eseguire il corpo. 
 Gestisci il corpo nell'ambiente, E2. 
 Quando eseguo restituisco a più b in E2, devo 
 prima capire a. 
 Bene, è facile. a è 2. 
 Quindi, devo capire b. 
 Cos'è b? 
 PUBBLICO: 6? 
 PROFESSORE: 6. 

English: 
The procedure also was defined
within the environment E1,
which I'll keep track of.
Then, if I say b equals 6, that
makes a new binding in
the global environment,
b equals 6.
Then, if I try to run biz
of 2, look up biz.
Oh, that's a procedure,
formal parameter, a.
Make an environment,
has an a in it.
What should I put in a?
Evaluate the argument, 2.
OK, a is 2.
Put two here.
Now, I'm ready to
run the body.
Run the body in the
environment, E2.
When I run return a plus
b in E2, I have to
first figure out a.
Well, that's easy. a is 2.
Then, I have to figure out b.
What's b?
AUDIENCE: 6?
PROFESSOR: 6.

English: 
So how did you get 6?
AUDIENCE: [INAUDIBLE].
PROFESSOR: So this local
environment that was created
for the formal parameter has,
as its parent, E1 because
that's where the procedure
was defined.
So it doesn't find b in this
local environment.
So it goes to the parent.
Do you have a "b?" And it could,
in principal, propagate
up a chain of environments.
So you could construct
this hierarchically.
So it will resolve bindings in
the most recent environment
that has that binding.
So the answer, then, is that
when you run biz of 2, this b
gets associated with
that b, OK?
So that's how the environments
work for simple procedures and
simple data structures.

Italian: 
 Allora come hai ottenuto 6? 
 PUBBLICO: [INCOMPRENSIBILE]. 
 PROFESSORE: Quindi questo ambiente locale che è stato creato 
 poiché il parametro formale ha, come genitore, E1 perché 
 è lì che è stata definita la procedura. 
 Quindi non trova b in questo ambiente locale. 
 Quindi va al genitore. 
 Hai una "b?" E potrebbe, in linea di principio, propagarsi 
 su una catena di ambienti. 
 Quindi potresti costruirlo gerarchicamente. 
 Quindi risolverà i binding nell'ambiente più recente 
 che ha quel legame. 
 Quindi la risposta, quindi, è che quando esegui biz di 2, questo b 
 viene associato a quella b, ok? 
 Ecco come funzionano gli ambienti per procedure semplici e 
 strutture dati semplici. 

Arabic: 
So how did you get 6?
AUDIENCE: [INAUDIBLE].
PROFESSOR: So this local
environment that was created
for the formal parameter has,
as its parent, E1 because
that's where the procedure
was defined.
 
So it doesn't find b in this
local environment.
So it goes to the parent.
Do you have a "b?" And it could,
in principal, propagate
up a chain of environments.
So you could construct
this hierarchically.
So it will resolve bindings in
the most recent environment
that has that binding.
So the answer, then, is that
when you run biz of 2, this b
gets associated with
that b, OK?
So that's how the environments
work for simple procedures and
simple data structures.

Arabic: 
It's very similar for the way
it works with classes.
So imagine that I had this
data, and I wanted to
represent that in Python.
What I might do is look at
the common features.
The courses are all the same.
The rooms are all the same.
The buildings are
all the same.
The ages are highly variable.
So I might want to create
a class that
has the common data.
So I might do this--
class Staff601.
The course is 601.
The building's 34.
The room is this.
The way Python implements a
class is as an environment.
Executing this set of statements
builds the class
environment.
هذه هي.
It's a list of bindings.
Here, I'm binding the
name, course, to the
string, 601, et cetera.
If there were a method, I
would do the same thing,
except it would look like
a procedure then.

English: 
It's very similar for the way
it works with classes.
So imagine that I had this
data, and I wanted to
represent that in Python.
What I might do is look at
the common features.
The courses are all the same.
The rooms are all the same.
The buildings are
all the same.
The ages are highly variable.
So I might want to create
a class that
has the common data.
So I might do this--
class Staff601.
The course is 601.
The building's 34.
The room is this.
The way Python implements a
class is as an environment.
Executing this set of statements
builds the class
environment.
This is it.
It's a list of bindings.
Here, I'm binding the
name, course, to the
string, 601, et cetera.
If there were a method, I
would do the same thing,
except it would look like
a procedure then.

Italian: 
 È molto simile per il modo in cui funziona con le classi. 
 Quindi immagina che avessi questi dati e volessi 
 rappresentalo in Python. 
 Quello che potrei fare è guardare le caratteristiche comuni. 
 I corsi sono tutti uguali. 
 Le stanze sono tutte uguali. 
 Gli edifici sono tutti uguali. 
 Le età sono molto variabili. 
 Quindi potrei voler creare una classe che 
 ha i dati comuni. 
 Quindi potrei farlo ... 
 classe Staff601. 
 Il corso è 601. 
 L'edificio è 34. 
 La stanza è questa. 
 Il modo in cui Python implementa una classe è come ambiente. 
 L'esecuzione di questo insieme di istruzioni costruisce la classe 
 ambiente. 
 Questo è. 
 È un elenco di associazioni. 
 Qui, sto vincolando il nome, ovviamente, al file 
 stringa, 601, eccetera. 
 Se ci fosse un metodo, farei la stessa cosa, 
 tranne che allora sembrerebbe una procedura. 

Italian: 
 Quindi questo crea l'ambiente Staff601. 
 Staff601, perché ho eseguito questa istruzione di classe, quella 
 crea un'associazione nell'ambiente locale, Staff601, che 
 indica il nuovo ambiente. 
 Quindi ora, in futuro, quando Python incontra il nome 
 Staff601, scoprirà che quello è un ambiente. 
 Python implementa le classi come ambienti. 
 Quindi ora, quando voglio accedere agli elementi all'interno di una classe, utilizzo 
 una notazione speciale. 
 È una notazione a punti. 
 Python considera i punti come modi per navigare in un ambiente. 

English: 
So this creates the Staff601
environment.
Staff601, because I executed
this class statement, that
creates a binding in the local
environment, Staff601, which
points to the new environment.
So now, in the future, when
Python encounters the name
Staff601, it will discover that
that's an environment.
Python implements classes
as environments.
So now, when I want to access
elements within a class, I use
a special notation.
It's a dot notation.
Python regards dots as ways of
navigating an environment.

Arabic: 
So this creates the Staff601
environment.
Staff601, because I executed
this class statement, that
creates a binding in the local
environment, Staff601, which
points to the new environment.
So now, in the future, when
Python encounters the name
Staff601, it will discover that
that's an environment.
Python implements classes
as environments.
So now, when I want to access
elements within a class, I use
a special notation.
It's a dot notation.
Python regards dots as ways of
navigating an environment.

Arabic: 
When Python parses staff.room,
it looks up Staff601 in the
current environment.
If it finds an environment, it
then says, oh, I know about
this .room thing.
All I do is I look up
the room name in
the environment Staff601.
And when it does that, it
gets the answer 501.
And the same sort of
thing happens here.
It looks up Staff601.
It finds an environment.
It looks up coolness.
It finds out there
is no such thing.
Well, no, that's not true.
So it creates coolness within
601 and assigns an
integer, 11, to it.
So then, the way Python treats
methods is completely
analogous--
oh, excuse me, instances.
I'm doing instances first.

English: 
When Python parses staff.room,
it looks up Staff601 in the
current environment.
If it finds an environment, it
then says, oh, I know about
this .room thing.
All I do is I look up
the room name in
the environment Staff601.
And when it does that, it
gets the answer 501.
And the same sort of
thing happens here.
It looks up Staff601.
It finds an environment.
It looks up coolness.
It finds out there
is no such thing.
Well, no, that's not true.
So it creates coolness within
601 and assigns an
integer, 11, to it.
So then, the way Python treats
methods is completely
analogous--
oh, excuse me, instances.
I'm doing instances first.

Italian: 
 Quando Python analizza staff.room, cerca Staff601 nel file 
 ambiente attuale. 
 Se trova un ambiente, allora dice, oh, lo so 
 questa cosa .room. 
 Tutto quello che faccio è cercare il nome della stanza 
 l'ambiente Staff601. 
 E quando lo fa, ottiene la risposta 501. 
 E lo stesso genere di cose accade qui. 
 Cerca Staff601. 
 Trova un ambiente. 
 Cerca la freddezza. 
 Scopre che non esiste una cosa del genere. 
 Ebbene no, non è vero. 
 Quindi crea freddezza entro 601 e assegna un file 
 intero, 11, ad esso. 
 Quindi, il modo in cui Python tratta i metodi è completamente 
 analogo-- 
 oh, scusatemi, istanze. 
 Sto facendo prima le istanze. 

Italian: 
 Se faccio in modo che pat sia un'istanza di Staff601, pat è un file 
 istanza della classe Staff601. 
 pat è implementato come un ambiente. 
 Quindi, quando faccio pat, pat indica un nuovo ambiente ... 
 qui, E3. 
 Il genitore di E3 è la classe a cui appartiene Pat, 
 che è, qui, E2. 
 E quando creo l'istanza, è vuoto. 
 Ma ora, se chiedo cos'è pat.course, beh, pat fa notare 
 a questo ambiente. 
 Questo ambiente ha qualcosa chiamato corso? 
 No. 
 Il genitore? 
 Sì. 
 La rotta è vincolata alla stringa 601. 
 Quindi pat.course è 601 proprio come 
 Il corso Staff601 era stato 601. 
 pat è un esempio. 

English: 
If I make pat be an instance
of Staff601, pat is an
instance of the class
Staff601.
pat is implemented as
an environment.
So when I make pat, pat points
to a new environment--
here, E3.
The parent of E3 is the class
that pat belongs to,
which is, here, E2.
And when I make the instance,
it's empty.
But now, if I ask what is
pat.course, well, pat points
to this environment.
Does this environment have
something called a course?
No.
Does the parent?
Yes.
Course is bound to
the string 601.
So pat.course is 601
just the same as
Staff601.course had been 601.
pat is an instance.

Arabic: 
If I make pat be an instance
of Staff601, pat is an
instance of the class
Staff601.
pat is implemented as
an environment.
So when I make pat, pat points
to a new environment--
here, E3.
The parent of E3 is the class
that pat belongs to,
which is, here, E2.
 
And when I make the instance,
it's empty.
But now, if I ask what is
pat.course, well, pat points
to this environment.
Does this environment have
something called a course?
لا.
Does the parent?
نعم فعلا.
 
Course is bound to
the string 601.
So pat.course is 601
just the same as
Staff601.course had been 601.
pat is an instance.

Italian: 
 È un nuovo ambiente con la classe 
 l'ambiente come suo genitore. 
 Puoi aggiungere attributi alle istanze. 
 E tutto ciò che fa è popolare l'ambiente associato 
 con l'istanza. 
 Puoi aggiungere metodi alle classi. 
 E questo fa la stessa cosa. 
 Quindi qui, ho la classe, Staff601, che ha un metodo, 
 saluto, variabili di istanza, corso, 
 edificio e stanza. 
 Quindi, quando creo quella struttura, Staff601 punta a 
 un ambiente che contiene il saluto, che è un file 
 procedura, oltre a un mucchio di variabili di istanza. 
 Quindi ora, tutte le regole di cui abbiamo parlato in merito 

English: 
It's a new environment
with the class
environment as its parent.
You can add attributes
to instances.
And all that does is populate
the environment associated
with the instance.
You can add methods
to classes.
And that does the same thing.
So here, I've got the class,
Staff601, which has a method,
salutation, instance
variables, course,
building, and room.
So when I build that structure,
Staff601 points to
an environment that contains
salutation, which is a
procedure, in addition to a
bunch of instance variables.
So now, all of the rules that
we've talked about with regard

Arabic: 
It's a new environment
with the class
environment as its parent.
 
You can add attributes
to instances.
And all that does is populate
the environment associated
with the instance.
You can add methods
to classes.
And that does the same thing.
So here, I've got the class,
Staff601, which has a method,
salutation, instance
variables, course,
building, and room.
So when I build that structure,
Staff601 points to
an environment that contains
salutation, which is a
procedure, in addition to a
bunch of instance variables.
 
So now, all of the rules that
we've talked about with regard

English: 
to environments apply
now to this class.
So in particular, I can say
Staff601 salutation of pat.
When Python parses Staff601,
it finds an environment.
It says dot salutation.
Oh, I know how to do that.
Within the environment,
Staff601, look for a binding
for the name salutation.
Do I find one?
Well, yeah, there it is.
It points to a procedure.
So staff dot salutation
is a procedure.
Do just the same things that
we would have done with a
simple procedure.
The only difference
here is that the
procedure came from a class.
In this particular case, the
sub-routine that I define has
a formal parameter, self.

Italian: 
 agli ambienti si applicano ora a questa classe. 
 Quindi, in particolare, posso dire il saluto di Staff601 di pat. 
 Quando Python analizza Staff601, trova un ambiente. 
 Dice un punto di saluto. 
 Oh, so come farlo. 
 All'interno dell'ambiente, Staff601, cerca un binding 
 per il saluto al nome. 
 Ne trovo uno? 
 Bene, sì, eccolo. 
 Indica una procedura. 
 Quindi il saluto al punto del personale è una procedura. 
 Fai le stesse cose che avremmo fatto con un file 
 procedura semplice. 
 L'unica differenza qui è che il file 
 procedura proveniva da una classe. 
 In questo caso particolare, la sub-routine che definisco ha 
 un parametro formale, il sé. 

Arabic: 
to environments apply
now to this class.
So in particular, I can say
Staff601 salutation of pat.
When Python parses Staff601,
it finds an environment.
 
It says dot salutation.
Oh, I know how to do that.
Within the environment,
Staff601, look for a binding
for the name salutation.
Do I find one?
Well, yeah, there it is.
It points to a procedure.
So staff dot salutation
is a procedure.
Do just the same things that
we would have done with a
simple procedure.
The only difference
here is that the
procedure came from a class.
 
In this particular case, the
sub-routine that I define has
a formal parameter, self.

English: 
So then, that's going to have
to build when I try to
evaluate it.
That has to build a binding for
self, which is set to pat.
pat was an environment.
So self gets pointed to pat.
So now, when I run
Staff601.salutation on pat, it
behaves as though that generic
method was applied to the
instance pat.
We'll do that a lot.
It's a little bit
of redundancy.
We know that pat is a
member of Staff601.
So we will define a special
form-- or I should say, Python
defines a special form-- that
makes that easy to say.
This is the way we will usually
say, the instance pat
should run the class method
salutation on itself.

Italian: 
 Quindi, dovrò costruire quando cercherò di farlo 
 valutalo. 
 Questo deve costruire un legame per se stessi, che è impostato su pat. 
 pat era un ambiente. 
 Quindi il sé viene indicato per accarezzare. 
 Quindi ora, quando eseguo Staff601.salutation su pat, esso 
 si comporta come se quel metodo generico fosse applicato a 
 istanza pat. 
 Lo faremo molto. 
 È un po 'ridondante. 
 Sappiamo che Pat è un membro di Staff601. 
 Quindi definiremo una forma speciale, o dovrei dire Python 
 definisce una forma speciale, che lo rende facile da dire. 
 Questo è il modo in cui diremo di solito, l'istanza pat 
 dovrebbe eseguire il saluto del metodo di classe su se stesso. 

Arabic: 
So then, that's going to have
to build when I try to
evaluate it.
That has to build a binding for
self, which is set to pat.
pat was an environment.
So self gets pointed to pat.
So now, when I run
Staff601.salutation on pat, it
behaves as though that generic
method was applied to the
instance pat.
 
We'll do that a lot.
It's a little bit
of redundancy.
We know that pat is a
member of Staff601.
So we will define a special
form-- or I should say, Python
defines a special form-- that
makes that easy to say.
This is the way we will usually
say, the instance pat
should run the class method
salutation on itself.

Arabic: 
This is simply a simplified
notation that means
precisely that, OK?
So what we covered today, then,
was supposed to be the
most elementary ideas in how
you construct modular
programs, Modularity
at the small scale.
How do you make operations that
are hierarchical, data
structures, and classes?
What we will do for the rest of
the week is practice those
أنشطة.
 

English: 
This is simply a simplified
notation that means
precisely that, OK?
So what we covered today, then,
was supposed to be the
most elementary ideas in how
you construct modular
programs, Modularity
at the small scale.
How do you make operations that
are hierarchical, data
structures, and classes?
What we will do for the rest of
the week is practice those
activities.

Italian: 
 Questa è semplicemente una notazione semplificata che significa 
 proprio quello, ok? 
 Quindi quello che abbiamo trattato oggi, quindi, doveva essere il file 
 idee più elementari nel modo in cui costruisci modulare 
 programmi, Modularità su piccola scala. 
 Come si eseguono operazioni gerarchiche, dati 
 strutture e classi? 
 Quello che faremo per il resto della settimana è metterli in pratica 
 attività. 
